{ "author": { "email": "markus.siebert@deutschebahn.com", "name": "Markus Siebert", "roles": [ "author" ] }, "bundled": { "yaml": "^2.8.0" }, "dependencies": { "aws-cdk-lib": "^2.191.0", "constructs": "^10.0.5" }, "dependencyClosure": { "@aws-cdk/asset-awscli-v1": { "targets": { "dotnet": { "namespace": "Amazon.CDK.Asset.AwsCliV1", "packageId": "Amazon.CDK.Asset.AwsCliV1" }, "go": { "moduleName": "github.com/cdklabs/awscdk-asset-awscli-go", "packageName": "awscliv1" }, "java": { "maven": { "artifactId": "cdk-asset-awscli-v1", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.cdk.asset.awscli.v1" }, "js": { "npm": "@aws-cdk/asset-awscli-v1" }, "python": { "distName": "aws-cdk.asset-awscli-v1", "module": "aws_cdk.asset_awscli_v1" } } }, "@aws-cdk/asset-node-proxy-agent-v6": { "targets": { "dotnet": { "namespace": "Amazon.CDK.Asset.NodeProxyAgentV6", "packageId": "Amazon.CDK.Asset.NodeProxyAgentV6" }, "go": { "moduleName": "github.com/cdklabs/awscdk-asset-node-proxy-agent-go", "packageName": "nodeproxyagentv6" }, "java": { "maven": { "artifactId": "cdk-asset-node-proxy-agent-v6", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.cdk.asset.node.proxy.agent.v6" }, "js": { "npm": "@aws-cdk/asset-node-proxy-agent-v6" }, "python": { "distName": "aws-cdk.asset-node-proxy-agent-v6", "module": "aws_cdk.asset_node_proxy_agent_v6" } } }, "@aws-cdk/cloud-assembly-schema": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/main/logo/default-256-dark.png", "namespace": "Amazon.CDK.CloudAssembly.Schema", "packageId": "Amazon.CDK.CloudAssembly.Schema" }, "go": { "moduleName": "github.com/cdklabs/cloud-assembly-schema-go" }, "java": { "maven": { "artifactId": "cdk-cloud-assembly-schema", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.cloudassembly.schema" }, "js": { "npm": "@aws-cdk/cloud-assembly-schema" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 2" ], "distName": "aws-cdk.cloud-assembly-schema", "module": "aws_cdk.cloud_assembly_schema" } } }, "aws-cdk-lib": { "submodules": { "aws-cdk-lib.alexa_ask": { "targets": { "dotnet": { "namespace": "Amazon.CDK.Alexa.Ask" }, "java": { "package": "software.amazon.awscdk.alexa.ask" }, "python": { "module": "aws_cdk.alexa_ask" } } }, "aws-cdk-lib.assertions": { "targets": { "dotnet": { "namespace": "Amazon.CDK.Assertions" }, "java": { "package": "software.amazon.awscdk.assertions" }, "python": { "module": "aws_cdk.assertions" } } }, "aws-cdk-lib.assets": { "targets": { "dotnet": { "namespace": "Amazon.CDK.Assets" }, "java": { "package": "software.amazon.awscdk.assets" }, "python": { "module": "aws_cdk.assets" } } }, "aws-cdk-lib.aws_accessanalyzer": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.AccessAnalyzer" }, "java": { "package": "software.amazon.awscdk.services.accessanalyzer" }, "python": { "module": "aws_cdk.aws_accessanalyzer" } } }, "aws-cdk-lib.aws_acmpca": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.ACMPCA" }, "java": { "package": "software.amazon.awscdk.services.acmpca" }, "python": { "module": "aws_cdk.aws_acmpca" } } }, "aws-cdk-lib.aws_amazonmq": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.AmazonMQ" }, "java": { "package": "software.amazon.awscdk.services.amazonmq" }, "python": { "module": "aws_cdk.aws_amazonmq" } } }, "aws-cdk-lib.aws_amplify": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Amplify" }, "java": { "package": "software.amazon.awscdk.services.amplify" }, "python": { "module": "aws_cdk.aws_amplify" } } }, "aws-cdk-lib.aws_amplifyuibuilder": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.AmplifyUIBuilder" }, "java": { "package": "software.amazon.awscdk.services.amplifyuibuilder" }, "python": { "module": "aws_cdk.aws_amplifyuibuilder" } } }, "aws-cdk-lib.aws_apigateway": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.APIGateway" }, "java": { "package": "software.amazon.awscdk.services.apigateway" }, "python": { "module": "aws_cdk.aws_apigateway" } } }, "aws-cdk-lib.aws_apigatewayv2": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Apigatewayv2" }, "java": { "package": "software.amazon.awscdk.services.apigatewayv2" }, "python": { "module": "aws_cdk.aws_apigatewayv2" } } }, "aws-cdk-lib.aws_apigatewayv2_authorizers": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AwsApigatewayv2Authorizers" }, "java": { "package": "software.amazon.awscdk.aws_apigatewayv2_authorizers" }, "python": { "module": "aws_cdk.aws_apigatewayv2_authorizers" } } }, "aws-cdk-lib.aws_apigatewayv2_integrations": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AwsApigatewayv2Integrations" }, "java": { "package": "software.amazon.awscdk.aws_apigatewayv2_integrations" }, "python": { "module": "aws_cdk.aws_apigatewayv2_integrations" } } }, "aws-cdk-lib.aws_appconfig": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.AppConfig" }, "java": { "package": "software.amazon.awscdk.services.appconfig" }, "python": { "module": "aws_cdk.aws_appconfig" } } }, "aws-cdk-lib.aws_appflow": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.AppFlow" }, "java": { "package": "software.amazon.awscdk.services.appflow" }, "python": { "module": "aws_cdk.aws_appflow" } } }, "aws-cdk-lib.aws_appintegrations": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.AppIntegrations" }, "java": { "package": "software.amazon.awscdk.services.appintegrations" }, "python": { "module": "aws_cdk.aws_appintegrations" } } }, "aws-cdk-lib.aws_applicationautoscaling": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.ApplicationAutoScaling" }, "java": { "package": "software.amazon.awscdk.services.applicationautoscaling" }, "python": { "module": "aws_cdk.aws_applicationautoscaling" } } }, "aws-cdk-lib.aws_applicationinsights": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.ApplicationInsights" }, "java": { "package": "software.amazon.awscdk.services.applicationinsights" }, "python": { "module": "aws_cdk.aws_applicationinsights" } } }, "aws-cdk-lib.aws_applicationsignals": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.ApplicationSignals" }, "java": { "package": "software.amazon.awscdk.services.applicationsignals" }, "python": { "module": "aws_cdk.aws_applicationsignals" } } }, "aws-cdk-lib.aws_appmesh": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.AppMesh" }, "java": { "package": "software.amazon.awscdk.services.appmesh" }, "python": { "module": "aws_cdk.aws_appmesh" } } }, "aws-cdk-lib.aws_apprunner": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.AppRunner" }, "java": { "package": "software.amazon.awscdk.services.apprunner" }, "python": { "module": "aws_cdk.aws_apprunner" } } }, "aws-cdk-lib.aws_appstream": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.AppStream" }, "java": { "package": "software.amazon.awscdk.services.appstream" }, "python": { "module": "aws_cdk.aws_appstream" } } }, "aws-cdk-lib.aws_appsync": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.AppSync" }, "java": { "package": "software.amazon.awscdk.services.appsync" }, "python": { "module": "aws_cdk.aws_appsync" } } }, "aws-cdk-lib.aws_apptest": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.AppTest" }, "java": { "package": "software.amazon.awscdk.services.apptest" }, "python": { "module": "aws_cdk.aws_apptest" } } }, "aws-cdk-lib.aws_aps": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.APS" }, "java": { "package": "software.amazon.awscdk.services.aps" }, "python": { "module": "aws_cdk.aws_aps" } } }, "aws-cdk-lib.aws_arczonalshift": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.ARCZonalShift" }, "java": { "package": "software.amazon.awscdk.services.arczonalshift" }, "python": { "module": "aws_cdk.aws_arczonalshift" } } }, "aws-cdk-lib.aws_athena": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Athena" }, "java": { "package": "software.amazon.awscdk.services.athena" }, "python": { "module": "aws_cdk.aws_athena" } } }, "aws-cdk-lib.aws_auditmanager": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.AuditManager" }, "java": { "package": "software.amazon.awscdk.services.auditmanager" }, "python": { "module": "aws_cdk.aws_auditmanager" } } }, "aws-cdk-lib.aws_autoscaling": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.AutoScaling" }, "java": { "package": "software.amazon.awscdk.services.autoscaling" }, "python": { "module": "aws_cdk.aws_autoscaling" } } }, "aws-cdk-lib.aws_autoscaling_common": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.AutoScaling.Common" }, "java": { "package": "software.amazon.awscdk.services.autoscaling.common" }, "python": { "module": "aws_cdk.aws_autoscaling_common" } } }, "aws-cdk-lib.aws_autoscaling_hooktargets": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.AutoScaling.HookTargets" }, "java": { "package": "software.amazon.awscdk.services.autoscaling.hooktargets" }, "python": { "module": "aws_cdk.aws_autoscaling_hooktargets" } } }, "aws-cdk-lib.aws_autoscalingplans": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.AutoScalingPlans" }, "java": { "package": "software.amazon.awscdk.services.autoscalingplans" }, "python": { "module": "aws_cdk.aws_autoscalingplans" } } }, "aws-cdk-lib.aws_b2bi": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.B2BI" }, "java": { "package": "software.amazon.awscdk.services.b2bi" }, "python": { "module": "aws_cdk.aws_b2bi" } } }, "aws-cdk-lib.aws_backup": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Backup" }, "java": { "package": "software.amazon.awscdk.services.backup" }, "python": { "module": "aws_cdk.aws_backup" } } }, "aws-cdk-lib.aws_backupgateway": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.BackupGateway" }, "java": { "package": "software.amazon.awscdk.services.backupgateway" }, "python": { "module": "aws_cdk.aws_backupgateway" } } }, "aws-cdk-lib.aws_batch": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Batch" }, "java": { "package": "software.amazon.awscdk.services.batch" }, "python": { "module": "aws_cdk.aws_batch" } } }, "aws-cdk-lib.aws_bcmdataexports": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.BCMDataExports" }, "java": { "package": "software.amazon.awscdk.services.bcmdataexports" }, "python": { "module": "aws_cdk.aws_bcmdataexports" } } }, "aws-cdk-lib.aws_bedrock": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.Bedrock" }, "java": { "package": "software.amazon.awscdk.services.bedrock" }, "python": { "module": "aws_cdk.aws_bedrock" } } }, "aws-cdk-lib.aws_billingconductor": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.BillingConductor" }, "java": { "package": "software.amazon.awscdk.services.billingconductor" }, "python": { "module": "aws_cdk.aws_billingconductor" } } }, "aws-cdk-lib.aws_budgets": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Budgets" }, "java": { "package": "software.amazon.awscdk.services.budgets" }, "python": { "module": "aws_cdk.aws_budgets" } } }, "aws-cdk-lib.aws_cassandra": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Cassandra" }, "java": { "package": "software.amazon.awscdk.services.cassandra" }, "python": { "module": "aws_cdk.aws_cassandra" } } }, "aws-cdk-lib.aws_ce": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.CE" }, "java": { "package": "software.amazon.awscdk.services.ce" }, "python": { "module": "aws_cdk.aws_ce" } } }, "aws-cdk-lib.aws_certificatemanager": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.CertificateManager" }, "java": { "package": "software.amazon.awscdk.services.certificatemanager" }, "python": { "module": "aws_cdk.aws_certificatemanager" } } }, "aws-cdk-lib.aws_chatbot": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Chatbot" }, "java": { "package": "software.amazon.awscdk.services.chatbot" }, "python": { "module": "aws_cdk.aws_chatbot" } } }, "aws-cdk-lib.aws_cleanrooms": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.CleanRooms" }, "java": { "package": "software.amazon.awscdk.services.cleanrooms" }, "python": { "module": "aws_cdk.aws_cleanrooms" } } }, "aws-cdk-lib.aws_cleanroomsml": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.CleanRoomsML" }, "java": { "package": "software.amazon.awscdk.services.cleanroomsml" }, "python": { "module": "aws_cdk.aws_cleanroomsml" } } }, "aws-cdk-lib.aws_cloud9": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Cloud9" }, "java": { "package": "software.amazon.awscdk.services.cloud9" }, "python": { "module": "aws_cdk.aws_cloud9" } } }, "aws-cdk-lib.aws_cloudformation": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.CloudFormation" }, "java": { "package": "software.amazon.awscdk.services.cloudformation" }, "python": { "module": "aws_cdk.aws_cloudformation" } } }, "aws-cdk-lib.aws_cloudfront": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.CloudFront" }, "java": { "package": "software.amazon.awscdk.services.cloudfront" }, "python": { "module": "aws_cdk.aws_cloudfront" } } }, "aws-cdk-lib.aws_cloudfront.experimental": {}, "aws-cdk-lib.aws_cloudfront_origins": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.CloudFront.Origins" }, "java": { "package": "software.amazon.awscdk.services.cloudfront.origins" }, "python": { "module": "aws_cdk.aws_cloudfront_origins" } } }, "aws-cdk-lib.aws_cloudtrail": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.CloudTrail" }, "java": { "package": "software.amazon.awscdk.services.cloudtrail" }, "python": { "module": "aws_cdk.aws_cloudtrail" } } }, "aws-cdk-lib.aws_cloudwatch": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.CloudWatch" }, "java": { "package": "software.amazon.awscdk.services.cloudwatch" }, "python": { "module": "aws_cdk.aws_cloudwatch" } } }, "aws-cdk-lib.aws_cloudwatch_actions": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.CloudWatch.Actions" }, "java": { "package": "software.amazon.awscdk.services.cloudwatch.actions" }, "python": { "module": "aws_cdk.aws_cloudwatch_actions" } } }, "aws-cdk-lib.aws_codeartifact": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.CodeArtifact" }, "java": { "package": "software.amazon.awscdk.services.codeartifact" }, "python": { "module": "aws_cdk.aws_codeartifact" } } }, "aws-cdk-lib.aws_codebuild": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.CodeBuild" }, "java": { "package": "software.amazon.awscdk.services.codebuild" }, "python": { "module": "aws_cdk.aws_codebuild" } } }, "aws-cdk-lib.aws_codecommit": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.CodeCommit" }, "java": { "package": "software.amazon.awscdk.services.codecommit" }, "python": { "module": "aws_cdk.aws_codecommit" } } }, "aws-cdk-lib.aws_codeconnections": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.CodeConnections" }, "java": { "package": "software.amazon.awscdk.services.codeconnections" }, "python": { "module": "aws_cdk.aws_codeconnections" } } }, "aws-cdk-lib.aws_codedeploy": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.CodeDeploy" }, "java": { "package": "software.amazon.awscdk.services.codedeploy" }, "python": { "module": "aws_cdk.aws_codedeploy" } } }, "aws-cdk-lib.aws_codeguruprofiler": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.CodeGuruProfiler" }, "java": { "package": "software.amazon.awscdk.services.codeguruprofiler" }, "python": { "module": "aws_cdk.aws_codeguruprofiler" } } }, "aws-cdk-lib.aws_codegurureviewer": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.CodeGuruReviewer" }, "java": { "package": "software.amazon.awscdk.services.codegurureviewer" }, "python": { "module": "aws_cdk.aws_codegurureviewer" } } }, "aws-cdk-lib.aws_codepipeline": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.CodePipeline" }, "java": { "package": "software.amazon.awscdk.services.codepipeline" }, "python": { "module": "aws_cdk.aws_codepipeline" } } }, "aws-cdk-lib.aws_codepipeline_actions": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.CodePipeline.Actions" }, "java": { "package": "software.amazon.awscdk.services.codepipeline.actions" }, "python": { "module": "aws_cdk.aws_codepipeline_actions" } } }, "aws-cdk-lib.aws_codestar": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Codestar" }, "java": { "package": "software.amazon.awscdk.services.codestar" }, "python": { "module": "aws_cdk.aws_codestar" } } }, "aws-cdk-lib.aws_codestarconnections": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.CodeStarConnections" }, "java": { "package": "software.amazon.awscdk.services.codestarconnections" }, "python": { "module": "aws_cdk.aws_codestarconnections" } } }, "aws-cdk-lib.aws_codestarnotifications": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.CodeStarNotifications" }, "java": { "package": "software.amazon.awscdk.services.codestarnotifications" }, "python": { "module": "aws_cdk.aws_codestarnotifications" } } }, "aws-cdk-lib.aws_cognito": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Cognito" }, "java": { "package": "software.amazon.awscdk.services.cognito" }, "python": { "module": "aws_cdk.aws_cognito" } } }, "aws-cdk-lib.aws_cognito_identitypool": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Cognito.Identitypool" }, "java": { "package": "software.amazon.awscdk.services.cognito.identitypool" }, "python": { "module": "aws_cdk.aws_cognito_identitypool" } } }, "aws-cdk-lib.aws_comprehend": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Comprehend" }, "java": { "package": "software.amazon.awscdk.services.comprehend" }, "python": { "module": "aws_cdk.aws_comprehend" } } }, "aws-cdk-lib.aws_config": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Config" }, "java": { "package": "software.amazon.awscdk.services.config" }, "python": { "module": "aws_cdk.aws_config" } } }, "aws-cdk-lib.aws_connect": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Connect" }, "java": { "package": "software.amazon.awscdk.services.connect" }, "python": { "module": "aws_cdk.aws_connect" } } }, "aws-cdk-lib.aws_connectcampaigns": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.ConnectCampaigns" }, "java": { "package": "software.amazon.awscdk.services.connectcampaigns" }, "python": { "module": "aws_cdk.aws_connectcampaigns" } } }, "aws-cdk-lib.aws_connectcampaignsv2": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.ConnectCampaignsV2" }, "java": { "package": "software.amazon.awscdk.services.connectcampaignsv2" }, "python": { "module": "aws_cdk.aws_connectcampaignsv2" } } }, "aws-cdk-lib.aws_controltower": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.ControlTower" }, "java": { "package": "software.amazon.awscdk.services.controltower" }, "python": { "module": "aws_cdk.aws_controltower" } } }, "aws-cdk-lib.aws_cur": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.CUR" }, "java": { "package": "software.amazon.awscdk.services.cur" }, "python": { "module": "aws_cdk.aws_cur" } } }, "aws-cdk-lib.aws_customerprofiles": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.CustomerProfiles" }, "java": { "package": "software.amazon.awscdk.services.customerprofiles" }, "python": { "module": "aws_cdk.aws_customerprofiles" } } }, "aws-cdk-lib.aws_databrew": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.DataBrew" }, "java": { "package": "software.amazon.awscdk.services.databrew" }, "python": { "module": "aws_cdk.aws_databrew" } } }, "aws-cdk-lib.aws_datapipeline": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.DataPipeline" }, "java": { "package": "software.amazon.awscdk.services.datapipeline" }, "python": { "module": "aws_cdk.aws_datapipeline" } } }, "aws-cdk-lib.aws_datasync": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.DataSync" }, "java": { "package": "software.amazon.awscdk.services.datasync" }, "python": { "module": "aws_cdk.aws_datasync" } } }, "aws-cdk-lib.aws_datazone": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.DataZone" }, "java": { "package": "software.amazon.awscdk.services.datazone" }, "python": { "module": "aws_cdk.aws_datazone" } } }, "aws-cdk-lib.aws_dax": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.DAX" }, "java": { "package": "software.amazon.awscdk.services.dax" }, "python": { "module": "aws_cdk.aws_dax" } } }, "aws-cdk-lib.aws_deadline": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.Deadline" }, "java": { "package": "software.amazon.awscdk.services.deadline" }, "python": { "module": "aws_cdk.aws_deadline" } } }, "aws-cdk-lib.aws_detective": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Detective" }, "java": { "package": "software.amazon.awscdk.services.detective" }, "python": { "module": "aws_cdk.aws_detective" } } }, "aws-cdk-lib.aws_devicefarm": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.DeviceFarm" }, "java": { "package": "software.amazon.awscdk.services.devicefarm" }, "python": { "module": "aws_cdk.aws_devicefarm" } } }, "aws-cdk-lib.aws_devopsguru": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.DevOpsGuru" }, "java": { "package": "software.amazon.awscdk.services.devopsguru" }, "python": { "module": "aws_cdk.aws_devopsguru" } } }, "aws-cdk-lib.aws_directoryservice": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.DirectoryService" }, "java": { "package": "software.amazon.awscdk.services.directoryservice" }, "python": { "module": "aws_cdk.aws_directoryservice" } } }, "aws-cdk-lib.aws_dlm": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.DLM" }, "java": { "package": "software.amazon.awscdk.services.dlm" }, "python": { "module": "aws_cdk.aws_dlm" } } }, "aws-cdk-lib.aws_dms": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.DMS" }, "java": { "package": "software.amazon.awscdk.services.dms" }, "python": { "module": "aws_cdk.aws_dms" } } }, "aws-cdk-lib.aws_docdb": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.DocDB" }, "java": { "package": "software.amazon.awscdk.services.docdb" }, "python": { "module": "aws_cdk.aws_docdb" } } }, "aws-cdk-lib.aws_docdbelastic": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.DocDBElastic" }, "java": { "package": "software.amazon.awscdk.services.docdbelastic" }, "python": { "module": "aws_cdk.aws_docdbelastic" } } }, "aws-cdk-lib.aws_dsql": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.DSQL" }, "java": { "package": "software.amazon.awscdk.services.dsql" }, "python": { "module": "aws_cdk.aws_dsql" } } }, "aws-cdk-lib.aws_dynamodb": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.DynamoDB" }, "java": { "package": "software.amazon.awscdk.services.dynamodb" }, "python": { "module": "aws_cdk.aws_dynamodb" } } }, "aws-cdk-lib.aws_ec2": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.EC2" }, "java": { "package": "software.amazon.awscdk.services.ec2" }, "python": { "module": "aws_cdk.aws_ec2" } } }, "aws-cdk-lib.aws_ecr": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.ECR" }, "java": { "package": "software.amazon.awscdk.services.ecr" }, "python": { "module": "aws_cdk.aws_ecr" } } }, "aws-cdk-lib.aws_ecr_assets": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Ecr.Assets" }, "java": { "package": "software.amazon.awscdk.services.ecr.assets" }, "python": { "module": "aws_cdk.aws_ecr_assets" } } }, "aws-cdk-lib.aws_ecs": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.ECS" }, "java": { "package": "software.amazon.awscdk.services.ecs" }, "python": { "module": "aws_cdk.aws_ecs" } } }, "aws-cdk-lib.aws_ecs_patterns": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.ECS.Patterns" }, "java": { "package": "software.amazon.awscdk.services.ecs.patterns" }, "python": { "module": "aws_cdk.aws_ecs_patterns" } } }, "aws-cdk-lib.aws_efs": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.EFS" }, "java": { "package": "software.amazon.awscdk.services.efs" }, "python": { "module": "aws_cdk.aws_efs" } } }, "aws-cdk-lib.aws_eks": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.EKS" }, "java": { "package": "software.amazon.awscdk.services.eks" }, "python": { "module": "aws_cdk.aws_eks" } } }, "aws-cdk-lib.aws_elasticache": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.ElastiCache" }, "java": { "package": "software.amazon.awscdk.services.elasticache" }, "python": { "module": "aws_cdk.aws_elasticache" } } }, "aws-cdk-lib.aws_elasticbeanstalk": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.ElasticBeanstalk" }, "java": { "package": "software.amazon.awscdk.services.elasticbeanstalk" }, "python": { "module": "aws_cdk.aws_elasticbeanstalk" } } }, "aws-cdk-lib.aws_elasticloadbalancing": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.ElasticLoadBalancing" }, "java": { "package": "software.amazon.awscdk.services.elasticloadbalancing" }, "python": { "module": "aws_cdk.aws_elasticloadbalancing" } } }, "aws-cdk-lib.aws_elasticloadbalancingv2": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.ElasticLoadBalancingV2" }, "java": { "package": "software.amazon.awscdk.services.elasticloadbalancingv2" }, "python": { "module": "aws_cdk.aws_elasticloadbalancingv2" } } }, "aws-cdk-lib.aws_elasticloadbalancingv2_actions": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.ElasticLoadBalancingV2.Actions" }, "java": { "package": "software.amazon.awscdk.services.elasticloadbalancingv2.actions" }, "python": { "module": "aws_cdk.aws_elasticloadbalancingv2_actions" } } }, "aws-cdk-lib.aws_elasticloadbalancingv2_targets": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.ElasticLoadBalancingV2.Targets" }, "java": { "package": "software.amazon.awscdk.services.elasticloadbalancingv2.targets" }, "python": { "module": "aws_cdk.aws_elasticloadbalancingv2_targets" } } }, "aws-cdk-lib.aws_elasticsearch": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Elasticsearch" }, "java": { "package": "software.amazon.awscdk.services.elasticsearch" }, "python": { "module": "aws_cdk.aws_elasticsearch" } } }, "aws-cdk-lib.aws_emr": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.EMR" }, "java": { "package": "software.amazon.awscdk.services.emr" }, "python": { "module": "aws_cdk.aws_emr" } } }, "aws-cdk-lib.aws_emrcontainers": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.EMRContainers" }, "java": { "package": "software.amazon.awscdk.services.emrcontainers" }, "python": { "module": "aws_cdk.aws_emrcontainers" } } }, "aws-cdk-lib.aws_emrserverless": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.EMRServerless" }, "java": { "package": "software.amazon.awscdk.services.emrserverless" }, "python": { "module": "aws_cdk.aws_emrserverless" } } }, "aws-cdk-lib.aws_entityresolution": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.EntityResolution" }, "java": { "package": "software.amazon.awscdk.services.entityresolution" }, "python": { "module": "aws_cdk.aws_entityresolution" } } }, "aws-cdk-lib.aws_events": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Events" }, "java": { "package": "software.amazon.awscdk.services.events" }, "python": { "module": "aws_cdk.aws_events" } } }, "aws-cdk-lib.aws_events_targets": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Events.Targets" }, "java": { "package": "software.amazon.awscdk.services.events.targets" }, "python": { "module": "aws_cdk.aws_events_targets" } } }, "aws-cdk-lib.aws_eventschemas": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.EventSchemas" }, "java": { "package": "software.amazon.awscdk.services.eventschemas" }, "python": { "module": "aws_cdk.aws_eventschemas" } } }, "aws-cdk-lib.aws_evidently": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Evidently" }, "java": { "package": "software.amazon.awscdk.services.evidently" }, "python": { "module": "aws_cdk.aws_evidently" } } }, "aws-cdk-lib.aws_finspace": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.FinSpace" }, "java": { "package": "software.amazon.awscdk.services.finspace" }, "python": { "module": "aws_cdk.aws_finspace" } } }, "aws-cdk-lib.aws_fis": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.FIS" }, "java": { "package": "software.amazon.awscdk.services.fis" }, "python": { "module": "aws_cdk.aws_fis" } } }, "aws-cdk-lib.aws_fms": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.FMS" }, "java": { "package": "software.amazon.awscdk.services.fms" }, "python": { "module": "aws_cdk.aws_fms" } } }, "aws-cdk-lib.aws_forecast": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Forecast" }, "java": { "package": "software.amazon.awscdk.services.forecast" }, "python": { "module": "aws_cdk.aws_forecast" } } }, "aws-cdk-lib.aws_frauddetector": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.FraudDetector" }, "java": { "package": "software.amazon.awscdk.services.frauddetector" }, "python": { "module": "aws_cdk.aws_frauddetector" } } }, "aws-cdk-lib.aws_fsx": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.FSx" }, "java": { "package": "software.amazon.awscdk.services.fsx" }, "python": { "module": "aws_cdk.aws_fsx" } } }, "aws-cdk-lib.aws_gamelift": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.GameLift" }, "java": { "package": "software.amazon.awscdk.services.gamelift" }, "python": { "module": "aws_cdk.aws_gamelift" } } }, "aws-cdk-lib.aws_gameliftstreams": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.GameLiftStreams" }, "java": { "package": "software.amazon.awscdk.services.gameliftstreams" }, "python": { "module": "aws_cdk.aws_gameliftstreams" } } }, "aws-cdk-lib.aws_globalaccelerator": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.GlobalAccelerator" }, "java": { "package": "software.amazon.awscdk.services.globalaccelerator" }, "python": { "module": "aws_cdk.aws_globalaccelerator" } } }, "aws-cdk-lib.aws_globalaccelerator_endpoints": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.GlobalAccelerator.Endpoints" }, "java": { "package": "software.amazon.awscdk.services.globalaccelerator.endpoints" }, "python": { "module": "aws_cdk.aws_globalaccelerator_endpoints" } } }, "aws-cdk-lib.aws_glue": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Glue" }, "java": { "package": "software.amazon.awscdk.services.glue" }, "python": { "module": "aws_cdk.aws_glue" } } }, "aws-cdk-lib.aws_grafana": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Grafana" }, "java": { "package": "software.amazon.awscdk.services.grafana" }, "python": { "module": "aws_cdk.aws_grafana" } } }, "aws-cdk-lib.aws_greengrass": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Greengrass" }, "java": { "package": "software.amazon.awscdk.services.greengrass" }, "python": { "module": "aws_cdk.aws_greengrass" } } }, "aws-cdk-lib.aws_greengrassv2": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.GreengrassV2" }, "java": { "package": "software.amazon.awscdk.services.greengrassv2" }, "python": { "module": "aws_cdk.aws_greengrassv2" } } }, "aws-cdk-lib.aws_groundstation": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.GroundStation" }, "java": { "package": "software.amazon.awscdk.services.groundstation" }, "python": { "module": "aws_cdk.aws_groundstation" } } }, "aws-cdk-lib.aws_guardduty": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.GuardDuty" }, "java": { "package": "software.amazon.awscdk.services.guardduty" }, "python": { "module": "aws_cdk.aws_guardduty" } } }, "aws-cdk-lib.aws_healthimaging": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.HealthImaging" }, "java": { "package": "software.amazon.awscdk.services.healthimaging" }, "python": { "module": "aws_cdk.aws_healthimaging" } } }, "aws-cdk-lib.aws_healthlake": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.HealthLake" }, "java": { "package": "software.amazon.awscdk.services.healthlake" }, "python": { "module": "aws_cdk.aws_healthlake" } } }, "aws-cdk-lib.aws_iam": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.IAM" }, "java": { "package": "software.amazon.awscdk.services.iam" }, "python": { "module": "aws_cdk.aws_iam" } } }, "aws-cdk-lib.aws_identitystore": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.IdentityStore" }, "java": { "package": "software.amazon.awscdk.services.identitystore" }, "python": { "module": "aws_cdk.aws_identitystore" } } }, "aws-cdk-lib.aws_imagebuilder": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.ImageBuilder" }, "java": { "package": "software.amazon.awscdk.services.imagebuilder" }, "python": { "module": "aws_cdk.aws_imagebuilder" } } }, "aws-cdk-lib.aws_inspector": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Inspector" }, "java": { "package": "software.amazon.awscdk.services.inspector" }, "python": { "module": "aws_cdk.aws_inspector" } } }, "aws-cdk-lib.aws_inspectorv2": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.InspectorV2" }, "java": { "package": "software.amazon.awscdk.services.inspectorv2" }, "python": { "module": "aws_cdk.aws_inspectorv2" } } }, "aws-cdk-lib.aws_internetmonitor": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.InternetMonitor" }, "java": { "package": "software.amazon.awscdk.services.internetmonitor" }, "python": { "module": "aws_cdk.aws_internetmonitor" } } }, "aws-cdk-lib.aws_invoicing": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.Invoicing" }, "java": { "package": "software.amazon.awscdk.services.invoicing" }, "python": { "module": "aws_cdk.aws_invoicing" } } }, "aws-cdk-lib.aws_iot": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.IoT" }, "java": { "package": "software.amazon.awscdk.services.iot" }, "python": { "module": "aws_cdk.aws_iot" } } }, "aws-cdk-lib.aws_iotanalytics": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.IoTAnalytics" }, "java": { "package": "software.amazon.awscdk.services.iotanalytics" }, "python": { "module": "aws_cdk.aws_iotanalytics" } } }, "aws-cdk-lib.aws_iotcoredeviceadvisor": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.IoTCoreDeviceAdvisor" }, "java": { "package": "software.amazon.awscdk.services.iotcoredeviceadvisor" }, "python": { "module": "aws_cdk.aws_iotcoredeviceadvisor" } } }, "aws-cdk-lib.aws_iotevents": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.IoTEvents" }, "java": { "package": "software.amazon.awscdk.services.iotevents" }, "python": { "module": "aws_cdk.aws_iotevents" } } }, "aws-cdk-lib.aws_iotfleethub": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.IoTFleetHub" }, "java": { "package": "software.amazon.awscdk.services.iotfleethub" }, "python": { "module": "aws_cdk.aws_iotfleethub" } } }, "aws-cdk-lib.aws_iotfleetwise": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.IoTFleetWise" }, "java": { "package": "software.amazon.awscdk.services.iotfleetwise" }, "python": { "module": "aws_cdk.aws_iotfleetwise" } } }, "aws-cdk-lib.aws_iotsitewise": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.IoTSiteWise" }, "java": { "package": "software.amazon.awscdk.services.iotsitewise" }, "python": { "module": "aws_cdk.aws_iotsitewise" } } }, "aws-cdk-lib.aws_iotthingsgraph": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.IoTThingsGraph" }, "java": { "package": "software.amazon.awscdk.services.iotthingsgraph" }, "python": { "module": "aws_cdk.aws_iotthingsgraph" } } }, "aws-cdk-lib.aws_iottwinmaker": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.IoTTwinMaker" }, "java": { "package": "software.amazon.awscdk.services.iottwinmaker" }, "python": { "module": "aws_cdk.aws_iottwinmaker" } } }, "aws-cdk-lib.aws_iotwireless": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.IoTWireless" }, "java": { "package": "software.amazon.awscdk.services.iotwireless" }, "python": { "module": "aws_cdk.aws_iotwireless" } } }, "aws-cdk-lib.aws_ivs": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Ivs" }, "java": { "package": "software.amazon.awscdk.services.ivs" }, "python": { "module": "aws_cdk.aws_ivs" } } }, "aws-cdk-lib.aws_ivschat": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.IVSChat" }, "java": { "package": "software.amazon.awscdk.services.ivschat" }, "python": { "module": "aws_cdk.aws_ivschat" } } }, "aws-cdk-lib.aws_kafkaconnect": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.KafkaConnect" }, "java": { "package": "software.amazon.awscdk.services.kafkaconnect" }, "python": { "module": "aws_cdk.aws_kafkaconnect" } } }, "aws-cdk-lib.aws_kendra": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Kendra" }, "java": { "package": "software.amazon.awscdk.services.kendra" }, "python": { "module": "aws_cdk.aws_kendra" } } }, "aws-cdk-lib.aws_kendraranking": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.KendraRanking" }, "java": { "package": "software.amazon.awscdk.services.kendraranking" }, "python": { "module": "aws_cdk.aws_kendraranking" } } }, "aws-cdk-lib.aws_kinesis": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Kinesis" }, "java": { "package": "software.amazon.awscdk.services.kinesis" }, "python": { "module": "aws_cdk.aws_kinesis" } } }, "aws-cdk-lib.aws_kinesisanalytics": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.KinesisAnalytics" }, "java": { "package": "software.amazon.awscdk.services.kinesisanalytics" }, "python": { "module": "aws_cdk.aws_kinesisanalytics" } } }, "aws-cdk-lib.aws_kinesisanalyticsv2": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.KinesisAnalyticsV2" }, "java": { "package": "software.amazon.awscdk.services.kinesisanalyticsv2" }, "python": { "module": "aws_cdk.aws_kinesisanalyticsv2" } } }, "aws-cdk-lib.aws_kinesisfirehose": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.KinesisFirehose" }, "java": { "package": "software.amazon.awscdk.services.kinesisfirehose" }, "python": { "module": "aws_cdk.aws_kinesisfirehose" } } }, "aws-cdk-lib.aws_kinesisvideo": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.KinesisVideo" }, "java": { "package": "software.amazon.awscdk.services.kinesisvideo" }, "python": { "module": "aws_cdk.aws_kinesisvideo" } } }, "aws-cdk-lib.aws_kms": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.KMS" }, "java": { "package": "software.amazon.awscdk.services.kms" }, "python": { "module": "aws_cdk.aws_kms" } } }, "aws-cdk-lib.aws_lakeformation": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.LakeFormation" }, "java": { "package": "software.amazon.awscdk.services.lakeformation" }, "python": { "module": "aws_cdk.aws_lakeformation" } } }, "aws-cdk-lib.aws_lambda": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Lambda" }, "java": { "package": "software.amazon.awscdk.services.lambda" }, "python": { "module": "aws_cdk.aws_lambda" } } }, "aws-cdk-lib.aws_lambda_destinations": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Lambda.Destinations" }, "java": { "package": "software.amazon.awscdk.services.lambda.destinations" }, "python": { "module": "aws_cdk.aws_lambda_destinations" } } }, "aws-cdk-lib.aws_lambda_event_sources": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Lambda.EventSources" }, "java": { "package": "software.amazon.awscdk.services.lambda.eventsources" }, "python": { "module": "aws_cdk.aws_lambda_event_sources" } } }, "aws-cdk-lib.aws_lambda_nodejs": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Lambda.Nodejs" }, "java": { "package": "software.amazon.awscdk.services.lambda.nodejs" }, "python": { "module": "aws_cdk.aws_lambda_nodejs" } } }, "aws-cdk-lib.aws_launchwizard": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.LaunchWizard" }, "java": { "package": "software.amazon.awscdk.services.launchwizard" }, "python": { "module": "aws_cdk.aws_launchwizard" } } }, "aws-cdk-lib.aws_lex": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Lex" }, "java": { "package": "software.amazon.awscdk.services.lex" }, "python": { "module": "aws_cdk.aws_lex" } } }, "aws-cdk-lib.aws_licensemanager": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.LicenseManager" }, "java": { "package": "software.amazon.awscdk.services.licensemanager" }, "python": { "module": "aws_cdk.aws_licensemanager" } } }, "aws-cdk-lib.aws_lightsail": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Lightsail" }, "java": { "package": "software.amazon.awscdk.services.lightsail" }, "python": { "module": "aws_cdk.aws_lightsail" } } }, "aws-cdk-lib.aws_location": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Location" }, "java": { "package": "software.amazon.awscdk.services.location" }, "python": { "module": "aws_cdk.aws_location" } } }, "aws-cdk-lib.aws_logs": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Logs" }, "java": { "package": "software.amazon.awscdk.services.logs" }, "python": { "module": "aws_cdk.aws_logs" } } }, "aws-cdk-lib.aws_logs_destinations": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Logs.Destinations" }, "java": { "package": "software.amazon.awscdk.services.logs.destinations" }, "python": { "module": "aws_cdk.aws_logs_destinations" } } }, "aws-cdk-lib.aws_lookoutequipment": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.LookoutEquipment" }, "java": { "package": "software.amazon.awscdk.services.lookoutequipment" }, "python": { "module": "aws_cdk.aws_lookoutequipment" } } }, "aws-cdk-lib.aws_lookoutmetrics": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.LookoutMetrics" }, "java": { "package": "software.amazon.awscdk.services.lookoutmetrics" }, "python": { "module": "aws_cdk.aws_lookoutmetrics" } } }, "aws-cdk-lib.aws_lookoutvision": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.LookoutVision" }, "java": { "package": "software.amazon.awscdk.services.lookoutvision" }, "python": { "module": "aws_cdk.aws_lookoutvision" } } }, "aws-cdk-lib.aws_m2": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.M2" }, "java": { "package": "software.amazon.awscdk.services.m2" }, "python": { "module": "aws_cdk.aws_m2" } } }, "aws-cdk-lib.aws_macie": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Macie" }, "java": { "package": "software.amazon.awscdk.services.macie" }, "python": { "module": "aws_cdk.aws_macie" } } }, "aws-cdk-lib.aws_managedblockchain": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.ManagedBlockchain" }, "java": { "package": "software.amazon.awscdk.services.managedblockchain" }, "python": { "module": "aws_cdk.aws_managedblockchain" } } }, "aws-cdk-lib.aws_mediaconnect": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.MediaConnect" }, "java": { "package": "software.amazon.awscdk.services.mediaconnect" }, "python": { "module": "aws_cdk.aws_mediaconnect" } } }, "aws-cdk-lib.aws_mediaconvert": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.MediaConvert" }, "java": { "package": "software.amazon.awscdk.services.mediaconvert" }, "python": { "module": "aws_cdk.aws_mediaconvert" } } }, "aws-cdk-lib.aws_medialive": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.MediaLive" }, "java": { "package": "software.amazon.awscdk.services.medialive" }, "python": { "module": "aws_cdk.aws_medialive" } } }, "aws-cdk-lib.aws_mediapackage": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.MediaPackage" }, "java": { "package": "software.amazon.awscdk.services.mediapackage" }, "python": { "module": "aws_cdk.aws_mediapackage" } } }, "aws-cdk-lib.aws_mediapackagev2": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.MediaPackageV2" }, "java": { "package": "software.amazon.awscdk.services.mediapackagev2" }, "python": { "module": "aws_cdk.aws_mediapackagev2" } } }, "aws-cdk-lib.aws_mediastore": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.MediaStore" }, "java": { "package": "software.amazon.awscdk.services.mediastore" }, "python": { "module": "aws_cdk.aws_mediastore" } } }, "aws-cdk-lib.aws_mediatailor": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.MediaTailor" }, "java": { "package": "software.amazon.awscdk.services.mediatailor" }, "python": { "module": "aws_cdk.aws_mediatailor" } } }, "aws-cdk-lib.aws_memorydb": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.MemoryDB" }, "java": { "package": "software.amazon.awscdk.services.memorydb" }, "python": { "module": "aws_cdk.aws_memorydb" } } }, "aws-cdk-lib.aws_msk": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.MSK" }, "java": { "package": "software.amazon.awscdk.services.msk" }, "python": { "module": "aws_cdk.aws_msk" } } }, "aws-cdk-lib.aws_mwaa": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.MWAA" }, "java": { "package": "software.amazon.awscdk.services.mwaa" }, "python": { "module": "aws_cdk.aws_mwaa" } } }, "aws-cdk-lib.aws_neptune": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Neptune" }, "java": { "package": "software.amazon.awscdk.services.neptune" }, "python": { "module": "aws_cdk.aws_neptune" } } }, "aws-cdk-lib.aws_neptunegraph": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.NeptuneGraph" }, "java": { "package": "software.amazon.awscdk.services.neptunegraph" }, "python": { "module": "aws_cdk.aws_neptunegraph" } } }, "aws-cdk-lib.aws_networkfirewall": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.NetworkFirewall" }, "java": { "package": "software.amazon.awscdk.services.networkfirewall" }, "python": { "module": "aws_cdk.aws_networkfirewall" } } }, "aws-cdk-lib.aws_networkmanager": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.NetworkManager" }, "java": { "package": "software.amazon.awscdk.services.networkmanager" }, "python": { "module": "aws_cdk.aws_networkmanager" } } }, "aws-cdk-lib.aws_nimblestudio": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.NimbleStudio" }, "java": { "package": "software.amazon.awscdk.services.nimblestudio" }, "python": { "module": "aws_cdk.aws_nimblestudio" } } }, "aws-cdk-lib.aws_notifications": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.Notifications" }, "java": { "package": "software.amazon.awscdk.services.notifications" }, "python": { "module": "aws_cdk.aws_notifications" } } }, "aws-cdk-lib.aws_notificationscontacts": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.NotificationsContacts" }, "java": { "package": "software.amazon.awscdk.services.notificationscontacts" }, "python": { "module": "aws_cdk.aws_notificationscontacts" } } }, "aws-cdk-lib.aws_oam": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Oam" }, "java": { "package": "software.amazon.awscdk.services.oam" }, "python": { "module": "aws_cdk.aws_oam" } } }, "aws-cdk-lib.aws_omics": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Omics" }, "java": { "package": "software.amazon.awscdk.services.omics" }, "python": { "module": "aws_cdk.aws_omics" } } }, "aws-cdk-lib.aws_opensearchserverless": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.OpenSearchServerless" }, "java": { "package": "software.amazon.awscdk.services.opensearchserverless" }, "python": { "module": "aws_cdk.aws_opensearchserverless" } } }, "aws-cdk-lib.aws_opensearchservice": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.OpenSearchService" }, "java": { "package": "software.amazon.awscdk.services.opensearchservice" }, "python": { "module": "aws_cdk.aws_opensearchservice" } } }, "aws-cdk-lib.aws_opsworks": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.OpsWorks" }, "java": { "package": "software.amazon.awscdk.services.opsworks" }, "python": { "module": "aws_cdk.aws_opsworks" } } }, "aws-cdk-lib.aws_opsworkscm": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.OpsWorksCM" }, "java": { "package": "software.amazon.awscdk.services.opsworkscm" }, "python": { "module": "aws_cdk.aws_opsworkscm" } } }, "aws-cdk-lib.aws_organizations": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Organizations" }, "java": { "package": "software.amazon.awscdk.services.organizations" }, "python": { "module": "aws_cdk.aws_organizations" } } }, "aws-cdk-lib.aws_osis": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.OSIS" }, "java": { "package": "software.amazon.awscdk.services.osis" }, "python": { "module": "aws_cdk.aws_osis" } } }, "aws-cdk-lib.aws_panorama": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Panorama" }, "java": { "package": "software.amazon.awscdk.services.panorama" }, "python": { "module": "aws_cdk.aws_panorama" } } }, "aws-cdk-lib.aws_paymentcryptography": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.PaymentCryptography" }, "java": { "package": "software.amazon.awscdk.services.paymentcryptography" }, "python": { "module": "aws_cdk.aws_paymentcryptography" } } }, "aws-cdk-lib.aws_pcaconnectorad": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.PCAConnectorAD" }, "java": { "package": "software.amazon.awscdk.services.pcaconnectorad" }, "python": { "module": "aws_cdk.aws_pcaconnectorad" } } }, "aws-cdk-lib.aws_pcaconnectorscep": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.PCAConnectorSCEP" }, "java": { "package": "software.amazon.awscdk.services.pcaconnectorscep" }, "python": { "module": "aws_cdk.aws_pcaconnectorscep" } } }, "aws-cdk-lib.aws_pcs": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.PCS" }, "java": { "package": "software.amazon.awscdk.services.pcs" }, "python": { "module": "aws_cdk.aws_pcs" } } }, "aws-cdk-lib.aws_personalize": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Personalize" }, "java": { "package": "software.amazon.awscdk.services.personalize" }, "python": { "module": "aws_cdk.aws_personalize" } } }, "aws-cdk-lib.aws_pinpoint": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Pinpoint" }, "java": { "package": "software.amazon.awscdk.services.pinpoint" }, "python": { "module": "aws_cdk.aws_pinpoint" } } }, "aws-cdk-lib.aws_pinpointemail": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.PinpointEmail" }, "java": { "package": "software.amazon.awscdk.services.pinpointemail" }, "python": { "module": "aws_cdk.aws_pinpointemail" } } }, "aws-cdk-lib.aws_pipes": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Pipes" }, "java": { "package": "software.amazon.awscdk.services.pipes" }, "python": { "module": "aws_cdk.aws_pipes" } } }, "aws-cdk-lib.aws_proton": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.Proton" }, "java": { "package": "software.amazon.awscdk.services.proton" }, "python": { "module": "aws_cdk.aws_proton" } } }, "aws-cdk-lib.aws_qbusiness": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.QBusiness" }, "java": { "package": "software.amazon.awscdk.services.qbusiness" }, "python": { "module": "aws_cdk.aws_qbusiness" } } }, "aws-cdk-lib.aws_qldb": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.QLDB" }, "java": { "package": "software.amazon.awscdk.services.qldb" }, "python": { "module": "aws_cdk.aws_qldb" } } }, "aws-cdk-lib.aws_quicksight": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.QuickSight" }, "java": { "package": "software.amazon.awscdk.services.quicksight" }, "python": { "module": "aws_cdk.aws_quicksight" } } }, "aws-cdk-lib.aws_ram": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.RAM" }, "java": { "package": "software.amazon.awscdk.services.ram" }, "python": { "module": "aws_cdk.aws_ram" } } }, "aws-cdk-lib.aws_rbin": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.Rbin" }, "java": { "package": "software.amazon.awscdk.services.rbin" }, "python": { "module": "aws_cdk.aws_rbin" } } }, "aws-cdk-lib.aws_rds": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.RDS" }, "java": { "package": "software.amazon.awscdk.services.rds" }, "python": { "module": "aws_cdk.aws_rds" } } }, "aws-cdk-lib.aws_redshift": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Redshift" }, "java": { "package": "software.amazon.awscdk.services.redshift" }, "python": { "module": "aws_cdk.aws_redshift" } } }, "aws-cdk-lib.aws_redshiftserverless": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.RedshiftServerless" }, "java": { "package": "software.amazon.awscdk.services.redshiftserverless" }, "python": { "module": "aws_cdk.aws_redshiftserverless" } } }, "aws-cdk-lib.aws_refactorspaces": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.RefactorSpaces" }, "java": { "package": "software.amazon.awscdk.services.refactorspaces" }, "python": { "module": "aws_cdk.aws_refactorspaces" } } }, "aws-cdk-lib.aws_rekognition": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Rekognition" }, "java": { "package": "software.amazon.awscdk.services.rekognition" }, "python": { "module": "aws_cdk.aws_rekognition" } } }, "aws-cdk-lib.aws_resiliencehub": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.ResilienceHub" }, "java": { "package": "software.amazon.awscdk.services.resiliencehub" }, "python": { "module": "aws_cdk.aws_resiliencehub" } } }, "aws-cdk-lib.aws_resourceexplorer2": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.ResourceExplorer2" }, "java": { "package": "software.amazon.awscdk.services.resourceexplorer2" }, "python": { "module": "aws_cdk.aws_resourceexplorer2" } } }, "aws-cdk-lib.aws_resourcegroups": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.ResourceGroups" }, "java": { "package": "software.amazon.awscdk.services.resourcegroups" }, "python": { "module": "aws_cdk.aws_resourcegroups" } } }, "aws-cdk-lib.aws_robomaker": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.RoboMaker" }, "java": { "package": "software.amazon.awscdk.services.robomaker" }, "python": { "module": "aws_cdk.aws_robomaker" } } }, "aws-cdk-lib.aws_rolesanywhere": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.RolesAnywhere" }, "java": { "package": "software.amazon.awscdk.services.rolesanywhere" }, "python": { "module": "aws_cdk.aws_rolesanywhere" } } }, "aws-cdk-lib.aws_route53": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Route53" }, "java": { "package": "software.amazon.awscdk.services.route53" }, "python": { "module": "aws_cdk.aws_route53" } } }, "aws-cdk-lib.aws_route53_patterns": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Route53.Patterns" }, "java": { "package": "software.amazon.awscdk.services.route53.patterns" }, "python": { "module": "aws_cdk.aws_route53_patterns" } } }, "aws-cdk-lib.aws_route53_targets": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Route53.Targets" }, "java": { "package": "software.amazon.awscdk.services.route53.targets" }, "python": { "module": "aws_cdk.aws_route53_targets" } } }, "aws-cdk-lib.aws_route53profiles": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.Route53Profiles" }, "java": { "package": "software.amazon.awscdk.services.route53profiles" }, "python": { "module": "aws_cdk.aws_route53profiles" } } }, "aws-cdk-lib.aws_route53recoverycontrol": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Route53RecoveryControl" }, "java": { "package": "software.amazon.awscdk.services.route53recoverycontrol" }, "python": { "module": "aws_cdk.aws_route53recoverycontrol" } } }, "aws-cdk-lib.aws_route53recoveryreadiness": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Route53RecoveryReadiness" }, "java": { "package": "software.amazon.awscdk.services.route53recoveryreadiness" }, "python": { "module": "aws_cdk.aws_route53recoveryreadiness" } } }, "aws-cdk-lib.aws_route53resolver": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Route53Resolver" }, "java": { "package": "software.amazon.awscdk.services.route53resolver" }, "python": { "module": "aws_cdk.aws_route53resolver" } } }, "aws-cdk-lib.aws_rum": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.RUM" }, "java": { "package": "software.amazon.awscdk.services.rum" }, "python": { "module": "aws_cdk.aws_rum" } } }, "aws-cdk-lib.aws_s3": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.S3" }, "java": { "package": "software.amazon.awscdk.services.s3" }, "python": { "module": "aws_cdk.aws_s3" } } }, "aws-cdk-lib.aws_s3_assets": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.S3.Assets" }, "java": { "package": "software.amazon.awscdk.services.s3.assets" }, "python": { "module": "aws_cdk.aws_s3_assets" } } }, "aws-cdk-lib.aws_s3_deployment": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.S3.Deployment" }, "java": { "package": "software.amazon.awscdk.services.s3.deployment" }, "python": { "module": "aws_cdk.aws_s3_deployment" } } }, "aws-cdk-lib.aws_s3_notifications": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.S3.Notifications" }, "java": { "package": "software.amazon.awscdk.services.s3.notifications" }, "python": { "module": "aws_cdk.aws_s3_notifications" } } }, "aws-cdk-lib.aws_s3express": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.S3Express" }, "java": { "package": "software.amazon.awscdk.services.s3express" }, "python": { "module": "aws_cdk.aws_s3express" } } }, "aws-cdk-lib.aws_s3objectlambda": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.S3ObjectLambda" }, "java": { "package": "software.amazon.awscdk.services.s3objectlambda" }, "python": { "module": "aws_cdk.aws_s3objectlambda" } } }, "aws-cdk-lib.aws_s3outposts": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.S3Outposts" }, "java": { "package": "software.amazon.awscdk.services.s3outposts" }, "python": { "module": "aws_cdk.aws_s3outposts" } } }, "aws-cdk-lib.aws_s3tables": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.S3Tables" }, "java": { "package": "software.amazon.awscdk.services.s3tables" }, "python": { "module": "aws_cdk.aws_s3tables" } } }, "aws-cdk-lib.aws_sagemaker": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Sagemaker" }, "java": { "package": "software.amazon.awscdk.services.sagemaker" }, "python": { "module": "aws_cdk.aws_sagemaker" } } }, "aws-cdk-lib.aws_sam": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.SAM" }, "java": { "package": "software.amazon.awscdk.services.sam" }, "python": { "module": "aws_cdk.aws_sam" } } }, "aws-cdk-lib.aws_scheduler": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Scheduler" }, "java": { "package": "software.amazon.awscdk.services.scheduler" }, "python": { "module": "aws_cdk.aws_scheduler" } } }, "aws-cdk-lib.aws_scheduler_targets": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Scheduler.Targets" }, "java": { "package": "software.amazon.awscdk.services.scheduler.targets" }, "python": { "module": "aws_cdk.aws_scheduler_targets" } } }, "aws-cdk-lib.aws_sdb": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.SDB" }, "java": { "package": "software.amazon.awscdk.services.sdb" }, "python": { "module": "aws_cdk.aws_sdb" } } }, "aws-cdk-lib.aws_secretsmanager": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.SecretsManager" }, "java": { "package": "software.amazon.awscdk.services.secretsmanager" }, "python": { "module": "aws_cdk.aws_secretsmanager" } } }, "aws-cdk-lib.aws_securityhub": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.SecurityHub" }, "java": { "package": "software.amazon.awscdk.services.securityhub" }, "python": { "module": "aws_cdk.aws_securityhub" } } }, "aws-cdk-lib.aws_securitylake": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.SecurityLake" }, "java": { "package": "software.amazon.awscdk.services.securitylake" }, "python": { "module": "aws_cdk.aws_securitylake" } } }, "aws-cdk-lib.aws_servicecatalog": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Servicecatalog" }, "java": { "package": "software.amazon.awscdk.services.servicecatalog" }, "python": { "module": "aws_cdk.aws_servicecatalog" } } }, "aws-cdk-lib.aws_servicecatalogappregistry": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Servicecatalogappregistry" }, "java": { "package": "software.amazon.awscdk.services.servicecatalogappregistry" }, "python": { "module": "aws_cdk.aws_servicecatalogappregistry" } } }, "aws-cdk-lib.aws_servicediscovery": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.ServiceDiscovery" }, "java": { "package": "software.amazon.awscdk.services.servicediscovery" }, "python": { "module": "aws_cdk.aws_servicediscovery" } } }, "aws-cdk-lib.aws_ses": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.SES" }, "java": { "package": "software.amazon.awscdk.services.ses" }, "python": { "module": "aws_cdk.aws_ses" } } }, "aws-cdk-lib.aws_ses_actions": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.SES.Actions" }, "java": { "package": "software.amazon.awscdk.services.ses.actions" }, "python": { "module": "aws_cdk.aws_ses_actions" } } }, "aws-cdk-lib.aws_shield": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.Shield" }, "java": { "package": "software.amazon.awscdk.services.shield" }, "python": { "module": "aws_cdk.aws_shield" } } }, "aws-cdk-lib.aws_signer": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Signer" }, "java": { "package": "software.amazon.awscdk.services.signer" }, "python": { "module": "aws_cdk.aws_signer" } } }, "aws-cdk-lib.aws_simspaceweaver": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.SimSpaceWeaver" }, "java": { "package": "software.amazon.awscdk.services.simspaceweaver" }, "python": { "module": "aws_cdk.aws_simspaceweaver" } } }, "aws-cdk-lib.aws_sns": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.SNS" }, "java": { "package": "software.amazon.awscdk.services.sns" }, "python": { "module": "aws_cdk.aws_sns" } } }, "aws-cdk-lib.aws_sns_subscriptions": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.SNS.Subscriptions" }, "java": { "package": "software.amazon.awscdk.services.sns.subscriptions" }, "python": { "module": "aws_cdk.aws_sns_subscriptions" } } }, "aws-cdk-lib.aws_sqs": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.SQS" }, "java": { "package": "software.amazon.awscdk.services.sqs" }, "python": { "module": "aws_cdk.aws_sqs" } } }, "aws-cdk-lib.aws_ssm": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.SSM" }, "java": { "package": "software.amazon.awscdk.services.ssm" }, "python": { "module": "aws_cdk.aws_ssm" } } }, "aws-cdk-lib.aws_ssmcontacts": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.SSMContacts" }, "java": { "package": "software.amazon.awscdk.services.ssmcontacts" }, "python": { "module": "aws_cdk.aws_ssmcontacts" } } }, "aws-cdk-lib.aws_ssmincidents": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.SSMIncidents" }, "java": { "package": "software.amazon.awscdk.services.ssmincidents" }, "python": { "module": "aws_cdk.aws_ssmincidents" } } }, "aws-cdk-lib.aws_ssmquicksetup": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.SSMQuickSetup" }, "java": { "package": "software.amazon.awscdk.services.ssmquicksetup" }, "python": { "module": "aws_cdk.aws_ssmquicksetup" } } }, "aws-cdk-lib.aws_sso": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.SSO" }, "java": { "package": "software.amazon.awscdk.services.sso" }, "python": { "module": "aws_cdk.aws_sso" } } }, "aws-cdk-lib.aws_stepfunctions": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.StepFunctions" }, "java": { "package": "software.amazon.awscdk.services.stepfunctions" }, "python": { "module": "aws_cdk.aws_stepfunctions" } } }, "aws-cdk-lib.aws_stepfunctions_tasks": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.StepFunctions.Tasks" }, "java": { "package": "software.amazon.awscdk.services.stepfunctions.tasks" }, "python": { "module": "aws_cdk.aws_stepfunctions_tasks" } } }, "aws-cdk-lib.aws_supportapp": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.SupportApp" }, "java": { "package": "software.amazon.awscdk.services.supportapp" }, "python": { "module": "aws_cdk.aws_supportapp" } } }, "aws-cdk-lib.aws_synthetics": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Synthetics" }, "java": { "package": "software.amazon.awscdk.services.synthetics" }, "python": { "module": "aws_cdk.aws_synthetics" } } }, "aws-cdk-lib.aws_systemsmanagersap": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.SystemsManagerSAP" }, "java": { "package": "software.amazon.awscdk.services.systemsmanagersap" }, "python": { "module": "aws_cdk.aws_systemsmanagersap" } } }, "aws-cdk-lib.aws_timestream": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Timestream" }, "java": { "package": "software.amazon.awscdk.services.timestream" }, "python": { "module": "aws_cdk.aws_timestream" } } }, "aws-cdk-lib.aws_transfer": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Transfer" }, "java": { "package": "software.amazon.awscdk.services.transfer" }, "python": { "module": "aws_cdk.aws_transfer" } } }, "aws-cdk-lib.aws_verifiedpermissions": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.VerifiedPermissions" }, "java": { "package": "software.amazon.awscdk.services.verifiedpermissions" }, "python": { "module": "aws_cdk.aws_verifiedpermissions" } } }, "aws-cdk-lib.aws_voiceid": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.VoiceID" }, "java": { "package": "software.amazon.awscdk.services.voiceid" }, "python": { "module": "aws_cdk.aws_voiceid" } } }, "aws-cdk-lib.aws_vpclattice": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.VpcLattice" }, "java": { "package": "software.amazon.awscdk.services.vpclattice" }, "python": { "module": "aws_cdk.aws_vpclattice" } } }, "aws-cdk-lib.aws_waf": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.WAF" }, "java": { "package": "software.amazon.awscdk.services.waf" }, "python": { "module": "aws_cdk.aws_waf" } } }, "aws-cdk-lib.aws_wafregional": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.WAFRegional" }, "java": { "package": "software.amazon.awscdk.services.waf.regional" }, "python": { "module": "aws_cdk.aws_wafregional" } } }, "aws-cdk-lib.aws_wafv2": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.WAFv2" }, "java": { "package": "software.amazon.awscdk.services.wafv2" }, "python": { "module": "aws_cdk.aws_wafv2" } } }, "aws-cdk-lib.aws_wisdom": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.Wisdom" }, "java": { "package": "software.amazon.awscdk.services.wisdom" }, "python": { "module": "aws_cdk.aws_wisdom" } } }, "aws-cdk-lib.aws_workspaces": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.WorkSpaces" }, "java": { "package": "software.amazon.awscdk.services.workspaces" }, "python": { "module": "aws_cdk.aws_workspaces" } } }, "aws-cdk-lib.aws_workspacesthinclient": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.WorkSpacesThinClient" }, "java": { "package": "software.amazon.awscdk.services.workspacesthinclient" }, "python": { "module": "aws_cdk.aws_workspacesthinclient" } } }, "aws-cdk-lib.aws_workspacesweb": { "targets": { "dotnet": { "package": "Amazon.CDK.AWS.WorkSpacesWeb" }, "java": { "package": "software.amazon.awscdk.services.workspacesweb" }, "python": { "module": "aws_cdk.aws_workspacesweb" } } }, "aws-cdk-lib.aws_xray": { "targets": { "dotnet": { "namespace": "Amazon.CDK.AWS.XRay" }, "java": { "package": "software.amazon.awscdk.services.xray" }, "python": { "module": "aws_cdk.aws_xray" } } }, "aws-cdk-lib.cloud_assembly_schema": {}, "aws-cdk-lib.cloudformation_include": { "targets": { "dotnet": { "namespace": "Amazon.CDK.CloudFormation.Include" }, "java": { "package": "software.amazon.awscdk.cloudformation.include" }, "python": { "module": "aws_cdk.cloudformation_include" } } }, "aws-cdk-lib.custom_resources": { "targets": { "dotnet": { "namespace": "Amazon.CDK.CustomResources" }, "java": { "package": "software.amazon.awscdk.customresources" }, "python": { "module": "aws_cdk.custom_resources" } } }, "aws-cdk-lib.cx_api": { "targets": { "dotnet": { "namespace": "Amazon.CDK.CXAPI" }, "java": { "package": "software.amazon.awscdk.cxapi" }, "python": { "module": "aws_cdk.cx_api" } } }, "aws-cdk-lib.lambda_layer_awscli": { "targets": { "dotnet": { "namespace": "Amazon.CDK.LambdaLayer.AwsCli" }, "java": { "package": "software.amazon.awscdk.lambdalayer.awscli" }, "python": { "module": "aws_cdk.lambda_layer_awscli" } } }, "aws-cdk-lib.lambda_layer_node_proxy_agent": { "targets": { "dotnet": { "namespace": "Amazon.CDK.LambdaLayer.NodeProxyAgent" }, "java": { "package": "software.amazon.awscdk.lambda.layer.node.proxy.agent" }, "python": { "module": "aws_cdk.lambda_layer_node_proxy_agent" } } }, "aws-cdk-lib.pipelines": { "targets": { "dotnet": { "namespace": "Amazon.CDK.Pipelines" }, "java": { "package": "software.amazon.awscdk.pipelines" }, "python": { "module": "aws_cdk.pipelines" } } }, "aws-cdk-lib.region_info": { "targets": { "dotnet": { "namespace": "Amazon.CDK.RegionInfo" }, "java": { "package": "software.amazon.awscdk.regioninfo" }, "python": { "module": "aws_cdk.region_info" } } }, "aws-cdk-lib.triggers": { "targets": { "dotnet": { "namespace": "Amazon.CDK.Triggers" }, "java": { "package": "software.amazon.awscdk.triggers" }, "python": { "module": "aws_cdk.triggers" } } } }, "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/main/logo/default-256-dark.png", "namespace": "Amazon.CDK", "packageId": "Amazon.CDK.Lib" }, "go": { "moduleName": "github.com/aws/aws-cdk-go", "packageName": "awscdk" }, "java": { "maven": { "artifactId": "aws-cdk-lib", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk" }, "js": { "npm": "aws-cdk-lib" }, "python": { "distName": "aws-cdk-lib", "module": "aws_cdk" } } }, "constructs": { "targets": { "dotnet": { "namespace": "Constructs", "packageId": "Constructs" }, "go": { "moduleName": "github.com/aws/constructs-go" }, "java": { "maven": { "artifactId": "constructs", "groupId": "software.constructs" }, "package": "software.constructs" }, "js": { "npm": "constructs" }, "python": { "distName": "constructs", "module": "constructs" } } } }, "description": "CDK Constructs that syncs your sops secrets into AWS SecretsManager secrets.", "docs": { "stability": "stable" }, "homepage": "https://constructs.dev/packages/cdk-sops-secrets", "jsiiVersion": "5.6.23 (build 899fc2d)", "keywords": [ "cdk", "getsops/sops", "gitops", "kms", "mozilla/sops", "secrets", "secrets management", "sops" ], "license": "Apache-2.0", "metadata": { "jsii": { "pacmak": { "hasDefaultInterfaces": true } }, "tscRootDir": "src" }, "name": "cdk-sops-secrets", "readme": { "markdown": "\n\n![stability](https://img.shields.io/badge/Stability-stable-green)\n[![release](https://github.com/dbsystel/cdk-sops-secrets/actions/workflows/release.yml/badge.svg)](https://github.com/dbsystel/cdk-sops-secrets/actions/workflows/release.yml)\n[![cdk-construct-hub](https://img.shields.io/badge/CDK-ConstructHub-blue)](https://constructs.dev/packages/cdk-sops-secrets)\n[![npm](https://img.shields.io/npm/v/cdk-sops-secrets.svg)](https://www.npmjs.com/package/cdk-sops-secrets)\n[![npm downloads](https://img.shields.io/npm/dw/cdk-sops-secrets)](https://www.npmjs.com/package/cdk-sops-secrets)\n[![pypi](https://img.shields.io/pypi/v/cdk-sops-secrets.svg)](https://pypi.org/project/cdk-sops-secrets)\n[![pypi downloads](https://img.shields.io/pypi/dw/cdk-sops-secrets)](https://pypi.org/project/cdk-sops-secrets)\n[![codecov](https://codecov.io/gh/dbsystel/cdk-sops-secrets/branch/main/graph/badge.svg?token=OT7P7HQHXB)](https://codecov.io/gh/dbsystel/cdk-sops-secrets)\n[![security-vulnerabilities](https://img.shields.io/github/issues-search/dbsystel/cdk-sops-secrets?color=%23ff0000&label=security-vulnerabilities&query=is%3Aissue%20is%3Aopen%20label%3A%22Mend%3A%20dependency%20security%20vulnerability%22)](https://github.com/dbsystel/cdk-sops-secrets/issues?q=is%3Aissue+is%3Aopen+label%3A%22security+vulnerability%22)\n\n# Introduction\n\n_Create secret values in AWS with infrastructure-as-code easily_\n\nThis construct library offers CDK Constructs that facilitate syncing [SOPS-encrypted secrets](https://github.com/getsops/sops) to AWS Secrets Manager and SSM Parameter Store.\nIt enables secure storage of secrets in Git repositories while allowing seamless synchronization and usage within AWS. Even large sets of SSM Parameters can be created quickly from a single file.\n\n- Create AWS Secrets Manager secrets\n- Create single SSM Parameter\n- Create multiple SSM Parameter in a batch from a file\n- Use SOPS json, yaml or dotenv as input files, as well as binary data\n- No need for manual permission setups for the Custom Ressource due to automatic least-privilege generation for the SyncProvider\n\n# Table Of Contents\n\n- [Introduction](#introduction)\n- [Table Of Contents](#table-of-contents)\n- [Available Constructs](#available-constructs)\n - [SopsSecret — Sops to SecretsManager](#sopssecret--sops-to-secretsmanager)\n - [SopsStringParameter — Sops to single SSM ParameterStore Parameter](#sopsstringparameter--sops-to-single-ssm-parameterstore-parameter)\n - [MultiStringParameter — Sops to multiple SSM ParameterStore Parameters](#multistringparameter--sops-to-multiple-ssm-parameterstore-parameters)\n - [SopsSyncProvider](#sopssyncprovider)\n - [Common configuration options for SopsSecret, SopsStringParameter and MultiStringParameter](#common-configuration-options-for-sopssecret-sopsstringparameter-and-multistringparameter)\n- [Considerations](#considerations)\n - [UploadType: INLINE / ASSET](#uploadtype-inline--asset)\n - [Stability](#stability)\n- [FAQ](#faq)\n - [How can I migrate to V2](#how-can-i-migrate-to-v2)\n - [SecretsManager](#secretsmanager)\n - [Parameter](#parameter)\n - [MultiParameter](#multiparameter)\n - [It does not work, what can I do?](#it-does-not-work-what-can-i-do)\n - [I get errors with `dotenv` formatted files](#i-get-errors-with-dotenv-formatted-files)\n - [Error: Error getting data key: 0 successful groups required, got 0](#error-error-getting-data-key-0-successful-groups-required-got-0)\n - [Error: Asset of sync lambda not found](#error-asset-of-sync-lambda-not-found)\n - [Can I upload the sops file myself and provide the required information as CloudFormation Parameter?](#can-i-upload-the-sops-file-myself-and-provide-the-required-information-as-cloudformation-parameter)\n - [Can I access older versions of the secret stored in the SecretsManager?](#can-i-access-older-versions-of-the-secret-stored-in-the-secretsmanager)\n - [I want the `raw` content of the sops file, but I always get the content nested in json](#i-want-the-raw-content-of-the-sops-file-but-i-always-get-the-content-nested-in-json)\n- [License](#license)\n\n# Available Constructs\n\nThe construct library cdk-sops-secrets supports three different Constructs that help you to sync your encrypted sops secrets to secure places in AWS.\n\nLet's assume we want to store the following secret information in AWS:\n\n```json\n{\n \"apiKey\": \"sk-1234567890abcdef\",\n \"database\": {\n \"user\": \"admin\",\n \"password\": \"P@ssw0rd!\",\n \"host\": \"db.example.com\"\n },\n \"tokens\": [\n { \"service\": \"github\", \"token\": \"ghp_abcd1234\" },\n { \"service\": \"aws\", \"token\": \"AKIAIOSFODNN7EXAMPLE\" }\n ],\n \"someOtherKey\": \"base64:VGhpcyBpcyBhIHNlY3JldCBrZXk=\"\n}\n```\n\nIt doesn't matter if this data is in `json`, `yaml` or `dotenv` format, `cdk-sops-secret` can handle them all.\nEven binary data is supported with some limitations.\n\n## SopsSecret — Sops to SecretsManager\n\nIf you want to store your secret data in the AWS SecretsManager, use the `SopsSecret` construct. This is a \"drop-in-replacement\" for the [Secret Construct](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_secretsmanager.Secret.html) of the AWS CDK.\n\nMinimal Example:\n\n```ts\nconst secret = new SopsSecret(stack, 'MySopsSecret', {\n secretName: 'mySecret', // name of the secret in AWS SecretsManager\n sopsFilePath: 'secrets/sopsfile-encrypted-secret.json', // filepath to the sops encrypted file\n});\n```\n\nThe content referenced sops secret file will be synced to the AWS SecretsManager Secret with the name `mySecret`.\nFor convenience, several transformations apply:\n\n- Nested structures and arrays will be resolved and flattened to a JSONPath notation\n- All values will be stored as strings\n\nThis is done also because of limitations of CDK in conjunction with\n[dynamic references](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references-secretsmanager.html) and limitiations\nof the `Key/Value` view of the AWS SecretsManager WebConsole. So the result, saved in the AWS SecretsManager will actually be:\n\n```json\n{\n \"apiKey\": \"sk-1234567890abcdef\",\n \"database.user\": \"admin\",\n \"database.password\": \"P@ssw0rd!\",\n \"database.host\": \"db.example.com\",\n \"tokens[0].service\": \"github\",\n \"tokens[0].token\": \"ghp_abcd1234\",\n \"tokens[1].service\": \"aws\",\n \"tokens[1].token\": \"AKIAIOSFODNN7EXAMPLE\",\n \"someOtherKey\": \"base64:VGhpcyBpcyBhIHNlY3JldCBrZXk=\"\n}\n```\n\nThis allows you to access the values from your secret via CDK:\n\n```ts\nsecret.secretValueFromJson('\"database.password\"').toString(),\n secret.secretValueFromJson('\"tokens[0].token\"').toString();\n```\n\nIf you don't want these conversions, you can completely disable them by using the `rawOutput` property.\n\n```ts\nconst secret = new SopsSecret(stack, 'MySopsSecret', {\n rawOutput: RawOutput.STRING,\n ...\n});\n```\n\nThis will turn off the conversions and just place the decrypted content in the target secret. It's also possible to use\n`RawOutput.BINARY` than the AWS SecretsManager Secret will be populted with binary, instead of string data.\n\n## SopsStringParameter — Sops to single SSM ParameterStore Parameter\n\nIf you want to sync the whole content of a sops encrypted file to an encrypted AWS SSM ParameterStore Parameter, you can use the SopsStringParameter Construct.\n\n```ts\nconst parameter = new SopsStringParameter(stack, 'MySopsParameter', {\n encryptionKey: Key.fromLookup(stack, 'DefaultKey', {\n aliasName: 'alias/aws/ssm',\n }),\n sopsFilePath: 'secrets/sopsfile-encrypted-secret.json',\n});\n```\n\nThis will create a Parameter with the value of the decrypted sops file content. No transformations are applied.\n\n## MultiStringParameter — Sops to multiple SSM ParameterStore Parameters\n\nIf you have a structured sops file (yaml, json, dotenv) and want to populate the AWS SSM ParameterStore with it, you want to use the MultiStringParameter Construct.\n\n```ts\nconst multi = new MultiStringParameter(stack, 'MyMultiParameter', {\n encryptionKey: Key.fromLookup(stack, 'DefaultKey', {\n aliasName: 'alias/aws/ssm',\n }),\n sopsFilePath: 'secrets/sopsfile-encrypted-secret.json',\n});\n```\n\nThis will create several AWS SSM ParameterStore Parameters:\n\n```bash\nParameterName => Value\n\n/apiKey => \"sk-1234567890abcdef\"\n/database/user => \"admin\"\n/database/password => \"P@ssw0rd!\"\n/database/host => \"db.example.com\"\n/tokens/0/service => \"github\"\n/tokens/0/token => \"ghp_abcd1234\"\n/tokens/1/service => \"aws\"\n/tokens/1/token => \"AKIAIOSFODNN7EXAMPLE\"\n/someOtherKey => \"base64:VGhpcyBpcyBhIHNlY3JldCBrZXk=\"\n```\n\nYou can configure the naming schema via the properties `keySeperator` and `keyPrefix`:\n\n```ts\nconst multi = new MultiStringParameter(stack, 'MyMultiParameter', {\n keyPrefix: 'mykeyprefix.' // All keys will start with this string, default '/'\n keySeperator: '-' // This seperator is used when converting to a flat structure, default '/'\n})\n```\n\nThis would lead to Parameters\n\n```bash\nParameterName => Value\n\nmykeyprefix.apiKey => \"sk-1234567890abcdef\"\nmykeyprefix.database-user => \"admin\"\nmykeyprefix.tokens-0-service => \"github\"\n...\n```\n\n## SopsSyncProvider\n\nThe SOPS-Provider is the custom resource AWS Lambda Function, that is doing all the work. It downloads, decrypts\nand stores the secret content in your desired location. This Lambda Function needs several IAM permissions to do it's work.\n\nFor most use cases, you don't need to create it on your own, as the other Constructs try to create this and derive the required IAM permissions from your input.\n\nBut there are use cases, that require you to change the defaults of this Provider. If this is the case,\nyou have to create the provider on your own and add it to the other constructs.\n\nNote that a SopsSyncProvider is a [SingletonLambda](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.SingletonFunction.html) that can only exist once.\n\n```ts\nconst provider = new SopsSyncProvider(this, 'MySopsSyncProvider', {\n role: customRole, // you can pass a custom role\n\n vpc: customVpc, // The default SopsSync Provider\n vpcSubnets: { // won't run in any VPC,\n subnets: [ // as it does not require\n customSubnet1, // access to any VPC resources.\n customSubnet2, // But if you want,\n ] // you can change this behaviour\n }, // and set vpc, subnet and\n securityGroups: [ // securitygroups to your\n customSecurityGroup // needs.\n ],\n logGroup: new LogGroup(this, 'MyLogGroup', { // you can add a custom log group\n retention: RetentionDays.THREE_MONTHS, // with a custom retention period\n encryptionKey: new KmsKey(this, 'MyKmsKey') // and custom encryption\n }), //\n uuid: 'MySopsSyncProvider', // Create a custom singleton by changing default uuid.\n});\n\nprovider.addToRolePolicy( // You cann pass PolicyStatements\n new PolicyStatement({ // via the addToRolePolicy Method\n actions: ['...'], //\n resources: ['...'], //\n }) //\n); //\n\nkmsKey.grantDecrypt( // The provider implements\n provider // the IGrantable interface,\n); // so you can use it as grant target\n\nconst secret = new SopsSecret(this, 'MySecret', {\n sopsProvider: provider, // this property is available in all Constructs\n ...\n});\n```\n\n## Common configuration options for SopsSecret, SopsStringParameter and MultiStringParameter\n\n```ts\n\nconst construct = new Sops...(this, 'My' {\n /**\n * use your own SopsSyncProvider\n * @see SopsSyncProvider\n */\n sopsProvider: myCustomProvider // default - a new provider will be created\n\n /**\n * the constructs try to derive the required iam permissions from the sops file\n * and the target. If you don't want this, you can disable this behaviour.\n * You have to take care of all required permissions on your own.\n */\n autoGenerateIamPermissions: false, // default: true\n\n /**\n * the default behaviour of passing the sops file content to the provider is\n * by embedding the base64 encoded content in the cloudformation template.\n * Using CKD Assets is also supported. It might be required to switch to\n * Assets, if your sops files are very large.\n */\n uploadType: UploadType.ASSET, // default: UploadType.INLINE\n\n /**\n * if you don't want this constructs to take care of passing the encrypted\n * sops file to the sops provider, you can upload them yourself to a\n * S3 bucket.\n * You can pass bucket and key, and the constructs won't pass the content\n * as ASSET or in the CloudFormation Template.\n * As the construct isn't aware of the sopsfile, we can't derive the required\n * permissions to decrypt the sops file. The same applies to the sopsFileFormat.\n * You have to pass them all manually.\n */\n sopsS3Bucket: 'my-custom-bucket',\n sopsS3Key: 'encoded-sops.json',\n sopsKmsKey: [\n kmsKeyUsedForEncryption,\n ]\n sopsFileFormat: 'json', // Allowed values are json, yaml, dotenv and binary\n})\n\n```\n\n# Considerations\n\n## UploadType: INLINE / ASSET\n\nI decided, that the default behavior should be \"INLINE\" because of the following consideration:\n\n- Fewer permissions\n\n _If we use inline content instead of a S3 asset, the SopsSyncProvider does not need permissions to access the asset bucket and its KMS key._\n\n- Faster\n\n _If we don't have to upload and download things from and to S3, it should be a little faster._\n\n- Interchangeable\n\n _As we use the same information to generate the version of the secret,\n no new version of the secret should be created, if you change from INLINE to ASSET or vice versa,\n even if the CloudFormation resource updates._\n\n## Stability\n\nYou can consider this package as stable. Updates will follow [Semantic Versioning](https://semver.org/).\n\nNevertheless, I would recommend pinning the exact version of this library in your `package.json`.\n\n# FAQ\n\n## How can I migrate to V2\n\nIt was required to change some user facing configuration properties. So minor changes are required to make things work again.\n\n### SecretsManager\n\n- Removed property convertToJSON, flatten, stringifiedValues\n- Use property rawOutput instaed:\n - `undefined / not set` => (default) convertToJSON and flatten and stringifiedValues = true\n - `RawOutput.STRING` => convertToJSON and flatten and stringifiedValues = false\n - `RawOutput.BINARY` => convertToJSON and flatten and stringifiedValues = false and Secret is binary\n\n### Parameter\n\n- Removed property convertToJSON, flatten, stringifiedValues => all of them made no sense - now only raw output of decrypted secret\n\n### MultiParameter\n\n- Removed property convertToJSON, flatten, stringifiedValues => most of this combinations made no sense\n- Allways convertToJson and flatten (as we have to parse it to create multiple parameters)\n- You are allowed to chose the flattenSeperator\n\n## It does not work, what can I do?\n\nEven if this construct has some unit and integration tests performed, there can be bugs and issues. As everything is performed by a cloudformation custom resource provider, a good starting point is the log of the corresponding lambda function. It should be located in your AWS Account under Cloudwatch -> Log groups:\n\n`/aws/lambda/-SingletonLambdaSopsSyncProvider`\n\n## I get errors with `dotenv` formatted files\n\nOnly very basic dotenv syntax is working right now. Only single line values are accepted. The format must match:\n\n```dotenv\nkey=value\n```\n\ncomments must be a single line, not after value assignments.\n\n## Error: Error getting data key: 0 successful groups required, got 0\n\nThis error message (and failed sync) is related to the getsops/sops issues [#948](https://github.com/getsops/sops/issues/948) and [#634](https://github.com/getsops/sops/issues/634). You must not create your secret with the `--aws-profile` flag. This profile will be written to your sops filed and is required in every runtime environment. You have to define the profile to use via the environment variable `AWS_PROFILE` instead, to avoid this.\n\n## Error: Asset of sync lambda not found\n\nThe lambda asset code is generated relative to the path of the index.ts in this package. With tools like nx this can lead to wrong results, so that the asset could not be found.\n\nYou can override the asset path via the [cdk.json](https://docs.aws.amazon.com/cdk/v2/guide/get_context_var.html) or via the flag `-c`of the cdk cli.\n\nThe context used for this override is `sops_sync_provider_asset_path`.\n\nSo for example you can use\n\n```bash\ncdk deploy -c \"sops_sync_provider_asset_path=some/path/asset.zip\"\n```\n\nor in your cdk.json\n\n```json\n{\n \"context\": {\n \"sops_sync_provider_asset_path\": \"some/path/asset.zip\"\n }\n}\n```\n\n## Can I upload the sops file myself and provide the required information as CloudFormation Parameter?\n\nThis should be possible the following way. Ensure, that you have created a custom sops provider,\nwith proper IAM permissions.\n\n```typescript\nconst sopsS3BucketParam = new CfnParameter(this, \"s3BucketName\", {\n type: \"String\",\n description: \"The name of the Amazon S3 bucket where your sopsFile was uploaded.\"});\n\nconst sopsS3KeyParam = new CfnParameter(this, \"s3KeyName\", {\n type: \"String\",\n description: \"The name of the key of the sopsFile inside the Amazon S3 bucket.\"});\n\nconst sopsKmsKeyArn = new CfnParameter(this, \"sopsKeyArn\", {\n type: \"String\",\n description: \"The ARN of the KMS Key used for sops encryption\"});\n\nconst sopsKmsKey = Key.fromKeyArn(this, 'Key', sopsKmsKeyArn.valueAsString)\n\nnew SopsSecret(stack, 'SopsSecret', {\n sopsS3Bucket: sopsS3BucketParam.valueAsString,\n sopsS3Key: sopsS3KeyParam.valueAsString,\n sopsKmsKey: [\n sopsKmsKey\n ],\n sopsFileFormat: 'json',\n ...\n});\n```\n\n## Can I access older versions of the secret stored in the SecretsManager?\n\nWhile creating the secret or updating the entries of a secret, the native CDK function `cdk.FileSystem.fingerprint(...)` is used\nto generate the version information of the AWS SecretsManager secret.\nTherefore, it is possible to reference the entries from a specific AWS SecretsManager version.\n\n```typescript\nconst versionId = cdk.FileSystem.fingerprint(`./sops/SomeSecrets.json`);\nconst passphrase = ecs.Secret.fromSecretsManagerVersion(\n secretMgmt,\n { versionId: versionId },\n 'MY_PRIVATE_PASSPHRASE',\n);\n\nconst container = TaskDef.addContainer('Container', {\n secrets: {\n MY_PRIVATE_PASSPHRASE: passphrase,\n },\n});\n```\n\n## I want the `raw` content of the sops file, but I always get the content nested in json\n\nTo get the best raw experience, you should encrypt your sops files in binary format:\n\n```bash\nsops encrypt ... my-whatever-file --output my-secret-information.sops.binary --input-type binary\n```\n\nYou will lose features like only encrypting the values, not the keys.\nThe whole file content will be stored in the sops file.\nYou can store everything you like as binary, even binary data[^1].\n\nWhen using binary encrypted secrets with this constructs, ensure the ending is also binary, or override via\n`sopsFormat` property.\n\nThis does not work for `MultiStringParameter`\n\n[^1] Even if sops can handle binary data, only the AWS SecretsManager allows to store it.\n\n# License\n\nThe Apache-2.0 license. Please have a look at the [LICENSE](LICENSE) and [LICENSE-3RD-PARTY](LICENSE-3RD-PARTY).\n" }, "repository": { "type": "git", "url": "https://github.com/dbsystel/cdk-sops-secrets.git" }, "schema": "jsii/0.10.0", "submodules": { "cdk-sops-secrets.Permissions": { "locationInModule": { "filename": "src/SopsSync.ts", "line": 432 }, "symbolId": "src/SopsSync:Permissions" } }, "targets": { "dotnet": { "namespace": "Db.De.Systel", "packageId": "Db.De.Systel.CdkSopsSecrets" }, "java": { "maven": { "artifactId": "cdk-sops-secrets", "groupId": "de.db.systel" }, "package": "de.db.systel.cdksopssecrets" }, "js": { "npm": "cdk-sops-secrets" }, "python": { "distName": "cdk-sops-secrets", "module": "cdk_sops_secrets" } }, "types": { "cdk-sops-secrets.MultiStringParameter": { "assembly": "cdk-sops-secrets", "base": "constructs.Construct", "docs": { "stability": "stable" }, "fqn": "cdk-sops-secrets.MultiStringParameter", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/MultiStringParameter.ts", "line": 65 }, "parameters": [ { "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "name": "id", "type": { "primitive": "string" } }, { "name": "props", "type": { "fqn": "cdk-sops-secrets.MultiStringParameterProps" } } ] }, "kind": "class", "locationInModule": { "filename": "src/MultiStringParameter.ts", "line": 57 }, "name": "MultiStringParameter", "properties": [ { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/MultiStringParameter.ts", "line": 59 }, "name": "encryptionKey", "type": { "fqn": "aws-cdk-lib.aws_kms.IKey" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/MultiStringParameter.ts", "line": 61 }, "name": "env", "type": { "fqn": "aws-cdk-lib.ResourceEnvironment" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/MultiStringParameter.ts", "line": 62 }, "name": "keyPrefix", "type": { "primitive": "string" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/MultiStringParameter.ts", "line": 63 }, "name": "keySeparator", "type": { "primitive": "string" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/MultiStringParameter.ts", "line": 60 }, "name": "stack", "type": { "fqn": "aws-cdk-lib.Stack" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/MultiStringParameter.ts", "line": 58 }, "name": "sync", "type": { "fqn": "cdk-sops-secrets.SopsSync" } } ], "symbolId": "src/MultiStringParameter:MultiStringParameter" }, "cdk-sops-secrets.MultiStringParameterProps": { "assembly": "cdk-sops-secrets", "datatype": true, "docs": { "stability": "stable" }, "fqn": "cdk-sops-secrets.MultiStringParameterProps", "interfaces": [ "cdk-sops-secrets.SopsCommonParameterProps" ], "kind": "interface", "locationInModule": { "filename": "src/MultiStringParameter.ts", "line": 14 }, "name": "MultiStringParameterProps", "properties": [ { "abstract": true, "docs": { "default": "- '/'", "stability": "stable", "summary": "The prefix used for all parameters." }, "immutable": true, "locationInModule": { "filename": "src/MultiStringParameter.ts", "line": 26 }, "name": "keyPrefix", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- '/'", "stability": "stable", "summary": "The seperator used to seperate keys." }, "immutable": true, "locationInModule": { "filename": "src/MultiStringParameter.ts", "line": 20 }, "name": "keySeparator", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/MultiStringParameter:MultiStringParameterProps" }, "cdk-sops-secrets.RawOutput": { "assembly": "cdk-sops-secrets", "docs": { "stability": "stable" }, "fqn": "cdk-sops-secrets.RawOutput", "kind": "enum", "locationInModule": { "filename": "src/SopsSecret.ts", "line": 26 }, "members": [ { "docs": { "stability": "stable", "summary": "Parse the secret as a string." }, "name": "STRING" }, { "docs": { "stability": "stable", "summary": "Parse the secret as a binary." }, "name": "BINARY" } ], "name": "RawOutput", "symbolId": "src/SopsSecret:RawOutput" }, "cdk-sops-secrets.ResourceType": { "assembly": "cdk-sops-secrets", "docs": { "stability": "stable" }, "fqn": "cdk-sops-secrets.ResourceType", "kind": "enum", "locationInModule": { "filename": "src/SopsSync.ts", "line": 38 }, "members": [ { "docs": { "stability": "stable" }, "name": "SECRET" }, { "docs": { "stability": "stable" }, "name": "SECRET_RAW" }, { "docs": { "stability": "stable" }, "name": "SECRET_BINARY" }, { "docs": { "stability": "stable" }, "name": "PARAMETER" }, { "docs": { "stability": "stable" }, "name": "PARAMETER_MULTI" } ], "name": "ResourceType", "symbolId": "src/SopsSync:ResourceType" }, "cdk-sops-secrets.SopsCommonParameterProps": { "assembly": "cdk-sops-secrets", "datatype": true, "docs": { "stability": "stable", "summary": "The configuration options of the StringParameter." }, "fqn": "cdk-sops-secrets.SopsCommonParameterProps", "interfaces": [ "cdk-sops-secrets.SopsSyncOptions" ], "kind": "interface", "locationInModule": { "filename": "src/SopsStringParameter.ts", "line": 15 }, "name": "SopsCommonParameterProps", "properties": [ { "abstract": true, "docs": { "default": "- A default KMS key for the account and region is used.", "stability": "stable", "summary": "The customer-managed encryption key to use for encrypting the secret value." }, "immutable": true, "locationInModule": { "filename": "src/SopsStringParameter.ts", "line": 33 }, "name": "encryptionKey", "type": { "fqn": "aws-cdk-lib.aws_kms.IKey" } }, { "abstract": true, "docs": { "default": "none", "stability": "stable", "summary": "Information about the parameter that you want to add to the system." }, "immutable": true, "locationInModule": { "filename": "src/SopsStringParameter.ts", "line": 27 }, "name": "description", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- undefined", "stability": "stable", "summary": "The tier of the string parameter." }, "immutable": true, "locationInModule": { "filename": "src/SopsStringParameter.ts", "line": 21 }, "name": "tier", "optional": true, "type": { "fqn": "aws-cdk-lib.aws_ssm.ParameterTier" } } ], "symbolId": "src/SopsStringParameter:SopsCommonParameterProps" }, "cdk-sops-secrets.SopsSecret": { "assembly": "cdk-sops-secrets", "base": "constructs.Construct", "docs": { "stability": "stable", "summary": "A drop in replacement for the normal Secret, that is populated with the encrypted content of the given sops file." }, "fqn": "cdk-sops-secrets.SopsSecret", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/SopsSecret.ts", "line": 93 }, "parameters": [ { "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "name": "id", "type": { "primitive": "string" } }, { "name": "props", "type": { "fqn": "cdk-sops-secrets.SopsSecretProps" } } ] }, "interfaces": [ "aws-cdk-lib.aws_secretsmanager.ISecret" ], "kind": "class", "locationInModule": { "filename": "src/SopsSecret.ts", "line": 83 }, "methods": [ { "docs": { "stability": "stable", "summary": "Adds a rotation schedule to the secret." }, "locationInModule": { "filename": "src/SopsSecret.ts", "line": 148 }, "name": "addRotationSchedule", "overrides": "aws-cdk-lib.aws_secretsmanager.ISecret", "parameters": [ { "name": "id", "type": { "primitive": "string" } }, { "name": "options", "type": { "fqn": "aws-cdk-lib.aws_secretsmanager.RotationScheduleOptions" } } ], "returns": { "type": { "fqn": "aws-cdk-lib.aws_secretsmanager.RotationSchedule" } } }, { "docs": { "remarks": "If this secret was created in this stack, a resource policy will be\nautomatically created upon the first call to `addToResourcePolicy`. If\nthe secret is imported, then this is a no-op.", "stability": "stable", "summary": "Adds a statement to the IAM resource policy associated with this secret." }, "locationInModule": { "filename": "src/SopsSecret.ts", "line": 158 }, "name": "addToResourcePolicy", "overrides": "aws-cdk-lib.aws_secretsmanager.ISecret", "parameters": [ { "name": "statement", "type": { "fqn": "aws-cdk-lib.aws_iam.PolicyStatement" } } ], "returns": { "type": { "fqn": "aws-cdk-lib.aws_iam.AddToResourcePolicyResult" } } }, { "docs": { "remarks": "The Removal Policy controls what happens to this resource when it stops\nbeing managed by CloudFormation, either because you've removed it from the\nCDK application or because you've made a change that requires the resource\nto be replaced.\n\nThe resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS\naccount for data recovery and cleanup later (`RemovalPolicy.RETAIN`).", "stability": "stable", "summary": "Apply the given removal policy to this resource." }, "locationInModule": { "filename": "src/SopsSecret.ts", "line": 169 }, "name": "applyRemovalPolicy", "overrides": "aws-cdk-lib.IResource", "parameters": [ { "name": "policy", "type": { "fqn": "aws-cdk-lib.RemovalPolicy" } } ] }, { "docs": { "stability": "stable", "summary": "Attach a target to this secret." }, "locationInModule": { "filename": "src/SopsSecret.ts", "line": 166 }, "name": "attach", "overrides": "aws-cdk-lib.aws_secretsmanager.ISecret", "parameters": [ { "name": "target", "type": { "fqn": "aws-cdk-lib.aws_secretsmanager.ISecretAttachmentTarget" } } ], "returns": { "type": { "fqn": "aws-cdk-lib.aws_secretsmanager.ISecret" } } }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/SopsSecret.ts", "line": 127 }, "name": "currentVersionId", "returns": { "type": { "primitive": "string" } } }, { "docs": { "stability": "stable", "summary": "Denies the `DeleteSecret` action to all principals within the current account." }, "locationInModule": { "filename": "src/SopsSecret.ts", "line": 163 }, "name": "denyAccountRootDelete", "overrides": "aws-cdk-lib.aws_secretsmanager.ISecret" }, { "docs": { "stability": "stable", "summary": "Grants reading the secret value to some role." }, "locationInModule": { "filename": "src/SopsSecret.ts", "line": 131 }, "name": "grantRead", "overrides": "aws-cdk-lib.aws_secretsmanager.ISecret", "parameters": [ { "name": "grantee", "type": { "fqn": "aws-cdk-lib.aws_iam.IGrantable" } }, { "name": "versionStages", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } } ], "returns": { "type": { "fqn": "aws-cdk-lib.aws_iam.Grant" } } }, { "docs": { "stability": "stable", "summary": "Grants writing and updating the secret value to some role." }, "locationInModule": { "filename": "src/SopsSecret.ts", "line": 143 }, "name": "grantWrite", "overrides": "aws-cdk-lib.aws_secretsmanager.ISecret", "parameters": [ { "name": "_grantee", "type": { "fqn": "aws-cdk-lib.aws_iam.IGrantable" } } ], "returns": { "type": { "fqn": "aws-cdk-lib.aws_iam.Grant" } } }, { "docs": { "stability": "stable", "summary": "Interpret the secret as a JSON object and return a field's value from it as a `SecretValue`." }, "locationInModule": { "filename": "src/SopsSecret.ts", "line": 173 }, "name": "secretValueFromJson", "overrides": "aws-cdk-lib.aws_secretsmanager.ISecret", "parameters": [ { "name": "jsonField", "type": { "primitive": "string" } } ], "returns": { "type": { "fqn": "aws-cdk-lib.SecretValue" } } } ], "name": "SopsSecret", "properties": [ { "docs": { "remarks": "For resources that are created and managed by the CDK\n(generally, those created by creating new class instances like Role, Bucket, etc.),\nthis is always the same as the environment of the stack they belong to;\nhowever, for imported resources\n(those obtained from static methods like fromRoleArn, fromBucketName, etc.),\nthat might be different than the stack they were imported into.", "stability": "stable", "summary": "The environment this resource belongs to." }, "immutable": true, "locationInModule": { "filename": "src/SopsSecret.ts", "line": 90 }, "name": "env", "overrides": "aws-cdk-lib.IResource", "type": { "fqn": "aws-cdk-lib.ResourceEnvironment" } }, { "docs": { "remarks": "Will return the full ARN if available, otherwise a partial arn.\nFor secrets imported by the deprecated `fromSecretName`, it will return the `secretName`.", "stability": "stable", "summary": "The ARN of the secret in AWS Secrets Manager." }, "immutable": true, "locationInModule": { "filename": "src/SopsSecret.ts", "line": 86 }, "name": "secretArn", "overrides": "aws-cdk-lib.aws_secretsmanager.ISecret", "type": { "primitive": "string" } }, { "docs": { "remarks": "For \"owned\" secrets, this will be the full resource name (secret name + suffix), unless the\n'@aws-cdk/aws-secretsmanager:parseOwnedSecretName' feature flag is set.", "stability": "stable", "summary": "The name of the secret." }, "immutable": true, "locationInModule": { "filename": "src/SopsSecret.ts", "line": 88 }, "name": "secretName", "overrides": "aws-cdk-lib.aws_secretsmanager.ISecret", "type": { "primitive": "string" } }, { "docs": { "stability": "stable", "summary": "Retrieve the value of the stored secret as a `SecretValue`." }, "immutable": true, "locationInModule": { "filename": "src/SopsSecret.ts", "line": 180 }, "name": "secretValue", "overrides": "aws-cdk-lib.aws_secretsmanager.ISecret", "type": { "fqn": "aws-cdk-lib.SecretValue" } }, { "docs": { "stability": "stable", "summary": "The stack in which this resource is defined." }, "immutable": true, "locationInModule": { "filename": "src/SopsSecret.ts", "line": 89 }, "name": "stack", "overrides": "aws-cdk-lib.IResource", "type": { "fqn": "aws-cdk-lib.Stack" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/SopsSecret.ts", "line": 92 }, "name": "sync", "type": { "fqn": "cdk-sops-secrets.SopsSync" } }, { "docs": { "remarks": "When not specified, the default\nKMS key for the account and region is being used.", "stability": "stable", "summary": "The customer-managed encryption key that is used to encrypt this secret, if any." }, "immutable": true, "locationInModule": { "filename": "src/SopsSecret.ts", "line": 85 }, "name": "encryptionKey", "optional": true, "overrides": "aws-cdk-lib.aws_secretsmanager.ISecret", "type": { "fqn": "aws-cdk-lib.aws_kms.IKey" } }, { "docs": { "remarks": "This is equal to `secretArn` in most cases, but is undefined when a full ARN is not available (e.g., secrets imported by name).", "stability": "stable", "summary": "The full ARN of the secret in AWS Secrets Manager, which is the ARN including the Secrets Manager-supplied 6-character suffix." }, "immutable": true, "locationInModule": { "filename": "src/SopsSecret.ts", "line": 87 }, "name": "secretFullArn", "optional": true, "overrides": "aws-cdk-lib.aws_secretsmanager.ISecret", "type": { "primitive": "string" } } ], "symbolId": "src/SopsSecret:SopsSecret" }, "cdk-sops-secrets.SopsSecretProps": { "assembly": "cdk-sops-secrets", "datatype": true, "docs": { "stability": "stable", "summary": "The configuration options of the SopsSecret." }, "fqn": "cdk-sops-secrets.SopsSecretProps", "interfaces": [ "cdk-sops-secrets.SopsSyncOptions" ], "kind": "interface", "locationInModule": { "filename": "src/SopsSecret.ts", "line": 40 }, "name": "SopsSecretProps", "properties": [ { "abstract": true, "docs": { "default": "- No description.", "stability": "stable", "summary": "An optional, human-friendly description of the secret." }, "immutable": true, "locationInModule": { "filename": "src/SopsSecret.ts", "line": 51 }, "name": "description", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- A default KMS key for the account and region is used.", "stability": "stable", "summary": "The customer-managed encryption key to use for encrypting the secret value." }, "immutable": true, "locationInModule": { "filename": "src/SopsSecret.ts", "line": 57 }, "name": "encryptionKey", "optional": true, "type": { "fqn": "aws-cdk-lib.aws_kms.IKey" } }, { "abstract": true, "docs": { "default": "- undefined - STRING for binary secrets, else no raw output", "stability": "stable", "summary": "Should the secret parsed and transformed to json?" }, "immutable": true, "locationInModule": { "filename": "src/SopsSecret.ts", "line": 45 }, "name": "rawOutput", "optional": true, "type": { "fqn": "cdk-sops-secrets.RawOutput" } }, { "abstract": true, "docs": { "default": "- Not set.", "stability": "stable", "summary": "Policy to apply when the secret is removed from this stack." }, "immutable": true, "locationInModule": { "filename": "src/SopsSecret.ts", "line": 70 }, "name": "removalPolicy", "optional": true, "type": { "fqn": "aws-cdk-lib.RemovalPolicy" } }, { "abstract": true, "docs": { "default": "- Secret is not replicated", "stability": "stable", "summary": "A list of regions where to replicate this secret." }, "immutable": true, "locationInModule": { "filename": "src/SopsSecret.ts", "line": 76 }, "name": "replicaRegions", "optional": true, "type": { "collection": { "elementtype": { "fqn": "aws-cdk-lib.aws_secretsmanager.ReplicaRegion" }, "kind": "array" } } }, { "abstract": true, "docs": { "default": "- A name is generated by CloudFormation.", "remarks": "Note that deleting secrets from SecretsManager does not happen immediately, but after a 7 to\n30 days blackout period. During that period, it is not possible to create another secret that shares the same name.", "stability": "stable", "summary": "A name for the secret." }, "immutable": true, "locationInModule": { "filename": "src/SopsSecret.ts", "line": 64 }, "name": "secretName", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/SopsSecret:SopsSecretProps" }, "cdk-sops-secrets.SopsStringParameter": { "assembly": "cdk-sops-secrets", "base": "constructs.Construct", "docs": { "stability": "stable", "summary": "A drop in replacement for the normal String Parameter, that is populated with the encrypted content of the given sops file." }, "fqn": "cdk-sops-secrets.SopsStringParameter", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/SopsStringParameter.ts", "line": 60 }, "parameters": [ { "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "name": "id", "type": { "primitive": "string" } }, { "name": "props", "type": { "fqn": "cdk-sops-secrets.SopsStringParameterProps" } } ] }, "interfaces": [ "aws-cdk-lib.aws_ssm.IStringParameter" ], "kind": "class", "locationInModule": { "filename": "src/SopsStringParameter.ts", "line": 49 }, "methods": [ { "docs": { "remarks": "The Removal Policy controls what happens to this resource when it stops\nbeing managed by CloudFormation, either because you've removed it from the\nCDK application or because you've made a change that requires the resource\nto be replaced.\n\nThe resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS\naccount for data recovery and cleanup later (`RemovalPolicy.RETAIN`).", "stability": "stable", "summary": "Apply the given removal policy to this resource." }, "locationInModule": { "filename": "src/SopsStringParameter.ts", "line": 106 }, "name": "applyRemovalPolicy", "overrides": "aws-cdk-lib.IResource", "parameters": [ { "name": "policy", "type": { "fqn": "aws-cdk-lib.RemovalPolicy" } } ] }, { "docs": { "stability": "stable", "summary": "Grants read (DescribeParameter, GetParameters, GetParameter, GetParameterHistory) permissions on the SSM Parameter." }, "locationInModule": { "filename": "src/SopsStringParameter.ts", "line": 94 }, "name": "grantRead", "overrides": "aws-cdk-lib.aws_ssm.IParameter", "parameters": [ { "name": "grantee", "type": { "fqn": "aws-cdk-lib.aws_iam.IGrantable" } } ], "returns": { "type": { "fqn": "aws-cdk-lib.aws_iam.Grant" } } }, { "docs": { "stability": "stable", "summary": "Grants write (PutParameter) permissions on the SSM Parameter." }, "locationInModule": { "filename": "src/SopsStringParameter.ts", "line": 100 }, "name": "grantWrite", "overrides": "aws-cdk-lib.aws_ssm.IParameter", "parameters": [ { "name": "grantee", "type": { "fqn": "aws-cdk-lib.aws_iam.IGrantable" } } ], "returns": { "type": { "fqn": "aws-cdk-lib.aws_iam.Grant" } } } ], "name": "SopsStringParameter", "properties": [ { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/SopsStringParameter.ts", "line": 52 }, "name": "encryptionKey", "type": { "fqn": "aws-cdk-lib.aws_kms.IKey" } }, { "docs": { "remarks": "For resources that are created and managed by the CDK\n(generally, those created by creating new class instances like Role, Bucket, etc.),\nthis is always the same as the environment of the stack they belong to;\nhowever, for imported resources\n(those obtained from static methods like fromRoleArn, fromBucketName, etc.),\nthat might be different than the stack they were imported into.", "stability": "stable", "summary": "The environment this resource belongs to." }, "immutable": true, "locationInModule": { "filename": "src/SopsStringParameter.ts", "line": 54 }, "name": "env", "overrides": "aws-cdk-lib.IResource", "type": { "fqn": "aws-cdk-lib.ResourceEnvironment" } }, { "docs": { "stability": "stable", "summary": "The ARN of the SSM Parameter resource." }, "immutable": true, "locationInModule": { "filename": "src/SopsStringParameter.ts", "line": 55 }, "name": "parameterArn", "overrides": "aws-cdk-lib.aws_ssm.IParameter", "type": { "primitive": "string" } }, { "docs": { "stability": "stable", "summary": "The name of the SSM Parameter resource." }, "immutable": true, "locationInModule": { "filename": "src/SopsStringParameter.ts", "line": 56 }, "name": "parameterName", "overrides": "aws-cdk-lib.aws_ssm.IParameter", "type": { "primitive": "string" } }, { "docs": { "stability": "stable", "summary": "The type of the SSM Parameter resource." }, "immutable": true, "locationInModule": { "filename": "src/SopsStringParameter.ts", "line": 57 }, "name": "parameterType", "overrides": "aws-cdk-lib.aws_ssm.IParameter", "type": { "primitive": "string" } }, { "docs": { "stability": "stable", "summary": "The stack in which this resource is defined." }, "immutable": true, "locationInModule": { "filename": "src/SopsStringParameter.ts", "line": 53 }, "name": "stack", "overrides": "aws-cdk-lib.IResource", "type": { "fqn": "aws-cdk-lib.Stack" } }, { "docs": { "remarks": "Value must not nest another parameter. Do not use {{}} in the value.", "stability": "stable", "summary": "The parameter value." }, "immutable": true, "locationInModule": { "filename": "src/SopsStringParameter.ts", "line": 58 }, "name": "stringValue", "overrides": "aws-cdk-lib.aws_ssm.IStringParameter", "type": { "primitive": "string" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/SopsStringParameter.ts", "line": 51 }, "name": "sync", "type": { "fqn": "cdk-sops-secrets.SopsSync" } } ], "symbolId": "src/SopsStringParameter:SopsStringParameter" }, "cdk-sops-secrets.SopsStringParameterProps": { "assembly": "cdk-sops-secrets", "datatype": true, "docs": { "stability": "stable" }, "fqn": "cdk-sops-secrets.SopsStringParameterProps", "interfaces": [ "cdk-sops-secrets.SopsCommonParameterProps" ], "kind": "interface", "locationInModule": { "filename": "src/SopsStringParameter.ts", "line": 36 }, "name": "SopsStringParameterProps", "properties": [ { "abstract": true, "docs": { "default": "- a name will be generated by CloudFormation", "stability": "stable", "summary": "The name of the parameter." }, "immutable": true, "locationInModule": { "filename": "src/SopsStringParameter.ts", "line": 42 }, "name": "parameterName", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/SopsStringParameter:SopsStringParameterProps" }, "cdk-sops-secrets.SopsSync": { "assembly": "cdk-sops-secrets", "base": "constructs.Construct", "docs": { "stability": "stable", "summary": "The custom resource, that is syncing the content from a sops file to a secret." }, "fqn": "cdk-sops-secrets.SopsSync", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/SopsSync.ts", "line": 277 }, "parameters": [ { "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "name": "id", "type": { "primitive": "string" } }, { "name": "props", "type": { "fqn": "cdk-sops-secrets.SopsSyncProps" } } ] }, "kind": "class", "locationInModule": { "filename": "src/SopsSync.ts", "line": 271 }, "name": "SopsSync", "properties": [ { "docs": { "stability": "stable", "summary": "The current versionId of the secret populated via this resource." }, "immutable": true, "locationInModule": { "filename": "src/SopsSync.ts", "line": 275 }, "name": "versionId", "type": { "primitive": "string" } } ], "symbolId": "src/SopsSync:SopsSync" }, "cdk-sops-secrets.SopsSyncOptions": { "assembly": "cdk-sops-secrets", "datatype": true, "docs": { "stability": "stable", "summary": "Configuration options for the SopsSync." }, "fqn": "cdk-sops-secrets.SopsSyncOptions", "kind": "interface", "locationInModule": { "filename": "src/SopsSync.ts", "line": 49 }, "name": "SopsSyncOptions", "properties": [ { "abstract": true, "docs": { "default": "- Trying to get the key using the CDK Bootstrap context.", "stability": "stable", "summary": "The encryption key used by the CDK default Asset S3 Bucket." }, "immutable": true, "locationInModule": { "filename": "src/SopsSync.ts", "line": 114 }, "name": "assetEncryptionKey", "optional": true, "type": { "fqn": "aws-cdk-lib.aws_kms.IKey" } }, { "abstract": true, "docs": { "default": "true", "stability": "stable", "summary": "Should this construct automatically create IAM permissions?" }, "immutable": true, "locationInModule": { "filename": "src/SopsSync.ts", "line": 108 }, "name": "autoGenerateIamPermissions", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "The age key that should be used for encryption." }, "immutable": true, "locationInModule": { "filename": "src/SopsSync.ts", "line": 101 }, "name": "sopsAgeKey", "optional": true, "type": { "fqn": "aws-cdk-lib.SecretValue" } }, { "abstract": true, "docs": { "default": "- The fileformat will be derived from the file ending", "stability": "stable", "summary": "The format of the sops file." }, "immutable": true, "locationInModule": { "filename": "src/SopsSync.ts", "line": 88 }, "name": "sopsFileFormat", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "The filepath to the sops file." }, "immutable": true, "locationInModule": { "filename": "src/SopsSync.ts", "line": 61 }, "name": "sopsFilePath", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- The key will be derived from the sops file", "remarks": "Encrypt permissions\nwill be granted to the custom resource provider.", "stability": "stable", "summary": "The kmsKey used to encrypt the sops file." }, "immutable": true, "locationInModule": { "filename": "src/SopsSync.ts", "line": 96 }, "name": "sopsKmsKey", "optional": true, "type": { "collection": { "elementtype": { "fqn": "aws-cdk-lib.aws_kms.IKey" }, "kind": "array" } } }, { "abstract": true, "docs": { "default": "- A new singleton provider will be created", "remarks": "If you don't specify any, a new\nprovider will be created - or if already exists within this stack - reused.", "stability": "stable", "summary": "The custom resource provider to use." }, "immutable": true, "locationInModule": { "filename": "src/SopsSync.ts", "line": 56 }, "name": "sopsProvider", "optional": true, "type": { "fqn": "cdk-sops-secrets.SopsSyncProvider" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "If you want to pass the sops file via s3, you can specify the bucket you can use cfn parameter here Both, sopsS3Bucket and sopsS3Key have to be specified." }, "immutable": true, "locationInModule": { "filename": "src/SopsSync.ts", "line": 68 }, "name": "sopsS3Bucket", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "If you want to pass the sops file via s3, you can specify the key inside the bucket you can use cfn parameter here Both, sopsS3Bucket and sopsS3Key have to be specified." }, "immutable": true, "locationInModule": { "filename": "src/SopsSync.ts", "line": 75 }, "name": "sopsS3Key", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "INLINE", "stability": "stable", "summary": "How should the secret be passed to the CustomResource?" }, "immutable": true, "locationInModule": { "filename": "src/SopsSync.ts", "line": 81 }, "name": "uploadType", "optional": true, "type": { "fqn": "cdk-sops-secrets.UploadType" } } ], "symbolId": "src/SopsSync:SopsSyncOptions" }, "cdk-sops-secrets.SopsSyncProps": { "assembly": "cdk-sops-secrets", "datatype": true, "docs": { "stability": "stable", "summary": "The configuration options extended by the target Secret / Parameter." }, "fqn": "cdk-sops-secrets.SopsSyncProps", "interfaces": [ "cdk-sops-secrets.SopsSyncOptions" ], "kind": "interface", "locationInModule": { "filename": "src/SopsSync.ts", "line": 120 }, "name": "SopsSyncProps", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "Will this Sync deploy a Secret or Parameter(s)." }, "immutable": true, "locationInModule": { "filename": "src/SopsSync.ts", "line": 144 }, "name": "resourceType", "type": { "fqn": "cdk-sops-secrets.ResourceType" } }, { "abstract": true, "docs": { "remarks": "- for secret, it's the name or arn of the secret\n- for parameter, it's the name of the parameter\n- for parameter multi, it's the prefix of the parameters", "stability": "stable", "summary": "The target to populate with the sops file content." }, "immutable": true, "locationInModule": { "filename": "src/SopsSync.ts", "line": 127 }, "name": "target", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "The encryption key used for encrypting the ssm parameter if `parameterName` is set." }, "immutable": true, "locationInModule": { "filename": "src/SopsSync.ts", "line": 139 }, "name": "encryptionKey", "optional": true, "type": { "fqn": "aws-cdk-lib.aws_kms.IKey" } }, { "abstract": true, "docs": { "default": "- undefined", "stability": "stable", "summary": "If the structure should be flattened use the provided separator between keys." }, "immutable": true, "locationInModule": { "filename": "src/SopsSync.ts", "line": 134 }, "name": "flattenSeparator", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/SopsSync.ts", "line": 147 }, "name": "parameterNames", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/SopsSync.ts", "line": 146 }, "name": "secret", "optional": true, "type": { "fqn": "aws-cdk-lib.aws_secretsmanager.ISecret" } } ], "symbolId": "src/SopsSync:SopsSyncProps" }, "cdk-sops-secrets.SopsSyncProvider": { "assembly": "cdk-sops-secrets", "base": "aws-cdk-lib.aws_lambda.SingletonFunction", "docs": { "stability": "stable" }, "fqn": "cdk-sops-secrets.SopsSyncProvider", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/SopsSync.ts", "line": 229 }, "parameters": [ { "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "name": "id", "optional": true, "type": { "primitive": "string" } }, { "name": "props", "optional": true, "type": { "fqn": "cdk-sops-secrets.SopsSyncProviderProps" } } ] }, "interfaces": [ "aws-cdk-lib.aws_iam.IGrantable" ], "kind": "class", "locationInModule": { "filename": "src/SopsSync.ts", "line": 226 }, "methods": [ { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/SopsSync.ts", "line": 263 }, "name": "addAgeKey", "parameters": [ { "name": "key", "type": { "fqn": "aws-cdk-lib.SecretValue" } } ] } ], "name": "SopsSyncProvider", "symbolId": "src/SopsSync:SopsSyncProvider" }, "cdk-sops-secrets.SopsSyncProviderProps": { "assembly": "cdk-sops-secrets", "datatype": true, "docs": { "stability": "stable", "summary": "Configuration options for a custom SopsSyncProvider." }, "fqn": "cdk-sops-secrets.SopsSyncProviderProps", "kind": "interface", "locationInModule": { "filename": "src/SopsSync.ts", "line": 153 }, "name": "SopsSyncProviderProps", "properties": [ { "abstract": true, "docs": { "default": "`/aws/lambda/${this.functionName}` - default log group created by Lambda", "remarks": "By default, Lambda functions send logs to an automatically created default log group named /aws/lambda/\\.\nHowever you cannot change the properties of this auto-created log group using the AWS CDK, e.g. you cannot set a different log retention.\n\nUse the `logGroup` property to create a fully customizable LogGroup ahead of time, and instruct the Lambda function to send logs to it.\n\nProviding a user-controlled log group was rolled out to commercial regions on 2023-11-16.\nIf you are deploying to another type of region, please check regional availability first.", "stability": "stable", "summary": "The log group the function sends logs to." }, "immutable": true, "locationInModule": { "filename": "src/SopsSync.ts", "line": 215 }, "name": "logGroup", "optional": true, "type": { "fqn": "aws-cdk-lib.aws_logs.ILogGroup" } }, { "abstract": true, "docs": { "default": "logs.RetentionDays.INFINITE", "remarks": "When updating\nthis property, unsetting it doesn't remove the log retention policy. To\nremove the retention policy, set the value to `INFINITE`.\n\nThis is a legacy API and we strongly recommend you move away from it if you can.\nInstead create a fully customizable log group with `logs.LogGroup` and use the `logGroup` property\nto instruct the Lambda function to send logs to it.\nMigrating from `logRetention` to `logGroup` will cause the name of the log group to change.\nUsers and code and referencing the name verbatim will have to adjust.\n\nIn AWS CDK code, you can access the log group name directly from the LogGroup construct:\n```ts\nimport * as logs from 'aws-cdk-lib/aws-logs';\n\ndeclare const myLogGroup: logs.LogGroup;\nmyLogGroup.logGroupName;\n```", "stability": "stable", "summary": "The number of days log events are kept in CloudWatch Logs." }, "immutable": true, "locationInModule": { "filename": "src/SopsSync.ts", "line": 201 }, "name": "logRetention", "optional": true, "type": { "fqn": "aws-cdk-lib.aws_logs.RetentionDays" } }, { "abstract": true, "docs": { "default": "- a new role will be created", "remarks": "If you don't specify any, a new role will be created with all required permissions", "stability": "stable", "summary": "The role that should be used for the custom resource provider." }, "immutable": true, "locationInModule": { "filename": "src/SopsSync.ts", "line": 179 }, "name": "role", "optional": true, "type": { "fqn": "aws-cdk-lib.aws_iam.IRole" } }, { "abstract": true, "docs": { "default": "- A dedicated security group will be created for the lambda function.", "stability": "stable", "summary": "Only if `vpc` is supplied: The list of security groups to associate with the Lambda's network interfaces." }, "immutable": true, "locationInModule": { "filename": "src/SopsSync.ts", "line": 171 }, "name": "securityGroups", "optional": true, "type": { "collection": { "elementtype": { "fqn": "aws-cdk-lib.aws_ec2.ISecurityGroup" }, "kind": "array" } } }, { "abstract": true, "docs": { "default": "SopsSyncProvider", "remarks": "Overwrite the default, if you need a dedicated provider.", "stability": "stable", "summary": "A unique identifier to identify this provider." }, "immutable": true, "locationInModule": { "filename": "src/SopsSync.ts", "line": 223 }, "name": "uuid", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- Lambda function is not placed within a VPC.", "stability": "stable", "summary": "VPC network to place Lambda network interfaces." }, "immutable": true, "locationInModule": { "filename": "src/SopsSync.ts", "line": 159 }, "name": "vpc", "optional": true, "type": { "fqn": "aws-cdk-lib.aws_ec2.IVpc" } }, { "abstract": true, "docs": { "default": "- Subnets will be chosen automatically.", "stability": "stable", "summary": "Where to place the network interfaces within the VPC." }, "immutable": true, "locationInModule": { "filename": "src/SopsSync.ts", "line": 165 }, "name": "vpcSubnets", "optional": true, "type": { "fqn": "aws-cdk-lib.aws_ec2.SubnetSelection" } } ], "symbolId": "src/SopsSync:SopsSyncProviderProps" }, "cdk-sops-secrets.UploadType": { "assembly": "cdk-sops-secrets", "docs": { "stability": "stable" }, "fqn": "cdk-sops-secrets.UploadType", "kind": "enum", "locationInModule": { "filename": "src/SopsSync.ts", "line": 27 }, "members": [ { "docs": { "stability": "stable", "summary": "Pass the secret data inline (base64 encoded and compressed)." }, "name": "INLINE" }, { "docs": { "stability": "stable", "summary": "Uplaod the secret data as asset." }, "name": "ASSET" } ], "name": "UploadType", "symbolId": "src/SopsSync:UploadType" } }, "version": "2.3.1", "fingerprint": "wYaA13I3Fzsdt36yTal2hw/jdKv0rWBF3JjSwN97pYk=" }