{ "author": { "email": "djonser1@gmail.com", "name": "Daniel Jonsén", "roles": [ "author" ] }, "dependencies": { "@catnekaise/cdk-iam-utilities": "^0.0.30", "aws-cdk-lib": "^2.82.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-v5": { "targets": { "dotnet": { "namespace": "Amazon.CDK.Asset.NodeProxyAgentV5", "packageId": "Amazon.CDK.Asset.NodeProxyAgentV5" }, "go": { "moduleName": "github.com/cdklabs/awscdk-asset-node-proxy-agent-go", "packageName": "nodeproxyagentv5" }, "java": { "maven": { "artifactId": "cdk-asset-node-proxy-agent-v5", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.cdk.asset.node.proxy.agent.v5" }, "js": { "npm": "@aws-cdk/asset-node-proxy-agent-v5" }, "python": { "distName": "aws-cdk.asset-node-proxy-agent-v5", "module": "aws_cdk.asset_node_proxy_agent_v5" } } }, "@catnekaise/cdk-iam-utilities": { "targets": { "dotnet": { "namespace": "Catnekaise.CDK.IamUtilities", "packageId": "Catnekaise.CDK.IamUtilities" }, "go": { "moduleName": "github.com/catnekaise/cdk-iam-utilities-go", "packageName": "cdk_iam_utilities" }, "java": { "maven": { "artifactId": "cdk-iam-utilities", "groupId": "com.catnekaise" }, "package": "com.catnekaise.cdk.iam_utilities" }, "js": { "npm": "@catnekaise/cdk-iam-utilities" }, "python": { "distName": "catnekaise.cdk-iam-utilities", "module": "catnekaise_cdk_iam_utilities" } } }, "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_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_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_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_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_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": "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_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_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_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_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_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_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_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_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_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_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_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": "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_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": "services.proton" }, "python": { "module": "aws_cdk.aws_proton" } } }, "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_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_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_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": "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_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_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_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": { "targets": { "dotnet": { "namespace": "Amazon.CDK.CloudAssembly.Schema" }, "java": { "package": "software.amazon.awscdk.cloudassembly.schema" }, "python": { "module": "aws_cdk.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": "Use ghrawel to deploy an AWS API Gateway RestAPI capable of returning GitHub App installation access tokens and use AWS IAM to control access to this API.", "docs": { "stability": "stable" }, "homepage": "https://github.com/catnekaise/ghrawel.git", "jsiiVersion": "5.5.2 (build 51c1bde)", "keywords": [ "api-gateway", "aws-iam", "cdk", "github", "github-actions", "github-app" ], "license": "Apache-2.0", "metadata": { "jsii": { "pacmak": { "hasDefaultInterfaces": true } }, "tscRootDir": "src" }, "name": "@catnekaise/ghrawel", "readme": { "markdown": "[![npm (scoped)](https://img.shields.io/npm/v/@catnekaise/ghrawel?style=flat-square)](https://www.npmjs.com/package/@catnekaise/ghrawel)\n[![Nuget](https://img.shields.io/nuget/v/Catnekaise.CDK.Ghrawel?style=flat-square)](https://www.nuget.org/packages/Catnekaise.CDK.Ghrawel/)\n[![PyPI](https://img.shields.io/pypi/v/catnekaise.ghrawel?style=flat-square)](https://pypi.org/project/catnekaise.ghrawel/)\n[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/catnekaise/ghrawel?sort=semver&style=flat-square)](https://github.com/catnekaise/ghrawel/releases)\n\n# ghrawel\n`gh`r`aw`el will aim to provide components that help integrate GitHub and AWS using primarily AWS CDK and minimal application code.\n\n# Token Provider\n\nUse this to deploy an AWS API Gateway RestAPI capable of returning GitHub App installation access tokens and use AWS IAM to control access to this API.\n\n## Table of Contents\n\n* [Use Case](#use-case)\n* [When not to use this](#when-not-to-use-this)\n* [How it Works](#how-it-works)\n* [Setup](#setup)\n * [Costs](#costs)\n * [1. GitHub](#1-github)\n * [2. AWS CDK](#2-aws-cdk)\n * [3. Add Private Key in Parameter Store](#3-add-private-key-in-parameter-store)\n * [4. Request a token](#4-request-a-token)\n * [5. Use the token](#5-use-the-token)\n * [6. Test limits of the token](#6-test-limits-of-the-token)\n * [7. Cleanup](#7-cleanup)\n* [Granting Access](#granting-access)\n* [Get Token - cURL](#get-token---curl)\n* [Get Token - GitHub Actions](#get-token---github-actions)\n* [Customize RestAPI and Lambda](#customize-restapi-and-lambda)\n* [Next Steps](#next-steps)\n * [Token Providers](#next-steps)\n * [AWS IAM](#next-steps)\n * [Application](#next-steps)\n * [Usage](#next-steps)\n * [GitHub Actions Attribute-based Access Control](#next-steps)\n * [Infrastructure](#next-steps)\n * [Logging](#next-steps)\n* [Contributions](#contributions)\n\n## Use case\n\nThe private key belonging to a [GitHub App](https://docs.github.com/en/apps/overview) can be used to [create installation access tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-an-installation-access-token-for-a-github-app) that only contains a [selection of the permissions](https://docs.github.com/en/rest/apps/apps?apiVersion=2022-11-28#create-an-installation-access-token-for-an-app) that the GitHub App has been granted and also for a limited number of repositories that the GitHub App has been installed in. This installation access token has a maximum lifetime of an hour and can [revoke](https://docs.github.com/en/rest/apps/installations?apiVersion=2022-11-28#revoke-an-installation-access-token) itself.\n\nUse ghrawel to control access to sensitive GitHub API credentials within an AWS and GitHub Actions environments, when such requirements exist.\n\n## When not to use this\n\nCreating PATs or GitHub App Private keys is easy and they are simple to use whether stored in AWS or as a GitHub secret. Using this solution introduces new components and complexity that has to be managed and such a thing is not always worth it.\n\n## How it works\nAn application or a GitHub Actions workflow with access to AWS IAM Credentials initiates the sequence of events by signing a HTTP request with those credentials.\n\n```mermaid\nsequenceDiagram\n autonumber\n participant HTTP as HTTP Request\n participant App as Application/GHA\n note over App: Has AWS IAM Credentials\n participant API as API Gateway\n participant Authorizer as IAM Authorizer\n participant Lambda as Lambda\n participant GitHub as GitHub API\n App->>HTTP: Create and Sign\n App->>API: Send Request\n API->>Authorizer: Authorization\n alt if not authorized\n API-->>App: 401\n end\n API->>Lambda: Forward Authorized Request\n Lambda->>Lambda: Additional validation\n alt if validation fails\n Lambda-->>API: 400 Bad Request\n API-->>App: 400 Bad Request\n end\n Lambda->>GitHub: Request Token\n Lambda->>API: Token Response\n API->>App: Token Response\n App->>GitHub: Uses token\n```\n\n# Setup\n\n> [!NOTE]\n> The machine deploying will require docker as [catnekaise/ghrawel-tokenprovider-lambda-go](https://github.com/catnekaise/ghrawel-tokenprovider-lambda-go) will be built to run in the lambda function. See [Dockerfile](./lambda/default/Dockerfile) and [application](./docs/token-provider/application.md) for more.\n\n> [!NOTE]\n> This guide assumes some familiarity with AWS CDK.\n\nThis test setup can be tested with a GitHub App that only has access to a single test repository in GitHub and this repository (and app) can be on your user instead of in your organization.\n\n## Costs\n\nAssuming that you make `10 000` requests using this test setup, the cost of lambda and cloudwatch is covered under the free tier. The cost of the API Gateway RestApi will be between free and 0.035$ depending on how old the AWS Account is. Depending on your AWS Environment there could be charges for CloudTrail, Config, other tools and any custom automations that might create additional resources based on the resources deployed. It's best to test this is a sandbox account.\n\nThere are no charges related to GitHub.\n\n## 1. GitHub\n\n> https://docs.github.com/en/apps/creating-github-apps/registering-a-github-app/registering-a-github-app\n\nFor our testing purposes we need to create a test `repository` and a `GitHub App`. The app being created shall be considered a test app and should not be granted unnecessary permissions or installed anywhere but in repositories used for testing this. The link above provides additional information about working with GitHub Apps.\n\n1. Create a new empty repository in your organization or on your user which can be used for testing.\n - When creating this repository, initialize the repository so that a default branch with a README.md file is created.\n2. Create a GitHub App in the same organization or user and grant `read & write` on the repository level permissions `contents` and `issues`.\n - Do not add configuration under `Identifying and authorizing users` as this app is not for users\n - Put any url under `Homepage URL` as its a required field\n - Deselect `active` under webhook as no webhook shall be configured for this use-case\n - Keep `only on this account` selected\n3. Note down the `id` of the GitHub App as it will be used later.\n4. Create a new private key for this GitHub App and keep it around as it will be used later.\n5. Install the GitHub App in the single test repository that was created further above\n\n## 2.1 Installation\n> [!NOTE]\n> CDK for .NET can also be used to test this but examples below has to be translated.\n\n```shell\ncdk init --language typescript\nnpm install -s @catnekaise/ghrawel\n```\n\n## 2.2 AWS CDK\n\n1. Change the value of `defaultAppId` in the example below to match your newly created GitHub App.\n2. Synthesis the stack and review what changes will be made before finally deploying the stack into a sandbox account.\n\n```typescript\nimport * as cdk from 'aws-cdk-lib';\nimport * as iam from 'aws-cdk-lib/aws-iam';\nimport { ManagedGitHubApps, GitHubAppSecretsStorage, TokenProviderApi, PermissionLevel } from '@catnekaise/ghrawel';\n\nconst app = new cdk.App();\nconst stack = new cdk.Stack(app, 'TokenProviderStack');\n\nconst apps = new ManagedGitHubApps(stack, 'Apps', {\n // Change this value\n defaultAppId: 1234,\n storage: GitHubAppSecretsStorage.PARAMETER_STORE,\n});\n\nconst tokenProviderApi = new TokenProviderApi(stack, 'TokenProviderApi', {\n apps,\n});\n\nconst provider = tokenProviderApi.newTokenProvider('example-provider', {\n permissions: {\n contents: PermissionLevel.READ,\n issues: PermissionLevel.WRITE,\n },\n});\n```\n\n## 3. Add Private Key in Parameter Store\n\nWhen the stack has completed its deployment a secure string parameter will have been initialized at path `/catnekaise/github-apps/default` in `Systems Manager Parameter Store` with value `placeholder`. Go there and enter the full text value of GitHub App Private Key created earlier inside the value field of this parameter.\n\n## 4. Request a token\n\nThe easiest way to see that this is now working and to request an access token is to head over to the API Gateway in the AWS Console. Examples on how to request a token with [cURL](#get-token---curl) or [GitHub Actions](#get-token---github-actions) can be seen further down, and more in additional [usage docs](./docs/token-provider/usage.md).\n\n1. Open the API that was created.\n2. Find the single `GET` method created and select it.\n3. Click on the `Test` tab.\n4. Enter the name of the organization or user where the test repository is located in the form field labeled `owner`.\n5. Enter the name of the test repository in the form field labeled `repo`.\n6. Click on the Test button.\n7. If everything was done correctly, the response should look similar to below.\n\n![](./docs/images/apigw-console.png)\n\n## 5. Use the token\n\nIn this example cURL is used to create an issue in your test repository. Either use this example or use a tool of your choice with the same input. After Successfully performing this test there should be a new issue in your test repository.\n\n```shell\n#!/usr/bin/env bash\n\nOWNER=\"Enter name of organization or user\"\nREPO=\"Enter name of repo\"\nTOKEN=\"Enter token\"\n\ncurl -L \\\n -X POST \\\n -H \"Accept: application/vnd.github+json\" \\\n -H \"Authorization: Token ${TOKEN}\" \\\n -H \"X-GitHub-Api-Version: 2022-11-28\" \\\n \"https://api.github.com/repos/${OWNER}/${REPO}/issues\" \\\n -d '{\"title\":\"Testing using app installation token\",\"body\":\"Testing using app installation token\"}'\n```\n\n## 6. Test limits of the token\n\nIf a GitHub App was created with the example permissions further above and the token provider was configured the with access `read` or the permission `contents`, then the token shall be able to read contents in the repository but not write content to the repository.\n\n### 6.1 Read README.md\n\nThe following cURL command will fetch the contents of `README.md` and print out body the full JSON body and decode the value of `content` in the body.\n\n```shell\n#!/usr/bin/env bash\n\nOWNER=\"Enter name of organization or user\"\nREPO=\"Enter name of repo\"\nMY_TOKEN=\"Enter token Value\"\n\nREADME_MD=$(curl -s -L \\\n -H \"Accept: application/vnd.github+json\" \\\n -H \"Authorization: Token ${MY_TOKEN}\" \\\n -H \"X-GitHub-Api-Version: 2022-11-28\" \\\n \"https://api.github.com/repos/${OWNER}/${REPO}/contents/README.md\")\n\necho \"$README_MD\"\n\necho \"$README_MD\" | jq -r '.content' | base64 -d\n```\n\n### 6.2 Write TEST.md\n\nAgain, assuming setup have been done as example above, the following cURL command shall **fail** to create the file `TEST.md` in the test repositories default branch.\n\n```shell\n#!/usr/bin/env bash\n\nOWNER=\"Enter name of organization or user\"\nREPO=\"Enter name of repo\"\nMTOKEN=\"Enter token Value\"\n\ncurl --fail-with-body -L \\\n -X PUT \\\n -H \"Accept: application/vnd.github+json\" \\\n -H \"Authorization: Token ${TOKEN}\" \\\n -H \"X-GitHub-Api-Version: 2022-11-28\" \\\n \"https://api.github.com/repos/${OWNER}/${REPO}/contents/TEST.md\" \\\n -d '{\"message\":\"my commit message\",\"content\":\"SGVsbG8gZnJvbSBjYXRuZWthaXNlCg==\"}'\n```\n\n### 6.3 Create a second token provider\n\nUpdate the stack by creating a second token provider that is granted `write` for the `contents` permission and re-deploy the stack.\n\n```typescript\ntokenProviderApi.newTokenProvider('example-provider-2', {\n permissions: {\n contents: PermissionLevel.WRITE,\n },\n});\n```\n\n### 6.4 Retry Creating TEST.md\n\nAfter deployment, refresh the page in the web browser where you previously generated a token and find the second `GET` method available under the path `/x/example-provider-2/{owner}/{repo}`. Use this token provider to generate a new token for the same repository and re-run the example below. After successfully performing this test there should be a file named `TEST.md` in the root of your test repository on the default branch.\n\n```shell\n#!/usr/bin/env bash\n\nOWNER=\"Enter name of organization or user\"\nREPO=\"Enter name of repo\"\nMY_TOKEN=\"Enter token Value\"\n\ncurl --fail-with-body -L \\\n -X PUT \\\n -H \"Accept: application/vnd.github+json\" \\\n -H \"Authorization: Token ${MY_TOKEN}\" \\\n -H \"X-GitHub-Api-Version: 2022-11-28\" \\\n \"https://api.github.com/repos/${OWNER}/${REPO}/contents/TEST.md\" \\\n -d '{\"message\":\"my commit message\",\"content\":\"SGVsbG8gZnJvbSBjYXRuZWthaXNlCg==\"}'\n```\n\n## 7. Cleanup\n\nEither clean up now or test this out some more using `cURL` or `GitHub Actions` before cleaning up. The steps to remove everything that was created.\n\n1. In GitHub, find the GitHub App and either uninstall, suspend or delete this GitHub App\n - If wanting to test this again at a later date, suspend the installation and next time re-enable and rotate the private key to resume testing.\n - If done, delete the GitHub App\n2. In AWS Console go to CloudFormation and find the Stack that was created and delete it.\n\n# Granting Access\n\nContinue reading [here](./docs/token-provider/aws-iam.md) for more detailed examples.\n\n```typescript\ndeclare const principal: iam.IPrincipal;\n\nconst role = new iam.Role(stack, 'Role', {\n assumedBy: principal,\n});\n\nconst provider = tokenProviderApi.newTokenProvider('example-provider', {\n permissions: {\n contents: PermissionLevel.READ,\n issues: PermissionLevel.WRITE,\n },\n});\n\nprovider.grantExecute(role);\n```\n\n# Get Token - cURL\n\nThis example shows how to use cURL to sign the request with the AWS IAM credentials. The example assumes the existence of `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` and `AWS_SESSION_TOKEN` in the environment.\n\nFor more usage examples, check out [usage docs](./docs/token-provider/usage.md).\n\n```shell\nAWS_REGION=\"eu-west-1\"\nBASE_URL=\"https://abcd1234.execute-api.${AWS_REGION}.amazonaws.com/dev\"\nPROVIDER=\"example-provider\"\n\nRESPONSE=$(curl \"${BASE_URL}/x/${PROVIDER}/catnekaise/example-repo\" \\\n\t--user \"${AWS_ACCESS_KEY_ID}\":\"${AWS_SECRET_ACCESS_KEY}\" \\\n\t-H \"x-amz-security-token: ${AWS_SESSION_TOKEN}\" \\\n\t--aws-sigv4 \"aws:amz:${AWS_REGION}:execute-api\")\n\nTOKEN=$(echo \"$RESPONSE\" | jq -r '.token')\n\n## Use Token...\n```\n\n# Get Token - GitHub Actions\n\nFor more usage examples in GitHub Actions and a re-usable action, check out [GitHub Actions usage docs](./docs/token-provider/github-actions-usage.md).\n\n```yaml\non:\n workflow_dispatch:\njobs:\n job1:\n runs-on: ubuntu-latest\n permissions:\n id-token: write\n contents: read\n steps:\n - name: \"Authenticate\"\n uses: aws-actions/configure-aws-credentials@v4\n with:\n aws-region: \"eu-west-1\"\n role-to-assume: \"arn:aws:iam::111111111111:role/role-name\"\n\n - name: \"Get Token\"\n uses: catnekaise/ghrawel-token@v1\n id: token\n with:\n base-url: \"https://abc123d4.execute-api.eu-west-1.amazonaws.com/dev\"\n provider-name: \"example-provider\"\n aws-region: \"eu-west-1\"\n - name: \"Use Token\"\n env:\n TOKEN: \"${{ steps.token.outputs.token }}\"\n run: |\n echo \"Utilize the token\"\n```\n\n# Customize RestAPI and Lambda\nRead more in [infrastructure](./docs/token-provider/infrastructure.md) and [application](./docs/token-provider/application.md).\n\n```typescript\nimport { ManagedGitHubApps, TokenProviderApi, TokenProviderLambdaCode, ApplicationArchitecture } from '@catnekaise/ghrawel';\n\nconst managedLambda = new lambda.Function(stack, 'Function', {\n code: TokenProviderLambdaCode.dotnet({\n architecture: ApplicationArchitecture.ARM64,\n repository: 'https://github.com/catnekaise/example-fork.git',\n checkout: 'main',\n }),\n handler: 'bootstrap',\n runtime: lambda.Runtime.DOTNET_8,\n // Add name, vpc, etc\n});\n\nconst managedApi = new apigateway.RestApi(stack, 'TokenProviderApi', {\n // Add domain, vpc, etc\n});\n\nconst apps = new ManagedGitHubApps(stack, 'Apps', {\n defaultAppId: 1234,\n storage: GitHubAppSecretsStorage.PARAMETER_STORE,\n additionalApps: [\n GitHubApp.create('another-app', 1111),\n GitHubApp.create('yet-another-app', 2222),\n ],\n});\n\nconst tokenProviderApi = new TokenProviderApi(stack, 'TokenProviderApi', {\n apps,\n lambda: managedLambda,\n api: managedApi,\n});\n\ntokenProviderApi.newTokenProvider('example-provider', {\n permissions: {\n contents: PermissionLevel.READ,\n },\n});\n```\n\n# Next Steps\n\nHere're some additional documentation on various topics:\n\n- [Token Providers](./docs/token-provider/README.md)\n- [AWS IAM](./docs/token-provider/aws-iam.md)\n- [Application](./docs/token-provider/application.md)\n- [Usage](./docs/token-provider/usage.md)\n - [cURL](./docs/token-provider/usage.md)\n - [Go](./docs/token-provider/usage.md)\n - [.NET](./docs/token-provider/usage.md)\n - [TypeScript](./docs/token-provider/usage.md)\n- [GitHub Actions Attribute-based Access Control](./docs/token-provider/github-actions-abac.md)\n- [Infrastructure](./docs/token-provider/infrastructure.md)\n - [Custom Setup](./docs/token-provider/infrastructure.md#custom-setup)\n - [GitHub Apps](./docs/token-provider/infrastructure.md#github-apps)\n- [Logging](./docs/token-provider/logging.md)\n- [Troubleshooting](./docs/token-provider/README.md#internal-server-error)\n\n\n# Contributions\nPlease open issues if having general feedback or if getting stuck on something that was not covered by any documentation. PR's are welcome for bugfixes. For any feature additions, please open an issue for discussion first.\n" }, "repository": { "type": "git", "url": "https://github.com/catnekaise/ghrawel.git" }, "schema": "jsii/0.10.0", "targets": { "dotnet": { "namespace": "Catnekaise.CDK.Ghrawel", "packageId": "Catnekaise.CDK.Ghrawel" }, "js": { "npm": "@catnekaise/ghrawel" }, "python": { "distName": "catnekaise.ghrawel", "module": "catnekaise_ghrawel" } }, "types": { "@catnekaise/ghrawel.ApplicationArchitecture": { "assembly": "@catnekaise/ghrawel", "docs": { "remarks": "Ensure that the lambda function architecture matches.", "stability": "stable", "summary": "Only applicable to TokenProviderLambdaCodeOptions." }, "fqn": "@catnekaise/ghrawel.ApplicationArchitecture", "kind": "class", "locationInModule": { "filename": "src/token-provider/lambda-code.ts", "line": 8 }, "name": "ApplicationArchitecture", "properties": [ { "const": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/lambda-code.ts", "line": 11 }, "name": "ARM_64", "static": true, "type": { "fqn": "@catnekaise/ghrawel.ApplicationArchitecture" } }, { "const": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/lambda-code.ts", "line": 10 }, "name": "X86_64", "static": true, "type": { "fqn": "@catnekaise/ghrawel.ApplicationArchitecture" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/lambda-code.ts", "line": 13 }, "name": "name", "type": { "primitive": "string" } } ], "symbolId": "src/token-provider/lambda-code:ApplicationArchitecture" }, "@catnekaise/ghrawel.BaseGitHubApps": { "abstract": true, "assembly": "@catnekaise/ghrawel", "base": "constructs.Construct", "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.BaseGitHubApps", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/apps.ts", "line": 51 }, "parameters": [ { "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "name": "id", "type": { "primitive": "string" } }, { "name": "baseProps", "type": { "fqn": "@catnekaise/ghrawel.GitHubAppsProps" } } ], "protected": true }, "interfaces": [ "@catnekaise/ghrawel.IGitHubApps" ], "kind": "class", "locationInModule": { "filename": "src/apps.ts", "line": 50 }, "methods": [ { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/apps.ts", "line": 66 }, "name": "getAppIdForAppName", "overrides": "@catnekaise/ghrawel.IGitHubApps", "parameters": [ { "name": "name", "optional": true, "type": { "primitive": "string" } } ], "returns": { "type": { "primitive": "number" } } }, { "abstract": true, "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/apps.ts", "line": 60 }, "name": "grantAccess", "overrides": "@catnekaise/ghrawel.IGitHubApps", "parameters": [ { "name": "principal", "type": { "fqn": "aws-cdk-lib.aws_iam.IPrincipal" } } ], "returns": { "optional": true, "type": { "fqn": "aws-cdk-lib.aws_iam.Grant" } } } ], "name": "BaseGitHubApps", "properties": [ { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/apps.ts", "line": 56 }, "name": "secretsPrefix", "overrides": "@catnekaise/ghrawel.IGitHubApps", "type": { "primitive": "string" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/apps.ts", "line": 62 }, "name": "secretsStorage", "overrides": "@catnekaise/ghrawel.IGitHubApps", "type": { "fqn": "@catnekaise/ghrawel.GitHubAppSecretsStorage" } } ], "symbolId": "src/apps:BaseGitHubApps" }, "@catnekaise/ghrawel.GitHubApp": { "assembly": "@catnekaise/ghrawel", "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.GitHubApp", "kind": "class", "locationInModule": { "filename": "src/apps.ts", "line": 13 }, "methods": [ { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/apps.ts", "line": 15 }, "name": "create", "parameters": [ { "name": "name", "type": { "primitive": "string" } }, { "name": "appId", "type": { "primitive": "number" } } ], "returns": { "type": { "fqn": "@catnekaise/ghrawel.GitHubApp" } }, "static": true } ], "name": "GitHubApp", "properties": [ { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/apps.ts", "line": 20 }, "name": "appId", "type": { "primitive": "number" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/apps.ts", "line": 20 }, "name": "name", "type": { "primitive": "string" } } ], "symbolId": "src/apps:GitHubApp" }, "@catnekaise/ghrawel.GitHubAppPermissions": { "assembly": "@catnekaise/ghrawel", "datatype": true, "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.GitHubAppPermissions", "kind": "interface", "locationInModule": { "filename": "src/app-permissions.ts", "line": 7 }, "name": "GitHubAppPermissions", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 8 }, "name": "actions", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 9 }, "name": "administration", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 10 }, "name": "checks", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 11 }, "name": "codespaces", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 12 }, "name": "contents", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 13 }, "name": "dependabotSecrets", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 14 }, "name": "deployments", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 49 }, "name": "emailAddresses", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 15 }, "name": "environments", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 50 }, "name": "followers", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 51 }, "name": "gitSshKeys", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 52 }, "name": "gpgKeys", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 53 }, "name": "interactionLimits", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 16 }, "name": "issues", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 31 }, "name": "members", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 17 }, "name": "metadata", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 32 }, "name": "organizationAdministration", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 37 }, "name": "organizationAnnouncementBanners", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 36 }, "name": "organizationCopilotSeatManagement", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 34 }, "name": "organizationCustomOrgRoles", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 35 }, "name": "organizationCustomProperties", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 33 }, "name": "organizationCustomRoles", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 38 }, "name": "organizationEvents", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 39 }, "name": "organizationHooks", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 44 }, "name": "organizationPackages", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 41 }, "name": "organizationPersonalAccessTokenRequests", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 40 }, "name": "organizationPersonalAccessTokens", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 42 }, "name": "organizationPlan", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 43 }, "name": "organizationProjects", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 45 }, "name": "organizationSecrets", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 46 }, "name": "organizationSelfHostedRunners", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 47 }, "name": "organizationUserBlocking", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 18 }, "name": "packages", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 19 }, "name": "pages", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 54 }, "name": "profile", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 20 }, "name": "pullRequests", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 21 }, "name": "repositoryCustomProperties", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 22 }, "name": "repositoryHooks", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 23 }, "name": "repositoryProjects", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 25 }, "name": "secrets", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 24 }, "name": "secretScanningAlerts", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 26 }, "name": "securityEvents", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 27 }, "name": "singleFile", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 55 }, "name": "starring", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 28 }, "name": "statuses", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 48 }, "name": "teamDiscussions", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 29 }, "name": "vulnerabilityAlerts", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/app-permissions.ts", "line": 30 }, "name": "workflows", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.PermissionLevel" } } ], "symbolId": "src/app-permissions:GitHubAppPermissions" }, "@catnekaise/ghrawel.GitHubAppSecretsStorage": { "assembly": "@catnekaise/ghrawel", "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.GitHubAppSecretsStorage", "kind": "enum", "locationInModule": { "filename": "src/apps.ts", "line": 8 }, "members": [ { "docs": { "stability": "stable" }, "name": "PARAMETER_STORE" }, { "docs": { "stability": "stable" }, "name": "SECRETS_MANAGER" } ], "name": "GitHubAppSecretsStorage", "symbolId": "src/apps:GitHubAppSecretsStorage" }, "@catnekaise/ghrawel.GitHubAppsProps": { "assembly": "@catnekaise/ghrawel", "datatype": true, "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.GitHubAppsProps", "kind": "interface", "locationInModule": { "filename": "src/apps.ts", "line": 39 }, "name": "GitHubAppsProps", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/apps.ts", "line": 41 }, "name": "defaultAppId", "type": { "primitive": "number" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/apps.ts", "line": 40 }, "name": "storage", "type": { "fqn": "@catnekaise/ghrawel.GitHubAppSecretsStorage" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/apps.ts", "line": 46 }, "name": "additionalApps", "optional": true, "type": { "collection": { "elementtype": { "fqn": "@catnekaise/ghrawel.GitHubApp" }, "kind": "array" } } }, { "abstract": true, "docs": { "default": "/catnekaise/github-apps", "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/apps.ts", "line": 45 }, "name": "prefix", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/apps:GitHubAppsProps" }, "@catnekaise/ghrawel.IGitHubApps": { "assembly": "@catnekaise/ghrawel", "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.IGitHubApps", "kind": "interface", "locationInModule": { "filename": "src/apps.ts", "line": 25 }, "methods": [ { "abstract": true, "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/apps.ts", "line": 32 }, "name": "getAppIdForAppName", "parameters": [ { "name": "name", "optional": true, "type": { "primitive": "string" } } ], "returns": { "type": { "primitive": "number" } } }, { "abstract": true, "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/apps.ts", "line": 30 }, "name": "grantAccess", "parameters": [ { "name": "principal", "type": { "fqn": "aws-cdk-lib.aws_iam.IPrincipal" } } ], "returns": { "optional": true, "type": { "fqn": "aws-cdk-lib.aws_iam.Grant" } } } ], "name": "IGitHubApps", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/apps.ts", "line": 26 }, "name": "secretsPrefix", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/apps.ts", "line": 28 }, "name": "secretsStorage", "type": { "fqn": "@catnekaise/ghrawel.GitHubAppSecretsStorage" } } ], "symbolId": "src/apps:IGitHubApps" }, "@catnekaise/ghrawel.ITokenProvider": { "assembly": "@catnekaise/ghrawel", "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.ITokenProvider", "kind": "interface", "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 50 }, "methods": [ { "abstract": true, "docs": { "stability": "stable", "summary": "Use this to grant access to the token provider." }, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 55 }, "name": "grantExecute", "parameters": [ { "name": "role", "type": { "fqn": "aws-cdk-lib.aws_iam.IRole" } }, { "name": "owner", "optional": true, "type": { "primitive": "string" } }, { "name": "repo", "type": { "primitive": "string" }, "variadic": true } ], "returns": { "type": { "fqn": "aws-cdk-lib.aws_iam.Grant" } }, "variadic": true }, { "abstract": true, "docs": { "stability": "stable", "summary": "use this to grant access to the token provider when the role is assumed via Cognito Identity." }, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 60 }, "name": "grantExecuteGitHubActionsAbac", "parameters": [ { "name": "role", "type": { "fqn": "aws-cdk-lib.aws_iam.IRole" } }, { "name": "settings", "type": { "fqn": "@catnekaise/ghrawel.TokenProviderActionsIdentitySettings" } } ], "returns": { "type": { "fqn": "aws-cdk-lib.aws_iam.Grant" } } } ], "name": "ITokenProvider", "symbolId": "src/token-provider/token-provider:ITokenProvider" }, "@catnekaise/ghrawel.ITokenProviderApi": { "assembly": "@catnekaise/ghrawel", "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.ITokenProviderApi", "kind": "interface", "locationInModule": { "filename": "src/token-provider/api.ts", "line": 52 }, "methods": [ { "abstract": true, "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/token-provider/api.ts", "line": 53 }, "name": "newTokenProvider", "parameters": [ { "name": "name", "type": { "primitive": "string" } }, { "name": "configuration", "type": { "fqn": "@catnekaise/ghrawel.NewTokenProviderConfiguration" } } ], "returns": { "type": { "fqn": "@catnekaise/ghrawel.ITokenProvider" } } } ], "name": "ITokenProviderApi", "symbolId": "src/token-provider/api:ITokenProviderApi" }, "@catnekaise/ghrawel.ManagedGitHubApps": { "assembly": "@catnekaise/ghrawel", "base": "@catnekaise/ghrawel.BaseGitHubApps", "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.ManagedGitHubApps", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/apps.ts", "line": 91 }, "parameters": [ { "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "name": "id", "type": { "primitive": "string" } }, { "name": "props", "type": { "fqn": "@catnekaise/ghrawel.ManagedGitHubAppsProps" } } ] }, "interfaces": [ "@catnekaise/ghrawel.IGitHubApps" ], "kind": "class", "locationInModule": { "filename": "src/apps.ts", "line": 90 }, "methods": [ { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/apps.ts", "line": 118 }, "name": "grantAccess", "overrides": "@catnekaise/ghrawel.BaseGitHubApps", "parameters": [ { "name": "principal", "type": { "fqn": "aws-cdk-lib.aws_iam.IPrincipal" } } ], "returns": { "optional": true, "type": { "fqn": "aws-cdk-lib.aws_iam.Grant" } } } ], "name": "ManagedGitHubApps", "symbolId": "src/apps:ManagedGitHubApps" }, "@catnekaise/ghrawel.ManagedGitHubAppsProps": { "assembly": "@catnekaise/ghrawel", "datatype": true, "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.ManagedGitHubAppsProps", "interfaces": [ "@catnekaise/ghrawel.GitHubAppsProps" ], "kind": "interface", "locationInModule": { "filename": "src/apps.ts", "line": 82 }, "name": "ManagedGitHubAppsProps", "properties": [ { "abstract": true, "docs": { "default": "AWS_MANAGED", "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/apps.ts", "line": 86 }, "name": "kmsKey", "optional": true, "type": { "fqn": "aws-cdk-lib.aws_kms.IKey" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/apps.ts", "line": 87 }, "name": "removalPolicy", "optional": true, "type": { "fqn": "aws-cdk-lib.RemovalPolicy" } } ], "symbolId": "src/apps:ManagedGitHubAppsProps" }, "@catnekaise/ghrawel.NewTokenProviderConfiguration": { "assembly": "@catnekaise/ghrawel", "datatype": true, "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.NewTokenProviderConfiguration", "kind": "interface", "locationInModule": { "filename": "src/token-provider/api.ts", "line": 29 }, "name": "NewTokenProviderConfiguration", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "Permissions." }, "immutable": true, "locationInModule": { "filename": "src/token-provider/api.ts", "line": 34 }, "name": "permissions", "type": { "fqn": "@catnekaise/ghrawel.GitHubAppPermissions" } }, { "abstract": true, "docs": { "default": "default", "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/api.ts", "line": 49 }, "name": "app", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "DEFAULT", "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/api.ts", "line": 39 }, "name": "endpoint", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.TokenProviderEndpoint" } }, { "abstract": true, "docs": { "default": "AT_LEAST_ONE", "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/api.ts", "line": 44 }, "name": "targetRule", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.TokenProviderTargetRule" } } ], "symbolId": "src/token-provider/api:NewTokenProviderConfiguration" }, "@catnekaise/ghrawel.PermissionLevel": { "assembly": "@catnekaise/ghrawel", "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.PermissionLevel", "kind": "enum", "locationInModule": { "filename": "src/app-permissions.ts", "line": 1 }, "members": [ { "docs": { "stability": "stable" }, "name": "READ" }, { "docs": { "stability": "stable" }, "name": "WRITE" }, { "docs": { "stability": "stable" }, "name": "ADMIN" } ], "name": "PermissionLevel", "symbolId": "src/app-permissions:PermissionLevel" }, "@catnekaise/ghrawel.RepositorySelectionMode": { "assembly": "@catnekaise/ghrawel", "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.RepositorySelectionMode", "kind": "enum", "locationInModule": { "filename": "src/token-provider/target.ts", "line": 1 }, "members": [ { "docs": { "stability": "stable", "summary": "Allows targeting of any individual or multiple repos, but NOT the organization." }, "name": "AT_LEAST_ONE" }, { "docs": { "stability": "stable", "summary": "Allows targeting of any individual or multiple repos and the organization/user." }, "name": "ALLOW_OWNER" } ], "name": "RepositorySelectionMode", "symbolId": "src/token-provider/target:RepositorySelectionMode" }, "@catnekaise/ghrawel.SelfManagedGitHubApps": { "assembly": "@catnekaise/ghrawel", "base": "@catnekaise/ghrawel.BaseGitHubApps", "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.SelfManagedGitHubApps", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/apps.ts", "line": 159 }, "parameters": [ { "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "name": "id", "type": { "primitive": "string" } }, { "name": "props", "type": { "fqn": "@catnekaise/ghrawel.GitHubAppsProps" } } ] }, "interfaces": [ "@catnekaise/ghrawel.IGitHubApps" ], "kind": "class", "locationInModule": { "filename": "src/apps.ts", "line": 158 }, "methods": [ { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/apps.ts", "line": 164 }, "name": "grantAccess", "overrides": "@catnekaise/ghrawel.BaseGitHubApps", "parameters": [ { "name": "principal", "type": { "fqn": "aws-cdk-lib.aws_iam.IPrincipal" } } ], "returns": { "optional": true, "type": { "fqn": "aws-cdk-lib.aws_iam.Grant" } } } ], "name": "SelfManagedGitHubApps", "symbolId": "src/apps:SelfManagedGitHubApps" }, "@catnekaise/ghrawel.TargetRuleSettings": { "assembly": "@catnekaise/ghrawel", "datatype": true, "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.TargetRuleSettings", "kind": "interface", "locationInModule": { "filename": "src/token-provider/target.ts", "line": 13 }, "name": "TargetRuleSettings", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/target.ts", "line": 14 }, "name": "mode", "type": { "fqn": "@catnekaise/ghrawel.RepositorySelectionMode" } } ], "symbolId": "src/token-provider/target:TargetRuleSettings" }, "@catnekaise/ghrawel.TokenProvider": { "assembly": "@catnekaise/ghrawel", "base": "constructs.Construct", "docs": { "remarks": "Until then use static create method.", "stability": "stable", "summary": "This construct may receive some changes before constructor is made public." }, "fqn": "@catnekaise/ghrawel.TokenProvider", "interfaces": [ "@catnekaise/ghrawel.ITokenProvider" ], "kind": "class", "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 87 }, "methods": [ { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 89 }, "name": "create", "parameters": [ { "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "name": "id", "type": { "primitive": "string" } }, { "name": "settings", "type": { "fqn": "@catnekaise/ghrawel.TokenProviderSettings" } } ], "returns": { "type": { "fqn": "@catnekaise/ghrawel.TokenProvider" } }, "static": true }, { "docs": { "stability": "stable", "summary": "Use this to grant access to the token provider." }, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 155 }, "name": "grantExecute", "overrides": "@catnekaise/ghrawel.ITokenProvider", "parameters": [ { "name": "role", "type": { "fqn": "aws-cdk-lib.aws_iam.IRole" } }, { "name": "owner", "optional": true, "type": { "primitive": "string" } }, { "name": "repo", "type": { "primitive": "string" }, "variadic": true } ], "returns": { "type": { "fqn": "aws-cdk-lib.aws_iam.Grant" } }, "variadic": true }, { "docs": { "stability": "stable", "summary": "use this to grant access to the token provider when the role is assumed via Cognito Identity." }, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 190 }, "name": "grantExecuteGitHubActionsAbac", "overrides": "@catnekaise/ghrawel.ITokenProvider", "parameters": [ { "name": "role", "type": { "fqn": "aws-cdk-lib.aws_iam.IRole" } }, { "name": "settings", "type": { "fqn": "@catnekaise/ghrawel.TokenProviderActionsIdentitySettings" } } ], "returns": { "type": { "fqn": "aws-cdk-lib.aws_iam.Grant" } } }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 264 }, "name": "metric", "parameters": [ { "name": "metricName", "type": { "primitive": "string" } }, { "name": "stage", "type": { "fqn": "aws-cdk-lib.aws_apigateway.IStage" } }, { "name": "props", "optional": true, "type": { "fqn": "aws-cdk-lib.aws_cloudwatch.MetricOptions" } } ], "returns": { "type": { "fqn": "aws-cdk-lib.aws_cloudwatch.Metric" } } }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 276 }, "name": "metricCacheHitCount", "parameters": [ { "name": "stage", "type": { "fqn": "aws-cdk-lib.aws_apigateway.IStage" } }, { "name": "props", "optional": true, "type": { "fqn": "aws-cdk-lib.aws_cloudwatch.MetricOptions" } } ], "returns": { "type": { "fqn": "aws-cdk-lib.aws_cloudwatch.Metric" } } }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 280 }, "name": "metricCacheMissCount", "parameters": [ { "name": "stage", "type": { "fqn": "aws-cdk-lib.aws_apigateway.IStage" } }, { "name": "props", "optional": true, "type": { "fqn": "aws-cdk-lib.aws_cloudwatch.MetricOptions" } } ], "returns": { "type": { "fqn": "aws-cdk-lib.aws_cloudwatch.Metric" } } }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 268 }, "name": "metricClientError", "parameters": [ { "name": "stage", "type": { "fqn": "aws-cdk-lib.aws_apigateway.IStage" } }, { "name": "props", "optional": true, "type": { "fqn": "aws-cdk-lib.aws_cloudwatch.MetricOptions" } } ], "returns": { "type": { "fqn": "aws-cdk-lib.aws_cloudwatch.Metric" } } }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 284 }, "name": "metricCount", "parameters": [ { "name": "stage", "type": { "fqn": "aws-cdk-lib.aws_apigateway.IStage" } }, { "name": "props", "optional": true, "type": { "fqn": "aws-cdk-lib.aws_cloudwatch.MetricOptions" } } ], "returns": { "type": { "fqn": "aws-cdk-lib.aws_cloudwatch.Metric" } } }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 272 }, "name": "metricServerError", "parameters": [ { "name": "stage", "type": { "fqn": "aws-cdk-lib.aws_apigateway.IStage" } }, { "name": "props", "optional": true, "type": { "fqn": "aws-cdk-lib.aws_cloudwatch.MetricOptions" } } ], "returns": { "type": { "fqn": "aws-cdk-lib.aws_cloudwatch.Metric" } } } ], "name": "TokenProvider", "properties": [ { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 296 }, "name": "httpMethod", "type": { "primitive": "string" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 288 }, "name": "methodArn", "type": { "primitive": "string" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 292 }, "name": "methodId", "type": { "primitive": "string" } } ], "symbolId": "src/token-provider/token-provider:TokenProvider" }, "@catnekaise/ghrawel.TokenProviderActionsIdentitySettings": { "assembly": "@catnekaise/ghrawel", "datatype": true, "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.TokenProviderActionsIdentitySettings", "kind": "interface", "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 44 }, "name": "TokenProviderActionsIdentitySettings", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 45 }, "name": "claimsContext", "type": { "fqn": "@catnekaise/cdk-iam-utilities.IClaimsContext" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 46 }, "name": "pathStrategy", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.TokenProviderPathStrategy" } } ], "symbolId": "src/token-provider/token-provider:TokenProviderActionsIdentitySettings" }, "@catnekaise/ghrawel.TokenProviderApi": { "assembly": "@catnekaise/ghrawel", "base": "constructs.Construct", "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.TokenProviderApi", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/token-provider/api.ts", "line": 75 }, "parameters": [ { "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "name": "id", "type": { "primitive": "string" } }, { "name": "props", "type": { "fqn": "@catnekaise/ghrawel.TokenProviderApiProps" } } ] }, "interfaces": [ "@catnekaise/ghrawel.ITokenProviderApi" ], "kind": "class", "locationInModule": { "filename": "src/token-provider/api.ts", "line": 56 }, "methods": [ { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/token-provider/api.ts", "line": 147 }, "name": "newTokenProvider", "overrides": "@catnekaise/ghrawel.ITokenProviderApi", "parameters": [ { "name": "name", "type": { "primitive": "string" } }, { "name": "configuration", "type": { "fqn": "@catnekaise/ghrawel.NewTokenProviderConfiguration" } } ], "returns": { "type": { "fqn": "@catnekaise/ghrawel.ITokenProvider" } } } ], "name": "TokenProviderApi", "properties": [ { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/api.ts", "line": 67 }, "name": "lambdaFunction", "type": { "fqn": "aws-cdk-lib.aws_lambda.Function" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/api.ts", "line": 71 }, "name": "restApi", "type": { "fqn": "aws-cdk-lib.aws_apigateway.RestApi" } } ], "symbolId": "src/token-provider/api:TokenProviderApi" }, "@catnekaise/ghrawel.TokenProviderApiProps": { "assembly": "@catnekaise/ghrawel", "datatype": true, "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.TokenProviderApiProps", "kind": "interface", "locationInModule": { "filename": "src/token-provider/api.ts", "line": 11 }, "name": "TokenProviderApiProps", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "GitHub Apps configuration." }, "immutable": true, "locationInModule": { "filename": "src/token-provider/api.ts", "line": 16 }, "name": "apps", "type": { "fqn": "@catnekaise/ghrawel.IGitHubApps" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Use this to provide the API Gateway RestApi configured to your requirements." }, "immutable": true, "locationInModule": { "filename": "src/token-provider/api.ts", "line": 21 }, "name": "api", "optional": true, "type": { "fqn": "aws-cdk-lib.aws_apigateway.RestApi" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Use this to provide the Lambda Function configured to your requirements." }, "immutable": true, "locationInModule": { "filename": "src/token-provider/api.ts", "line": 26 }, "name": "lambda", "optional": true, "type": { "fqn": "aws-cdk-lib.aws_lambda.Function" } } ], "symbolId": "src/token-provider/api:TokenProviderApiProps" }, "@catnekaise/ghrawel.TokenProviderConfigurator": { "assembly": "@catnekaise/ghrawel", "docs": { "stability": "stable", "summary": "This class may see some breaking changes but the intent is to stabilize, be made abstract and available as input on `TokenProviderConfiguration`." }, "fqn": "@catnekaise/ghrawel.TokenProviderConfigurator", "kind": "class", "locationInModule": { "filename": "src/token-provider/configurator.ts", "line": 34 }, "methods": [ { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/token-provider/configurator.ts", "line": 36 }, "name": "create", "returns": { "type": { "fqn": "@catnekaise/ghrawel.TokenProviderConfigurator" } }, "static": true }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/token-provider/configurator.ts", "line": 78 }, "name": "createApiResource", "parameters": [ { "name": "api", "type": { "fqn": "aws-cdk-lib.aws_apigateway.IRestApi" } }, { "name": "name", "type": { "primitive": "string" } }, { "name": "endpoint", "type": { "fqn": "@catnekaise/ghrawel.TokenProviderEndpoint" } } ], "returns": { "type": { "fqn": "aws-cdk-lib.aws_apigateway.Resource" } } }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/token-provider/configurator.ts", "line": 227 }, "name": "createIntegrationOptions", "parameters": [ { "name": "settings", "type": { "fqn": "@catnekaise/ghrawel.TokenProviderConfiguratorIntegrationOptionsContext" } } ], "returns": { "type": { "fqn": "aws-cdk-lib.aws_apigateway.LambdaIntegrationOptions" } } }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/token-provider/configurator.ts", "line": 97 }, "name": "createMethodOptions", "parameters": [ { "name": "input", "type": { "fqn": "@catnekaise/ghrawel.TokenProviderConfiguratorMethodOptionsContext" } } ], "returns": { "type": { "fqn": "aws-cdk-lib.aws_apigateway.MethodOptions" } } } ], "name": "TokenProviderConfigurator", "properties": [ { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/configurator.ts", "line": 43 }, "name": "integrationResponses", "type": { "collection": { "elementtype": { "fqn": "aws-cdk-lib.aws_apigateway.IntegrationResponse" }, "kind": "array" } } } ], "symbolId": "src/token-provider/configurator:TokenProviderConfigurator" }, "@catnekaise/ghrawel.TokenProviderConfiguratorIntegrationOptionsContext": { "assembly": "@catnekaise/ghrawel", "datatype": true, "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.TokenProviderConfiguratorIntegrationOptionsContext", "kind": "interface", "locationInModule": { "filename": "src/token-provider/configurator.ts", "line": 13 }, "name": "TokenProviderConfiguratorIntegrationOptionsContext", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/configurator.ts", "line": 16 }, "name": "appId", "type": { "primitive": "number" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/configurator.ts", "line": 17 }, "name": "appName", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/configurator.ts", "line": 15 }, "name": "endpoint", "type": { "fqn": "@catnekaise/ghrawel.TokenProviderEndpoint" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/configurator.ts", "line": 14 }, "name": "name", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/configurator.ts", "line": 18 }, "name": "permissions", "type": { "fqn": "@catnekaise/ghrawel.GitHubAppPermissions" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/configurator.ts", "line": 19 }, "name": "targetRule", "type": { "fqn": "@catnekaise/ghrawel.TargetRuleSettings" } } ], "symbolId": "src/token-provider/configurator:TokenProviderConfiguratorIntegrationOptionsContext" }, "@catnekaise/ghrawel.TokenProviderConfiguratorMethodOptionsContext": { "assembly": "@catnekaise/ghrawel", "datatype": true, "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.TokenProviderConfiguratorMethodOptionsContext", "kind": "interface", "locationInModule": { "filename": "src/token-provider/configurator.ts", "line": 22 }, "name": "TokenProviderConfiguratorMethodOptionsContext", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/configurator.ts", "line": 24 }, "name": "endpointType", "type": { "fqn": "@catnekaise/ghrawel.TokenProviderEndpointType" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/configurator.ts", "line": 27 }, "name": "errorResponseModel", "type": { "fqn": "aws-cdk-lib.aws_apigateway.Model" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/configurator.ts", "line": 28 }, "name": "operationName", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/configurator.ts", "line": 25 }, "name": "repositorySelectionMode", "type": { "fqn": "@catnekaise/ghrawel.RepositorySelectionMode" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/configurator.ts", "line": 26 }, "name": "tokenResponseModel", "type": { "fqn": "aws-cdk-lib.aws_apigateway.Model" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/configurator.ts", "line": 23 }, "name": "requestValidator", "optional": true, "type": { "fqn": "aws-cdk-lib.aws_apigateway.IRequestValidator" } } ], "symbolId": "src/token-provider/configurator:TokenProviderConfiguratorMethodOptionsContext" }, "@catnekaise/ghrawel.TokenProviderEndpoint": { "assembly": "@catnekaise/ghrawel", "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.TokenProviderEndpoint", "kind": "class", "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 20 }, "methods": [ { "docs": { "stability": "stable", "summary": "Use this to configure a token provider at `/x//{owner}/{repo}`." }, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 25 }, "name": "useDefault", "returns": { "type": { "fqn": "@catnekaise/ghrawel.TokenProviderEndpoint" } }, "static": true }, { "docs": { "stability": "stable", "summary": "Use this to configure a token provider at `/x//{owner}` or `/x//`." }, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 32 }, "name": "useOwner", "parameters": [ { "name": "owner", "optional": true, "type": { "primitive": "string" } } ], "returns": { "type": { "fqn": "@catnekaise/ghrawel.TokenProviderEndpoint" } }, "static": true } ], "name": "TokenProviderEndpoint", "properties": [ { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 39 }, "name": "isOwnerEndpoint", "type": { "primitive": "boolean" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 36 }, "name": "type", "type": { "fqn": "@catnekaise/ghrawel.TokenProviderEndpointType" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 36 }, "name": "owner", "optional": true, "type": { "primitive": "string" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 36 }, "name": "repo", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/token-provider/token-provider:TokenProviderEndpoint" }, "@catnekaise/ghrawel.TokenProviderEndpointType": { "assembly": "@catnekaise/ghrawel", "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.TokenProviderEndpointType", "kind": "enum", "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 14 }, "members": [ { "docs": { "stability": "stable" }, "name": "DEFAULT" }, { "docs": { "stability": "stable" }, "name": "DYNAMIC_OWNER" }, { "docs": { "stability": "stable" }, "name": "STATIC_OWNER" } ], "name": "TokenProviderEndpointType", "symbolId": "src/token-provider/token-provider:TokenProviderEndpointType" }, "@catnekaise/ghrawel.TokenProviderLambdaCode": { "abstract": true, "assembly": "@catnekaise/ghrawel", "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.TokenProviderLambdaCode", "initializer": { "docs": { "stability": "stable" } }, "kind": "class", "locationInModule": { "filename": "src/token-provider/lambda-code.ts", "line": 46 }, "methods": [ { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/token-provider/lambda-code.ts", "line": 48 }, "name": "defaultGo", "parameters": [ { "name": "options", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.TokenProviderLambdaCodeOptions" } } ], "returns": { "type": { "fqn": "aws-cdk-lib.aws_lambda.Code" } }, "static": true }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/token-provider/lambda-code.ts", "line": 61 }, "name": "dotnet", "parameters": [ { "name": "options", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.TokenProviderLambdaCodeOptions" } } ], "returns": { "type": { "fqn": "aws-cdk-lib.aws_lambda.Code" } }, "static": true } ], "name": "TokenProviderLambdaCode", "symbolId": "src/token-provider/lambda-code:TokenProviderLambdaCode" }, "@catnekaise/ghrawel.TokenProviderLambdaCodeOptions": { "assembly": "@catnekaise/ghrawel", "datatype": true, "docs": { "stability": "stable", "summary": "Use this to build a supported the TokenProvider lambda application when the source is located in a public repository." }, "fqn": "@catnekaise/ghrawel.TokenProviderLambdaCodeOptions", "kind": "interface", "locationInModule": { "filename": "src/token-provider/lambda-code.ts", "line": 20 }, "name": "TokenProviderLambdaCodeOptions", "properties": [ { "abstract": true, "docs": { "remarks": "This value is used to build the application in the specified architecture.", "stability": "stable", "summary": "Should be equal to the architecture configured for the lambda function." }, "immutable": true, "locationInModule": { "filename": "src/token-provider/lambda-code.ts", "line": 37 }, "name": "architecture", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.ApplicationArchitecture" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Value for `git checkout` after cloning the repository Example: main, origin/feature1, SHA." }, "immutable": true, "locationInModule": { "filename": "src/token-provider/lambda-code.ts", "line": 32 }, "name": "checkout", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Value for docker platform Example: linux/amd64." }, "immutable": true, "locationInModule": { "filename": "src/token-provider/lambda-code.ts", "line": 43 }, "name": "platform", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Repository Url Example: https://github.com/catnekaise/example-fork.git." }, "immutable": true, "locationInModule": { "filename": "src/token-provider/lambda-code.ts", "line": 26 }, "name": "repository", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "src/token-provider/lambda-code:TokenProviderLambdaCodeOptions" }, "@catnekaise/ghrawel.TokenProviderMethodOptions": { "assembly": "@catnekaise/ghrawel", "datatype": true, "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.TokenProviderMethodOptions", "kind": "interface", "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 63 }, "name": "TokenProviderMethodOptions", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 65 }, "name": "endpointType", "type": { "fqn": "@catnekaise/ghrawel.TokenProviderEndpointType" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 67 }, "name": "errorResponseModel", "type": { "fqn": "aws-cdk-lib.aws_apigateway.Model" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 68 }, "name": "operationName", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 64 }, "name": "requestValidator", "type": { "fqn": "aws-cdk-lib.aws_apigateway.RequestValidator" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 66 }, "name": "tokenResponseModel", "type": { "fqn": "aws-cdk-lib.aws_apigateway.Model" } } ], "symbolId": "src/token-provider/token-provider:TokenProviderMethodOptions" }, "@catnekaise/ghrawel.TokenProviderPathPolicyVariable": { "assembly": "@catnekaise/ghrawel", "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.TokenProviderPathPolicyVariable", "kind": "enum", "locationInModule": { "filename": "src/token-provider/gha-abac.ts", "line": 1 }, "members": [ { "docs": { "stability": "stable" }, "name": "REPOSITORY" }, { "docs": { "stability": "stable" }, "name": "REPOSITORY_OWNER" } ], "name": "TokenProviderPathPolicyVariable", "symbolId": "src/token-provider/gha-abac:TokenProviderPathPolicyVariable" }, "@catnekaise/ghrawel.TokenProviderPathStrategy": { "assembly": "@catnekaise/ghrawel", "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.TokenProviderPathStrategy", "kind": "class", "locationInModule": { "filename": "src/token-provider/gha-abac.ts", "line": 20 }, "methods": [ { "docs": { "stability": "stable", "summary": "Grants permission to `/x//*`." }, "locationInModule": { "filename": "src/token-provider/gha-abac.ts", "line": 46 }, "name": "anyRepository", "returns": { "type": { "fqn": "@catnekaise/ghrawel.TokenProviderPathStrategy" } }, "static": true }, { "docs": { "stability": "stable", "summary": "Grants permission to `/x//${aws:PrincipalTag/repository}`." }, "locationInModule": { "filename": "src/token-provider/gha-abac.ts", "line": 25 }, "name": "policyVarRepository", "returns": { "type": { "fqn": "@catnekaise/ghrawel.TokenProviderPathStrategy" } }, "static": true }, { "docs": { "stability": "stable", "summary": "Grants permission to `/x//${aws:PrincipalTag/repository_owner}` or `/x//${aws:PrincipalTag/repository_owner}/`." }, "locationInModule": { "filename": "src/token-provider/gha-abac.ts", "line": 35 }, "name": "policyVarRepositoryOwner", "parameters": [ { "name": "repositories", "type": { "primitive": "string" }, "variadic": true } ], "returns": { "type": { "fqn": "@catnekaise/ghrawel.TokenProviderPathStrategy" } }, "static": true, "variadic": true }, { "docs": { "stability": "stable", "summary": "Grants permission to `/x//`." }, "locationInModule": { "filename": "src/token-provider/gha-abac.ts", "line": 69 }, "name": "selectOwner", "parameters": [ { "name": "owner", "type": { "primitive": "string" } } ], "returns": { "type": { "fqn": "@catnekaise/ghrawel.TokenProviderPathStrategy" } }, "static": true }, { "docs": { "stability": "stable", "summary": "Grants permission for each specified repo `/x///`." }, "locationInModule": { "filename": "src/token-provider/gha-abac.ts", "line": 53 }, "name": "selectRepositories", "parameters": [ { "name": "owner", "type": { "primitive": "string" } }, { "name": "repositories", "type": { "primitive": "string" }, "variadic": true } ], "returns": { "type": { "fqn": "@catnekaise/ghrawel.TokenProviderPathStrategy" } }, "static": true, "variadic": true } ], "name": "TokenProviderPathStrategy", "properties": [ { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/gha-abac.ts", "line": 95 }, "name": "pathTargetsRepositories", "type": { "primitive": "boolean" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/gha-abac.ts", "line": 87 }, "name": "repositories", "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/gha-abac.ts", "line": 79 }, "name": "type", "type": { "fqn": "@catnekaise/ghrawel.TokenProviderPathStrategyType" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/gha-abac.ts", "line": 83 }, "name": "owner", "optional": true, "type": { "primitive": "string" } }, { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/gha-abac.ts", "line": 91 }, "name": "policyVar", "optional": true, "type": { "fqn": "@catnekaise/ghrawel.TokenProviderPathPolicyVariable" } } ], "symbolId": "src/token-provider/gha-abac:TokenProviderPathStrategy" }, "@catnekaise/ghrawel.TokenProviderPathStrategyType": { "assembly": "@catnekaise/ghrawel", "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.TokenProviderPathStrategyType", "kind": "enum", "locationInModule": { "filename": "src/token-provider/gha-abac.ts", "line": 6 }, "members": [ { "docs": { "stability": "stable" }, "name": "POLICY_VAR" }, { "docs": { "stability": "stable" }, "name": "ANY_REPOSITORY" }, { "docs": { "stability": "stable" }, "name": "OWNER" }, { "docs": { "stability": "stable" }, "name": "REPOSITORIES" } ], "name": "TokenProviderPathStrategyType", "symbolId": "src/token-provider/gha-abac:TokenProviderPathStrategyType" }, "@catnekaise/ghrawel.TokenProviderSettings": { "assembly": "@catnekaise/ghrawel", "datatype": true, "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.TokenProviderSettings", "kind": "interface", "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 71 }, "name": "TokenProviderSettings", "properties": [ { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 80 }, "name": "api", "type": { "fqn": "aws-cdk-lib.aws_apigateway.IRestApi" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 75 }, "name": "app", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 76 }, "name": "appId", "type": { "primitive": "number" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 77 }, "name": "configurator", "type": { "fqn": "@catnekaise/ghrawel.TokenProviderConfigurator" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 73 }, "name": "endpoint", "type": { "fqn": "@catnekaise/ghrawel.TokenProviderEndpoint" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 81 }, "name": "lambda", "type": { "fqn": "aws-cdk-lib.aws_lambda.Function" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 78 }, "name": "methodOptions", "type": { "fqn": "@catnekaise/ghrawel.TokenProviderMethodOptions" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 79 }, "name": "name", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 72 }, "name": "permissions", "type": { "fqn": "@catnekaise/ghrawel.GitHubAppPermissions" } }, { "abstract": true, "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/token-provider.ts", "line": 74 }, "name": "targetRule", "type": { "fqn": "@catnekaise/ghrawel.TokenProviderTargetRule" } } ], "symbolId": "src/token-provider/token-provider:TokenProviderSettings" }, "@catnekaise/ghrawel.TokenProviderTargetRule": { "assembly": "@catnekaise/ghrawel", "docs": { "stability": "stable" }, "fqn": "@catnekaise/ghrawel.TokenProviderTargetRule", "kind": "class", "locationInModule": { "filename": "src/token-provider/target.ts", "line": 17 }, "methods": [ { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/token-provider/target.ts", "line": 25 }, "name": "allowOwner", "returns": { "type": { "fqn": "@catnekaise/ghrawel.TokenProviderTargetRule" } }, "static": true }, { "docs": { "stability": "stable" }, "locationInModule": { "filename": "src/token-provider/target.ts", "line": 19 }, "name": "atLeastOne", "returns": { "type": { "fqn": "@catnekaise/ghrawel.TokenProviderTargetRule" } }, "static": true } ], "name": "TokenProviderTargetRule", "properties": [ { "docs": { "stability": "stable" }, "immutable": true, "locationInModule": { "filename": "src/token-provider/target.ts", "line": 31 }, "name": "repositorySelectionMode", "type": { "fqn": "@catnekaise/ghrawel.RepositorySelectionMode" } } ], "symbolId": "src/token-provider/target:TokenProviderTargetRule" } }, "version": "0.0.17", "fingerprint": "mElI/l2r2ni2qbifuzalxRK3r/tnVjzje77GEKl1TDQ=" }