{
  "author": {
    "email": "harold@pwrdrvr.com",
    "name": "PwrDrvr LLC",
    "organization": true,
    "roles": [
      "author"
    ]
  },
  "dependencies": {
    "aws-cdk-lib": "^2.168.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-kubectl-v20": {
      "targets": {
        "dotnet": {
          "namespace": "Amazon.CDK.Asset.KubectlV20",
          "packageId": "Amazon.CDK.Asset.KubectlV20"
        },
        "go": {
          "moduleName": "github.com/cdklabs/awscdk-asset-kubectl-go",
          "packageName": "kubectlv20"
        },
        "java": {
          "maven": {
            "artifactId": "cdk-asset-kubectl-v20",
            "groupId": "software.amazon.awscdk"
          },
          "package": "software.amazon.awscdk.cdk.asset.kubectl.v20"
        },
        "js": {
          "npm": "@aws-cdk/asset-kubectl-v20"
        },
        "python": {
          "distName": "aws-cdk.asset-kubectl-v20",
          "module": "aws_cdk.asset_kubectl_v20"
        }
      }
    },
    "@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_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_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_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_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_iot1click": {
          "targets": {
            "dotnet": {
              "namespace": "Amazon.CDK.AWS.IoT1Click"
            },
            "java": {
              "package": "software.amazon.awscdk.services.iot1click"
            },
            "python": {
              "module": "aws_cdk.aws_iot1click"
            }
          }
        },
        "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_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_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_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_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_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_kubectl": {
          "targets": {
            "dotnet": {
              "namespace": "Amazon.CDK.LambdaLayer.Kubectl"
            },
            "java": {
              "package": "software.amazon.awscdk.lambdalayer.kubectl"
            },
            "python": {
              "module": "aws_cdk.lambda_layer_kubectl"
            }
          }
        },
        "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": "MicroApps framework, by PwrDrvr LLC, delivered as an AWS CDK construct that provides the DynamoDB, Router service, Deploy service, API Gateway, and CloudFront distribution.",
  "docs": {
    "stability": "experimental"
  },
  "homepage": "https://github.com/pwrdrvr/microapps-core",
  "jsiiVersion": "5.9.11 (build e3d2007)",
  "keywords": [
    "awscdk",
    "cdk",
    "microapps"
  ],
  "license": "MIT",
  "metadata": {
    "jsii": {
      "pacmak": {
        "hasDefaultInterfaces": true
      }
    },
    "tscRootDir": "src"
  },
  "name": "@pwrdrvr/microapps-cdk",
  "readme": {
    "markdown": "[![CI](https://github.com/pwrdrvr/microapps-core/actions/workflows/ci.yml/badge.svg)](https://github.com/pwrdrvr/microapps-core/actions/workflows/ci.yml) [![Merge to Main Build](https://github.com/pwrdrvr/microapps-core/actions/workflows/main-build.yml/badge.svg)](https://github.com/pwrdrvr/microapps-core/actions/workflows/main-build.yml) [![Release Packages](https://github.com/pwrdrvr/microapps-core/actions/workflows/release.yml/badge.svg)](https://github.com/pwrdrvr/microapps-core/actions/workflows/release.yml)\n\n# Overview\n\nThe MicroApps project enables rapidly deploying many web apps to AWS on a single shared host name, fronted by a CloudFront Distribution, serving static assets from an S3 Bucket, and routing application requests via API Gateway. MicroApps is delivered as a CDK Construct for deployment, although alternative deployment methods can be used if desired and implemented.\n\nMicroApps allows many versions of an application to be deployed either as ephemeral deploys (e.g. for pull request builds) or as semi-permanent deploys. The `microapps-router` Lambda function handled routing requests to apps to the current version targeted for a particular application start request using rules as complex as one is interested in implementing (e.g. A/B testing integration, canary releases, per-user rules for logged in users, per-group, per-deparment, and default rules).\n\nUsers start applications via a URL such as `[/{prefix}]/{appname}/`, which hits the `microapps-router` Lambda@Edge OriginRequest handler that looks up the version of the application to be run, and either forwards the request to the target Lambda Function URL (`--startupType direct` invoke mode) or returns a transparent `iframe` (`--startupType iframe`) with a link to that version.  `direct` mode works with frameworks, like Next.js, that can return pages that have build-time computed relative URLs to static resources and API calls.  `iframe` mode works with frameworks that do not write computed relative URLs at build time and/or that do not use URLs that are completely relative to wherever the applications is rooted at runtime; this mode is primarily for quick prototyping as it has other complications (such as indirect access to query strings). The URL seen by the user in the browser (and available for bookmarking) has no version in it, so subsequent launches (e.g. the next day or just in another tab) will lookup the version again. All relative URL API requests (e.g. `some/api/path`) will go to the corresponding API version that matches the version of the loaded static files, eliminating issues of incompatibility between static files and API deployments.\n\nFor development / testing purposes only, each version of an applicaton can be accessed directly via a URL of the patterns `[/{prefix}]/{appname}?appver={semver}` for `direct` mode or `[/{prefix}]/{appname}/{semver}/` for `iframe` mode. These \"versioned\" URLs are not intended to be advertised to end users as they would cause a user to be stuck on a particular version of the app if the URL was bookmarked. Note that the system does not limit access to particular versions of an application, as of 2023-03-04, but that can be added as a feature.\n\n# Table of Contents <!-- omit in toc -->\n\n- [Overview](#overview)\n- [Why MicroApps](#why-microapps)\n- [Request Routing for Static Assets / App - Diagram](#request-routing-for-static-assets--app---diagram)\n- [Request Dispatch Model for Multi-Account Deployments](#request-dispatch-model-for-multi-account-deployments)\n- [Video Preview of the Deploying CDK Construct](#video-preview-of-the-deploying-cdk-construct)\n- [Installation / CDK Constructs](#installation--cdk-constructs)\n- [Tutorial - Bootstrapping a Deploy](#tutorial---bootstrapping-a-deploy)\n- [Limitations / Future Development](#limitations--future-development)\n- [Related Projects / Components](#related-projects--components)\n- [Why Lambda @ Origin and Not Lambda @ Edge for Apps](#why-lambda--origin-and-not-lambda--edge-for-apps)\n- [Architecure Diagram](#architecure-diagram)\n- [Project Layout](#project-layout)\n- [Creating a MicroApp Using Zip Lambda Functions](#creating-a-microapp-using-zip-lambda-functions)\n- [Creating a MicroApp Using Docker Lambda Functions](#creating-a-microapp-using-docker-lambda-functions)\n  - [Next.js Apps](#nextjs-apps)\n    - [Modify package.json](#modify-packagejson)\n    - [Install Dependencies](#install-dependencies)\n    - [Dockerfile](#dockerfile)\n    - [next.config.js](#nextconfigjs)\n- [Troubleshooting](#troubleshooting)\n  - [CloudFront Requests to API Gateway are Rejected with 403 Forbidden](#cloudfront-requests-to-api-gateway-are-rejected-with-403-forbidden)\n    - [SignatureV4 Headers](#signaturev4-headers)\n\n# Why MicroApps\n\nMicroApps are like micro services, but for Web UIs. A MicroApp allows a single functional site to be developed by many independent teams within an organization. Teams must coordinate deployments and agree upon one implementation technology and framework when building a monolithic, or even a monorepo, web application.\n\nTeams using MicroApps can deploy independently of each other with coordination being required only at points of intentional integration (e.g. adding a feature to pass context from one MicroApp to another or coordination of a major feature release to users) and sharing UI styles, if desired (it is possible to build styles that look the same across many different UI frameworks).\n\nMicroApps also allow each team to use a UI framework and backend language that is most appropriate for their solving their business problem. Not every app has to use React or Next.js or even Node on the backend, but instead they can use whatever framework they want and Java, Go, C#, Python, etc. for UI API calls.\n\nFor internal sites, or logged-in-customer sites, different tools or products can be hosted in entirely independent MicroApps. A menuing system / toolbar application can be created as a MicroApp and that menu app can open the apps in the system within a transparent iframe. For externally facing sites, such as for an e-commerce site, it is possible to have a MicroApp serving `/product/...`, another serving `/search/...`, another serving `/`, etc.\n\n# Request Routing for Static Assets / App - Diagram\n\n![Request Routing for Static Assets and App](https://user-images.githubusercontent.com/5617868/222913451-0e6ed906-b6ee-461f-99a7-61db13135ce1.png)\n\n# Request Dispatch Model for Multi-Account Deployments\n\nNote: requests can also be dispatched into the same account, but this model is more likely to be used by organizations with many AWS accounts.\n\n![Request Dispatch Model for Mulit-Account Deployments](https://user-images.githubusercontent.com/5617868/218237120-65b3ae44-31ba-4b6d-8722-4d3fb7da5577.png)\n\n# Video Preview of the Deploying CDK Construct\n\n![Video Preview of Deploying](https://raw.githubusercontent.com/pwrdrvr/microapps-core/main/assets/videos/microapps-core-demo-deploy.gif)\n\n# Installation / CDK Constructs\n\n- `npm i --save-dev @pwrdrvr/microapps-cdk`\n- Add `MicroApps` construct to your stack\n- The `MicroApps` construct does a \"turn-key\" deployment complete with the Release app\n- [Construct Hub](https://constructs.dev/packages/@pwrdrvr/microapps-cdk/)\n  - CDK API docs\n  - Python, DotNet, Java, JS/TS installation instructions\n\n# Tutorial - Bootstrapping a Deploy\n\n- `git clone https://github.com/pwrdrvr/microapps-core.git`\n  - Note: the repo is only being for the example CDK Stack, it is not necessary to clone the repo when used in a custom CDK Stack\n- `cd microapps-core`\n- `npm i -g aws-cdk`\n  - Install AWS CDK v2 CLI\n- `asp [my-sso-profile-name]`\n  - Using the `aws` plugin from `oh-my-zsh` for AWS SSO\n  - Of course, there are other methods of setting env vars\n- `aws sso login`\n  - Establish an AWS SSO session\n- `export AWS_REGION=us-east-2`\n  - Region needs to be set for the Lambda invoke - This can be done other ways in `~/.aws/config` as well\n- `./deploy.sh`\n  - Deploys the CDK Stack\n  - Essentially runs two commands along with extraction of outputs:\n    - `npx cdk deploy --context @pwrdrvr/microapps:deployReleaseApp=true microapps-basic`\n    - `npx pwrdrvr publish --app-name release --new-version ${RELEASE_APP_PACKAGE_VERSION} --deployer-lambda-name ${DEPLOYER_LAMBDA_NAME} --app-lambda-name ${RELEASE_APP_LAMBDA_NAME} --static-assets-path node_modules/@pwrdrvr/microapps-app-release-cdk/lib/static_files/release/${RELEASE_APP_PACKAGE_VERSION}/ --overwrite --no-cache`\n  - URL will be printed as last output\n\n# Limitations / Future Development\n\n- AWS Only\n  - For the time being this has only been implemented for AWS technologies and APIs\n  - It is possible that Azure and GCP have sufficient support to enable porting the framework\n  - CDK would have to be replaced as well (unless it's made available for Azure and GCP in the near future)\n- Release Rules\n  - Currently only a Default rule is supported\n  - Need to evaluate if a generic implementation can be made, possibly allowing plugins or webhooks to support arbitrary rules\n  - If not possible to make it perfectly generic, consider providing a more complete reference implementation of examples\n\n# Related Projects / Components\n\n- Release App\n  - The Release app is an initial, rudimentary, release control console for setting the default version of an application\n  - Built with Next.js\n  - [pwrdrvr/microapps-app-release](https://github.com/pwrdrvr/microapps-app-release)\n- Next.js Demo App\n  - The Next.js Tutorial application deployed as a MicroApp\n  - [pwrdrvr/serverless-nextjs-demo](https://github.com/pwrdrvr/serverless-nextjs-demo)\n\n\n# Why Lambda @ Origin and Not Lambda @ Edge for Apps\n\nCalling resources (DBs and other services) and waiting for a long synchronous response is an anti-pattern in Lambda as the Lambda function will be billed for the time spent waiting for the response. This is especially true for Lambda@Edge as the cost is 3x higher than Lambda at the origin.\n\nWith Lambda@Edge (even with Origin Requests) the cost is 3x higher per GB-second and the time spent waiting for a 1 ms service response from an origin that is 250 ms away is 750x higher (250 ms / 1ms * 3x higher cost) than making that same request within the region where the resource resides.\n\n- Lambda@Edge is _at least_ 3x more expensive than Lambda at the origin:\n  - In US East 1, the price per GB-Second is $0.00005001 for Lambda@Edge\n    - Source: https://aws.amazon.com/lambda/pricing/ (bottom of page)\n    - Updated: 2023-03-04\n  - In US East 1, the price per GB-Second is $0.0000166667 for Lambda at the origin on x86\n    - Source: https://aws.amazon.com/lambda/pricing/\n    - Updated: 2023-03-04\n  - Ratio\n    - Lambda@Edge / Lambda@Origin = $0.00005001 / $0.0000166667 = 3.0006x\n- Any DB or services calls from Lambda@Edge back to the origin will pay that 3x higher per GB-Second cost for any time spent waiting to send the request and get a response. Example:\n  - Lambda@Edge\n    - 0.250s Round Trip Time (RTT) for EU-zone edge request to hit US-East 1 Origin\n    - 0.200s DB lookup time\n    - 0.050s CPU usage to process the DB response\n    - 0.500s total billed time @ $0.00005001 @ 128 MB\n    - $0.000003125625 total charge\n  - Lambda at Origin\n    - RTT does not apply (it's effectively 1-2 ms to hit a DB in the same region)\n    - 0.200s DB lookup time\n    - 0.050s CPU usage to process the DB response\n    - 0.250s total billed time @ $0.0000166667 @ 128 MB\n    - Half the billed time of running on Lambda@Edge\n    - 1/6th the cost of running on Lambda@Edge:\n      - $0.000000520834375 total charge (assuming no CPU time to process the response)\n      - $0.000003125625 / $0.000000520834375 = 6x more expensive in Lambda@Edge\n\n# Architecure Diagram\n\n![Architecure Diagram](https://raw.githubusercontent.com/pwrdrvr/microapps-core/main/assets/images/architecture-diagram.png)\n\n# Project Layout\n\n- [packages/cdk](https://github.com/pwrdrvr/microapps-core/tree/main/packages/cdk)\n  - Example CDK Stack\n  - Deploys MicroApps CDK stack for the GitHub Workflows\n  - Can be used as an example of how to use the MicroApps CDK Construct\n- [packages/demo-app](https://github.com/pwrdrvr/microapps-core/tree/main/packages/demo-app)\n  - Example app with static resources and a Lambda function\n  - Does not use any Web UI framework at all\n- [packages/microapps-cdk](https://github.com/pwrdrvr/microapps-core/tree/main/packages/microapps-cdk)\n  - MicroApps\n    - \"Turn key\" CDK Construct that creates all assets needed for a working MicroApps deployment\n  - MicroAppsAPIGwy\n    - Create APIGateway HTTP API\n    - Creates domain names to point to the edge (Cloudfront) and origin (API Gateway)\n  - MicroAppsCF\n    - Creates Cloudfront distribution\n  - MicroAppsS3\n    - Creates S3 buckets\n  - MicroAppsSvcs\n    - Create DynamoDB table\n    - Create Deployer Lambda function\n    - Create Router Lambda function\n- [packages/microapps-datalib](https://github.com/pwrdrvr/microapps-core/tree/main/packages/microapps-datalib)\n  - Installed from `npm`:\n    - `npm i -g @pwrdrvr/microapps-datalib`\n  - APIs for access to the DynamoDB Table used by the `pwrdrvr` CLI, `microapps-deployer`, and `@pwrdrvr/microapps-app-release-cdk`\n- [packages/microapps-deployer](https://github.com/pwrdrvr/microapps-core/tree/main/packages/microapps-deployer)\n  - Lambda service invoked by the `pwrdrvr` CLI to record new app/version in the DynamoDB table, create API Gateway integrations, copy S3 assets from staging to prod bucket, etc.\n  - Returns a temporary S3 token with restricted access to the staging S3 bucket for upload of the static files for one app/semver\n- [packages/pwrdrvr](https://github.com/pwrdrvr/microapps-core/tree/main/packages/pwrdrvr)\n  - Installed from `npm`:\n    - `npm i -g pwrdrvr`\n  - Node executable that updates versions in config files, deploys static assets to the S3 staging bucket, optionally compiles and deploys a new Lambda function version, and invokes `microapps-deployer`\n  - AWS IAM permissions required:\n    - `lambda:InvokeFunction`\n- [packages/microapps-router](https://github.com/pwrdrvr/microapps-core/tree/main/packages/microapps-router)\n  - Lambda function that determines which version of an app to point a user to on a particular invocation\n\n# Creating a MicroApp Using Zip Lambda Functions\n\n[TBC]\n\n# Creating a MicroApp Using Docker Lambda Functions\n\nDocker Lambdas are great for large applications.  These used to be slower to cold start but as of early 2023 that appears to no longer be an issue.\n\n## Next.js Apps\n\nCreate a Next.js app then follow the steps in this section to set it up for publishing to AWS Lambda @ Origin as a MicroApp. To publish new versions of the app use `npx pwrdrvr --new-version x.y.z` when logged in to the target AWS account.\n\n### Modify package.json\n\nReplace the version with `0.0.0` so it can be modified by the `pwrdrvr` CLI.\n\n### Install Dependencies\n\n```\nnpm i --save-dev pwrdrvr\n```\n\n### Dockerfile\n\nFIXME: Out of date 2023-03-04\n\nAdd this file to the root of the app.\n\n```Dockerfile\nFROM node:15-slim as base\n\nWORKDIR /app\n\n# Download the sharp libs once to save time\n# Do this before copying anything else in\nRUN mkdir -p image-lambda-npms && \\\n  cd image-lambda-npms && npm i sharp && \\\n  rm -rf node_modules/sharp/vendor/*/include/\n\n# Copy in the build output from `npx serverless`\nCOPY .serverless_nextjs .\nCOPY config.json .\n\n# Move the sharp libs into place\nRUN rm -rf image-lambda/node_modules/ && \\\n  mv image-lambda-npms/node_modules image-labmda/ && \\\n  rm -rf image-lambda-npms\n\nFROM public.ecr.aws/lambda/nodejs:14 AS final\n\n# Copy in the munged code\nCOPY --from=base /app .\n\nCMD [ \"./index.handler\" ]\n```\n\n### next.config.js\n\nFIXME: Out of date 2023-03-04\n\nAdd this file to the root of the app.\n\nReplace `appname` with your URL path-compatible application name.\n\n```js\nconst appRoot = '/appname/0.0.0';\n\n// eslint-disable-next-line no-undef\nmodule.exports = {\n  target: 'serverless',\n  webpack: (config, _options) => {\n    return config;\n  },\n  basePath: appRoot,\n  publicRuntimeConfig: {\n    // Will be available on both server and client\n    staticFolder: appRoot,\n  },\n};\n```\n\n# Troubleshooting\n\n## CloudFront Requests to API Gateway are Rejected with 403 Forbidden\n\nRequests to the API Gateway origin can be rejected with a 403 Forbidden error if the signed request headers are not sent to the origin by CloudFront.\n\nThe error in the API Gateway CloudWatch logs will show up as:\n\n```log\n\"authorizerError\": \"The request for the IAM Authorizer doesn't match the format that API Gateway expects.\"\n```\n\nThis can be simulated by simply running `curl [api-gateway-url]`, with no headers.\n\nTo confirm that API Gateway is allowing signed requests when the IAM Authorizer is configured, establish credentials as a user that is allowed to execute the API Gateay, install `awscurl` with `pip3 install awscurl`, then then use `awscurl --service execute-api --region [api-gateway-region] [api-gateway-url]`.\n\nSignature headers will not be sent from CloudFront to API Gateway unless the `OriginRequestPolicy` is set to specifically include those headers on requests to the origin, or the `headersBehavior` is set to `cfront.OriginRequestHeaderBehavior.all()`.\n\nSimilarly, if `presign` is used, the `OriginRequestPolicy` must be set to `cfront.OriginRequestQueryStringBehavior.all()` or to specifically forward the query string parameters used by the presigned URL.\n\n### SignatureV4 Headers\n- `authorization`\n- `x-amz-date`\n- `x-amz-security-token`\n- `x-amz-content-sha256`\n"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/pwrdrvr/microapps-core"
  },
  "schema": "jsii/0.10.0",
  "targets": {
    "dotnet": {
      "namespace": "PwrDrvr.MicroApps.CDK",
      "packageId": "PwrDrvr.MicroApps.CDK"
    },
    "java": {
      "maven": {
        "artifactId": "microapps-cdk",
        "groupId": "com.pwrdrvr.microapps"
      },
      "package": "com.pwrdrvr.microapps.cdk"
    },
    "js": {
      "npm": "@pwrdrvr/microapps-cdk"
    },
    "python": {
      "distName": "pwrdrvr.microapps.cdk",
      "module": "pwrdrvr.microapps.cdk"
    }
  },
  "types": {
    "@pwrdrvr/microapps-cdk.AddRoutesOptions": {
      "assembly": "@pwrdrvr/microapps-cdk",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for `AddRoutes`."
      },
      "fqn": "@pwrdrvr/microapps-cdk.AddRoutesOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/MicroAppsCF.ts",
        "line": 178
      },
      "name": "AddRoutesOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "Typically an S3 bucket with a `x-microapps-origin: app` custom header\n\nThe request never actually falls through to the S3 bucket.",
            "stability": "experimental",
            "summary": "Application origin."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 186
          },
          "name": "appOnlyOrigin",
          "type": {
            "fqn": "aws-cdk-lib.aws_cloudfront.IOrigin"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Origin Request policy for API Gateway Origin."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 202
          },
          "name": "appOriginRequestPolicy",
          "type": {
            "fqn": "aws-cdk-lib.aws_cloudfront.IOriginRequestPolicy"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Origin Group with Primary of S3 bucket with `x-microapps-origin: s3` custom header and Fallback of `appOnlyOrigin`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 192
          },
          "name": "bucketOriginFallbackToApp",
          "type": {
            "fqn": "aws-cdk-lib.aws_cloudfront_origins.OriginGroup"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "CloudFront Distribution to add the Behaviors (Routes) to."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 197
          },
          "name": "distro",
          "type": {
            "fqn": "aws-cdk-lib.aws_cloudfront.Distribution"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Edge lambdas to associate with the API Gateway routes."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 214
          },
          "name": "edgeLambdas",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "aws-cdk-lib.aws_cloudfront.EdgeLambda"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "example": "dev/",
            "stability": "experimental",
            "summary": "Path prefix on the root of the CloudFront distribution."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 209
          },
          "name": "rootPathPrefix",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/MicroAppsCF:AddRoutesOptions"
    },
    "@pwrdrvr/microapps-cdk.CreateAPIOriginPolicyOptions": {
      "assembly": "@pwrdrvr/microapps-cdk",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Options for the `CreateAPIOriginPolicy`."
      },
      "fqn": "@pwrdrvr/microapps-cdk.CreateAPIOriginPolicyOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/MicroAppsCF.ts",
        "line": 150
      },
      "name": "CreateAPIOriginPolicyOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- resource names auto assigned",
            "example": "microapps",
            "stability": "experimental",
            "summary": "Optional asset name root."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 157
          },
          "name": "assetNameRoot",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "none",
            "example": "-dev-pr-12",
            "stability": "experimental",
            "summary": "Optional asset name suffix."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 165
          },
          "name": "assetNameSuffix",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Edge domain name used by CloudFront - If set a custom OriginRequestPolicy will be created that prevents the Host header from being passed to the origin."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 172
          },
          "name": "domainNameEdge",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/MicroAppsCF:CreateAPIOriginPolicyOptions"
    },
    "@pwrdrvr/microapps-cdk.GenerateEdgeToOriginConfigOptions": {
      "assembly": "@pwrdrvr/microapps-cdk",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "@pwrdrvr/microapps-cdk.GenerateEdgeToOriginConfigOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/MicroAppsEdgeToOrigin.ts",
        "line": 161
      },
      "name": "GenerateEdgeToOriginConfigOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 164
          },
          "name": "addXForwardedHostHeader",
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 162
          },
          "name": "originRegion",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 165
          },
          "name": "replaceHostHeader",
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 163
          },
          "name": "signingMode",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 168
          },
          "name": "locales",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 167
          },
          "name": "rootPathPrefix",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 166
          },
          "name": "tableName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/MicroAppsEdgeToOrigin:GenerateEdgeToOriginConfigOptions"
    },
    "@pwrdrvr/microapps-cdk.IMicroApps": {
      "assembly": "@pwrdrvr/microapps-cdk",
      "docs": {
        "stability": "experimental",
        "summary": "Represents a MicroApps."
      },
      "fqn": "@pwrdrvr/microapps-cdk.IMicroApps",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/MicroApps.ts",
        "line": 322
      },
      "name": "IMicroApps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "{@inheritdoc IMicroAppsCF}."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 324
          },
          "name": "cf",
          "type": {
            "fqn": "@pwrdrvr/microapps-cdk.IMicroAppsCF"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "{@inheritdoc IMicroAppsS3}."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 330
          },
          "name": "s3",
          "type": {
            "fqn": "@pwrdrvr/microapps-cdk.IMicroAppsS3"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "{@inheritdoc IMicroAppsSvcs}."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 333
          },
          "name": "svcs",
          "type": {
            "fqn": "@pwrdrvr/microapps-cdk.IMicroAppsSvcs"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "{@inheritdoc IMicroAppsEdgeToOrigin}."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 327
          },
          "name": "edgeToOrigin",
          "optional": true,
          "type": {
            "fqn": "@pwrdrvr/microapps-cdk.IMicroAppsEdgeToOrigin"
          }
        }
      ],
      "symbolId": "src/MicroApps:IMicroApps"
    },
    "@pwrdrvr/microapps-cdk.IMicroAppsCF": {
      "assembly": "@pwrdrvr/microapps-cdk",
      "docs": {
        "stability": "experimental",
        "summary": "Represents a MicroApps CloudFront."
      },
      "fqn": "@pwrdrvr/microapps-cdk.IMicroAppsCF",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/MicroAppsCF.ts",
        "line": 15
      },
      "name": "IMicroAppsCF",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The CloudFront distribution."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 19
          },
          "name": "cloudFrontDistro",
          "type": {
            "fqn": "aws-cdk-lib.aws_cloudfront.Distribution"
          }
        }
      ],
      "symbolId": "src/MicroAppsCF:IMicroAppsCF"
    },
    "@pwrdrvr/microapps-cdk.IMicroAppsChildDeployer": {
      "assembly": "@pwrdrvr/microapps-cdk",
      "docs": {
        "stability": "experimental",
        "summary": "Represents a MicroApps Child Deployer."
      },
      "fqn": "@pwrdrvr/microapps-cdk.IMicroAppsChildDeployer",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/MicroAppsChildDeployer.ts",
        "line": 70
      },
      "name": "IMicroAppsChildDeployer",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Lambda function for the Deployer."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsChildDeployer.ts",
            "line": 74
          },
          "name": "deployerFunc",
          "type": {
            "fqn": "aws-cdk-lib.aws_lambda.IFunction"
          }
        }
      ],
      "symbolId": "src/MicroAppsChildDeployer:IMicroAppsChildDeployer"
    },
    "@pwrdrvr/microapps-cdk.IMicroAppsEdgeToOrigin": {
      "assembly": "@pwrdrvr/microapps-cdk",
      "docs": {
        "stability": "experimental",
        "summary": "Represents a MicroApps Edge to Origin Function."
      },
      "fqn": "@pwrdrvr/microapps-cdk.IMicroAppsEdgeToOrigin",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/MicroAppsEdgeToOrigin.ts",
        "line": 27
      },
      "name": "IMicroAppsEdgeToOrigin",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "The generated `config.yml` is included in the Lambda's code.",
            "stability": "experimental",
            "summary": "The edge to origin function for API Gateway Request Origin Edge Lambda."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 33
          },
          "name": "edgeToOriginFunction",
          "type": {
            "union": {
              "types": [
                {
                  "fqn": "aws-cdk-lib.aws_lambda.Function"
                },
                {
                  "fqn": "aws-cdk-lib.aws_cloudfront.experimental.EdgeFunction"
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Configuration of the edge to origin lambda functions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 38
          },
          "name": "edgeToOriginLambdas",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "aws-cdk-lib.aws_cloudfront.EdgeLambda"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The IAM Role for the edge to origin function."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 43
          },
          "name": "edgeToOriginRole",
          "type": {
            "fqn": "aws-cdk-lib.aws_iam.Role"
          }
        }
      ],
      "symbolId": "src/MicroAppsEdgeToOrigin:IMicroAppsEdgeToOrigin"
    },
    "@pwrdrvr/microapps-cdk.IMicroAppsS3": {
      "assembly": "@pwrdrvr/microapps-cdk",
      "docs": {
        "stability": "experimental",
        "summary": "Represents a MicroApps S3."
      },
      "fqn": "@pwrdrvr/microapps-cdk.IMicroAppsS3",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/MicroAppsS3.ts",
        "line": 10
      },
      "name": "IMicroAppsS3",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "S3 bucket for deployed applications."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsS3.ts",
            "line": 14
          },
          "name": "bucketApps",
          "type": {
            "fqn": "aws-cdk-lib.aws_s3.IBucket"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "CloudFront Origin Access Identity for the deployed applications bucket."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsS3.ts",
            "line": 19
          },
          "name": "bucketAppsOAI",
          "type": {
            "fqn": "aws-cdk-lib.aws_cloudfront.OriginAccessIdentity"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "CloudFront Origin for the deployed applications bucket Marked with `x-microapps-origin: app` so the OriginRequest function knows to send the request to the application origin first, if configured for a particular application."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsS3.ts",
            "line": 27
          },
          "name": "bucketAppsOriginApp",
          "type": {
            "fqn": "aws-cdk-lib.aws_cloudfront_origins.S3Origin"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "CloudFront Origin for the deployed applications bucket Marked with `x-microapps-origin: s3` so the OriginRequest function knows to NOT send the request to the application origin and instead let it fall through to the S3 bucket."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsS3.ts",
            "line": 35
          },
          "name": "bucketAppsOriginS3",
          "type": {
            "fqn": "aws-cdk-lib.aws_cloudfront_origins.S3Origin"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "S3 bucket for staged applications (prior to deploy)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsS3.ts",
            "line": 40
          },
          "name": "bucketAppsStaging",
          "type": {
            "fqn": "aws-cdk-lib.aws_s3.IBucket"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "S3 bucket for CloudFront logs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsS3.ts",
            "line": 45
          },
          "name": "bucketLogs",
          "type": {
            "fqn": "aws-cdk-lib.aws_s3.IBucket"
          }
        }
      ],
      "symbolId": "src/MicroAppsS3:IMicroAppsS3"
    },
    "@pwrdrvr/microapps-cdk.IMicroAppsSvcs": {
      "assembly": "@pwrdrvr/microapps-cdk",
      "docs": {
        "stability": "experimental",
        "summary": "Represents a MicroApps Services."
      },
      "fqn": "@pwrdrvr/microapps-cdk.IMicroAppsSvcs",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/MicroAppsSvcs.ts",
        "line": 183
      },
      "name": "IMicroAppsSvcs",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Lambda function for the Deployer."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsSvcs.ts",
            "line": 192
          },
          "name": "deployerFunc",
          "type": {
            "fqn": "aws-cdk-lib.aws_lambda.Function"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "DynamoDB table used by Router, Deployer, and Release console app."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsSvcs.ts",
            "line": 187
          },
          "name": "table",
          "type": {
            "fqn": "aws-cdk-lib.aws_dynamodb.ITable"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Lambda function for the Router."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsSvcs.ts",
            "line": 197
          },
          "name": "routerFunc",
          "optional": true,
          "type": {
            "fqn": "aws-cdk-lib.aws_lambda.Function"
          }
        }
      ],
      "symbolId": "src/MicroAppsSvcs:IMicroAppsSvcs"
    },
    "@pwrdrvr/microapps-cdk.IMicroAppsTable": {
      "assembly": "@pwrdrvr/microapps-cdk",
      "docs": {
        "stability": "experimental",
        "summary": "Represents a MicroAppsTable."
      },
      "fqn": "@pwrdrvr/microapps-cdk.IMicroAppsTable",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/MicroAppsTable.ts",
        "line": 38
      },
      "name": "IMicroAppsTable",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "DynamoDB table used by Router, Deployer, and Release console app."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsTable.ts",
            "line": 42
          },
          "name": "table",
          "type": {
            "fqn": "aws-cdk-lib.aws_dynamodb.Table"
          }
        }
      ],
      "symbolId": "src/MicroAppsTable:IMicroAppsTable"
    },
    "@pwrdrvr/microapps-cdk.MicroApps": {
      "assembly": "@pwrdrvr/microapps-cdk",
      "base": "constructs.Construct",
      "docs": {
        "custom": {
          "warning": "This construct is not intended for production use.\nIn a production stack the DynamoDB Table, API Gateway, S3 Buckets,\netc. should be created in a \"durable\" stack where the IDs will not\nchange and where changes to the MicroApps construct will not\ncause failures to deploy or data to be deleted."
        },
        "remarks": "Use this construct to create a PoC working entire stack.\n\nDo not use this construct when adding MicroApps to an existing\nCloudFront, API Gateway, S3 Bucket, etc. or where access\nto all features of the AWS Resources are needed (e.g. to\nadd additional Behaviors to the CloudFront distribution, set authorizors\non API Gateway, etc.).",
        "see": "{@link https://github.com/pwrdrvr/microapps-core/blob/main/packages/cdk/lib/MicroApps.ts example usage in a CDK Stack }",
        "stability": "experimental",
        "summary": "Create a new MicroApps \"turnkey\" construct for simple deployments and for initial evaulation of the MicroApps framework."
      },
      "fqn": "@pwrdrvr/microapps-cdk.MicroApps",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/MicroApps.ts",
          "line": 377
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "props",
            "optional": true,
            "type": {
              "fqn": "@pwrdrvr/microapps-cdk.MicroAppsProps"
            }
          }
        ]
      },
      "interfaces": [
        "@pwrdrvr/microapps-cdk.IMicroApps"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "src/MicroApps.ts",
        "line": 356
      },
      "name": "MicroApps",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "{@inheritdoc IMicroAppsCF}."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 358
          },
          "name": "cf",
          "overrides": "@pwrdrvr/microapps-cdk.IMicroApps",
          "type": {
            "fqn": "@pwrdrvr/microapps-cdk.IMicroAppsCF"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "{@inheritdoc IMicroAppsS3}."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 368
          },
          "name": "s3",
          "overrides": "@pwrdrvr/microapps-cdk.IMicroApps",
          "type": {
            "fqn": "@pwrdrvr/microapps-cdk.IMicroAppsS3"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "{@inheritdoc IMicroAppsSvcs}."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 373
          },
          "name": "svcs",
          "overrides": "@pwrdrvr/microapps-cdk.IMicroApps",
          "type": {
            "fqn": "@pwrdrvr/microapps-cdk.IMicroAppsSvcs"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "{@inheritdoc IMicroAppsEdgeToOrigin}."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 363
          },
          "name": "edgeToOrigin",
          "optional": true,
          "overrides": "@pwrdrvr/microapps-cdk.IMicroApps",
          "type": {
            "fqn": "@pwrdrvr/microapps-cdk.IMicroAppsEdgeToOrigin"
          }
        }
      ],
      "symbolId": "src/MicroApps:MicroApps"
    },
    "@pwrdrvr/microapps-cdk.MicroAppsCF": {
      "assembly": "@pwrdrvr/microapps-cdk",
      "base": "constructs.Construct",
      "docs": {
        "stability": "experimental",
        "summary": "Create a new MicroApps CloudFront Distribution."
      },
      "fqn": "@pwrdrvr/microapps-cdk.MicroAppsCF",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/MicroAppsCF.ts",
          "line": 350
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "props",
            "type": {
              "fqn": "@pwrdrvr/microapps-cdk.MicroAppsCFProps"
            }
          }
        ]
      },
      "interfaces": [
        "@pwrdrvr/microapps-cdk.IMicroAppsCF"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "src/MicroAppsCF.ts",
        "line": 220
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add API Gateway and S3 routes to an existing CloudFront Distribution."
          },
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 279
          },
          "name": "addRoutes",
          "parameters": [
            {
              "name": "_scope",
              "type": {
                "fqn": "constructs.Construct"
              }
            },
            {
              "name": "props",
              "type": {
                "fqn": "@pwrdrvr/microapps-cdk.AddRoutesOptions"
              }
            }
          ],
          "static": true
        },
        {
          "docs": {
            "remarks": "If a custom domain name is NOT used for the origin then a policy\nwill be created.\n\nIf a custom domain name IS used for the origin then the ALL_VIEWER\npolicy will be returned.  This policy passes the Host header to the\norigin, which is fine when using a custom domain name on the origin.",
            "stability": "experimental",
            "summary": "Create or get the origin request policy."
          },
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 234
          },
          "name": "createAPIOriginPolicy",
          "parameters": [
            {
              "name": "_scope",
              "type": {
                "fqn": "constructs.Construct"
              }
            },
            {
              "name": "_props",
              "type": {
                "fqn": "@pwrdrvr/microapps-cdk.CreateAPIOriginPolicyOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "aws-cdk-lib.aws_cloudfront.IOriginRequestPolicy"
            }
          },
          "static": true
        }
      ],
      "name": "MicroAppsCF",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The CloudFront distribution."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 346
          },
          "name": "cloudFrontDistro",
          "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsCF",
          "type": {
            "fqn": "aws-cdk-lib.aws_cloudfront.Distribution"
          }
        }
      ],
      "symbolId": "src/MicroAppsCF:MicroAppsCF"
    },
    "@pwrdrvr/microapps-cdk.MicroAppsCFProps": {
      "assembly": "@pwrdrvr/microapps-cdk",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Properties to initialize an instance of `MicroAppsCF`."
      },
      "fqn": "@pwrdrvr/microapps-cdk.MicroAppsCFProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/MicroAppsCF.ts",
        "line": 25
      },
      "name": "MicroAppsCFProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "S3 bucket origin for deployed applications Marked with `x-microapps-origin: app`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 45
          },
          "name": "bucketAppsOriginApp",
          "type": {
            "fqn": "aws-cdk-lib.aws_cloudfront_origins.S3Origin"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "S3 bucket origin for deployed applications Marked with `x-microapps-origin: s3`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 39
          },
          "name": "bucketAppsOriginS3",
          "type": {
            "fqn": "aws-cdk-lib.aws_cloudfront_origins.S3Origin"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- resource names auto assigned",
            "example": "microapps",
            "stability": "experimental",
            "summary": "Optional asset name root."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 74
          },
          "name": "assetNameRoot",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "none",
            "example": "-dev-pr-12",
            "stability": "experimental",
            "summary": "Optional asset name suffix."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 82
          },
          "name": "assetNameSuffix",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "S3 bucket for CloudFront logs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 50
          },
          "name": "bucketLogs",
          "optional": true,
          "type": {
            "fqn": "aws-cdk-lib.aws_s3.IBucket"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "ACM Certificate that covers `domainNameEdge` name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 87
          },
          "name": "certEdge",
          "optional": true,
          "type": {
            "fqn": "aws-cdk-lib.aws_certificatemanager.ICertificate"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true if httpApi is provided",
            "remarks": "When false API routes with a period in the path will get routed to S3.\n\nWhen true API routes that contain /api/ in the path will get routed to API Gateway\neven if they have a period in the path.",
            "stability": "experimental",
            "summary": "Create an extra Behavior (Route) for /api/ that allows API routes to have a period in them."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 112
          },
          "name": "createAPIPathRoute",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true if httpApi is provided",
            "remarks": "When false API routes with a period in the path will get routed to S3.\n\nWhen true API routes that contain /_next/data/ in the path will get routed to API Gateway\neven if they have a period in the path.",
            "stability": "experimental",
            "summary": "Create an extra Behavior (Route) for /_next/data/ This route is used by Next.js to load data from the API Gateway on `getServerSideProps` calls.  The requests can end in `.json`, which would cause them to be routed to S3 if this route is not created."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 127
          },
          "name": "createNextDataPathRoute",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "auto-assigned",
            "example": "apps.pwrdrvr.com",
            "stability": "experimental",
            "summary": "CloudFront Distribution domain name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 58
          },
          "name": "domainNameEdge",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- retrieved from httpApi, if possible",
            "example": "apps.pwrdrvr.com",
            "stability": "experimental",
            "summary": "API Gateway custom origin domain name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 66
          },
          "name": "domainNameOrigin",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no edge to API Gateway origin functions added",
            "stability": "experimental",
            "summary": "Configuration of the edge to origin lambda functions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 134
          },
          "name": "edgeLambdas",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "aws-cdk-lib.aws_cloudfront.EdgeLambda"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- none",
            "remarks": "This should be the region where the DynamoDB is located so the\nEdgeToOrigin calls have the lowest latency (~1 ms).",
            "stability": "experimental",
            "summary": "Optional Origin Shield Region."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 144
          },
          "name": "originShieldRegion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Route53 zone in which to create optional `domainNameEdge` record."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 92
          },
          "name": "r53Zone",
          "optional": true,
          "type": {
            "fqn": "aws-cdk-lib.aws_route53.IHostedZone"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- per resource default",
            "remarks": "Note: if set to DESTROY the S3 buckes will have `autoDeleteObjects` set to `true`",
            "stability": "experimental",
            "summary": "RemovalPolicy override for child resources."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 33
          },
          "name": "removalPolicy",
          "optional": true,
          "type": {
            "fqn": "aws-cdk-lib.RemovalPolicy"
          }
        },
        {
          "abstract": true,
          "docs": {
            "example": "dev/",
            "stability": "experimental",
            "summary": "Path prefix on the root of the CloudFront distribution."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsCF.ts",
            "line": 99
          },
          "name": "rootPathPrefix",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/MicroAppsCF:MicroAppsCFProps"
    },
    "@pwrdrvr/microapps-cdk.MicroAppsChildDeployer": {
      "assembly": "@pwrdrvr/microapps-cdk",
      "base": "constructs.Construct",
      "docs": {
        "stability": "experimental",
        "summary": "Create a new MicroApps Child Deployer construct."
      },
      "fqn": "@pwrdrvr/microapps-cdk.MicroAppsChildDeployer",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/MicroAppsChildDeployer.ts",
          "line": 86
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "props",
            "optional": true,
            "type": {
              "fqn": "@pwrdrvr/microapps-cdk.MicroAppsChildDeployerProps"
            }
          }
        ]
      },
      "interfaces": [
        "@pwrdrvr/microapps-cdk.IMicroAppsChildDeployer"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "src/MicroAppsChildDeployer.ts",
        "line": 80
      },
      "name": "MicroAppsChildDeployer",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Lambda function for the Deployer."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsChildDeployer.ts",
            "line": 82
          },
          "name": "deployerFunc",
          "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsChildDeployer",
          "type": {
            "fqn": "aws-cdk-lib.aws_lambda.IFunction"
          }
        }
      ],
      "symbolId": "src/MicroAppsChildDeployer:MicroAppsChildDeployer"
    },
    "@pwrdrvr/microapps-cdk.MicroAppsChildDeployerProps": {
      "assembly": "@pwrdrvr/microapps-cdk",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Properties to initialize an instance of `MicroAppsChildDeployer`."
      },
      "fqn": "@pwrdrvr/microapps-cdk.MicroAppsChildDeployerProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/MicroAppsChildDeployer.ts",
        "line": 13
      },
      "name": "MicroAppsChildDeployerProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Application environment, passed as `NODE_ENV` to the Router and Deployer Lambda functions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsChildDeployer.ts",
            "line": 39
          },
          "name": "appEnv",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "ARN of the parent Deployer Lambda Function."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsChildDeployer.ts",
            "line": 17
          },
          "name": "parentDeployerLambdaARN",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- resource names auto assigned",
            "example": "microapps",
            "stability": "experimental",
            "summary": "Optional asset name root."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsChildDeployer.ts",
            "line": 47
          },
          "name": "assetNameRoot",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "none",
            "example": "-dev-pr-12",
            "stability": "experimental",
            "summary": "Optional asset name suffix."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsChildDeployer.ts",
            "line": 55
          },
          "name": "assetNameSuffix",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "2 minutes",
            "remarks": "For larger applications this needs to be set up to 2-5 minutes for the S3 copy",
            "stability": "experimental",
            "summary": "Deployer timeout."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsChildDeployer.ts",
            "line": 64
          },
          "name": "deployerTimeout",
          "optional": true,
          "type": {
            "fqn": "aws-cdk-lib.Duration"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "For child accounts this can be blank as it is retrieved from the parent Deployer",
            "stability": "experimental",
            "summary": "ARN of the IAM Role for the Edge to Origin Lambda Function."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsChildDeployer.ts",
            "line": 24
          },
          "name": "edgeToOriginRoleARN",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- per resource default",
            "remarks": "Note: if set to DESTROY the S3 buckes will have `autoDeleteObjects` set to `true`",
            "stability": "experimental",
            "summary": "RemovalPolicy override for child resources."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsChildDeployer.ts",
            "line": 33
          },
          "name": "removalPolicy",
          "optional": true,
          "type": {
            "fqn": "aws-cdk-lib.RemovalPolicy"
          }
        }
      ],
      "symbolId": "src/MicroAppsChildDeployer:MicroAppsChildDeployerProps"
    },
    "@pwrdrvr/microapps-cdk.MicroAppsEdgeToOrigin": {
      "assembly": "@pwrdrvr/microapps-cdk",
      "base": "constructs.Construct",
      "docs": {
        "stability": "experimental",
        "summary": "Create a new MicroApps Edge to Origin Function w/ `config.yml`."
      },
      "fqn": "@pwrdrvr/microapps-cdk.MicroAppsEdgeToOrigin",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/MicroAppsEdgeToOrigin.ts",
          "line": 318
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "props",
            "type": {
              "fqn": "@pwrdrvr/microapps-cdk.MicroAppsEdgeToOriginProps"
            }
          }
        ]
      },
      "interfaces": [
        "@pwrdrvr/microapps-cdk.IMicroAppsEdgeToOrigin"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "src/MicroAppsEdgeToOrigin.ts",
        "line": 283
      },
      "methods": [
        {
          "docs": {
            "returns": "",
            "stability": "experimental",
            "summary": "Generate the yaml config for the edge lambda."
          },
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 289
          },
          "name": "generateEdgeToOriginConfig",
          "parameters": [
            {
              "name": "props",
              "type": {
                "fqn": "@pwrdrvr/microapps-cdk.GenerateEdgeToOriginConfigOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          },
          "static": true
        }
      ],
      "name": "MicroAppsEdgeToOrigin",
      "properties": [
        {
          "docs": {
            "remarks": "The generated `config.yml` is included in the Lambda's code.",
            "stability": "experimental",
            "summary": "The edge to origin function for API Gateway Request Origin Edge Lambda."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 304
          },
          "name": "edgeToOriginFunction",
          "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsEdgeToOrigin",
          "type": {
            "union": {
              "types": [
                {
                  "fqn": "aws-cdk-lib.aws_lambda.Function"
                },
                {
                  "fqn": "aws-cdk-lib.aws_cloudfront.experimental.EdgeFunction"
                }
              ]
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Configuration of the edge to origin lambda functions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 309
          },
          "name": "edgeToOriginLambdas",
          "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsEdgeToOrigin",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "aws-cdk-lib.aws_cloudfront.EdgeLambda"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The IAM Role for the edge to origin function."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 314
          },
          "name": "edgeToOriginRole",
          "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsEdgeToOrigin",
          "type": {
            "fqn": "aws-cdk-lib.aws_iam.Role"
          }
        }
      ],
      "symbolId": "src/MicroAppsEdgeToOrigin:MicroAppsEdgeToOrigin"
    },
    "@pwrdrvr/microapps-cdk.MicroAppsEdgeToOriginProps": {
      "assembly": "@pwrdrvr/microapps-cdk",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Properties to initialize an instance of `MicroAppsEdgeToOrigin`."
      },
      "fqn": "@pwrdrvr/microapps-cdk.MicroAppsEdgeToOriginProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/MicroAppsEdgeToOrigin.ts",
        "line": 49
      },
      "name": "MicroAppsEdgeToOriginProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "Can only be trusted if `signingMode` is enabled, which restricts\naccess to API Gateway to only IAM signed requests.\n\nNote: if true, creates OriginRequest Lambda @ Edge function for API Gateway Origin",
            "stability": "experimental",
            "summary": "Adds an X-Forwarded-Host-Header when calling API Gateway."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 98
          },
          "name": "addXForwardedHostHeader",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "stability": "experimental",
            "summary": "Account IDs allowed for cross-account Function URL invocations."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 158
          },
          "name": "allowedFunctionUrlAccounts",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "none",
            "example": ": ['en', 'fr', 'es']",
            "stability": "experimental",
            "summary": "List of allowed locale prefixes for pages."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 87
          },
          "name": "allowedLocalePrefixes",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- resource names auto assigned",
            "example": "microapps",
            "stability": "experimental",
            "summary": "Optional asset name root."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 63
          },
          "name": "assetNameRoot",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "none",
            "example": "-dev-pr-12",
            "stability": "experimental",
            "summary": "Optional asset name suffix."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 71
          },
          "name": "assetNameSuffix",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "undefined",
            "remarks": "Note that Lambda FunctionURLs get the region from the Lambda ARN\nand do not need this to be configured.",
            "stability": "experimental",
            "summary": "Origin region that API Gateway will be deployed to, used for the config.yml on the Edge function to sign requests for the correct region."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 135
          },
          "name": "originRegion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- per resource default",
            "stability": "experimental",
            "summary": "RemovalPolicy override for child resources."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 55
          },
          "name": "removalPolicy",
          "optional": true,
          "type": {
            "fqn": "aws-cdk-lib.RemovalPolicy"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "This is necessary when API Gateway has not been configured\nwith a custom domain name that matches the exact domain name used by the CloudFront\nDistribution AND when the OriginRequestPolicy.HeadersBehavior is set\nto pass all headers to the origin.\n\nNote: if true, creates OriginRequest Lambda @ Edge function for API Gateway Origin",
            "stability": "experimental",
            "summary": "Replaces Host header (which will be the Edge domain name) with the Origin domain name when enabled."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 110
          },
          "name": "replaceHostHeader",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "none",
            "example": "dev/",
            "stability": "experimental",
            "summary": "Path prefix on the root of the API Gateway Stage."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 79
          },
          "name": "rootPathPrefix",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Enable invoking API Gateway from the Edge Lambda."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 151
          },
          "name": "setupApiGatewayPermissions",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "'sign'",
            "remarks": "'sign' - Uses request headers for auth.\n'presign' - Uses query string for auth.\n\nIf enabled,\n\nNote: if 'sign' or 'presign', creates OriginRequest Lambda @ Edge function for API Gateway Origin",
            "stability": "experimental",
            "summary": "Requires IAM auth on the API Gateway origin if not set to 'none'."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 123
          },
          "name": "signingMode",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Must be a full ARN as this can be cross region.\n\nImplies that 2nd generation routing is enabled.",
            "stability": "experimental",
            "summary": "DynamoDB Table Name for apps/versions/rules."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsEdgeToOrigin.ts",
            "line": 144
          },
          "name": "tableRulesArn",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/MicroAppsEdgeToOrigin:MicroAppsEdgeToOriginProps"
    },
    "@pwrdrvr/microapps-cdk.MicroAppsProps": {
      "assembly": "@pwrdrvr/microapps-cdk",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Properties to initialize an instance of `MicroApps`."
      },
      "fqn": "@pwrdrvr/microapps-cdk.MicroAppsProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/MicroApps.ts",
        "line": 38
      },
      "name": "MicroAppsProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "dev",
            "stability": "experimental",
            "summary": "Passed to NODE_ENV of Router and Deployer Lambda functions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 53
          },
          "name": "appEnv",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "Can only be trusted if `signingMode` is enabled, which restricts\naccess to API Gateway to only IAM signed requests.\n\nNote: if true, creates OriginRequest Lambda @ Edge function for API Gateway Origin",
            "stability": "experimental",
            "summary": "Adds an X-Forwarded-Host-Header when calling API Gateway."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 224
          },
          "name": "addXForwardedHostHeader",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "stability": "experimental",
            "summary": "Account IDs allowed for cross-account Function URL invocations."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 303
          },
          "name": "allowedFunctionUrlAccounts",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "none",
            "example": ": ['en', 'fr', 'es']",
            "stability": "experimental",
            "summary": "List of allowed locale prefixes for pages."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 311
          },
          "name": "allowedLocalePrefixes",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- resource names auto assigned",
            "example": "microapps",
            "stability": "experimental",
            "summary": "Optional asset name root."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 61
          },
          "name": "assetNameRoot",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "none",
            "example": "-dev-pr-12",
            "stability": "experimental",
            "summary": "Optional asset name suffix."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 69
          },
          "name": "assetNameSuffix",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Certificate in US-East-1 for the CloudFront distribution."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 79
          },
          "name": "certEdge",
          "optional": true,
          "type": {
            "fqn": "aws-cdk-lib.aws_certificatemanager.ICertificate"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Certificate in deployed region for the API Gateway."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 84
          },
          "name": "certOrigin",
          "optional": true,
          "type": {
            "fqn": "aws-cdk-lib.aws_certificatemanager.ICertificate"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "experimental",
            "summary": "Create API Gateway for non-edge invocation."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 185
          },
          "name": "createAPIGateway",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "When false API routes with a period in the path will get routed to S3.\n\nWhen true API routes that contain /api/ in the path will get routed to API Gateway\neven if they have a period in the path.",
            "stability": "experimental",
            "summary": "Create an extra Behavior (Route) for /api/ that allows API routes to have a period in them."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 198
          },
          "name": "createAPIPathRoute",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "When false API routes with a period in the path will get routed to S3.\n\nWhen true API routes that contain /_next/data/ in the path will get routed to API Gateway\neven if they have a period in the path.",
            "stability": "experimental",
            "summary": "Create an extra Behavior (Route) for /_next/data/ This route is used by Next.js to load data from the API Gateway on `getServerSideProps` calls.  The requests can end in `.json`, which would cause them to be routed to S3 if this route is not created."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 213
          },
          "name": "createNextDataPathRoute",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "auto-assigned",
            "example": "apps.pwrdrvr.com",
            "stability": "experimental",
            "summary": "Optional custom domain name for the CloudFront distribution."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 163
          },
          "name": "domainNameEdge",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "auto-assigned",
            "example": "apps-origin.pwrdrvr.com",
            "stability": "experimental",
            "summary": "Optional custom domain name for the API Gateway HTTPv2 API."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 171
          },
          "name": "domainNameOrigin",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Additional edge lambda functions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 296
          },
          "name": "edgeLambdas",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "aws-cdk-lib.aws_cloudfront.EdgeLambda"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Additional IAM Role ARNs that should be allowed to invoke apps in child accounts."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 316
          },
          "name": "edgeToOriginRoleARNs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "undefined",
            "stability": "experimental",
            "summary": "Origin region that API Gateway or Lambda function will be deployed to, used for the config.yml on the Edge function to sign requests for the correct region."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 258
          },
          "name": "originRegion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "originRegion if specified, otherwise undefined",
            "remarks": "This should be the region where the DynamoDB is located so the\nEdgeToOrigin calls have the lowest latency (~1 ms).",
            "stability": "experimental",
            "summary": "Optional Origin Shield Region."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 268
          },
          "name": "originShieldRegion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Route53 zone in which to create optional `domainNameEdge` record."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 74
          },
          "name": "r53Zone",
          "optional": true,
          "type": {
            "fqn": "aws-cdk-lib.aws_route53.IHostedZone"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- per resource default",
            "remarks": "Note: if set to DESTROY the S3 buckes will have `autoDeleteObjects` set to `true`",
            "stability": "experimental",
            "summary": "RemovalPolicy override for child resources."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 46
          },
          "name": "removalPolicy",
          "optional": true,
          "type": {
            "fqn": "aws-cdk-lib.RemovalPolicy"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "This is necessary when API Gateway has not been configured\nwith a custom domain name that matches the exact domain name used by the CloudFront\nDistribution AND when the OriginRequestPolicy.HeadersBehavior is set\nto pass all headers to the origin.\n\nNote: if true, creates OriginRequest Lambda @ Edge function for API Gateway Origin",
            "stability": "experimental",
            "summary": "Replaces Host header (which will be the Edge domain name) with the Origin domain name when enabled."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 236
          },
          "name": "replaceHostHeader",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "example": "dev/",
            "stability": "experimental",
            "summary": "Path prefix on the root of the CloudFront distribution."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 178
          },
          "name": "rootPathPrefix",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "example": "[ 'AROA1234567890123' ]",
            "remarks": "AROAs of the IAM Role to exclude from the DENY rules on the S3 Bucket Policy.\nThis allows sessions that assume the IAM Role to be excluded from the\nDENY rules on the S3 Bucket Policy.\n\nTypically any admin roles / users that need to view or manage the S3 Bucket\nwould be added to this list.\n\nRoles / users that are used directly, not assumed, can be added to `s3PolicyBypassRoleNames` instead.\n\nNote: This AROA must be specified to prevent this policy from locking\nout non-root sessions that have assumed the admin role.\n\nThe notPrincipals will only match the role name exactly and will not match\nany session that has assumed the role since notPrincipals does not allow\nwildcard matches and does not do wildcard matches implicitly either.\n\nThe AROA must be used because there are only 3 Principal variables available:\n https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#principaltable\n aws:username, aws:userid, aws:PrincipalTag\n\nFor an assumed role, aws:username is blank, aws:userid is:\n [unique id AKA AROA for Role]:[session name]\n\nTable of unique ID prefixes such as AROA:\n https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-prefixes\n\nThe name of the role is simply not available for an assumed role and, if it was,\na complicated comparison would be requierd to prevent exclusion\nof applying the Deny Rule to roles from other accounts.\n\nTo get the AROA with the AWS CLI:\n  aws iam get-role --role-name ROLE-NAME\n  aws iam get-user --user-name USER-NAME",
            "see": "s3StrictBucketPolicy",
            "stability": "experimental",
            "summary": "Applies when using s3StrictBucketPolicy = true."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 155
          },
          "name": "s3PolicyBypassAROAs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "example": "['arn:aws:iam::1234567890123:role/AdminAccess', 'arn:aws:iam::1234567890123:user/MyAdminUser']",
            "remarks": "IAM Role or IAM User names to exclude from the DENY rules on the S3 Bucket Policy.\n\nRoles that are Assumed must instead have their AROA added to `s3PolicyBypassAROAs`.\n\nTypically any admin roles / users that need to view or manage the S3 Bucket\nwould be added to this list.",
            "see": "s3PolicyBypassAROAs",
            "stability": "experimental",
            "summary": "Applies when using s3StrictBucketPolicy = true."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 112
          },
          "name": "s3PolicyBypassPrincipalARNs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "This setting should be used when applications are less than\nfully trusted.",
            "stability": "experimental",
            "summary": "Use a strict S3 Bucket Policy that prevents applications from reading/writing/modifying/deleting files in the S3 Bucket outside of the path that is specific to their app/version."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 96
          },
          "name": "s3StrictBucketPolicy",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "'sign'",
            "remarks": "'sign' - Uses request headers for auth.\n'presign' - Uses query string for auth.\n\nIf enabled,\n\nNote: if 'sign' or 'presign', creates OriginRequest Lambda @ Edge function for API Gateway Origin",
            "stability": "experimental",
            "summary": "Requires IAM auth on the API Gateway origin if not set to 'none'."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 249
          },
          "name": "signingMode",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "warning": "- It is *strongly* suggested that production stacks create\ntheir own DynamoDB Table and pass it into this construct, for protection\nagainst data loss due to logical ID changes, the ability to configure\nProvisioned capacity with Auto Scaling, the ability to add additional indices, etc.\n\nRequirements:\n- Hash Key: `PK`\n- Sort Key: `SK`"
            },
            "default": "created by construct",
            "stability": "experimental",
            "summary": "Existing table for apps/versions/rules."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 284
          },
          "name": "table",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "fqn": "aws-cdk-lib.aws_dynamodb.ITable"
                },
                {
                  "fqn": "aws-cdk-lib.aws_dynamodb.ITableV2"
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "This is required when using v2 routing",
            "stability": "experimental",
            "summary": "Pre-set table name for apps/versions/rules."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroApps.ts",
            "line": 291
          },
          "name": "tableNameForEdgeToOrigin",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ],
      "symbolId": "src/MicroApps:MicroAppsProps"
    },
    "@pwrdrvr/microapps-cdk.MicroAppsS3": {
      "assembly": "@pwrdrvr/microapps-cdk",
      "base": "constructs.Construct",
      "docs": {
        "remarks": "These should be created in a stack that will not be deleted if\nthere are breaking changes to MicroApps in the future.",
        "stability": "experimental",
        "summary": "Create the durable MicroApps S3 Buckets."
      },
      "fqn": "@pwrdrvr/microapps-cdk.MicroAppsS3",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/MicroAppsS3.ts",
          "line": 146
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "props",
            "optional": true,
            "type": {
              "fqn": "@pwrdrvr/microapps-cdk.MicroAppsS3Props"
            }
          }
        ]
      },
      "interfaces": [
        "@pwrdrvr/microapps-cdk.IMicroAppsS3"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "src/MicroAppsS3.ts",
        "line": 115
      },
      "name": "MicroAppsS3",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "S3 bucket for deployed applications."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsS3.ts",
            "line": 117
          },
          "name": "bucketApps",
          "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsS3",
          "type": {
            "fqn": "aws-cdk-lib.aws_s3.IBucket"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "CloudFront Origin Access Identity for the deployed applications bucket."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsS3.ts",
            "line": 122
          },
          "name": "bucketAppsOAI",
          "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsS3",
          "type": {
            "fqn": "aws-cdk-lib.aws_cloudfront.OriginAccessIdentity"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "CloudFront Origin for the deployed applications bucket Marked with `x-microapps-origin: app` so the OriginRequest function knows to send the request to the application origin first, if configured for a particular application."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsS3.ts",
            "line": 127
          },
          "name": "bucketAppsOriginApp",
          "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsS3",
          "type": {
            "fqn": "aws-cdk-lib.aws_cloudfront_origins.S3Origin"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "CloudFront Origin for the deployed applications bucket Marked with `x-microapps-origin: s3` so the OriginRequest function knows to NOT send the request to the application origin and instead let it fall through to the S3 bucket."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsS3.ts",
            "line": 132
          },
          "name": "bucketAppsOriginS3",
          "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsS3",
          "type": {
            "fqn": "aws-cdk-lib.aws_cloudfront_origins.S3Origin"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "S3 bucket for staged applications (prior to deploy)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsS3.ts",
            "line": 137
          },
          "name": "bucketAppsStaging",
          "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsS3",
          "type": {
            "fqn": "aws-cdk-lib.aws_s3.IBucket"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "S3 bucket for CloudFront logs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsS3.ts",
            "line": 142
          },
          "name": "bucketLogs",
          "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsS3",
          "type": {
            "fqn": "aws-cdk-lib.aws_s3.IBucket"
          }
        }
      ],
      "symbolId": "src/MicroAppsS3:MicroAppsS3"
    },
    "@pwrdrvr/microapps-cdk.MicroAppsS3Props": {
      "assembly": "@pwrdrvr/microapps-cdk",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Properties to initialize an instance of `MicroAppsS3`."
      },
      "fqn": "@pwrdrvr/microapps-cdk.MicroAppsS3Props",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/MicroAppsS3.ts",
        "line": 51
      },
      "name": "MicroAppsS3Props",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- resource names auto assigned",
            "example": "microapps",
            "stability": "experimental",
            "summary": "Optional asset name root."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsS3.ts",
            "line": 88
          },
          "name": "assetNameRoot",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "none",
            "example": "-dev-pr-12",
            "stability": "experimental",
            "summary": "Optional asset name suffix."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsS3.ts",
            "line": 96
          },
          "name": "assetNameSuffix",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "auto-assigned",
            "stability": "experimental",
            "summary": "S3 deployed apps bucket name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsS3.ts",
            "line": 66
          },
          "name": "bucketAppsName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "auto-assigned",
            "stability": "experimental",
            "summary": "S3 staging apps bucket name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsS3.ts",
            "line": 73
          },
          "name": "bucketAppsStagingName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "auto-assigned",
            "stability": "experimental",
            "summary": "S3 logs bucket name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsS3.ts",
            "line": 80
          },
          "name": "bucketLogsName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- none",
            "remarks": "This should be the region where the DynamoDB is located so the\nEdgeToOrigin calls have the lowest latency (~1 ms).",
            "stability": "experimental",
            "summary": "Optional Origin Shield Region."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsS3.ts",
            "line": 106
          },
          "name": "originShieldRegion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- per resource default",
            "remarks": "Note: if set to DESTROY the S3 buckets will have `autoDeleteObjects` set to `true`",
            "stability": "experimental",
            "summary": "RemovalPolicy override for child resources."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsS3.ts",
            "line": 59
          },
          "name": "removalPolicy",
          "optional": true,
          "type": {
            "fqn": "aws-cdk-lib.RemovalPolicy"
          }
        }
      ],
      "symbolId": "src/MicroAppsS3:MicroAppsS3Props"
    },
    "@pwrdrvr/microapps-cdk.MicroAppsSvcs": {
      "assembly": "@pwrdrvr/microapps-cdk",
      "base": "constructs.Construct",
      "docs": {
        "stability": "experimental",
        "summary": "Create a new MicroApps Services construct, including the Deployer and Router Lambda Functions, and the DynamoDB Table used by both."
      },
      "fqn": "@pwrdrvr/microapps-cdk.MicroAppsSvcs",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/MicroAppsSvcs.ts",
          "line": 221
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "props",
            "optional": true,
            "type": {
              "fqn": "@pwrdrvr/microapps-cdk.MicroAppsSvcsProps"
            }
          }
        ]
      },
      "interfaces": [
        "@pwrdrvr/microapps-cdk.IMicroAppsSvcs"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "src/MicroAppsSvcs.ts",
        "line": 204
      },
      "name": "MicroAppsSvcs",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Lambda function for the Deployer."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsSvcs.ts",
            "line": 212
          },
          "name": "deployerFunc",
          "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsSvcs",
          "type": {
            "fqn": "aws-cdk-lib.aws_lambda.Function"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "DynamoDB table used by Router, Deployer, and Release console app."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsSvcs.ts",
            "line": 207
          },
          "name": "table",
          "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsSvcs",
          "type": {
            "fqn": "aws-cdk-lib.aws_dynamodb.ITable"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Lambda function for the Router."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsSvcs.ts",
            "line": 217
          },
          "name": "routerFunc",
          "optional": true,
          "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsSvcs",
          "type": {
            "fqn": "aws-cdk-lib.aws_lambda.Function"
          }
        }
      ],
      "symbolId": "src/MicroAppsSvcs:MicroAppsSvcs"
    },
    "@pwrdrvr/microapps-cdk.MicroAppsSvcsProps": {
      "assembly": "@pwrdrvr/microapps-cdk",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Properties to initialize an instance of `MicroAppsSvcs`."
      },
      "fqn": "@pwrdrvr/microapps-cdk.MicroAppsSvcsProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/MicroAppsSvcs.ts",
        "line": 16
      },
      "name": "MicroAppsSvcsProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Application environment, passed as `NODE_ENV` to the Router and Deployer Lambda functions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsSvcs.ts",
            "line": 45
          },
          "name": "appEnv",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "S3 bucket for deployed applications."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsSvcs.ts",
            "line": 29
          },
          "name": "bucketApps",
          "type": {
            "fqn": "aws-cdk-lib.aws_s3.IBucket"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "CloudFront Origin Access Identity for the deployed applications bucket."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsSvcs.ts",
            "line": 34
          },
          "name": "bucketAppsOAI",
          "type": {
            "fqn": "aws-cdk-lib.aws_cloudfront.OriginAccessIdentity"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "S3 bucket for staged applications (prior to deploy)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsSvcs.ts",
            "line": 39
          },
          "name": "bucketAppsStaging",
          "type": {
            "fqn": "aws-cdk-lib.aws_s3.IBucket"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- resource names auto assigned",
            "example": "microapps",
            "stability": "experimental",
            "summary": "Optional asset name root."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsSvcs.ts",
            "line": 53
          },
          "name": "assetNameRoot",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "none",
            "example": "-dev-pr-12",
            "stability": "experimental",
            "summary": "Optional asset name suffix."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsSvcs.ts",
            "line": 61
          },
          "name": "assetNameSuffix",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "2 minutes",
            "remarks": "For larger applications this needs to be set up to 2-5 minutes for the S3 copy",
            "stability": "experimental",
            "summary": "Deployer timeout."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsSvcs.ts",
            "line": 172
          },
          "name": "deployerTimeout",
          "optional": true,
          "type": {
            "fqn": "aws-cdk-lib.Duration"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "ARN of the IAM Role for the Edge to Origin Lambda Function."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsSvcs.ts",
            "line": 177
          },
          "name": "edgeToOriginRoleARN",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- per resource default",
            "remarks": "Note: if set to DESTROY the S3 buckes will have `autoDeleteObjects` set to `true`",
            "stability": "experimental",
            "summary": "RemovalPolicy override for child resources."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsSvcs.ts",
            "line": 24
          },
          "name": "removalPolicy",
          "optional": true,
          "type": {
            "fqn": "aws-cdk-lib.RemovalPolicy"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Require IAM auth on API Gateway and Lambda Function URLs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsSvcs.ts",
            "line": 147
          },
          "name": "requireIAMAuthorization",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "none",
            "example": "dev/",
            "stability": "experimental",
            "summary": "Path prefix on the root of the deployment."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsSvcs.ts",
            "line": 140
          },
          "name": "rootPathPrefix",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "example": "[ 'AROA1234567890123' ]",
            "remarks": "AROAs of the IAM Role to exclude from the DENY rules on the S3 Bucket Policy.\nThis allows sessions that assume the IAM Role to be excluded from the\nDENY rules on the S3 Bucket Policy.\n\nTypically any admin roles / users that need to view or manage the S3 Bucket\nwould be added to this list.\n\nRoles / users that are used directly, not assumed, can be added to `s3PolicyBypassRoleNames` instead.\n\nNote: This AROA must be specified to prevent this policy from locking\nout non-root sessions that have assumed the admin role.\n\nThe notPrincipals will only match the role name exactly and will not match\nany session that has assumed the role since notPrincipals does not allow\nwildcard matches and does not do wildcard matches implicitly either.\n\nThe AROA must be used because there are only 3 Principal variables available:\n https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#principaltable\n aws:username, aws:userid, aws:PrincipalTag\n\nFor an assumed role, aws:username is blank, aws:userid is:\n [unique id AKA AROA for Role]:[session name]\n\nTable of unique ID prefixes such as AROA:\n https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-prefixes\n\nThe name of the role is simply not available for an assumed role and, if it was,\na complicated comparison would be requierd to prevent exclusion\nof applying the Deny Rule to roles from other accounts.\n\nTo get the AROA with the AWS CLI:\n  aws iam get-role --role-name ROLE-NAME\n  aws iam get-user --user-name USER-NAME",
            "see": "s3StrictBucketPolicy",
            "stability": "experimental",
            "summary": "Applies when using s3StrictBucketPolicy = true."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsSvcs.ts",
            "line": 132
          },
          "name": "s3PolicyBypassAROAs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "example": "['arn:aws:iam::1234567890123:role/AdminAccess', 'arn:aws:iam::1234567890123:user/MyAdminUser']",
            "remarks": "IAM Role or IAM User names to exclude from the DENY rules on the S3 Bucket Policy.\n\nRoles that are Assumed must instead have their AROA added to `s3PolicyBypassAROAs`.\n\nTypically any admin roles / users that need to view or manage the S3 Bucket\nwould be added to this list.",
            "see": "s3PolicyBypassAROAs",
            "stability": "experimental",
            "summary": "Applies when using s3StrictBucketPolicy = true."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsSvcs.ts",
            "line": 89
          },
          "name": "s3PolicyBypassPrincipalARNs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "This setting should be used when applications are less than\nfully trusted.",
            "stability": "experimental",
            "summary": "Use a strict S3 Bucket Policy that prevents applications from reading/writing/modifying/deleting files in the S3 Bucket outside of the path that is specific to their app/version."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsSvcs.ts",
            "line": 73
          },
          "name": "s3StrictBucketPolicy",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "warning": "- It is *strongly* suggested that production stacks create\ntheir own DynamoDB Table and pass it into this construct, for protection\nagainst data loss due to logical ID changes, the ability to configure\nProvisioned capacity with Auto Scaling, the ability to add additional indices, etc.\n\nRequirements:\n- Hash Key: `PK`\n- Sort Key: `SK`"
            },
            "default": "created by construct",
            "stability": "experimental",
            "summary": "Existing table for apps/versions/rules."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsSvcs.ts",
            "line": 163
          },
          "name": "table",
          "optional": true,
          "type": {
            "fqn": "aws-cdk-lib.aws_dynamodb.ITable"
          }
        }
      ],
      "symbolId": "src/MicroAppsSvcs:MicroAppsSvcsProps"
    },
    "@pwrdrvr/microapps-cdk.MicroAppsTable": {
      "assembly": "@pwrdrvr/microapps-cdk",
      "base": "constructs.Construct",
      "docs": {
        "custom": {
          "warning": "This construct is not intended for production use.\nIn a production stack the DynamoDB Table, API Gateway, S3 Buckets,\netc. should be created in a \"durable\" stack where the IDs will not\nchange and where changes to the MicroApps construct will not\ncause failures to deploy or data to be deleted."
        },
        "stability": "experimental",
        "summary": "Create a new MicroApps Table for apps / versions / rules."
      },
      "fqn": "@pwrdrvr/microapps-cdk.MicroAppsTable",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "src/MicroAppsTable.ts",
          "line": 60
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "props",
            "optional": true,
            "type": {
              "fqn": "@pwrdrvr/microapps-cdk.MicroAppsTableProps"
            }
          }
        ]
      },
      "interfaces": [
        "@pwrdrvr/microapps-cdk.IMicroAppsTable"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "src/MicroAppsTable.ts",
        "line": 54
      },
      "name": "MicroAppsTable",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "DynamoDB table used by Router, Deployer, and Release console app."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsTable.ts",
            "line": 56
          },
          "name": "table",
          "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsTable",
          "type": {
            "fqn": "aws-cdk-lib.aws_dynamodb.Table"
          }
        }
      ],
      "symbolId": "src/MicroAppsTable:MicroAppsTable"
    },
    "@pwrdrvr/microapps-cdk.MicroAppsTableProps": {
      "assembly": "@pwrdrvr/microapps-cdk",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Properties to initialize an instance of `MicroAppsTable`."
      },
      "fqn": "@pwrdrvr/microapps-cdk.MicroAppsTableProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "src/MicroAppsTable.ts",
        "line": 8
      },
      "name": "MicroAppsTableProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- resource names auto assigned",
            "example": "microapps",
            "stability": "experimental",
            "summary": "Optional asset name root."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsTable.ts",
            "line": 24
          },
          "name": "assetNameRoot",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "none",
            "example": "-dev-pr-12",
            "stability": "experimental",
            "summary": "Optional asset name suffix."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsTable.ts",
            "line": 32
          },
          "name": "assetNameSuffix",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- per resource default",
            "remarks": "Note: if set to DESTROY the S3 buckes will have `autoDeleteObjects` set to `true`",
            "stability": "experimental",
            "summary": "RemovalPolicy override for child resources."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "src/MicroAppsTable.ts",
            "line": 16
          },
          "name": "removalPolicy",
          "optional": true,
          "type": {
            "fqn": "aws-cdk-lib.RemovalPolicy"
          }
        }
      ],
      "symbolId": "src/MicroAppsTable:MicroAppsTableProps"
    }
  },
  "version": "1.1.2",
  "fingerprint": "5p8GFSluq7cpBDS355L+uEAQN/PIn+9ya4X5eauVwOY="
}