{
  "author": {
    "name": "Amazon Web Services",
    "organization": true,
    "roles": [
      "author"
    ],
    "url": "https://aws.amazon.com"
  },
  "bundled": {
    "fs-extra": "^9.0.1",
    "minimatch": "^3.0.4"
  },
  "dependencies": {
    "@aws-cdk/cloud-assembly-schema": "1.69.0",
    "@aws-cdk/cx-api": "1.69.0",
    "@aws-cdk/region-info": "1.69.0",
    "constructs": "^3.0.4"
  },
  "dependencyClosure": {
    "@aws-cdk/cloud-assembly-schema": {
      "targets": {
        "dotnet": {
          "assemblyOriginatorKeyFile": "../../key.snk",
          "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png",
          "namespace": "Amazon.CDK.CloudAssembly.Schema",
          "packageId": "Amazon.CDK.CloudAssembly.Schema",
          "signAssembly": true
        },
        "java": {
          "maven": {
            "artifactId": "cdk-cloud-assembly-schema",
            "groupId": "software.amazon.awscdk"
          },
          "package": "software.amazon.awscdk.cloudassembly.schema"
        },
        "js": {
          "npm": "@aws-cdk/cloud-assembly-schema"
        },
        "python": {
          "classifiers": [
            "Framework :: AWS CDK",
            "Framework :: AWS CDK :: 1"
          ],
          "distName": "aws-cdk.cloud-assembly-schema",
          "module": "aws_cdk.cloud_assembly_schema"
        }
      }
    },
    "@aws-cdk/cx-api": {
      "targets": {
        "dotnet": {
          "assemblyOriginatorKeyFile": "../../key.snk",
          "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png",
          "namespace": "Amazon.CDK.CXAPI",
          "packageId": "Amazon.CDK.CXAPI",
          "signAssembly": true
        },
        "java": {
          "maven": {
            "artifactId": "cdk-cx-api",
            "groupId": "software.amazon.awscdk"
          },
          "package": "software.amazon.awscdk.cxapi"
        },
        "js": {
          "npm": "@aws-cdk/cx-api"
        },
        "python": {
          "classifiers": [
            "Framework :: AWS CDK",
            "Framework :: AWS CDK :: 1"
          ],
          "distName": "aws-cdk.cx-api",
          "module": "aws_cdk.cx_api"
        }
      }
    },
    "@aws-cdk/region-info": {
      "targets": {
        "dotnet": {
          "assemblyOriginatorKeyFile": "../../key.snk",
          "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png",
          "namespace": "Amazon.CDK.RegionInfo",
          "packageId": "Amazon.CDK.RegionInfo",
          "signAssembly": true
        },
        "java": {
          "maven": {
            "artifactId": "cdk-region-info",
            "groupId": "software.amazon.awscdk"
          },
          "package": "software.amazon.awscdk.regioninfo"
        },
        "js": {
          "npm": "@aws-cdk/region-info"
        },
        "python": {
          "classifiers": [
            "Framework :: AWS CDK",
            "Framework :: AWS CDK :: 1"
          ],
          "distName": "aws-cdk.region-info",
          "module": "aws_cdk.region_info"
        }
      }
    },
    "constructs": {
      "targets": {
        "dotnet": {
          "namespace": "Constructs",
          "packageId": "Constructs"
        },
        "java": {
          "maven": {
            "artifactId": "constructs",
            "groupId": "software.constructs"
          },
          "package": "software.constructs"
        },
        "js": {
          "npm": "constructs"
        },
        "python": {
          "distName": "constructs",
          "module": "constructs"
        }
      }
    }
  },
  "description": "AWS Cloud Development Kit Core Library",
  "docs": {
    "stability": "stable"
  },
  "homepage": "https://github.com/aws/aws-cdk",
  "jsiiVersion": "1.13.0 (build 385c325)",
  "keywords": [
    "aws",
    "cdk",
    "jsii",
    "cdk-core"
  ],
  "license": "Apache-2.0",
  "name": "@aws-cdk/core",
  "readme": {
    "markdown": "## AWS Cloud Development Kit Core Library\n<!--BEGIN STABILITY BANNER-->\n---\n\n![cfn-resources: Stable](https://img.shields.io/badge/cfn--resources-stable-success.svg?style=for-the-badge)\n\n![cdk-constructs: Stable](https://img.shields.io/badge/cdk--constructs-stable-success.svg?style=for-the-badge)\n\n---\n<!--END STABILITY BANNER-->\n\nThis library includes the basic building blocks of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) (AWS CDK). It defines the core classes that are used in the rest of the\nAWS Construct Library.\n\nSee the [AWS CDK Developer\nGuide](https://docs.aws.amazon.com/cdk/latest/guide/home.html) for\ninformation of most of the capabilities of this library. The rest of this\nREADME will only cover topics not already covered in the Developer Guide.\n\n## Stacks and Stages\n\nA `Stack` is the smallest physical unit of deployment, and maps directly onto\na CloudFormation Stack. You define a Stack by defining a subclass of `Stack`\n-- let's call it `MyStack` -- and instantiating the constructs that make up\nyour application in `MyStack`'s constructor. You then instantiate this stack\none or more times to define different instances of your application. For example,\nyou can instantiate it once using few and cheap EC2 instances for testing,\nand once again using more and bigger EC2 instances for production.\n\nWhen your application grows, you may decide that it makes more sense to split it\nout across multiple `Stack` classes. This can happen for a number of reasons:\n\n- You could be starting to reach the maximum number of resources allowed in a single\n  stack (this is currently 200).\n- You could decide you want to separate out stateful resources and stateless resources\n  into separate stacks, so that it becomes easy to tear down and recreate the stacks\n  that don't have stateful resources.\n- There could be a single stack with resources (like a VPC) that are shared\n  between multiple instances of other stacks containing your applications.\n\nAs soon as your conceptual application starts to encompass multiple stacks,\nit is convenient to wrap them in another construct that represents your\nlogical application. You can then treat that new unit the same way you used\nto be able to treat a single stack: by instantiating it multiple times\nfor different instances of your application.\n\nYou can define a custom subclass of `Construct`, holding one or more\n`Stack`s, to represent a single logical instance of your application.\n\nAs a final note: `Stack`s are not a unit of reuse. They describe physical\ndeployment layouts, and as such are best left to application builders to\norganize their deployments with. If you want to vend a reusable construct,\ndefine it as a subclasses of `Construct`: the consumers of your construct\nwill decide where to place it in their own stacks.\n\n## Nested Stacks\n\n[Nested stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) are stacks created as part of other stacks. You create a nested stack within another stack by using the `NestedStack` construct.\n\nAs your infrastructure grows, common patterns can emerge in which you declare the same components in multiple templates. You can separate out these common components and create dedicated templates for them. Then use the resource in your template to reference other templates, creating nested stacks.\n\nFor example, assume that you have a load balancer configuration that you use for most of your stacks. Instead of copying and pasting the same configurations into your templates, you can create a dedicated template for the load balancer. Then, you just use the resource to reference that template from within other templates.\n\nThe following example will define a single top-level stack that contains two nested stacks: each one with a single Amazon S3 bucket:\n\n```ts\nimport { Stack, Construct, StackProps } from '@aws-cdk/core';\nimport cfn = require('@aws-cdk/aws-cloudformation');\nimport s3 = require('@aws-cdk/aws-s3');\n\nclass MyNestedStack extends cfn.NestedStack {\n  constructor(scope: Construct, id: string, props?: cfn.NestedStackProps) {\n    super(scope, id, props);\n\n    new s3.Bucket(this, 'NestedBucket');\n  }\n}\n\nclass MyParentStack extends Stack {\n  constructor(scope: Construct, id: string, props?: StackProps) {\n    super(scope, id, props);\n\n    new MyNestedStack(this, 'Nested1');\n    new MyNestedStack(this, 'Nested2');\n  }\n}\n```\n\nResources references across nested/parent boundaries (even with multiple levels of nesting) will be wired by the AWS CDK\nthrough CloudFormation parameters and outputs. When a resource from a parent stack is referenced by a nested stack,\na CloudFormation parameter will automatically be added to the nested stack and assigned from the parent; when a resource\nfrom a nested stack is referenced by a parent stack, a CloudFormation output will be automatically be added to the\nnested stack and referenced using `Fn::GetAtt \"Outputs.Xxx\"` from the parent.\n\nNested stacks also support the use of Docker image and file assets.\n\n\n## Durations\n\nTo make specifications of time intervals unambiguous, a single class called\n`Duration` is used throughout the AWS Construct Library by all constructs\nthat that take a time interval as a parameter (be it for a timeout, a\nrate, or something else).\n\nAn instance of Duration is constructed by using one of the static factory\nmethods on it:\n\n```ts\nDuration.seconds(300)   // 5 minutes\nDuration.minutes(5)     // 5 minutes\nDuration.hours(1)       // 1 hour\nDuration.days(7)        // 7 days\nDuration.parse('PT5M')  // 5 minutes\n```\n\n## Size (Digital Information Quantity)\n\nTo make specification of digital storage quantities unambiguous, a class called\n`Size` is available.\n\nAn instance of `Size` is initialized through one of its static factory methods:\n\n```ts\nSize.kibibytes(200) // 200 KiB\nSize.mebibytes(5)   // 5 MiB\nSize.gibibytes(40)  // 40 GiB\nSize.tebibytes(200) // 200 TiB\nSize.pebibytes(3)   // 3 PiB\n```\n\nInstances of `Size` created with one of the units can be converted into others.\nBy default, conversion to a higher unit will fail if the conversion does not produce\na whole number. This can be overridden by unsetting `integral` property.\n\n```ts\nSize.mebibytes(2).toKibibytes()                      // yields 2048\nSize.kibibytes(2050).toMebibyte({ integral: false }) // yields 2\n```\n\n## Secrets\n\nTo help avoid accidental storage of secrets as plain text, we use the `SecretValue` type to\nrepresent secrets. Any construct that takes a value that should be a secret (such as\na password or an access key) will take a parameter of type `SecretValue`.\n\nThe best practice is to store secrets in AWS Secrets Manager and reference them using `SecretValue.secretsManager`:\n\n```ts\nconst secret = SecretValue.secretsManager('secretId', {\n  jsonField: 'password' // optional: key of a JSON field to retrieve (defaults to all content),\n  versionId: 'id'       // optional: id of the version (default AWSCURRENT)\n  versionStage: 'stage' // optional: version stage name (default AWSCURRENT)\n});\n```\n\nUsing AWS Secrets Manager is the recommended way to reference secrets in a CDK app.\n`SecretValue` also supports the following secret sources:\n\n * `SecretValue.plainText(secret)`: stores the secret as plain text in your app and the resulting template (not recommended).\n * `SecretValue.ssmSecure(param, version)`: refers to a secret stored as a SecureString in the SSM Parameter Store.\n * `SecretValue.cfnParameter(param)`: refers to a secret passed through a CloudFormation parameter (must have `NoEcho: true`).\n * `SecretValue.cfnDynamicReference(dynref)`: refers to a secret described by a CloudFormation dynamic reference (used by `ssmSecure` and `secretsManager`).\n\n## ARN manipulation\n\nSometimes you will need to put together or pick apart Amazon Resource Names\n(ARNs). The functions `stack.formatArn()` and `stack.parseArn()` exist for\nthis purpose.\n\n`formatArn()` can be used to build an ARN from components. It will automatically\nuse the region and account of the stack you're calling it on:\n\n```ts\n// Builds \"arn:<PARTITION>:lambda:<REGION>:<ACCOUNT>:function:MyFunction\"\nstack.formatArn({\n  service: 'lambda',\n  resource: 'function',\n  sep: ':',\n  resourceName: 'MyFunction'\n});\n```\n\n`parseArn()` can be used to get a single component from an ARN. `parseArn()`\nwill correctly deal with both literal ARNs and deploy-time values (tokens),\nbut in case of a deploy-time value be aware that the result will be another\ndeploy-time value which cannot be inspected in the CDK application.\n\n```ts\n// Extracts the function name out of an AWS Lambda Function ARN\nconst arnComponents = stack.parseArn(arn, ':');\nconst functionName = arnComponents.resourceName;\n```\n\nNote that depending on the service, the resource separator can be either\n`:` or `/`, and the resource name can be either the 6th or 7th\ncomponent in the ARN. When using these functions, you will need to know\nthe format of the ARN you are dealing with.\n\nFor an exhaustive list of ARN formats used in AWS, see [AWS ARNs and\nNamespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)\nin the AWS General Reference.\n\n## Dependencies\n\n### Construct Dependencies\n\nSometimes AWS resources depend on other resources, and the creation of one\nresource must be completed before the next one can be started.\n\nIn general, CloudFormation will correctly infer the dependency relationship\nbetween resources based on the property values that are used. In the cases where\nit doesn't, the AWS Construct Library will add the dependency relationship for\nyou.\n\nIf you need to add an ordering dependency that is not automatically inferred,\nyou do so by adding a dependency relationship using\n`constructA.node.addDependency(constructB)`. This will add a dependency\nrelationship between all resources in the scope of `constructA` and all\nresources in the scope of `constructB`.\n\nIf you want a single object to represent a set of constructs that are not\nnecessarily in the same scope, you can use a `ConcreteDependable`. The\nfollowing creates a single object that represents a dependency on two\nconstructs, `constructB` and `constructC`:\n\n```ts\n// Declare the dependable object\nconst bAndC = new ConcreteDependable();\nbAndC.add(constructB);\nbAndC.add(constructC);\n\n// Take the dependency\nconstructA.node.addDependency(bAndC);\n```\n\n### Stack Dependencies\n\nTwo different stack instances can have a dependency on one another. This\nhappens when an resource from one stack is referenced in another stack. In\nthat case, CDK records the cross-stack referencing of resources,\nautomatically produces the right CloudFormation primitives, and adds a\ndependency between the two stacks. You can also manually add a dependency\nbetween two stacks by using the `stackA.addDependency(stackB)` method.\n\nA stack dependency has the following implications:\n\n* Cyclic dependencies are not allowed, so if `stackA` is using resources from\n  `stackB`, the reverse is not possible anymore.\n* Stacks with dependencies between them are treated specially by the CDK\n  toolkit:\n  * If `stackA` depends on `stackB`, running `cdk deploy stackA` will also\n    automatically deploy `stackB`.\n  * `stackB`'s deployment will be performed *before* `stackA`'s deployment.\n\n## Custom Resources\n\nCustom Resources are CloudFormation resources that are implemented by arbitrary\nuser code. They can do arbitrary lookups or modifications during a\nCloudFormation deployment.\n\nTo define a custom resource, use the `CustomResource` construct:\n\n```ts\nimport { CustomResource } from '@aws-cdk/core';\n\nnew CustomResource(this, 'MyMagicalResource', {\n  resourceType: 'Custom::MyCustomResource', // must start with 'Custom::'\n\n  // the resource properties\n  properties: {\n    Property1: 'foo',\n    Property2: 'bar'\n  },\n\n  // the ARN of the provider (SNS/Lambda) which handles\n  // CREATE, UPDATE or DELETE events for this resource type\n  // see next section for details\n  serviceToken: 'ARN'\n});\n```\n\n### Custom Resource Providers\n\nCustom resources are backed by a **custom resource provider** which can be\nimplemented in one of the following ways. The following table compares the\nvarious provider types (ordered from low-level to high-level):\n\n| Provider                                                             | Compute Type | Error Handling | Submit to CloudFormation | Max Timeout     | Language | Footprint |\n|----------------------------------------------------------------------|:------------:|:--------------:|:------------------------:|:---------------:|:--------:|:---------:|\n| [sns.Topic](#amazon-sns-topic)                                       | Self-managed | Manual         | Manual                   | Unlimited       | Any      | Depends   |\n| [lambda.Function](#aws-lambda-function)                              | AWS Lambda   | Manual         | Manual                   | 15min           | Any      | Small     |\n| [core.CustomResourceProvider](#the-corecustomresourceprovider-class) | Lambda       | Auto           | Auto                     | 15min           | Node.js  | Small     |\n| [custom-resources.Provider](#the-custom-resource-provider-framework) | Lambda       | Auto           | Auto                     | Unlimited Async | Any      | Large     |\n\nLegend:\n\n- **Compute type**: which type of compute can is used to execute the handler.\n- **Error Handling**: whether errors thrown by handler code are automatically\n  trapped and a FAILED response is submitted to CloudFormation. If this is\n  \"Manual\", developers must take care of trapping errors. Otherwise, events\n  could cause stacks to hang.\n- **Submit to CloudFormation**: whether the framework takes care of submitting\n  SUCCESS/FAILED responses to CloudFormation through the event's response URL.\n- **Max Timeout**: maximum allows/possible timeout.\n- **Language**: which programming languages can be used to implement handlers.\n- **Footprint**: how many resources are used by the provider framework itself.\n\n**A NOTE ABOUT SINGLETONS**\n\nWhen defining resources for a custom resource provider, you will likely want to\ndefine them as a *stack singleton* so that only a single instance of the\nprovider is created in your stack and which is used by all custom resources of\nthat type.\n\nHere is a basic pattern for defining stack singletons in the CDK. The following\nexamples ensures that only a single SNS topic is defined:\n\n```ts\nfunction getOrCreate(scope: Construct): sns.Topic {\n  const stack = Stack.of(this);\n  const uniqueid = 'GloballyUniqueIdForSingleton';\n  return stack.node.tryFindChild(uniqueid) as sns.Topic  ?? new sns.Topic(stack, uniqueid);\n}\n```\n\n#### Amazon SNS Topic\n\nEvery time a resource event occurs (CREATE/UPDATE/DELETE), an SNS notification\nis sent to the SNS topic. Users must process these notifications (e.g. through a\nfleet of worker hosts) and submit success/failure responses to the\nCloudFormation service.\n\nSet `serviceToken` to `topic.topicArn`  in order to use this provider:\n\n```ts\nimport * as sns from '@aws-cdk/aws-sns';\nimport { CustomResource } from '@aws-cdk/core';\n\nconst topic = new sns.Topic(this, 'MyProvider');\n\nnew CustomResource(this, 'MyResource', {\n  serviceToken: topic.topicArn\n});\n```\n\n#### AWS Lambda Function\n\nAn AWS lambda function is called *directly* by CloudFormation for all resource\nevents. The handler must take care of explicitly submitting a success/failure\nresponse to the CloudFormation service and handle various error cases.\n\nSet `serviceToken` to `lambda.functionArn` to use this provider:\n\n```ts\nimport * as lambda from '@aws-cdk/aws-lambda';\nimport { CustomResource } from '@aws-cdk/core';\n\nconst fn = new lambda.Function(this, 'MyProvider');\n\nnew CustomResource(this, 'MyResource', {\n  serviceToken: lambda.functionArn\n});\n```\n\n#### The `core.CustomResourceProvider` class\n\nThe class [`@aws-cdk/core.CustomResourceProvider`] offers a basic low-level\nframework designed to implement simple and slim custom resource providers. It\ncurrently only supports Node.js-based user handlers, and it does not have\nsupport for asynchronous waiting (handler cannot exceed the 15min lambda\ntimeout).\n\n[`@aws-cdk/core.CustomResourceProvider`]: https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_core.CustomResourceProvider.html\n\nThe provider has a built-in singleton method which uses the resource type as a\nstack-unique identifier and returns the service token:\n\n```ts\nconst serviceToken = CustomResourceProvider.getOrCreate(this, 'Custom::MyCustomResourceType', {\n  codeDirectory: `${__dirname}/my-handler`,\n  runtime: CustomResourceProviderRuntime.NODEJS_12, // currently the only supported runtime\n});\n\nnew CustomResource(this, 'MyResource', {\n  resourceType: 'Custom::MyCustomResourceType',\n  serviceToken: serviceToken\n});\n```\n\nThe directory (`my-handler` in the above example) must include an `index.js` file. It cannot import\nexternal dependencies or files outside this directory. It must export an async\nfunction named `handler`. This function accepts the CloudFormation resource\nevent object and returns an object with the following structure:\n\n```js\nexports.handler = async function(event) {\n  const id = event.PhysicalResourceId; // only for \"Update\" and \"Delete\"\n  const props = event.ResourceProperties;\n  const oldProps = event.OldResourceProperties; // only for \"Update\"s\n\n  switch (event.RequestType) {\n    case \"Create\":\n      // ...\n\n    case \"Update\":\n      // ...\n\n      // if an error is thrown, a FAILED response will be submitted to CFN\n      throw new Error('Failed!');\n\n    case \"Delete\":\n      // ...\n  }\n\n  return {\n    // (optional) the value resolved from `resource.ref`\n    // defaults to \"event.PhysicalResourceId\" or \"event.RequestId\"\n    PhysicalResourceId: \"REF\",\n\n    // (optional) calling `resource.getAtt(\"Att1\")` on the custom resource in the CDK app\n    // will return the value \"BAR\".\n    Data: {\n      Att1: \"BAR\",\n      Att2: \"BAZ\"\n    },\n\n    // (optional) user-visible message\n    Reason: \"User-visible message\",\n\n    // (optional) hides values from the console\n    NoEcho: true\n  };\n}\n```\n\nHere is an complete example of a custom resource that summarizes two numbers:\n\n`sum-handler/index.js`:\n\n```js\nexports.handler = async e => {\n  return {\n    Data: {\n      Result: e.ResourceProperties.lhs + e.ResourceProperties.rhs\n    }\n  };\n};\n```\n\n`sum.ts`:\n\n```ts\nexport interface SumProps {\n  readonly lhs: number;\n  readonly rhs: number;\n}\n\nexport class Sum extends Construct {\n  public readonly result: number;\n\n  constructor(scope: Construct, id: string, props: SumProps) {\n    super(scope, id);\n\n    const resourceType = 'Custom::Sum';\n    const serviceToken = CustomResourceProvider.getOrCreate(this, resourceType, {\n      codeDirectory: `${__dirname}/sum-handler`,\n      runtime: CustomResourceProviderRuntime.NODEJS_12,\n    });\n\n    const resource = new CustomResource(this, 'Resource', {\n      resourceType: resourceType,\n      serviceToken: serviceToken,\n      properties: {\n        lhs: props.lhs,\n        rhs: props.rhs\n      }\n    });\n\n    this.result = Token.asNumber(resource.getAtt('Result'));\n  }\n}\n```\n\nUsage will look like this:\n\n```ts\nconst sum = new Sum(this, 'MySum', { lhs: 40, rhs: 2 });\nnew CfnOutput(this, 'Result', { value: sum.result });\n```\n\n#### The Custom Resource Provider Framework\n\nThe [`@aws-cdk/custom-resource`] module includes an advanced framework for\nimplementing custom resource providers.\n\n[`@aws-cdk/custom-resource`]: https://docs.aws.amazon.com/cdk/api/latest/docs/custom-resources-readme.html\n\nHandlers are implemented as AWS Lambda functions, which means that they can be\nimplemented in any Lambda-supported runtime. Furthermore, this provider has an\nasynchronous mode, which means that users can provide an `isComplete` lambda\nfunction which is called periodically until the operation is complete. This\nallows implementing providers that can take up to two hours to stabilize.\n\nSet `serviceToken` to `provider.serviceToken` to use this type of provider:\n\n```ts\nimport { Provider } from 'custom-resources';\n\nconst provider = new Provider(this, 'MyProvider', {\n  onEventHandler: onEventLambdaFunction,\n  isCompleteHandler: isCompleteLambdaFunction // optional async waiter\n});\n\nnew CustomResource(this, 'MyResource', {\n  serviceToken: provider.serviceToken\n});\n```\n\nSee the [documentation](https://docs.aws.amazon.com/cdk/api/latest/docs/custom-resources-readme.html) for more details.\n\n#### Amazon SNS Topic\n\nEvery time a resource event occurs (CREATE/UPDATE/DELETE), an SNS notification\nis sent to the SNS topic. Users must process these notifications (e.g. through a\nfleet of worker hosts) and submit success/failure responses to the\nCloudFormation service.\n\nSet `serviceToken` to `topic.topicArn`  in order to use this provider:\n\n```ts\nimport * as sns from '@aws-cdk/aws-sns';\nimport { CustomResource } from '@aws-cdk/core';\n\nconst topic = new sns.Topic(this, 'MyProvider');\n\nnew CustomResource(this, 'MyResource', {\n  serviceToken: topic.topicArn\n});\n```\n\n#### AWS Lambda Function\n\nAn AWS lambda function is called *directly* by CloudFormation for all resource\nevents. The handler must take care of explicitly submitting a success/failure\nresponse to the CloudFormation service and handle various error cases.\n\nSet `serviceToken` to `lambda.functionArn` to use this provider:\n\n```ts\nimport * as lambda from '@aws-cdk/aws-lambda';\nimport { CustomResource } from '@aws-cdk/core';\n\nconst fn = new lambda.Function(this, 'MyProvider');\n\nnew CustomResource(this, 'MyResource', {\n  serviceToken: lambda.functionArn\n});\n```\n\n#### The Custom Resource Provider Framework\n\nThe [`@aws-cdk/custom-resource`] module includes an advanced framework for\nimplementing custom resource providers.\n\n[`@aws-cdk/custom-resource`]: https://docs.aws.amazon.com/cdk/api/latest/docs/custom-resources-readme.html\n\nHandlers are implemented as AWS Lambda functions, which means that they can be\nimplemented in any Lambda-supported runtime. Furthermore, this provider has an\nasynchronous mode, which means that users can provide an `isComplete` lambda\nfunction which is called periodically until the operation is complete. This\nallows implementing providers that can take up to two hours to stabilize.\n\nSet `serviceToken` to `provider.serviceToken` to use this provider:\n\n```ts\nimport { Provider } from 'custom-resources';\n\nconst provider = new Provider(this, 'MyProvider', {\n  onEventHandler: onEventLambdaFunction,\n  isCompleteHandler: isCompleteLambdaFunction // optional async waiter\n});\n\nnew CustomResource(this, 'MyResource', {\n  serviceToken: provider.serviceToken\n});\n```\n\n## AWS CloudFormation features\n\nA CDK stack synthesizes to an AWS CloudFormation Template. This section\nexplains how this module allows users to access low-level CloudFormation\nfeatures when needed.\n\n### Stack Outputs\n\nCloudFormation [stack outputs][cfn-stack-output] and exports are created using\nthe `CfnOutput` class:\n\n```ts\nnew CfnOutput(this, 'OutputName', {\n  value: bucket.bucketName,\n  description: 'The name of an S3 bucket', // Optional\n  exportName: 'TheAwesomeBucket', // Registers a CloudFormation export named \"TheAwesomeBucket\"\n});\n```\n\n[cfn-stack-output]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html\n\n### Parameters\n\nCloudFormation templates support the use of [Parameters][cfn-parameters] to\ncustomize a template. They enable CloudFormation users to input custom values to\na template each time a stack is created or updated. While the CDK design\nphilosophy favors using build-time parameterization, users may need to use\nCloudFormation in a number of cases (for example, when migrating an existing\nstack to the AWS CDK).\n\nTemplate parameters can be added to a stack by using the `CfnParameter` class:\n\n```ts\nnew CfnParameter(this, 'MyParameter', {\n  type: 'Number',\n  default: 1337,\n  // See the API reference for more configuration props\n});\n```\n\nThe value of parameters can then be obtained using one of the `value` methods.\nAs parameters are only resolved at deployment time, the values obtained are\nplaceholder tokens for the real value (`Token.isUnresolved()` would return `true`\nfor those):\n\n```ts\nconst param = new CfnParameter(this, 'ParameterName', { /* config */ });\n\n// If the parameter is a String\nparam.valueAsString;\n\n// If the parameter is a Number\nparam.valueAsNumber;\n\n// If the parameter is a List\nparam.valueAsList;\n```\n\n[cfn-parameters]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html\n\n### Pseudo Parameters\n\nCloudFormation supports a number of [pseudo parameters][cfn-pseudo-params],\nwhich resolve to useful values at deployment time. CloudFormation pseudo\nparameters can be obtained from static members of the `Aws` class.\n\nIt is generally recommended to access pseudo parameters from the scope's `stack`\ninstead, which guarantees the values produced are qualifying the designated\nstack, which is essential in cases where resources are shared cross-stack:\n\n```ts\n// \"this\" is the current construct\nconst stack = Stack.of(this);\n\nstack.account; // Returns the AWS::AccountId for this stack (or the literal value if known)\nstack.region;  // Returns the AWS::Region for this stack (or the literal value if known)\nstack.partition;\n```\n\n[cfn-pseudo-params]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/pseudo-parameter-reference.html\n\n### Resource Options\n\nCloudFormation resources can also specify [resource\nattributes][cfn-resource-attributes]. The `CfnResource` class allows\naccessing those through the `cfnOptions` property:\n\n```ts\nconst rawBucket = new s3.CfnBucket(this, 'Bucket', { /* ... */ });\n// -or-\nconst rawBucket = bucket.node.defaultChild as s3.CfnBucket;\n\n// then\nrawBucket.cfnOptions.condition = new CfnCondition(this, 'EnableBucket', { /* ... */ });\nrawBucket.cfnOptions.metadata = {\n  metadataKey: 'MetadataValue',\n};\n```\n\nResource dependencies (the `DependsOn` attribute) is modified using the\n`cfnResource.addDependsOn` method:\n\n```ts\nconst resourceA = new CfnResource(this, 'ResourceA', { /* ... */ });\nconst resourceB = new CfnResource(this, 'ResourceB', { /* ... */ });\n\nresourceB.addDependsOn(resourceA);\n```\n\n[cfn-resource-attributes]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-product-attribute-reference.html\n\n### Intrinsic Functions and Condition Expressions\n\nCloudFormation supports [intrinsic functions][cfn-intrinsics]. These functions\ncan be accessed from the `Fn` class, which provides type-safe methods for each\nintrinsic function as well as condition expressions:\n\n```ts\n// To use Fn::Base64\nFn.base64('SGVsbG8gQ0RLIQo=');\n\n// To compose condition expressions:\nconst environmentParameter = new CfnParameter(this, 'Environment');\nFn.conditionAnd(\n  // The \"Environment\" CloudFormation template parameter evaluates to \"Production\"\n  Fn.conditionEquals('Production', environmentParameter),\n  // The AWS::Region pseudo-parameter value is NOT equal to \"us-east-1\"\n  Fn.conditionNot(Fn.conditionEquals('us-east-1', Aws.REGION)),\n);\n```\n\nWhen working with deploy-time values (those for which `Token.isUnresolved`\nreturns `true`), idiomatic conditionals from the programming language cannot be\nused (the value will not be known until deployment time). When conditional logic\nneeds to be expressed with un-resolved values, it is necessary to use\nCloudFormation conditions by means of the `CfnCondition` class:\n\n```ts\nconst environmentParameter = new CfnParameter(this, 'Environment');\nconst isProd = new CfnCondition(this, 'IsProduction', {\n  expression: Fn.conditionEquals('Production', environmentParameter),\n});\n\n// Configuration value that is a different string based on IsProduction\nconst stage = Fn.conditionIf(isProd.logicalId, 'Beta', 'Prod').toString();\n\n// Make Bucket creation condition to IsProduction by accessing\n// and overriding the CloudFormation resource\nconst bucket = new s3.Bucket(this, 'Bucket');\nconst cfnBucket = bucket.node.defaultChild as s3.CfnBucket;\ncfnBucket.cfnOptions.condition = isProd;\n```\n\n[cfn-intrinsics]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference.html\n\n### Mappings\n\nCloudFormation [mappings][cfn-mappings] are created and queried using the\n`CfnMappings` class:\n\n```ts\nconst regionTable = new CfnMapping(this, 'RegionTable', {\n  mapping: {\n    regionName: {\n      'us-east-1': 'US East (N. Virginia)',\n      'us-east-2': 'US East (Ohio)',\n      // ...\n    },\n    // ...\n  }\n});\n\nregionTable.findInMap('regionName', Aws.REGION);\n```\n\nThis will yield the following template:\n\n```yaml\nMappings:\n  RegionTable:\n    regionName:\n      us-east-1: US East (N. Virginia)\n      us-east-2: US East (Ohio)\n```\n\n[cfn-mappings]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/mappings-section-structure.html\n\n### Dynamic References\n\nCloudFormation supports [dynamically resolving][cfn-dynamic-references] values\nfor SSM parameters (including secure strings) and Secrets Manager. Encoding such\nreferences is done using the `CfnDynamicReference` class:\n\n```ts\nnew CfnDynamicReference(this, 'SecureStringValue', {\n  service: CfnDynamicReferenceService.SECRETS_MANAGER,\n  referenceKey: 'secret-id:secret-string:json-key:version-stage:version-id',\n});\n```\n\n[cfn-dynamic-references]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html\n\n### Template Options & Transform\n\nCloudFormation templates support a number of options, including which Macros or\n[Transforms][cfn-transform] to use when deploying the stack. Those can be\nconfigured using the `stack.templateOptions` property:\n\n```ts\nconst stack = new Stack(app, 'StackName');\n\nstack.templateOptions.description = 'This will appear in the AWS console';\nstack.templateOptions.transforms = ['AWS::Serverless-2016-10-31'];\nstack.templateOptions.metadata = {\n  metadataKey: 'MetadataValue',\n};\n```\n\n[cfn-transform]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-section-structure.html\n\n### Emitting Raw Resources\n\nThe `CfnResource` class allows emitting arbitrary entries in the\n[Resources][cfn-resources] section of the CloudFormation template.\n\n```ts\nnew CfnResource(this, 'ResourceId', {\n  type: 'AWS::S3::Bucket',\n  properties: {\n    BucketName: 'bucket-name'\n  },\n});\n```\n\nAs for any other resource, the logical ID in the CloudFormation template will be\ngenerated by the AWS CDK, but the type and properties will be copied verbatim in\nthe synthesized template.\n\n[cfn-resources]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html\n\n### Including raw CloudFormation template fragments\n\nWhen migrating a CloudFormation stack to the AWS CDK, it can be useful to\ninclude fragments of an existing template verbatim in the synthesized template.\nThis can be achieved using the `CfnInclude` class.\n\n```ts\nnew CfnInclude(this, 'ID', {\n  template: {\n    Resources: {\n      Bucket: {\n        Type: 'AWS::S3::Bucket',\n        Properties: {\n          BucketName: 'my-shiny-bucket'\n        }\n      }\n    }\n  },\n});\n```\n\n### Termination Protection\nYou can prevent a stack from being accidentally deleted by enabling termination\nprotection on the stack. If a user attempts to delete a stack with termination\nprotection enabled, the deletion fails and the stack--including its status--remains\nunchanged. Enabling or disabling termination protection on a stack sets it for any\nnested stacks belonging to that stack as well. You can enable termination protection\non a stack by setting the `terminationProtection` prop to `true`.\n\n```ts\nconst stack = new Stack(app, 'StackName', {\n  terminationProtection: true,\n});\n```\n\nBy default, termination protection is disabled.\n\n### CfnJson\n\n`CfnJson` allows you to postpone the resolution of a JSON blob from\ndeployment-time. This is useful in cases where the CloudFormation JSON template\ncannot express a certain value.\n\nA common example is to use `CfnJson` in order to render a JSON map which needs\nto use intrinsic functions in keys. Since JSON map keys must be strings, it is\nimpossible to use intrinsics in keys and `CfnJson` can help.\n\nThe following example defines an IAM role which can only be assumed by\nprincipals that are tagged with a specific tag.\n\n```ts\nconst tagParam = new CfnParameter(this, 'TagName');\n\nconst stringEquals = new CfnJson(this, 'ConditionJson', {\n  value: {\n    [`aws:PrincipalTag/${tagParam.valueAsString}`]: true\n  },\n});\n\nconst principal = new AccountRootPrincipal().withConditions({\n  StringEquals: stringEquals,\n});\n\nnew Role(this, 'MyRole', { assumedBy: principal });\n```\n\n**Explanation**: since in this example we pass the tag name through a parameter, it\ncan only be resolved during deployment. The resolved value can be represented in\nthe template through a `{ \"Ref\": \"TagName\" }`. However, since we want to use\nthis value inside a [`aws:PrincipalTag/TAG-NAME`](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag)\nIAM operator, we need it in the *key* of a `StringEquals` condition. JSON keys\n*must be* strings, so to circumvent this limitation, we use `CfnJson`\nto \"delay\" the rendition of this template section to deploy-time. This means\nthat the value of `StringEquals` in the template will be `{ \"Fn::GetAtt\": [ \"ConditionJson\", \"Value\" ] }`, and will only \"expand\" to the operator we synthesized during deployment.\n"
  },
  "repository": {
    "directory": "packages/@aws-cdk/core",
    "type": "git",
    "url": "https://github.com/aws/aws-cdk.git"
  },
  "schema": "jsii/0.10.0",
  "targets": {
    "dotnet": {
      "assemblyOriginatorKeyFile": "../../key.snk",
      "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png",
      "namespace": "Amazon.CDK",
      "packageId": "Amazon.CDK",
      "signAssembly": true
    },
    "java": {
      "maven": {
        "artifactId": "core",
        "groupId": "software.amazon.awscdk"
      },
      "package": "software.amazon.awscdk.core"
    },
    "js": {
      "npm": "@aws-cdk/core"
    },
    "python": {
      "classifiers": [
        "Framework :: AWS CDK",
        "Framework :: AWS CDK :: 1"
      ],
      "distName": "aws-cdk.core",
      "module": "aws_cdk.core"
    }
  },
  "types": {
    "@aws-cdk/core.Annotations": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "Includes API for attaching annotations such as warning messages to constructs."
      },
      "fqn": "@aws-cdk/core.Annotations",
      "kind": "class",
      "locationInModule": {
        "filename": "lib/annotations.ts",
        "line": 9
      },
      "methods": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Returns the annotations API for a construct scope."
          },
          "locationInModule": {
            "filename": "lib/annotations.ts",
            "line": 14
          },
          "name": "of",
          "parameters": [
            {
              "docs": {
                "summary": "The scope."
              },
              "name": "scope",
              "type": {
                "fqn": "constructs.IConstruct"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.Annotations"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "Deprecations will be added only once per construct as a warning and will be\ndeduplicated based on the `api`.\n\nIf the environment variable `CDK_BLOCK_DEPRECATIONS` is set, this method\nwill throw an error instead with the deprecation message.",
            "stability": "stable",
            "summary": "Adds a deprecation warning for a specific API."
          },
          "locationInModule": {
            "filename": "lib/annotations.ts",
            "line": 68
          },
          "name": "addDeprecation",
          "parameters": [
            {
              "docs": {
                "summary": "The API being deprecated in the format `module.Class.property` (e.g. `@aws-cdk/core.Construct.node`)."
              },
              "name": "api",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "The deprecation message to display, with information about alternatives."
              },
              "name": "message",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "The toolkit will fail synthesis when errors are reported.",
            "stability": "stable",
            "summary": "Adds an { \"error\": <message> } metadata entry to this construct."
          },
          "locationInModule": {
            "filename": "lib/annotations.ts",
            "line": 50
          },
          "name": "addError",
          "parameters": [
            {
              "docs": {
                "summary": "The error message."
              },
              "name": "message",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "The CLI will display the info message when apps are synthesized.",
            "stability": "stable",
            "summary": "Adds an info metadata entry to this construct."
          },
          "locationInModule": {
            "filename": "lib/annotations.ts",
            "line": 41
          },
          "name": "addInfo",
          "parameters": [
            {
              "docs": {
                "summary": "The info message."
              },
              "name": "message",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "The CLI will display the warning when an app is synthesized, or fail if run\nin --strict mode.",
            "stability": "stable",
            "summary": "Adds a warning metadata entry to this construct."
          },
          "locationInModule": {
            "filename": "lib/annotations.ts",
            "line": 30
          },
          "name": "addWarning",
          "parameters": [
            {
              "docs": {
                "summary": "The warning message."
              },
              "name": "message",
              "type": {
                "primitive": "string"
              }
            }
          ]
        }
      ],
      "name": "Annotations"
    },
    "@aws-cdk/core.App": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.Stage",
      "docs": {
        "remarks": "You would normally define an `App` instance in your program's entrypoint,\nthen define constructs where the app is used as the parent scope.\n\nAfter all the child constructs are defined within the app, you should call\n`app.synth()` which will emit a \"cloud assembly\" from this app into the\ndirectory specified by `outdir`. Cloud assemblies includes artifacts such as\nCloudFormation templates and assets that are needed to deploy this app into\nthe AWS cloud.",
        "see": "https://docs.aws.amazon.com/cdk/latest/guide/apps.html",
        "stability": "stable",
        "summary": "A construct which represents an entire CDK app. This construct is normally the root of the construct tree."
      },
      "fqn": "@aws-cdk/core.App",
      "initializer": {
        "docs": {
          "stability": "stable",
          "summary": "Initializes a CDK application."
        },
        "locationInModule": {
          "filename": "lib/app.ts",
          "line": 100
        },
        "parameters": [
          {
            "docs": {
              "summary": "initialization properties."
            },
            "name": "props",
            "optional": true,
            "type": {
              "fqn": "@aws-cdk/core.AppProps"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/app.ts",
        "line": 86
      },
      "methods": [
        {
          "docs": {
            "returns": "`true` if `obj` is an `App`.",
            "stability": "stable",
            "summary": "Checks if an object is an instance of the `App` class."
          },
          "locationInModule": {
            "filename": "lib/app.ts",
            "line": 92
          },
          "name": "isApp",
          "parameters": [
            {
              "docs": {
                "summary": "The object to evaluate."
              },
              "name": "obj",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          },
          "static": true
        }
      ],
      "name": "App"
    },
    "@aws-cdk/core.AppProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Initialization props for apps."
      },
      "fqn": "@aws-cdk/core.AppProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/app.ts",
        "line": 10
      },
      "name": "AppProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "Value of 'aws:cdk:version-reporting' context key",
            "stability": "stable",
            "summary": "Include runtime versioning information in the Stacks of this app."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/app.ts",
            "line": 50
          },
          "name": "analyticsReporting",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true if running via CDK CLI (`CDK_OUTDIR` is set), `false`\notherwise",
            "remarks": "If you set this, you don't have to call `synth()` explicitly. Note that\nthis feature is only available for certain programming languages, and\ncalling `synth()` is still recommended.",
            "stability": "stable",
            "summary": "Automatically call `synth()` before the program exits."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/app.ts",
            "line": 21
          },
          "name": "autoSynth",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no additional context",
            "remarks": "Context set by the CLI or the `context` key in `cdk.json` has precedence.\n\nContext can be read from any construct using `node.getContext(key)`.",
            "stability": "stable",
            "summary": "Additional context values for the application."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/app.ts",
            "line": 61
          },
          "name": "context",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- If this value is _not_ set, considers the environment variable `CDK_OUTDIR`.\n  If `CDK_OUTDIR` is not defined, uses a temp directory.",
            "stability": "stable",
            "summary": "The output directory into which to emit synthesized artifacts."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/app.ts",
            "line": 29
          },
          "name": "outdir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "Value of 'aws:cdk:version-reporting' context key",
            "deprecated": "use `versionReporting` instead",
            "stability": "deprecated",
            "summary": "Include runtime versioning information in the Stacks of this app."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/app.ts",
            "line": 43
          },
          "name": "runtimeInfo",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true stack traces are included unless `aws:cdk:disable-stack-trace` is set in the context.",
            "stability": "stable",
            "summary": "Include construct creation stack trace in the `aws:cdk:trace` metadata key of all constructs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/app.ts",
            "line": 35
          },
          "name": "stackTraces",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "stable",
            "summary": "Include construct tree metadata as part of the Cloud Assembly."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/app.ts",
            "line": 68
          },
          "name": "treeMetadata",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ]
    },
    "@aws-cdk/core.Arn": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable"
      },
      "fqn": "@aws-cdk/core.Arn",
      "kind": "class",
      "locationInModule": {
        "filename": "lib/arn.ts",
        "line": 61
      },
      "methods": [
        {
          "docs": {
            "remarks": "If `partition`, `region` or `account` are not specified, the stack's\npartition, region and account will be used.\n\nIf any component is the empty string, an empty string will be inserted\ninto the generated ARN at the location that component corresponds to.\n\nThe ARN will be formatted as follows:\n\n   arn:{partition}:{service}:{region}:{account}:{resource}{sep}{resource-name}\n\nThe required ARN pieces that are omitted will be taken from the stack that\nthe 'scope' is attached to. If all ARN pieces are supplied, the supplied scope\ncan be 'undefined'.",
            "stability": "stable",
            "summary": "Creates an ARN from components."
          },
          "locationInModule": {
            "filename": "lib/arn.ts",
            "line": 79
          },
          "name": "format",
          "parameters": [
            {
              "name": "components",
              "type": {
                "fqn": "@aws-cdk/core.ArnComponents"
              }
            },
            {
              "name": "stack",
              "type": {
                "fqn": "@aws-cdk/core.Stack"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "If the ARN is a concrete string, it will be parsed and validated. The\nseparator (`sep`) will be set to '/' if the 6th component includes a '/',\nin which case, `resource` will be set to the value before the '/' and\n`resourceName` will be the rest. In case there is no '/', `resource` will\nbe set to the 6th components and `resourceName` will be set to the rest\nof the string.\n\nIf the ARN includes tokens (or is a token), the ARN cannot be validated,\nsince we don't have the actual value yet at the time of this function\ncall. You will have to know the separator and the type of ARN. The\nresulting `ArnComponents` object will contain tokens for the\nsubexpressions of the ARN, not string literals. In this case this\nfunction cannot properly parse the complete final resourceName (path) out\nof ARNs that use '/' to both separate the 'resource' from the\n'resourceName' AND to subdivide the resourceName further. For example, in\nS3 ARNs:\n\n    arn:aws:s3:::my_corporate_bucket/path/to/exampleobject.png\n\nAfter parsing the resourceName will not contain\n'path/to/exampleobject.png' but simply 'path'. This is a limitation\nbecause there is no slicing functionality in CloudFormation templates.",
            "returns": "an ArnComponents object which allows access to the various\ncomponents of the ARN.",
            "stability": "stable",
            "summary": "Given an ARN, parses it and returns components."
          },
          "locationInModule": {
            "filename": "lib/arn.ts",
            "line": 137
          },
          "name": "parse",
          "parameters": [
            {
              "docs": {
                "summary": "The ARN to parse."
              },
              "name": "arn",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "The separator used to separate resource from resourceName."
              },
              "name": "sepIfToken",
              "optional": true,
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "remarks": "For\nexample, SNS Topics ARNs have the 'resource' component contain the topic\nname, and no 'resourceName' component.",
                "summary": "Whether there is a name component in the ARN at all."
              },
              "name": "hasName",
              "optional": true,
              "type": {
                "primitive": "boolean"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.ArnComponents"
            }
          },
          "static": true
        }
      ],
      "name": "Arn"
    },
    "@aws-cdk/core.ArnComponents": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable"
      },
      "fqn": "@aws-cdk/core.ArnComponents",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/arn.ts",
        "line": 6
      },
      "name": "ArnComponents",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Resource type (e.g. \"table\", \"autoScalingGroup\", \"certificate\"). For some resource types, e.g. S3 buckets, this field defines the bucket name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/arn.ts",
            "line": 44
          },
          "name": "resource",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The service namespace that identifies the AWS product (for example, 's3', 'iam', 'codepipline')."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/arn.ts",
            "line": 21
          },
          "name": "service",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "The account the stack is deployed to.",
            "remarks": "For example, 123456789012. Note that the ARNs for some resources don't\nrequire an account number, so this component might be omitted.",
            "stability": "stable",
            "summary": "The ID of the AWS account that owns the resource, without the hyphens."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/arn.ts",
            "line": 38
          },
          "name": "account",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "The AWS partition the stack is deployed to.",
            "remarks": "For standard AWS regions, the\npartition is aws. If you have resources in other partitions, the\npartition is aws-partitionname. For example, the partition for resources\nin the China (Beijing) region is aws-cn.",
            "stability": "stable",
            "summary": "The partition that the resource is in."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/arn.ts",
            "line": 15
          },
          "name": "partition",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "The region the stack is deployed to.",
            "remarks": "Note that the ARNs for some resources\ndo not require a region, so this component might be omitted.",
            "stability": "stable",
            "summary": "The region the resource resides in."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/arn.ts",
            "line": 29
          },
          "name": "region",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Resource name or path within the resource (i.e. S3 bucket object key) or a wildcard such as ``\"*\"``. This is service-dependent."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/arn.ts",
            "line": 58
          },
          "name": "resourceName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "'/'",
            "remarks": "Can be either '/', ':' or an empty string. Will only be used if resourceName is defined.",
            "stability": "stable",
            "summary": "Separator between resource type and the resource."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/arn.ts",
            "line": 52
          },
          "name": "sep",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.Aspects": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "Aspects can be applied to CDK tree scopes and can operate on the tree before synthesis."
      },
      "fqn": "@aws-cdk/core.Aspects",
      "kind": "class",
      "locationInModule": {
        "filename": "lib/aspect.ts",
        "line": 19
      },
      "methods": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Returns the `Aspects` object associated with a construct scope."
          },
          "locationInModule": {
            "filename": "lib/aspect.ts",
            "line": 25
          },
          "name": "of",
          "parameters": [
            {
              "docs": {
                "summary": "The scope for which these aspects will apply."
              },
              "name": "scope",
              "type": {
                "fqn": "@aws-cdk/core.IConstruct"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.Aspects"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Adds an aspect to apply this scope before synthesis."
          },
          "locationInModule": {
            "filename": "lib/aspect.ts",
            "line": 46
          },
          "name": "add",
          "parameters": [
            {
              "docs": {
                "summary": "The aspect to add."
              },
              "name": "aspect",
              "type": {
                "fqn": "@aws-cdk/core.IAspect"
              }
            }
          ]
        }
      ],
      "name": "Aspects",
      "properties": [
        {
          "docs": {
            "stability": "stable",
            "summary": "The list of aspects which were directly applied on this scope."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/aspect.ts",
            "line": 54
          },
          "name": "aspects",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "@aws-cdk/core.IAspect"
              },
              "kind": "array"
            }
          }
        }
      ]
    },
    "@aws-cdk/core.AssetHashType": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "NOTE: the hash is used in order to identify a specific revision of the asset, and\nused for optimizing and caching deployment activities related to this asset such as\npackaging, uploading to Amazon S3, etc.",
        "stability": "stable",
        "summary": "The type of asset hash."
      },
      "fqn": "@aws-cdk/core.AssetHashType",
      "kind": "enum",
      "locationInModule": {
        "filename": "lib/assets.ts",
        "line": 68
      },
      "members": [
        {
          "docs": {
            "remarks": "When bundling, use `SOURCE` when the content of the bundling output is not\nstable across repeated bundling operations.",
            "stability": "stable",
            "summary": "Based on the content of the source path."
          },
          "name": "SOURCE"
        },
        {
          "docs": {
            "deprecated": "use `OUTPUT` instead",
            "stability": "deprecated",
            "summary": "Based on the content of the bundled path."
          },
          "name": "BUNDLE"
        },
        {
          "docs": {
            "remarks": "Use `OUTPUT` when the source of the asset is a top level folder containing\ncode and/or dependencies that are not directly linked to the asset.",
            "stability": "stable",
            "summary": "Based on the content of the bundling output."
          },
          "name": "OUTPUT"
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Use a custom hash."
          },
          "name": "CUSTOM"
        }
      ],
      "name": "AssetHashType"
    },
    "@aws-cdk/core.AssetOptions": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Asset hash options."
      },
      "fqn": "@aws-cdk/core.AssetOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/assets.ts",
        "line": 18
      },
      "name": "AssetOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- based on `assetHashType`",
            "remarks": "If `assetHashType` is set it must\nbe set to `AssetHashType.CUSTOM`. For consistency, this custom hash will\nbe SHA256 hashed and encoded as hex. The resulting hash will be the asset\nhash.\n\nNOTE: the hash is used in order to identify a specific revision of the asset, and\nused for optimizing and caching deployment activities related to this asset such as\npackaging, uploading to Amazon S3, etc. If you chose to customize the hash, you will\nneed to make sure it is updated every time the asset changes, or otherwise it is\npossible that some deployments will not be invalidated.",
            "stability": "stable",
            "summary": "Specify a custom hash for this asset."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/assets.ts",
            "line": 33
          },
          "name": "assetHash",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- the default is `AssetHashType.SOURCE`, but if `assetHash` is\nexplicitly specified this value defaults to `AssetHashType.CUSTOM`.",
            "remarks": "If `assetHash` is configured, this option must be `undefined` or\n`AssetHashType.CUSTOM`.",
            "stability": "stable",
            "summary": "Specifies the type of hash to calculate for this asset."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/assets.ts",
            "line": 44
          },
          "name": "assetHashType",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.AssetHashType"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- uploaded as-is to S3 if the asset is a regular file or a .zip file,\narchived into a .zip file and uploaded to S3 otherwise",
            "remarks": "The asset path will be mounted at `/asset-input`. The Docker\ncontainer is responsible for putting content at `/asset-output`.\nThe content at `/asset-output` will be zipped and used as the\nfinal asset.",
            "stability": "experimental",
            "summary": "Bundle the asset by executing a command in a Docker container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/assets.ts",
            "line": 58
          },
          "name": "bundling",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.BundlingOptions"
          }
        }
      ]
    },
    "@aws-cdk/core.AssetStaging": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.Construct",
      "docs": {
        "remarks": "This is controlled by the context key 'aws:cdk:asset-staging' and enabled\nby the CLI by default in order to ensure that when the CDK app exists, all\nassets are available for deployment. Otherwise, if an app references assets\nin temporary locations, those will not be available when it exists (see\nhttps://github.com/aws/aws-cdk/issues/1716).\n\nThe `stagedPath` property is a stringified token that represents the location\nof the file or directory after staging. It will be resolved only during the\n\"prepare\" stage and may be either the original path or the staged path\ndepending on the context setting.\n\nThe file/directory are staged based on their content hash (fingerprint). This\nmeans that only if content was changed, copy will happen.",
        "stability": "stable",
        "summary": "Stages a file or directory from a location on the file system into a staging directory."
      },
      "fqn": "@aws-cdk/core.AssetStaging",
      "initializer": {
        "docs": {
          "stability": "stable"
        },
        "locationInModule": {
          "filename": "lib/asset-staging.ts",
          "line": 113
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "props",
            "type": {
              "fqn": "@aws-cdk/core.AssetStagingProps"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/asset-staging.ts",
        "line": 46
      },
      "methods": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Clears the asset hash cache."
          },
          "locationInModule": {
            "filename": "lib/asset-staging.ts",
            "line": 62
          },
          "name": "clearAssetHashCache",
          "static": true
        }
      ],
      "name": "AssetStaging",
      "properties": [
        {
          "const": true,
          "docs": {
            "stability": "experimental",
            "summary": "The directory inside the bundling container into which the asset sources will be mounted."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/asset-staging.ts",
            "line": 51
          },
          "name": "BUNDLING_INPUT_DIR",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "experimental",
            "summary": "The directory inside the bundling container into which the bundled output should be written."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/asset-staging.ts",
            "line": 57
          },
          "name": "BUNDLING_OUTPUT_DIR",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "A cryptographic hash of the asset."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/asset-staging.ts",
            "line": 103
          },
          "name": "assetHash",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "deprecated": "see `assetHash`.",
            "stability": "deprecated",
            "summary": "A cryptographic hash of the asset."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/asset-staging.ts",
            "line": 98
          },
          "name": "sourceHash",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "The path of the asset as it was referenced by the user."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/asset-staging.ts",
            "line": 91
          },
          "name": "sourcePath",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "remarks": "If asset staging is disabled, this will just be the original path.\nIf asset staging is enabled it will be the staged path.",
            "stability": "stable",
            "summary": "The path to the asset (stringinfied token)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/asset-staging.ts",
            "line": 86
          },
          "name": "stagedPath",
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.AssetStagingProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Initialization properties for `AssetStaging`."
      },
      "fqn": "@aws-cdk/core.AssetStagingProps",
      "interfaces": [
        "@aws-cdk/core.FingerprintOptions",
        "@aws-cdk/core.AssetOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/asset-staging.ts",
        "line": 21
      },
      "name": "AssetStagingProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The source file or directory to copy from."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/asset-staging.ts",
            "line": 25
          },
          "name": "sourcePath",
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.Aws": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "Since pseudo parameters need to be anchored to a stack somewhere in the\nconstruct tree, this class takes an scope parameter; the pseudo parameter\nvalues can be obtained as properties from an scoped object.",
        "stability": "stable",
        "summary": "Accessor for pseudo parameters."
      },
      "fqn": "@aws-cdk/core.Aws",
      "kind": "class",
      "locationInModule": {
        "filename": "lib/cfn-pseudo.ts",
        "line": 21
      },
      "name": "Aws",
      "properties": [
        {
          "const": true,
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-pseudo.ts",
            "line": 22
          },
          "name": "ACCOUNT_ID",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-pseudo.ts",
            "line": 29
          },
          "name": "NO_VALUE",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-pseudo.ts",
            "line": 24
          },
          "name": "NOTIFICATION_ARNS",
          "static": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-pseudo.ts",
            "line": 25
          },
          "name": "PARTITION",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-pseudo.ts",
            "line": 26
          },
          "name": "REGION",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-pseudo.ts",
            "line": 27
          },
          "name": "STACK_ID",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-pseudo.ts",
            "line": 28
          },
          "name": "STACK_NAME",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-pseudo.ts",
            "line": 23
          },
          "name": "URL_SUFFIX",
          "static": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.BootstraplessSynthesizer": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.DefaultStackSynthesizer",
      "docs": {
        "remarks": "Because of that, stacks using it cannot have assets inside of them.\nUsed by the CodePipeline construct for the support stacks needed for\ncross-region replication S3 buckets.",
        "stability": "stable",
        "summary": "A special synthesizer that behaves similarly to DefaultStackSynthesizer, but doesn't require bootstrapping the environment it operates in."
      },
      "fqn": "@aws-cdk/core.BootstraplessSynthesizer",
      "initializer": {
        "docs": {
          "stability": "stable"
        },
        "locationInModule": {
          "filename": "lib/stack-synthesizers/bootstrapless-synthesizer.ts",
          "line": 34
        },
        "parameters": [
          {
            "name": "props",
            "type": {
              "fqn": "@aws-cdk/core.BootstraplessSynthesizerProps"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/stack-synthesizers/bootstrapless-synthesizer.ts",
        "line": 33
      },
      "methods": [
        {
          "docs": {
            "remarks": "Returns the parameters that can be used to refer to the asset inside the template.",
            "stability": "stable",
            "summary": "Register a Docker Image Asset."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/bootstrapless-synthesizer.ts",
            "line": 46
          },
          "name": "addDockerImageAsset",
          "overrides": "@aws-cdk/core.DefaultStackSynthesizer",
          "parameters": [
            {
              "name": "_asset",
              "type": {
                "fqn": "@aws-cdk/core.DockerImageAssetSource"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.DockerImageAssetLocation"
            }
          }
        },
        {
          "docs": {
            "remarks": "Returns the parameters that can be used to refer to the asset inside the template.",
            "stability": "stable",
            "summary": "Register a File Asset."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/bootstrapless-synthesizer.ts",
            "line": 42
          },
          "name": "addFileAsset",
          "overrides": "@aws-cdk/core.DefaultStackSynthesizer",
          "parameters": [
            {
              "name": "_asset",
              "type": {
                "fqn": "@aws-cdk/core.FileAssetSource"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.FileAssetLocation"
            }
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Synthesize the associated stack to the session."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/bootstrapless-synthesizer.ts",
            "line": 50
          },
          "name": "synthesize",
          "overrides": "@aws-cdk/core.DefaultStackSynthesizer",
          "parameters": [
            {
              "name": "session",
              "type": {
                "fqn": "@aws-cdk/core.ISynthesisSession"
              }
            }
          ]
        }
      ],
      "name": "BootstraplessSynthesizer"
    },
    "@aws-cdk/core.BootstraplessSynthesizerProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Construction properties of {@link BootstraplessSynthesizer}."
      },
      "fqn": "@aws-cdk/core.BootstraplessSynthesizerProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/stack-synthesizers/bootstrapless-synthesizer.ts",
        "line": 9
      },
      "name": "BootstraplessSynthesizerProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- No CloudFormation role (use CLI credentials)",
            "stability": "stable",
            "summary": "The CFN execution Role ARN to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/bootstrapless-synthesizer.ts",
            "line": 23
          },
          "name": "cloudFormationExecutionRoleArn",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- No deploy role (use CLI credentials)",
            "stability": "stable",
            "summary": "The deploy Role ARN to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/bootstrapless-synthesizer.ts",
            "line": 16
          },
          "name": "deployRoleArn",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.BundlingDockerImage": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "A Docker image used for asset bundling."
      },
      "fqn": "@aws-cdk/core.BundlingDockerImage",
      "kind": "class",
      "locationInModule": {
        "filename": "lib/bundling.ts",
        "line": 92
      },
      "methods": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Reference an image that's built directly from sources on disk."
          },
          "locationInModule": {
            "filename": "lib/bundling.ts",
            "line": 108
          },
          "name": "fromAsset",
          "parameters": [
            {
              "docs": {
                "summary": "The path to the directory containing the Docker file."
              },
              "name": "path",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "Docker build options."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.DockerBuildOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.BundlingDockerImage"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Reference an image on DockerHub or another online registry."
          },
          "locationInModule": {
            "filename": "lib/bundling.ts",
            "line": 98
          },
          "name": "fromRegistry",
          "parameters": [
            {
              "docs": {
                "summary": "the image name."
              },
              "name": "image",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.BundlingDockerImage"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Copies a file or directory out of the Docker image to the local filesystem."
          },
          "locationInModule": {
            "filename": "lib/bundling.ts",
            "line": 181
          },
          "name": "cp",
          "parameters": [
            {
              "name": "imagePath",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "outputPath",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Runs a Docker image."
          },
          "locationInModule": {
            "filename": "lib/bundling.ts",
            "line": 150
          },
          "name": "run",
          "parameters": [
            {
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.DockerRunOptions"
              }
            }
          ]
        },
        {
          "docs": {
            "returns": "The overridden image name if set or image hash name in that order",
            "stability": "stable",
            "summary": "Provides a stable representation of this image for JSON serialization."
          },
          "locationInModule": {
            "filename": "lib/bundling.ts",
            "line": 143
          },
          "name": "toJSON",
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "BundlingDockerImage",
      "properties": [
        {
          "docs": {
            "stability": "stable",
            "summary": "The Docker image."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/bundling.ts",
            "line": 136
          },
          "name": "image",
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.BundlingOptions": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Bundling options."
      },
      "fqn": "@aws-cdk/core.BundlingOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/bundling.ts",
        "line": 9
      },
      "name": "BundlingOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The Docker image where the command will run."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/bundling.ts",
            "line": 13
          },
          "name": "image",
          "type": {
            "fqn": "@aws-cdk/core.BundlingDockerImage"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- run the command defined in the image",
            "example": "['npm', 'install']",
            "see": "https://docs.docker.com/engine/reference/run/",
            "stability": "experimental",
            "summary": "The command to run in the Docker container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/bundling.ts",
            "line": 24
          },
          "name": "command",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no environment variables.",
            "stability": "experimental",
            "summary": "The environment variables to pass to the Docker container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/bundling.ts",
            "line": 38
          },
          "name": "environment",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- bundling will only be performed in a Docker container",
            "remarks": "The provider implements a method `tryBundle()` which should return `true`\nif local bundling was performed. If `false` is returned, docker bundling\nwill be done.",
            "stability": "experimental",
            "summary": "Local bundling provider."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/bundling.ts",
            "line": 69
          },
          "name": "local",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.ILocalBundling"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- uid:gid of the current user or 1000:1000 on Windows",
            "remarks": "user | user:group | uid | uid:gid | user:gid | uid:group",
            "see": "https://docs.docker.com/engine/reference/run/#user",
            "stability": "experimental",
            "summary": "The user to use when running the Docker container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/bundling.ts",
            "line": 56
          },
          "name": "user",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no additional volumes are mounted",
            "stability": "experimental",
            "summary": "Additional Docker volumes to mount."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/bundling.ts",
            "line": 31
          },
          "name": "volumes",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "@aws-cdk/core.DockerVolume"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "/asset-input",
            "stability": "experimental",
            "summary": "Working directory inside the Docker container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/bundling.ts",
            "line": 45
          },
          "name": "workingDirectory",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnAutoScalingReplacingUpdate": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "remarks": "During replacement,\nAWS CloudFormation retains the old group until it finishes creating the new one. If the update fails, AWS CloudFormation\ncan roll back to the old Auto Scaling group and delete the new Auto Scaling group.\n\nWhile AWS CloudFormation creates the new group, it doesn't detach or attach any instances. After successfully creating\nthe new Auto Scaling group, AWS CloudFormation deletes the old Auto Scaling group during the cleanup process.\n\nWhen you set the WillReplace parameter, remember to specify a matching CreationPolicy. If the minimum number of\ninstances (specified by the MinSuccessfulInstancesPercent property) don't signal success within the Timeout period\n(specified in the CreationPolicy policy), the replacement update fails and AWS CloudFormation rolls back to the old\nAuto Scaling group.",
        "stability": "stable",
        "summary": "Specifies whether an Auto Scaling group and the instances it contains are replaced during an update."
      },
      "fqn": "@aws-cdk/core.CfnAutoScalingReplacingUpdate",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-resource-policy.ts",
        "line": 228
      },
      "name": "CfnAutoScalingReplacingUpdate",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource-policy.ts",
            "line": 229
          },
          "name": "willReplace",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnAutoScalingRollingUpdate": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "remarks": "Rolling updates enable you to specify whether AWS CloudFormation updates instances that are in an Auto Scaling\ngroup in batches or all at once.",
        "stability": "stable",
        "summary": "To specify how AWS CloudFormation handles rolling updates for an Auto Scaling group, use the AutoScalingRollingUpdate policy."
      },
      "fqn": "@aws-cdk/core.CfnAutoScalingRollingUpdate",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-resource-policy.ts",
        "line": 152
      },
      "name": "CfnAutoScalingRollingUpdate",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Specifies the maximum number of instances that AWS CloudFormation updates."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource-policy.ts",
            "line": 157
          },
          "name": "maxBatchSize",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Specifies the minimum number of instances that must be in service within the Auto Scaling group while AWS CloudFormation updates old instances."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource-policy.ts",
            "line": 163
          },
          "name": "minInstancesInService",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "You can specify a value from 0 to 100. AWS CloudFormation rounds to the nearest tenth of a percent. For example, if you\nupdate five instances with a minimum successful percentage of 50, three instances must signal success.\n\nIf an instance doesn't send a signal within the time specified in the PauseTime property, AWS CloudFormation assumes\nthat the instance wasn't updated.\n\nIf you specify this property, you must also enable the WaitOnResourceSignals and PauseTime properties.",
            "stability": "stable",
            "summary": "Specifies the percentage of instances in an Auto Scaling rolling update that must signal success for an update to succeed."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource-policy.ts",
            "line": 175
          },
          "name": "minSuccessfulInstancesPercent",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "For example, you might need to specify PauseTime when scaling up the number of\ninstances in an Auto Scaling group.\n\nIf you enable the WaitOnResourceSignals property, PauseTime is the amount of time that AWS CloudFormation should wait\nfor the Auto Scaling group to receive the required number of valid signals from added or replaced instances. If the\nPauseTime is exceeded before the Auto Scaling group receives the required number of signals, the update fails. For best\nresults, specify a time period that gives your applications sufficient time to get started. If the update needs to be\nrolled back, a short PauseTime can cause the rollback to fail.\n\nSpecify PauseTime in the ISO8601 duration format (in the format PT#H#M#S, where each # is the number of hours, minutes,\nand seconds, respectively). The maximum PauseTime is one hour (PT1H).",
            "stability": "stable",
            "summary": "The amount of time that AWS CloudFormation pauses after making a change to a batch of instances to give those instances time to start software applications."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource-policy.ts",
            "line": 191
          },
          "name": "pauseTime",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Suspending processes prevents Auto Scaling from\ninterfering with a stack update. For example, you can suspend alarming so that Auto Scaling doesn't execute scaling\npolicies associated with an alarm. For valid values, see the ScalingProcesses.member.N parameter for the SuspendProcesses\naction in the Auto Scaling API Reference.",
            "stability": "stable",
            "summary": "Specifies the Auto Scaling processes to suspend during a stack update."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource-policy.ts",
            "line": 199
          },
          "name": "suspendProcesses",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Use this property to\nensure that instances have completed installing and configuring applications before the Auto Scaling group update proceeds.\nAWS CloudFormation suspends the update of an Auto Scaling group after new EC2 instances are launched into the group.\nAWS CloudFormation must receive a signal from each new instance within the specified PauseTime before continuing the update.\nTo signal the Auto Scaling group, use the cfn-signal helper script or SignalResource API.\n\nTo have instances wait for an Elastic Load Balancing health check before they signal success, add a health-check\nverification by using the cfn-init helper script. For an example, see the verify_instance_health command in the Auto Scaling\nrolling updates sample template.",
            "stability": "stable",
            "summary": "Specifies whether the Auto Scaling group waits on signals from new instances during an update."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource-policy.ts",
            "line": 212
          },
          "name": "waitOnResourceSignals",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnAutoScalingScheduledAction": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "remarks": "When you update a\nstack with an Auto Scaling group and scheduled action, AWS CloudFormation always sets the group size property values of\nyour Auto Scaling group to the values that are defined in the AWS::AutoScaling::AutoScalingGroup resource of your template,\neven if a scheduled action is in effect.\n\nIf you do not want AWS CloudFormation to change any of the group size property values when you have a scheduled action in\neffect, use the AutoScalingScheduledAction update policy to prevent AWS CloudFormation from changing the MinSize, MaxSize,\nor DesiredCapacity properties unless you have modified these values in your template.\\",
        "stability": "stable",
        "summary": "With scheduled actions, the group size properties of an Auto Scaling group can change at any time."
      },
      "fqn": "@aws-cdk/core.CfnAutoScalingScheduledAction",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-resource-policy.ts",
        "line": 242
      },
      "name": "CfnAutoScalingScheduledAction",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource-policy.ts",
            "line": 249
          },
          "name": "ignoreUnmodifiedGroupSizeProperties",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnCapabilities": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "Capabilities that affect whether CloudFormation is allowed to change IAM resources."
      },
      "fqn": "@aws-cdk/core.CfnCapabilities",
      "kind": "enum",
      "locationInModule": {
        "filename": "lib/cfn-capabilities.ts",
        "line": 4
      },
      "members": [
        {
          "docs": {
            "custom": {
              "link": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities"
            },
            "remarks": "Pass this capability if you wish to block the creation IAM resources.",
            "stability": "stable",
            "summary": "No IAM Capabilities."
          },
          "name": "NONE"
        },
        {
          "docs": {
            "custom": {
              "link": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities"
            },
            "remarks": "Pass this capability if you're only creating anonymous resources.",
            "stability": "stable",
            "summary": "Capability to create anonymous IAM resources."
          },
          "name": "ANONYMOUS_IAM"
        },
        {
          "docs": {
            "custom": {
              "link": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities"
            },
            "remarks": "Pass this capability if you're creating IAM resources that have physical\nnames.\n\n`CloudFormationCapabilities.NamedIAM` implies `CloudFormationCapabilities.IAM`; you don't have to pass both.",
            "stability": "stable",
            "summary": "Capability to create named IAM resources."
          },
          "name": "NAMED_IAM"
        },
        {
          "docs": {
            "custom": {
              "link": "https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html"
            },
            "remarks": "Pass this capability if your template includes macros, for example AWS::Include or AWS::Serverless.",
            "stability": "stable",
            "summary": "Capability to run CloudFormation macros."
          },
          "name": "AUTO_EXPAND"
        }
      ],
      "name": "CfnCapabilities"
    },
    "@aws-cdk/core.CfnCodeDeployBlueGreenAdditionalOptions": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "remarks": "The type of the {@link CfnCodeDeployBlueGreenHookProps.additionalOptions} property.",
        "stability": "stable",
        "summary": "Additional options for the blue/green deployment."
      },
      "fqn": "@aws-cdk/core.CfnCodeDeployBlueGreenAdditionalOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
        "line": 102
      },
      "name": "CfnCodeDeployBlueGreenAdditionalOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- 5 minutes",
            "stability": "stable",
            "summary": "Specifies time to wait, in minutes, before terminating the blue resources."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 108
          },
          "name": "terminationWaitTimeInMinutes",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnCodeDeployBlueGreenApplication": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "remarks": "Type of the {@link CfnCodeDeployBlueGreenHookProps.applications} property.",
        "stability": "stable",
        "summary": "The application actually being deployed."
      },
      "fqn": "@aws-cdk/core.CfnCodeDeployBlueGreenApplication",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
        "line": 234
      },
      "name": "CfnCodeDeployBlueGreenApplication",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The detailed attributes of the deployed target."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 243
          },
          "name": "ecsAttributes",
          "type": {
            "fqn": "@aws-cdk/core.CfnCodeDeployBlueGreenEcsAttributes"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The target that is being deployed."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 238
          },
          "name": "target",
          "type": {
            "fqn": "@aws-cdk/core.CfnCodeDeployBlueGreenApplicationTarget"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnCodeDeployBlueGreenApplicationTarget": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Type of the {@link CfnCodeDeployBlueGreenApplication.target} property."
      },
      "fqn": "@aws-cdk/core.CfnCodeDeployBlueGreenApplicationTarget",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
        "line": 156
      },
      "name": "CfnCodeDeployBlueGreenApplicationTarget",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The logical id of the target resource."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 166
          },
          "name": "logicalId",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Right now, the only allowed value is 'AWS::ECS::Service'.",
            "stability": "stable",
            "summary": "The resource type of the target being deployed."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 161
          },
          "name": "type",
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnCodeDeployBlueGreenEcsAttributes": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "remarks": "Type of the {@link CfnCodeDeployBlueGreenApplication.ecsAttributes} property.",
        "stability": "stable",
        "summary": "The attributes of the ECS Service being deployed."
      },
      "fqn": "@aws-cdk/core.CfnCodeDeployBlueGreenEcsAttributes",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
        "line": 211
      },
      "name": "CfnCodeDeployBlueGreenEcsAttributes",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The logical IDs of the blue and green, respectively, AWS::ECS::TaskDefinition task definitions."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 216
          },
          "name": "taskDefinitions",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The logical IDs of the blue and green, respectively, AWS::ECS::TaskSet task sets."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 222
          },
          "name": "taskSets",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The traffic routing configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 227
          },
          "name": "trafficRouting",
          "type": {
            "fqn": "@aws-cdk/core.CfnTrafficRouting"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnCodeDeployBlueGreenHook": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.CfnHook",
      "docs": {
        "see": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/blue-green.html#blue-green-template-reference",
        "stability": "stable",
        "summary": "A CloudFormation Hook for CodeDeploy blue-green ECS deployments."
      },
      "fqn": "@aws-cdk/core.CfnCodeDeployBlueGreenHook",
      "initializer": {
        "docs": {
          "stability": "stable",
          "summary": "Creates a new CodeDeploy blue-green ECS Hook."
        },
        "locationInModule": {
          "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
          "line": 389
        },
        "parameters": [
          {
            "docs": {
              "summary": "the scope to create the hook in (usually the containing Stack object)."
            },
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "docs": {
              "summary": "the identifier of the construct - will be used to generate the logical ID of the Hook."
            },
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "docs": {
              "summary": "the properties of the Hook."
            },
            "name": "props",
            "type": {
              "fqn": "@aws-cdk/core.CfnCodeDeployBlueGreenHookProps"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
        "line": 291
      },
      "methods": [
        {
          "docs": {
            "stability": "stable"
          },
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 467
          },
          "name": "renderProperties",
          "overrides": "@aws-cdk/core.CfnHook",
          "parameters": [
            {
              "name": "_props",
              "optional": true,
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "any"
                  },
                  "kind": "map"
                }
              }
            }
          ],
          "protected": true,
          "returns": {
            "optional": true,
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "any"
                },
                "kind": "map"
              }
            }
          }
        }
      ],
      "name": "CfnCodeDeployBlueGreenHook",
      "properties": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Properties of the Amazon ECS applications being deployed."
          },
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 416
          },
          "name": "applications",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "@aws-cdk/core.CfnCodeDeployBlueGreenApplication"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "The IAM Role for CloudFormation to use to perform blue-green deployments."
          },
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 405
          },
          "name": "serviceRole",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "default": "- no additional options",
            "stability": "stable",
            "summary": "Additional options for the blue/green deployment."
          },
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 442
          },
          "name": "additionalOptions",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.CfnCodeDeployBlueGreenAdditionalOptions"
          }
        },
        {
          "docs": {
            "default": "- no lifecycle event hooks",
            "remarks": "You can use the same function or a different one for deployment lifecycle events.\nFollowing completion of the validation tests,\nthe Lambda {@link CfnCodeDeployBlueGreenLifecycleEventHooks.afterAllowTraffic}\nfunction calls back CodeDeploy and delivers a result of 'Succeeded' or 'Failed'.",
            "stability": "stable",
            "summary": "Use lifecycle event hooks to specify a Lambda function that CodeDeploy can call to validate a deployment."
          },
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 459
          },
          "name": "lifecycleEventHooks",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.CfnCodeDeployBlueGreenLifecycleEventHooks"
          }
        },
        {
          "docs": {
            "default": "- time-based canary traffic shifting, with a 15% step percentage and a five minute bake time",
            "stability": "stable",
            "summary": "Traffic routing configuration settings."
          },
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 429
          },
          "name": "trafficRoutingConfig",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.CfnTrafficRoutingConfig"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnCodeDeployBlueGreenHookProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Construction properties of {@link CfnCodeDeployBlueGreenHook}."
      },
      "fqn": "@aws-cdk/core.CfnCodeDeployBlueGreenHookProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
        "line": 249
      },
      "name": "CfnCodeDeployBlueGreenHookProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Properties of the Amazon ECS applications being deployed."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 258
          },
          "name": "applications",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "@aws-cdk/core.CfnCodeDeployBlueGreenApplication"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The IAM Role for CloudFormation to use to perform blue-green deployments."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 253
          },
          "name": "serviceRole",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no additional options",
            "stability": "stable",
            "summary": "Additional options for the blue/green deployment."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 272
          },
          "name": "additionalOptions",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.CfnCodeDeployBlueGreenAdditionalOptions"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no lifecycle event hooks",
            "remarks": "You can use the same function or a different one for deployment lifecycle events.\nFollowing completion of the validation tests,\nthe Lambda {@link CfnCodeDeployBlueGreenLifecycleEventHooks.afterAllowTraffic}\nfunction calls back CodeDeploy and delivers a result of 'Succeeded' or 'Failed'.",
            "stability": "stable",
            "summary": "Use lifecycle event hooks to specify a Lambda function that CodeDeploy can call to validate a deployment."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 283
          },
          "name": "lifecycleEventHooks",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.CfnCodeDeployBlueGreenLifecycleEventHooks"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- time-based canary traffic shifting, with a 15% step percentage and a five minute bake time",
            "stability": "stable",
            "summary": "Traffic routing configuration settings."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 265
          },
          "name": "trafficRoutingConfig",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.CfnTrafficRoutingConfig"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnCodeDeployBlueGreenLifecycleEventHooks": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "remarks": "The type of the {@link CfnCodeDeployBlueGreenHookProps.lifecycleEventHooks} property.",
        "stability": "stable",
        "summary": "Lifecycle events for blue-green deployments."
      },
      "fqn": "@aws-cdk/core.CfnCodeDeployBlueGreenLifecycleEventHooks",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
        "line": 115
      },
      "name": "CfnCodeDeployBlueGreenLifecycleEventHooks",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- none",
            "stability": "stable",
            "summary": "Function to use to run tasks after the test listener serves traffic to the replacement task set."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 135
          },
          "name": "afterAllowTestTraffic",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- none",
            "stability": "stable",
            "summary": "Function to use to run tasks after the second target group serves traffic to the replacement task set."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 150
          },
          "name": "afterAllowTraffic",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- none",
            "stability": "stable",
            "summary": "Function to use to run tasks after the replacement task set is created and one of the target groups is associated with it."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 128
          },
          "name": "afterInstall",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- none",
            "stability": "stable",
            "summary": "Function to use to run tasks after the second target group is associated with the replacement task set, but before traffic is shifted to the replacement task set."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 143
          },
          "name": "beforeAllowTraffic",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- none",
            "stability": "stable",
            "summary": "Function to use to run tasks before the replacement task set is created."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 121
          },
          "name": "beforeInstall",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnCodeDeployLambdaAliasUpdate": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "To perform an AWS CodeDeploy deployment when the version changes on an AWS::Lambda::Alias resource, use the CodeDeployLambdaAliasUpdate update policy."
      },
      "fqn": "@aws-cdk/core.CfnCodeDeployLambdaAliasUpdate",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-resource-policy.ts",
        "line": 256
      },
      "name": "CfnCodeDeployLambdaAliasUpdate",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The name of the AWS CodeDeploy application."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource-policy.ts",
            "line": 260
          },
          "name": "applicationName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "This is where the traffic-shifting policy is set.",
            "stability": "stable",
            "summary": "The name of the AWS CodeDeploy deployment group."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource-policy.ts",
            "line": 265
          },
          "name": "deploymentGroupName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The name of the Lambda function to run after traffic routing completes."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource-policy.ts",
            "line": 275
          },
          "name": "afterAllowTrafficHook",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The name of the Lambda function to run before traffic routing starts."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource-policy.ts",
            "line": 270
          },
          "name": "beforeAllowTrafficHook",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnCondition": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.CfnElement",
      "docs": {
        "stability": "stable",
        "summary": "Represents a CloudFormation condition, for resources which must be conditionally created and the determination must be made at deploy time."
      },
      "fqn": "@aws-cdk/core.CfnCondition",
      "initializer": {
        "docs": {
          "remarks": "The condition must be constructed with a condition token,\nthat the condition is based on.",
          "stability": "stable",
          "summary": "Build a new condition."
        },
        "locationInModule": {
          "filename": "lib/cfn-condition.ts",
          "line": 28
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "props",
            "optional": true,
            "type": {
              "fqn": "@aws-cdk/core.CfnConditionProps"
            }
          }
        ]
      },
      "interfaces": [
        "@aws-cdk/core.ICfnConditionExpression",
        "@aws-cdk/core.IResolvable"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "lib/cfn-condition.ts",
        "line": 18
      },
      "methods": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Synthesizes the condition."
          },
          "locationInModule": {
            "filename": "lib/cfn-condition.ts",
            "line": 51
          },
          "name": "resolve",
          "overrides": "@aws-cdk/core.IResolvable",
          "parameters": [
            {
              "name": "_context",
              "type": {
                "fqn": "@aws-cdk/core.IResolveContext"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        }
      ],
      "name": "CfnCondition",
      "properties": [
        {
          "docs": {
            "stability": "stable",
            "summary": "The condition statement."
          },
          "locationInModule": {
            "filename": "lib/cfn-condition.ts",
            "line": 22
          },
          "name": "expression",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.ICfnConditionExpression"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnConditionProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable"
      },
      "fqn": "@aws-cdk/core.CfnConditionProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-condition.ts",
        "line": 5
      },
      "name": "CfnConditionProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- None.",
            "stability": "stable",
            "summary": "The expression that the condition will evaluate."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-condition.ts",
            "line": 11
          },
          "name": "expression",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.ICfnConditionExpression"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnCreationPolicy": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "remarks": "To signal a\nresource, you can use the cfn-signal helper script or SignalResource API. AWS CloudFormation publishes valid signals\nto the stack events so that you track the number of signals sent.\n\nThe creation policy is invoked only when AWS CloudFormation creates the associated resource. Currently, the only\nAWS CloudFormation resources that support creation policies are AWS::AutoScaling::AutoScalingGroup, AWS::EC2::Instance,\nand AWS::CloudFormation::WaitCondition.\n\nUse the CreationPolicy attribute when you want to wait on resource configuration actions before stack creation proceeds.\nFor example, if you install and configure software applications on an EC2 instance, you might want those applications to\nbe running before proceeding. In such cases, you can add a CreationPolicy attribute to the instance, and then send a success\nsignal to the instance after the applications are installed and configured. For a detailed example, see Deploying Applications\non Amazon EC2 with AWS CloudFormation.",
        "stability": "stable",
        "summary": "Associate the CreationPolicy attribute with a resource to prevent its status from reaching create complete until AWS CloudFormation receives a specified number of success signals or the timeout period is exceeded."
      },
      "fqn": "@aws-cdk/core.CfnCreationPolicy",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-resource-policy.ts",
        "line": 17
      },
      "name": "CfnCreationPolicy",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "For an Auto Scaling group replacement update, specifies how many instances must signal success for the update to succeed."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource-policy.ts",
            "line": 22
          },
          "name": "autoScalingCreationPolicy",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.CfnResourceAutoScalingCreationPolicy"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "When AWS CloudFormation creates the associated resource, configures the number of required success signals and the length of time that AWS CloudFormation waits for those signals."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource-policy.ts",
            "line": 28
          },
          "name": "resourceSignal",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.CfnResourceSignal"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnCustomResource": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.CfnResource",
      "docs": {
        "custom": {
          "cloudformationResource": "AWS::CloudFormation::CustomResource"
        },
        "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html",
        "stability": "external",
        "summary": "A CloudFormation `AWS::CloudFormation::CustomResource`."
      },
      "fqn": "@aws-cdk/core.CfnCustomResource",
      "initializer": {
        "docs": {
          "stability": "external",
          "summary": "Create a new `AWS::CloudFormation::CustomResource`."
        },
        "locationInModule": {
          "filename": "lib/cloudformation.generated.ts",
          "line": 107
        },
        "parameters": [
          {
            "docs": {
              "summary": "- scope in which this resource is defined."
            },
            "name": "scope",
            "type": {
              "fqn": "@aws-cdk/core.Construct"
            }
          },
          {
            "docs": {
              "summary": "- scoped id of the resource."
            },
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "docs": {
              "summary": "- resource properties."
            },
            "name": "props",
            "type": {
              "fqn": "@aws-cdk/core.CfnCustomResourceProps"
            }
          }
        ]
      },
      "interfaces": [
        "@aws-cdk/core.IInspectable"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "lib/cloudformation.generated.ts",
        "line": 72
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Examines the CloudFormation resource and discloses attributes."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 121
          },
          "name": "inspect",
          "overrides": "@aws-cdk/core.IInspectable",
          "parameters": [
            {
              "docs": {
                "summary": "- tree inspector to collect and process attributes."
              },
              "name": "inspector",
              "type": {
                "fqn": "@aws-cdk/core.TreeInspector"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "external"
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 131
          },
          "name": "renderProperties",
          "overrides": "@aws-cdk/core.CfnResource",
          "parameters": [
            {
              "name": "props",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "any"
                  },
                  "kind": "map"
                }
              }
            }
          ],
          "protected": true,
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "any"
                },
                "kind": "map"
              }
            }
          }
        }
      ],
      "name": "CfnCustomResource",
      "properties": [
        {
          "const": true,
          "docs": {
            "stability": "external",
            "summary": "The CloudFormation resource type name for this resource class."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 76
          },
          "name": "CFN_RESOURCE_TYPE_NAME",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "external"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 126
          },
          "name": "cfnProperties",
          "overrides": "@aws-cdk/core.CfnResource",
          "protected": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html#cfn-customresource-servicetoken",
            "stability": "external",
            "summary": "`AWS::CloudFormation::CustomResource.ServiceToken`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 98
          },
          "name": "serviceToken",
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnCustomResourceProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html",
        "stability": "external",
        "summary": "Properties for defining a `AWS::CloudFormation::CustomResource`."
      },
      "fqn": "@aws-cdk/core.CfnCustomResourceProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cloudformation.generated.ts",
        "line": 17
      },
      "name": "CfnCustomResourceProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html#cfn-customresource-servicetoken",
            "stability": "external",
            "summary": "`AWS::CloudFormation::CustomResource.ServiceToken`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 23
          },
          "name": "serviceToken",
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnDeletionPolicy": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "You specify a DeletionPolicy attribute for each resource that you want to control. If a resource has no DeletionPolicy\nattribute, AWS CloudFormation deletes the resource by default. Note that this capability also applies to update operations\nthat lead to resources being removed.",
        "stability": "stable",
        "summary": "With the DeletionPolicy attribute you can preserve or (in some cases) backup a resource when its stack is deleted."
      },
      "fqn": "@aws-cdk/core.CfnDeletionPolicy",
      "kind": "enum",
      "locationInModule": {
        "filename": "lib/cfn-resource-policy.ts",
        "line": 73
      },
      "members": [
        {
          "docs": {
            "remarks": "You can add this\ndeletion policy to any resource type. By default, if you don't specify a DeletionPolicy, AWS CloudFormation deletes\nyour resources. However, be aware of the following considerations:",
            "stability": "stable",
            "summary": "AWS CloudFormation deletes the resource and all its content if applicable during stack deletion."
          },
          "name": "DELETE"
        },
        {
          "docs": {
            "remarks": "You can add this deletion policy to any resource type. Note that when AWS CloudFormation completes the stack deletion,\nthe stack will be in Delete_Complete state; however, resources that are retained continue to exist and continue to incur\napplicable charges until you delete those resources.",
            "stability": "stable",
            "summary": "AWS CloudFormation keeps the resource without deleting the resource or its contents when its stack is deleted."
          },
          "name": "RETAIN"
        },
        {
          "docs": {
            "remarks": "Note that when AWS CloudFormation completes the stack deletion, the stack will be in the\nDelete_Complete state; however, the snapshots that are created with this policy continue to exist and continue to\nincur applicable charges until you delete those snapshots.",
            "stability": "stable",
            "summary": "For resources that support snapshots (AWS::EC2::Volume, AWS::ElastiCache::CacheCluster, AWS::ElastiCache::ReplicationGroup, AWS::RDS::DBInstance, AWS::RDS::DBCluster, and AWS::Redshift::Cluster), AWS CloudFormation creates a snapshot for the resource before deleting it."
          },
          "name": "SNAPSHOT"
        }
      ],
      "name": "CfnDeletionPolicy"
    },
    "@aws-cdk/core.CfnDynamicReference": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.Intrinsic",
      "docs": {
        "remarks": "This is a Construct so that subclasses will (eventually) be able to attach\nmetadata to themselves without having to change call signatures.",
        "see": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html",
        "stability": "stable",
        "summary": "References a dynamically retrieved value."
      },
      "fqn": "@aws-cdk/core.CfnDynamicReference",
      "initializer": {
        "docs": {
          "stability": "stable"
        },
        "locationInModule": {
          "filename": "lib/cfn-dynamic-reference.ts",
          "line": 27
        },
        "parameters": [
          {
            "name": "service",
            "type": {
              "fqn": "@aws-cdk/core.CfnDynamicReferenceService"
            }
          },
          {
            "name": "key",
            "type": {
              "primitive": "string"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/cfn-dynamic-reference.ts",
        "line": 26
      },
      "name": "CfnDynamicReference"
    },
    "@aws-cdk/core.CfnDynamicReferenceProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Properties for a Dynamic Reference."
      },
      "fqn": "@aws-cdk/core.CfnDynamicReferenceProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-dynamic-reference.ts",
        "line": 6
      },
      "name": "CfnDynamicReferenceProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The reference key of the dynamic reference."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-dynamic-reference.ts",
            "line": 15
          },
          "name": "referenceKey",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The service to retrieve the dynamic reference from."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-dynamic-reference.ts",
            "line": 10
          },
          "name": "service",
          "type": {
            "fqn": "@aws-cdk/core.CfnDynamicReferenceService"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnDynamicReferenceService": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "The service to retrieve the dynamic reference from."
      },
      "fqn": "@aws-cdk/core.CfnDynamicReferenceService",
      "kind": "enum",
      "locationInModule": {
        "filename": "lib/cfn-dynamic-reference.ts",
        "line": 35
      },
      "members": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Plaintext value stored in AWS Systems Manager Parameter Store."
          },
          "name": "SSM"
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Secure string stored in AWS Systems Manager Parameter Store."
          },
          "name": "SSM_SECURE"
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Secret stored in AWS Secrets Manager."
          },
          "name": "SECRETS_MANAGER"
        }
      ],
      "name": "CfnDynamicReferenceService"
    },
    "@aws-cdk/core.CfnElement": {
      "abstract": true,
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.Construct",
      "docs": {
        "stability": "stable",
        "summary": "An element of a CloudFormation stack."
      },
      "fqn": "@aws-cdk/core.CfnElement",
      "initializer": {
        "docs": {
          "remarks": "Note that the root of the tree must be a Stack object (not just any Root).",
          "stability": "stable",
          "summary": "Creates an entity and binds it to a tree."
        },
        "locationInModule": {
          "filename": "lib/cfn-element.ts",
          "line": 56
        },
        "parameters": [
          {
            "docs": {
              "summary": "The parent construct."
            },
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/cfn-element.ts",
        "line": 14
      },
      "methods": [
        {
          "docs": {
            "remarks": "Uses duck-typing instead of `instanceof` to allow stack elements from different\nversions of this library to be included in the same stack.",
            "returns": "The construct as a stack element or undefined if it is not a stack element.",
            "stability": "stable",
            "summary": "Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template)."
          },
          "locationInModule": {
            "filename": "lib/cfn-element.ts",
            "line": 24
          },
          "name": "isCfnElement",
          "parameters": [
            {
              "name": "x",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Overrides the auto-generated logical ID with a specific ID."
          },
          "locationInModule": {
            "filename": "lib/cfn-element.ts",
            "line": 74
          },
          "name": "overrideLogicalId",
          "parameters": [
            {
              "docs": {
                "summary": "The new logical ID to use for this stack element."
              },
              "name": "newLogicalId",
              "type": {
                "primitive": "string"
              }
            }
          ]
        }
      ],
      "name": "CfnElement",
      "properties": [
        {
          "docs": {
            "returns": "the stack trace of the point where this Resource was created from, sourced\nfrom the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most\nnode +internal+ entries filtered.",
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-element.ts",
            "line": 83
          },
          "name": "creationStack",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "remarks": "The logical ID of the element\nis calculated from the path of the resource node in the construct tree.\n\nTo override this value, use `overrideLogicalId(newLogicalId)`.",
            "returns": "the logical ID as a stringified token. This value will only get\nresolved during synthesis.",
            "stability": "stable",
            "summary": "The logical ID for this CloudFormation stack element."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-element.ts",
            "line": 37
          },
          "name": "logicalId",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "remarks": "CfnElements must be defined within a stack scope (directly or indirectly).",
            "stability": "stable",
            "summary": "The stack in which this element is defined."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-element.ts",
            "line": 42
          },
          "name": "stack",
          "type": {
            "fqn": "@aws-cdk/core.Stack"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnHook": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.CfnElement",
      "docs": {
        "stability": "stable",
        "summary": "Represents a CloudFormation resource."
      },
      "fqn": "@aws-cdk/core.CfnHook",
      "initializer": {
        "docs": {
          "stability": "stable",
          "summary": "Creates a new Hook object."
        },
        "locationInModule": {
          "filename": "lib/cfn-hook.ts",
          "line": 38
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "props",
            "type": {
              "fqn": "@aws-cdk/core.CfnHookProps"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/cfn-hook.ts",
        "line": 26
      },
      "methods": [
        {
          "docs": {
            "stability": "stable"
          },
          "locationInModule": {
            "filename": "lib/cfn-hook.ts",
            "line": 57
          },
          "name": "renderProperties",
          "parameters": [
            {
              "name": "props",
              "optional": true,
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "any"
                  },
                  "kind": "map"
                }
              }
            }
          ],
          "protected": true,
          "returns": {
            "optional": true,
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "any"
                },
                "kind": "map"
              }
            }
          }
        }
      ],
      "name": "CfnHook",
      "properties": [
        {
          "docs": {
            "stability": "stable",
            "summary": "The type of the hook (for example, \"AWS::CodeDeploy::BlueGreen\")."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-hook.ts",
            "line": 31
          },
          "name": "type",
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnHookProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Construction properties of {@link CfnHook}."
      },
      "fqn": "@aws-cdk/core.CfnHookProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-hook.ts",
        "line": 8
      },
      "name": "CfnHookProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The type of the hook (for example, \"AWS::CodeDeploy::BlueGreen\")."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-hook.ts",
            "line": 13
          },
          "name": "type",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no properties",
            "stability": "stable",
            "summary": "The properties of the hook."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-hook.ts",
            "line": 20
          },
          "name": "properties",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        }
      ]
    },
    "@aws-cdk/core.CfnInclude": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.CfnElement",
      "docs": {
        "remarks": "All elements of the template will be merged into\nthe current stack, together with any elements created programmatically.",
        "stability": "stable",
        "summary": "Includes a CloudFormation template into a stack."
      },
      "fqn": "@aws-cdk/core.CfnInclude",
      "initializer": {
        "docs": {
          "remarks": "The template will be incorporated into the stack as-is with no changes at all.\nThis means that logical IDs of entities within this template may conflict with logical IDs of entities that are part of the\nstack.",
          "stability": "stable",
          "summary": "Creates an adopted template construct."
        },
        "locationInModule": {
          "filename": "lib/cfn-include.ts",
          "line": 29
        },
        "parameters": [
          {
            "docs": {
              "summary": "The parent construct of this template."
            },
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "docs": {
              "summary": "The ID of this construct."
            },
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "docs": {
              "summary": "Initialization properties."
            },
            "name": "props",
            "type": {
              "fqn": "@aws-cdk/core.CfnIncludeProps"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/cfn-include.ts",
        "line": 15
      },
      "name": "CfnInclude",
      "properties": [
        {
          "docs": {
            "stability": "stable",
            "summary": "The included template."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-include.ts",
            "line": 19
          },
          "name": "template",
          "type": {
            "primitive": "json"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnIncludeProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable"
      },
      "fqn": "@aws-cdk/core.CfnIncludeProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-include.ts",
        "line": 4
      },
      "name": "CfnIncludeProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The CloudFormation template to include in the stack (as is)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-include.ts",
            "line": 8
          },
          "name": "template",
          "type": {
            "primitive": "json"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnJson": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.Construct",
      "docs": {
        "remarks": "The main use case for this is to overcome a limitation in CloudFormation that\ndoes not allow using intrinsic functions as dictionary keys (because\ndictionary keys in JSON must be strings). Specifically this is common in IAM\nconditions such as `StringEquals: { lhs: \"rhs\" }` where you want \"lhs\" to be\na reference.\n\nThis object is resolvable, so it can be used as a value.\n\nThis construct is backed by a custom resource.",
        "stability": "stable",
        "summary": "Captures a synthesis-time JSON object a CloudFormation reference which resolves during deployment to the resolved values of the JSON object."
      },
      "fqn": "@aws-cdk/core.CfnJson",
      "initializer": {
        "docs": {
          "stability": "stable"
        },
        "locationInModule": {
          "filename": "lib/cfn-json.ts",
          "line": 50
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "props",
            "type": {
              "fqn": "@aws-cdk/core.CfnJsonProps"
            }
          }
        ]
      },
      "interfaces": [
        "@aws-cdk/core.IResolvable"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "lib/cfn-json.ts",
        "line": 36
      },
      "methods": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Produce the Token's value at resolution time."
          },
          "locationInModule": {
            "filename": "lib/cfn-json.ts",
            "line": 77
          },
          "name": "resolve",
          "overrides": "@aws-cdk/core.IResolvable",
          "parameters": [
            {
              "name": "_",
              "type": {
                "fqn": "@aws-cdk/core.IResolveContext"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "This is required in case someone JSON.stringifys an object which refrences this object. Otherwise, we'll get a cyclic JSON reference."
          },
          "locationInModule": {
            "filename": "lib/cfn-json.ts",
            "line": 73
          },
          "name": "toJSON",
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "CfnJson",
      "properties": [
        {
          "docs": {
            "remarks": "If this returns an empty array the stack will not be attached.",
            "stability": "stable",
            "summary": "The creation stack of this resolvable which will be appended to errors thrown during resolution."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-json.ts",
            "line": 37
          },
          "name": "creationStack",
          "overrides": "@aws-cdk/core.IResolvable",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ]
    },
    "@aws-cdk/core.CfnJsonProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable"
      },
      "fqn": "@aws-cdk/core.CfnJsonProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-json.ts",
        "line": 14
      },
      "name": "CfnJsonProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "Can be any JavaScript object, including tokens and\nreferences in keys or values.",
            "stability": "stable",
            "summary": "The value to resolve."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-json.ts",
            "line": 19
          },
          "name": "value",
          "type": {
            "primitive": "any"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnMacro": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.CfnResource",
      "docs": {
        "custom": {
          "cloudformationResource": "AWS::CloudFormation::Macro"
        },
        "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html",
        "stability": "external",
        "summary": "A CloudFormation `AWS::CloudFormation::Macro`."
      },
      "fqn": "@aws-cdk/core.CfnMacro",
      "initializer": {
        "docs": {
          "stability": "external",
          "summary": "Create a new `AWS::CloudFormation::Macro`."
        },
        "locationInModule": {
          "filename": "lib/cloudformation.generated.ts",
          "line": 293
        },
        "parameters": [
          {
            "docs": {
              "summary": "- scope in which this resource is defined."
            },
            "name": "scope",
            "type": {
              "fqn": "@aws-cdk/core.Construct"
            }
          },
          {
            "docs": {
              "summary": "- scoped id of the resource."
            },
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "docs": {
              "summary": "- resource properties."
            },
            "name": "props",
            "type": {
              "fqn": "@aws-cdk/core.CfnMacroProps"
            }
          }
        ]
      },
      "interfaces": [
        "@aws-cdk/core.IInspectable"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "lib/cloudformation.generated.ts",
        "line": 234
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Examines the CloudFormation resource and discloses attributes."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 312
          },
          "name": "inspect",
          "overrides": "@aws-cdk/core.IInspectable",
          "parameters": [
            {
              "docs": {
                "summary": "- tree inspector to collect and process attributes."
              },
              "name": "inspector",
              "type": {
                "fqn": "@aws-cdk/core.TreeInspector"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "external"
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 326
          },
          "name": "renderProperties",
          "overrides": "@aws-cdk/core.CfnResource",
          "parameters": [
            {
              "name": "props",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "any"
                  },
                  "kind": "map"
                }
              }
            }
          ],
          "protected": true,
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "any"
                },
                "kind": "map"
              }
            }
          }
        }
      ],
      "name": "CfnMacro",
      "properties": [
        {
          "const": true,
          "docs": {
            "stability": "external",
            "summary": "The CloudFormation resource type name for this resource class."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 238
          },
          "name": "CFN_RESOURCE_TYPE_NAME",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "external"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 317
          },
          "name": "cfnProperties",
          "overrides": "@aws-cdk/core.CfnResource",
          "protected": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-functionname",
            "stability": "external",
            "summary": "`AWS::CloudFormation::Macro.FunctionName`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 260
          },
          "name": "functionName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-name",
            "stability": "external",
            "summary": "`AWS::CloudFormation::Macro.Name`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 266
          },
          "name": "name",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-description",
            "stability": "external",
            "summary": "`AWS::CloudFormation::Macro.Description`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 272
          },
          "name": "description",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-loggroupname",
            "stability": "external",
            "summary": "`AWS::CloudFormation::Macro.LogGroupName`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 278
          },
          "name": "logGroupName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-logrolearn",
            "stability": "external",
            "summary": "`AWS::CloudFormation::Macro.LogRoleARN`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 284
          },
          "name": "logRoleArn",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnMacroProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html",
        "stability": "external",
        "summary": "Properties for defining a `AWS::CloudFormation::Macro`."
      },
      "fqn": "@aws-cdk/core.CfnMacroProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cloudformation.generated.ts",
        "line": 142
      },
      "name": "CfnMacroProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-functionname",
            "stability": "external",
            "summary": "`AWS::CloudFormation::Macro.FunctionName`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 148
          },
          "name": "functionName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-name",
            "stability": "external",
            "summary": "`AWS::CloudFormation::Macro.Name`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 154
          },
          "name": "name",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-description",
            "stability": "external",
            "summary": "`AWS::CloudFormation::Macro.Description`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 160
          },
          "name": "description",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-loggroupname",
            "stability": "external",
            "summary": "`AWS::CloudFormation::Macro.LogGroupName`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 166
          },
          "name": "logGroupName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-logrolearn",
            "stability": "external",
            "summary": "`AWS::CloudFormation::Macro.LogRoleARN`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 172
          },
          "name": "logRoleArn",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnMapping": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.CfnRefElement",
      "docs": {
        "stability": "stable",
        "summary": "Represents a CloudFormation mapping."
      },
      "fqn": "@aws-cdk/core.CfnMapping",
      "initializer": {
        "docs": {
          "stability": "stable"
        },
        "locationInModule": {
          "filename": "lib/cfn-mapping.ts",
          "line": 26
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "props",
            "optional": true,
            "type": {
              "fqn": "@aws-cdk/core.CfnMappingProps"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/cfn-mapping.ts",
        "line": 23
      },
      "methods": [
        {
          "docs": {
            "returns": "A reference to a value in the map based on the two keys.",
            "stability": "stable"
          },
          "locationInModule": {
            "filename": "lib/cfn-mapping.ts",
            "line": 45
          },
          "name": "findInMap",
          "parameters": [
            {
              "name": "key1",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "key2",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Sets a value in the map based on the two keys."
          },
          "locationInModule": {
            "filename": "lib/cfn-mapping.ts",
            "line": 34
          },
          "name": "setValue",
          "parameters": [
            {
              "name": "key1",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "key2",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "value",
              "type": {
                "primitive": "any"
              }
            }
          ]
        }
      ],
      "name": "CfnMapping"
    },
    "@aws-cdk/core.CfnMappingProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable"
      },
      "fqn": "@aws-cdk/core.CfnMappingProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-mapping.ts",
        "line": 6
      },
      "name": "CfnMappingProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- No mapping.",
            "remarks": "The key identifies a map of name-value pairs and must be unique within the mapping.\n\nFor example, if you want to set values based on a region, you can create a mapping\nthat uses the region name as a key and contains the values you want to specify for\neach specific region.",
            "stability": "stable",
            "summary": "Mapping of key to a set of corresponding set of named values."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-mapping.ts",
            "line": 17
          },
          "name": "mapping",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "collection": {
                  "elementtype": {
                    "primitive": "any"
                  },
                  "kind": "map"
                }
              },
              "kind": "map"
            }
          }
        }
      ]
    },
    "@aws-cdk/core.CfnOutput": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.CfnElement",
      "docs": {
        "stability": "stable"
      },
      "fqn": "@aws-cdk/core.CfnOutput",
      "initializer": {
        "docs": {
          "stability": "stable",
          "summary": "Creates an CfnOutput value for this stack."
        },
        "locationInModule": {
          "filename": "lib/cfn-output.ts",
          "line": 49
        },
        "parameters": [
          {
            "docs": {
              "summary": "The parent construct."
            },
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "docs": {
              "summary": "CfnOutput properties."
            },
            "name": "props",
            "type": {
              "fqn": "@aws-cdk/core.CfnOutputProps"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/cfn-output.ts",
        "line": 38
      },
      "name": "CfnOutput",
      "properties": [
        {
          "docs": {
            "remarks": "The value of an output can include literals, parameter references, pseudo-parameters,\na mapping value, or intrinsic functions.",
            "stability": "stable",
            "summary": "The value of the property returned by the aws cloudformation describe-stacks command."
          },
          "locationInModule": {
            "filename": "lib/cfn-output.ts",
            "line": 81
          },
          "name": "value",
          "type": {
            "primitive": "any"
          }
        },
        {
          "docs": {
            "default": "- No condition is associated with the output.",
            "remarks": "If the condition evaluates\nto `false`, this output value will not be included in the stack.",
            "stability": "stable",
            "summary": "A condition to associate with this output value."
          },
          "locationInModule": {
            "filename": "lib/cfn-output.ts",
            "line": 95
          },
          "name": "condition",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.CfnCondition"
          }
        },
        {
          "docs": {
            "default": "- No description.",
            "remarks": "The description can be a maximum of 4 K in length.",
            "stability": "stable",
            "summary": "A String type that describes the output value."
          },
          "locationInModule": {
            "filename": "lib/cfn-output.ts",
            "line": 68
          },
          "name": "description",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "default": "- the output is not exported",
            "remarks": "To import the value from another stack, use `Fn.importValue(exportName)`.",
            "stability": "stable",
            "summary": "The name used to export the value of this output across stacks."
          },
          "locationInModule": {
            "filename": "lib/cfn-output.ts",
            "line": 110
          },
          "name": "exportName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnOutputProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable"
      },
      "fqn": "@aws-cdk/core.CfnOutputProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-output.ts",
        "line": 4
      },
      "name": "CfnOutputProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "The value of an output can include literals, parameter references, pseudo-parameters,\na mapping value, or intrinsic functions.",
            "stability": "stable",
            "summary": "The value of the property returned by the aws cloudformation describe-stacks command."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-output.ts",
            "line": 18
          },
          "name": "value",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- No condition is associated with the output.",
            "remarks": "If the condition evaluates\nto `false`, this output value will not be included in the stack.",
            "stability": "stable",
            "summary": "A condition to associate with this output value."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-output.ts",
            "line": 35
          },
          "name": "condition",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.CfnCondition"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- No description.",
            "remarks": "The description can be a maximum of 4 K in length.",
            "stability": "stable",
            "summary": "A String type that describes the output value."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-output.ts",
            "line": 11
          },
          "name": "description",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- the output is not exported",
            "remarks": "To import the value from another stack, use `Fn.importValue(exportName)`.",
            "stability": "stable",
            "summary": "The name used to export the value of this output across stacks."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-output.ts",
            "line": 27
          },
          "name": "exportName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnParameter": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.CfnElement",
      "docs": {
        "remarks": "Use the optional Parameters section to customize your templates.\nParameters enable you to input custom values to your template each time you create or\nupdate a stack.",
        "stability": "stable",
        "summary": "A CloudFormation parameter."
      },
      "fqn": "@aws-cdk/core.CfnParameter",
      "initializer": {
        "docs": {
          "remarks": "Note that the name (logical ID) of the parameter will derive from it's `coname` and location\nwithin the stack. Therefore, it is recommended that parameters are defined at the stack level.",
          "stability": "stable",
          "summary": "Creates a parameter construct."
        },
        "locationInModule": {
          "filename": "lib/cfn-parameter.ts",
          "line": 120
        },
        "parameters": [
          {
            "docs": {
              "summary": "The parent construct."
            },
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "docs": {
              "summary": "The parameter properties."
            },
            "name": "props",
            "optional": true,
            "type": {
              "fqn": "@aws-cdk/core.CfnParameterProps"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/cfn-parameter.ts",
        "line": 99
      },
      "methods": [
        {
          "docs": {
            "stability": "stable"
          },
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 341
          },
          "name": "resolve",
          "parameters": [
            {
              "name": "_context",
              "type": {
                "fqn": "@aws-cdk/core.IResolveContext"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        }
      ],
      "name": "CfnParameter",
      "properties": [
        {
          "docs": {
            "stability": "stable",
            "summary": "The parameter value as a Token."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 284
          },
          "name": "value",
          "type": {
            "fqn": "@aws-cdk/core.IResolvable"
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "The parameter value, if it represents a string list."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 301
          },
          "name": "valueAsList",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "The parameter value, if it represents a number."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 311
          },
          "name": "valueAsNumber",
          "type": {
            "primitive": "number"
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "The parameter value, if it represents a string."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 291
          },
          "name": "valueAsString",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "default": "- No default value for parameter.",
            "remarks": "If you define constraints for the parameter, you must specify\na value that adheres to those constraints.",
            "stability": "stable",
            "summary": "A value of the appropriate type for the template to use if no value is specified when a stack is created."
          },
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 156
          },
          "name": "default",
          "type": {
            "primitive": "any"
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Indicates if this parameter is configured with \"NoEcho\" enabled."
          },
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 273
          },
          "name": "noEcho",
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "docs": {
            "default": "String",
            "stability": "stable",
            "summary": "The data type for the parameter (DataType)."
          },
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 141
          },
          "name": "type",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "default": "- No constraints on patterns allowed for parameter.",
            "stability": "stable",
            "summary": "A regular expression that represents the patterns to allow for String types."
          },
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 169
          },
          "name": "allowedPattern",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "default": "- No constraints on values allowed for parameter.",
            "stability": "stable",
            "summary": "An array containing the list of values allowed for the parameter."
          },
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 182
          },
          "name": "allowedValues",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "default": "- No description with customized error message when user specifies invalid values.",
            "remarks": "For example, without a constraint description, a parameter that has an allowed\npattern of [A-Za-z0-9]+ displays the following error message when the user specifies\nan invalid value:",
            "stability": "stable",
            "summary": "A string that explains a constraint when the constraint is violated."
          },
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 198
          },
          "name": "constraintDescription",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "default": "- No description for the parameter.",
            "stability": "stable",
            "summary": "A string of up to 4000 characters that describes the parameter."
          },
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 211
          },
          "name": "description",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "default": "- None.",
            "stability": "stable",
            "summary": "An integer value that determines the largest number of characters you want to allow for String types."
          },
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 224
          },
          "name": "maxLength",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "docs": {
            "default": "- None.",
            "stability": "stable",
            "summary": "A numeric value that determines the largest numeric value you want to allow for Number types."
          },
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 250
          },
          "name": "maxValue",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "docs": {
            "default": "- None.",
            "stability": "stable",
            "summary": "An integer value that determines the smallest number of characters you want to allow for String types."
          },
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 237
          },
          "name": "minLength",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "docs": {
            "default": "- None.",
            "stability": "stable",
            "summary": "A numeric value that determines the smallest numeric value you want to allow for Number types."
          },
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 262
          },
          "name": "minValue",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnParameterProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable"
      },
      "fqn": "@aws-cdk/core.CfnParameterProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-parameter.ts",
        "line": 7
      },
      "name": "CfnParameterProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- No constraints on patterns allowed for parameter.",
            "stability": "stable",
            "summary": "A regular expression that represents the patterns to allow for String types."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 29
          },
          "name": "allowedPattern",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- No constraints on values allowed for parameter.",
            "stability": "stable",
            "summary": "An array containing the list of values allowed for the parameter."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 36
          },
          "name": "allowedValues",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- No description with customized error message when user specifies invalid values.",
            "remarks": "For example, without a constraint description, a parameter that has an allowed\npattern of [A-Za-z0-9]+ displays the following error message when the user specifies\nan invalid value:",
            "stability": "stable",
            "summary": "A string that explains a constraint when the constraint is violated."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 46
          },
          "name": "constraintDescription",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- No default value for parameter.",
            "remarks": "If you define constraints for the parameter, you must specify\na value that adheres to those constraints.",
            "stability": "stable",
            "summary": "A value of the appropriate type for the template to use if no value is specified when a stack is created."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 22
          },
          "name": "default",
          "optional": true,
          "type": {
            "primitive": "any"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- No description for the parameter.",
            "stability": "stable",
            "summary": "A string of up to 4000 characters that describes the parameter."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 53
          },
          "name": "description",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- None.",
            "stability": "stable",
            "summary": "An integer value that determines the largest number of characters you want to allow for String types."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 60
          },
          "name": "maxLength",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- None.",
            "stability": "stable",
            "summary": "A numeric value that determines the largest numeric value you want to allow for Number types."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 67
          },
          "name": "maxValue",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- None.",
            "stability": "stable",
            "summary": "An integer value that determines the smallest number of characters you want to allow for String types."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 74
          },
          "name": "minLength",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- None.",
            "stability": "stable",
            "summary": "A numeric value that determines the smallest numeric value you want to allow for Number types."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 81
          },
          "name": "minValue",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- Parameter values are not masked.",
            "remarks": "If you set the value to ``true``, the parameter value is masked with asterisks (``*****``).",
            "stability": "stable",
            "summary": "Whether to mask the parameter value when anyone makes a call that describes the stack."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 89
          },
          "name": "noEcho",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "String",
            "stability": "stable",
            "summary": "The data type for the parameter (DataType)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 13
          },
          "name": "type",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnRefElement": {
      "abstract": true,
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.CfnElement",
      "docs": {
        "remarks": "These constructs are things like Conditions and Parameters, can be\nreferenced by taking the `.ref` attribute.\n\nResource constructs do not inherit from CfnRefElement because they have their\nown, more specific types returned from the .ref attribute. Also, some\nresources aren't referenceable at all (such as BucketPolicies or GatewayAttachments).",
        "stability": "stable",
        "summary": "Base class for referenceable CloudFormation constructs which are not Resources."
      },
      "fqn": "@aws-cdk/core.CfnRefElement",
      "initializer": {
        "docs": {
          "remarks": "Note that the root of the tree must be a Stack object (not just any Root).",
          "stability": "stable",
          "summary": "Creates an entity and binds it to a tree."
        },
        "locationInModule": {
          "filename": "lib/cfn-element.ts",
          "line": 56
        },
        "parameters": [
          {
            "docs": {
              "summary": "The parent construct."
            },
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/cfn-element.ts",
        "line": 148
      },
      "name": "CfnRefElement",
      "properties": [
        {
          "docs": {
            "remarks": "If, by any chance, the intrinsic reference of a resource is not a string, you could\ncoerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.",
            "stability": "stable",
            "summary": "Return a string that will be resolved to a CloudFormation `{ Ref }` for this element."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-element.ts",
            "line": 155
          },
          "name": "ref",
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnResource": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.CfnRefElement",
      "docs": {
        "stability": "stable",
        "summary": "Represents a CloudFormation resource."
      },
      "fqn": "@aws-cdk/core.CfnResource",
      "initializer": {
        "docs": {
          "stability": "stable",
          "summary": "Creates a resource construct."
        },
        "locationInModule": {
          "filename": "lib/cfn-resource.ts",
          "line": 82
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "props",
            "type": {
              "fqn": "@aws-cdk/core.CfnResourceProps"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/cfn-resource.ts",
        "line": 32
      },
      "methods": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Check whether the given construct is a CfnResource."
          },
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 36
          },
          "name": "isCfnResource",
          "parameters": [
            {
              "name": "construct",
              "type": {
                "fqn": "constructs.IConstruct"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Syntactic sugar for `addOverride(path, undefined)`."
          },
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 208
          },
          "name": "addDeletionOverride",
          "parameters": [
            {
              "docs": {
                "summary": "The path of the value to delete."
              },
              "name": "path",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "This can be used for resources across stacks (or nested stack) boundaries\nand the dependency will automatically be transferred to the relevant scope.",
            "stability": "stable",
            "summary": "Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned."
          },
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 239
          },
          "name": "addDependsOn",
          "parameters": [
            {
              "name": "target",
              "type": {
                "fqn": "@aws-cdk/core.CfnResource"
              }
            }
          ]
        },
        {
          "docs": {
            "see": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html\n\nNote that this is a different set of metadata from CDK node metadata; this\nmetadata ends up in the stack template under the resource, whereas CDK\nnode metadata ends up in the Cloud Assembly.",
            "stability": "stable",
            "summary": "Add a value to the CloudFormation Resource Metadata."
          },
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 256
          },
          "name": "addMetadata",
          "parameters": [
            {
              "name": "key",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "value",
              "type": {
                "primitive": "any"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "To add a\nproperty override, either use `addPropertyOverride` or prefix `path` with\n\"Properties.\" (i.e. `Properties.TopicName`).\n\nIf the override is nested, separate each nested level using a dot (.) in the path parameter.\nIf there is an array as part of the nesting, specify the index in the path.\n\nTo include a literal `.` in the property name, prefix with a `\\`. In most\nprogramming languages you will need to write this as `\"\\\\.\"` because the\n`\\` itself will need to be escaped.\n\nFor example,\n```typescript\naddOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute'])\naddOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE')\n```\nwould add the overrides\n```json\n\"Properties\": {\n   \"GlobalSecondaryIndexes\": [\n     {\n       \"Projection\": {\n         \"NonKeyAttributes\": [ \"myattribute\" ]\n         ...\n       }\n       ...\n     },\n     {\n       \"ProjectionType\": \"INCLUDE\"\n       ...\n     },\n   ]\n   ...\n}\n```",
            "stability": "stable",
            "summary": "Adds an override to the synthesized CloudFormation resource."
          },
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 183
          },
          "name": "addOverride",
          "parameters": [
            {
              "docs": {
                "remarks": "Any intermdediate keys\nwill be created as needed.",
                "summary": "- The path of the property, you can use dot notation to override values in complex types."
              },
              "name": "path",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "remarks": "Could be primitive or complex.",
                "summary": "- The value."
              },
              "name": "value",
              "type": {
                "primitive": "any"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Adds an override that deletes the value of a property from the resource definition."
          },
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 228
          },
          "name": "addPropertyDeletionOverride",
          "parameters": [
            {
              "docs": {
                "summary": "The path to the property."
              },
              "name": "propertyPath",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "Syntactic sugar for `addOverride(\"Properties.<...>\", value)`.",
            "stability": "stable",
            "summary": "Adds an override to a resource property."
          },
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 220
          },
          "name": "addPropertyOverride",
          "parameters": [
            {
              "docs": {
                "summary": "The path of the property."
              },
              "name": "propertyPath",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "The value."
              },
              "name": "value",
              "type": {
                "primitive": "any"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Sets the deletion policy of the resource based on the removal policy specified."
          },
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 103
          },
          "name": "applyRemovalPolicy",
          "parameters": [
            {
              "name": "policy",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.RemovalPolicy"
              }
            },
            {
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.RemovalPolicyOptions"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility\nin case there is no generated attribute.",
            "stability": "stable",
            "summary": "Returns a token for an runtime attribute of this resource."
          },
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 137
          },
          "name": "getAtt",
          "parameters": [
            {
              "docs": {
                "summary": "The name of the attribute."
              },
              "name": "attributeName",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.Reference"
            }
          }
        },
        {
          "docs": {
            "stability": "stable"
          },
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 366
          },
          "name": "renderProperties",
          "parameters": [
            {
              "name": "props",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "any"
                  },
                  "kind": "map"
                }
              }
            }
          ],
          "protected": true,
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "any"
                },
                "kind": "map"
              }
            }
          }
        },
        {
          "docs": {
            "returns": "`true` if the resource should be included or `false` is the resource\nshould be omitted.",
            "stability": "stable",
            "summary": "Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template."
          },
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 391
          },
          "name": "shouldSynthesize",
          "protected": true,
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          }
        },
        {
          "docs": {
            "returns": "a string representation of this resource",
            "stability": "stable",
            "summary": "Returns a string representation of this construct."
          },
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 267
          },
          "name": "toString",
          "overrides": "constructs.Construct",
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        },
        {
          "docs": {
            "stability": "stable"
          },
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 380
          },
          "name": "validateProperties",
          "parameters": [
            {
              "name": "_properties",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "protected": true
        }
      ],
      "name": "CfnResource",
      "properties": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Options for this resource, such as condition, update policy etc."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 51
          },
          "name": "cfnOptions",
          "type": {
            "fqn": "@aws-cdk/core.ICfnResourceOptions"
          }
        },
        {
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 356
          },
          "name": "cfnProperties",
          "protected": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "AWS resource type."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 56
          },
          "name": "cfnResourceType",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "remarks": "Resources that expose mutable properties should override this function to\ncollect and return the properties object for this resource.",
            "stability": "stable",
            "summary": "Return properties modified after initiation."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 376
          },
          "name": "updatedProperites",
          "protected": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        }
      ]
    },
    "@aws-cdk/core.CfnResourceAutoScalingCreationPolicy": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "For an Auto Scaling group replacement update, specifies how many instances must signal success for the update to succeed."
      },
      "fqn": "@aws-cdk/core.CfnResourceAutoScalingCreationPolicy",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-resource-policy.ts",
        "line": 35
      },
      "name": "CfnResourceAutoScalingCreationPolicy",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "You can specify a value from 0 to 100. AWS CloudFormation rounds to the nearest tenth of a percent.\nFor example, if you update five instances with a minimum successful percentage of 50, three instances must signal success.\nIf an instance doesn't send a signal within the time specified by the Timeout property, AWS CloudFormation assumes that the\ninstance wasn't created.",
            "stability": "stable",
            "summary": "Specifies the percentage of instances in an Auto Scaling replacement update that must signal success for the update to succeed."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource-policy.ts",
            "line": 43
          },
          "name": "minSuccessfulInstancesPercent",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnResourceProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable"
      },
      "fqn": "@aws-cdk/core.CfnResourceProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-resource.ts",
        "line": 15
      },
      "name": "CfnResourceProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "CloudFormation resource type (e.g. `AWS::S3::Bucket`)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 19
          },
          "name": "type",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- No resource properties.",
            "stability": "stable",
            "summary": "Resource properties."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 26
          },
          "name": "properties",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        }
      ]
    },
    "@aws-cdk/core.CfnResourceSignal": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "When AWS CloudFormation creates the associated resource, configures the number of required success signals and the length of time that AWS CloudFormation waits for those signals."
      },
      "fqn": "@aws-cdk/core.CfnResourceSignal",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-resource-policy.ts",
        "line": 50
      },
      "name": "CfnResourceSignal",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "If the resource receives a failure signal or doesn't receive the specified number of signals before the timeout period\nexpires, the resource creation fails and AWS CloudFormation rolls the stack back.",
            "stability": "stable",
            "summary": "The number of success signals AWS CloudFormation must receive before it sets the resource status as CREATE_COMPLETE."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource-policy.ts",
            "line": 57
          },
          "name": "count",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "The timeout period starts after AWS CloudFormation starts creating the resource, and the timeout expires no sooner\nthan the time you specify but can occur shortly thereafter. The maximum time that you can specify is 12 hours.",
            "stability": "stable",
            "summary": "The length of time that AWS CloudFormation waits for the number of signals that was specified in the Count property."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource-policy.ts",
            "line": 64
          },
          "name": "timeout",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnRule": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.CfnRefElement",
      "docs": {
        "custom": {
          "link": "https://docs.aws.amazon.com/servicecatalog/latest/adminguide/reference-template_constraint_rules.html"
        },
        "remarks": "Rules\nare useful for preventing end users from inadvertently specifying an incorrect value.\nFor example, you can add a rule to verify whether end users specified a valid subnet in a\ngiven VPC or used m1.small instance types for test environments. AWS CloudFormation uses\nrules to validate parameter values before it creates the resources for the product.\n\nA rule can include a RuleCondition property and must include an Assertions property.\nFor each rule, you can define only one rule condition; you can define one or more asserts within the Assertions property.\nYou define a rule condition and assertions by using rule-specific intrinsic functions.",
        "stability": "stable",
        "summary": "The Rules that define template constraints in an AWS Service Catalog portfolio describe when end users can use the template and which values they can specify for parameters that are declared in the AWS CloudFormation template used to create the product they are attempting to use."
      },
      "fqn": "@aws-cdk/core.CfnRule",
      "initializer": {
        "docs": {
          "stability": "stable",
          "summary": "Creates and adds a rule."
        },
        "locationInModule": {
          "filename": "lib/cfn-rule.ts",
          "line": 68
        },
        "parameters": [
          {
            "docs": {
              "summary": "The parent construct."
            },
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "docs": {
              "summary": "The rule props."
            },
            "name": "props",
            "optional": true,
            "type": {
              "fqn": "@aws-cdk/core.CfnRuleProps"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/cfn-rule.ts",
        "line": 59
      },
      "methods": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Adds an assertion to the rule."
          },
          "locationInModule": {
            "filename": "lib/cfn-rule.ts",
            "line": 80
          },
          "name": "addAssertion",
          "parameters": [
            {
              "docs": {
                "summary": "The expression to evaluation."
              },
              "name": "condition",
              "type": {
                "fqn": "@aws-cdk/core.ICfnConditionExpression"
              }
            },
            {
              "docs": {
                "summary": "The description of the assertion."
              },
              "name": "description",
              "type": {
                "primitive": "string"
              }
            }
          ]
        }
      ],
      "name": "CfnRule"
    },
    "@aws-cdk/core.CfnRuleAssertion": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "A rule assertion."
      },
      "fqn": "@aws-cdk/core.CfnRuleAssertion",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-rule.ts",
        "line": 109
      },
      "name": "CfnRuleAssertion",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The assertion."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-rule.ts",
            "line": 113
          },
          "name": "assert",
          "type": {
            "fqn": "@aws-cdk/core.ICfnConditionExpression"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The assertion description."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-rule.ts",
            "line": 118
          },
          "name": "assertDescription",
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnRuleProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "remarks": "For each rule, you can define only one rule condition; you can define one or more asserts within the Assertions property.\nYou define a rule condition and assertions by using rule-specific intrinsic functions.\n\nYou can use the following rule-specific intrinsic functions to define rule conditions and assertions:\n\n  Fn::And\n  Fn::Contains\n  Fn::EachMemberEquals\n  Fn::EachMemberIn\n  Fn::Equals\n  Fn::If\n  Fn::Not\n  Fn::Or\n  Fn::RefAll\n  Fn::ValueOf\n  Fn::ValueOfAll\n\nhttps://docs.aws.amazon.com/servicecatalog/latest/adminguide/reference-template_constraint_rules.html",
        "stability": "stable",
        "summary": "A rule can include a RuleCondition property and must include an Assertions property."
      },
      "fqn": "@aws-cdk/core.CfnRuleProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-rule.ts",
        "line": 27
      },
      "name": "CfnRuleProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- No assertions for the rule.",
            "stability": "stable",
            "summary": "Assertions which define the rule."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-rule.ts",
            "line": 41
          },
          "name": "assertions",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "@aws-cdk/core.CfnRuleAssertion"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- Rule's assertions will always take effect.",
            "remarks": "If the function in the rule condition evaluates to true, expressions in each assert are evaluated and applied.",
            "stability": "stable",
            "summary": "If the rule condition evaluates to false, the rule doesn't take effect."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-rule.ts",
            "line": 34
          },
          "name": "ruleCondition",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.ICfnConditionExpression"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnStack": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.CfnResource",
      "docs": {
        "custom": {
          "cloudformationResource": "AWS::CloudFormation::Stack"
        },
        "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html",
        "stability": "external",
        "summary": "A CloudFormation `AWS::CloudFormation::Stack`."
      },
      "fqn": "@aws-cdk/core.CfnStack",
      "initializer": {
        "docs": {
          "stability": "external",
          "summary": "Create a new `AWS::CloudFormation::Stack`."
        },
        "locationInModule": {
          "filename": "lib/cloudformation.generated.ts",
          "line": 487
        },
        "parameters": [
          {
            "docs": {
              "summary": "- scope in which this resource is defined."
            },
            "name": "scope",
            "type": {
              "fqn": "@aws-cdk/core.Construct"
            }
          },
          {
            "docs": {
              "summary": "- scoped id of the resource."
            },
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "docs": {
              "summary": "- resource properties."
            },
            "name": "props",
            "type": {
              "fqn": "@aws-cdk/core.CfnStackProps"
            }
          }
        ]
      },
      "interfaces": [
        "@aws-cdk/core.IInspectable"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "lib/cloudformation.generated.ts",
        "line": 428
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Examines the CloudFormation resource and discloses attributes."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 505
          },
          "name": "inspect",
          "overrides": "@aws-cdk/core.IInspectable",
          "parameters": [
            {
              "docs": {
                "summary": "- tree inspector to collect and process attributes."
              },
              "name": "inspector",
              "type": {
                "fqn": "@aws-cdk/core.TreeInspector"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "external"
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 519
          },
          "name": "renderProperties",
          "overrides": "@aws-cdk/core.CfnResource",
          "parameters": [
            {
              "name": "props",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "any"
                  },
                  "kind": "map"
                }
              }
            }
          ],
          "protected": true,
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "any"
                },
                "kind": "map"
              }
            }
          }
        }
      ],
      "name": "CfnStack",
      "properties": [
        {
          "const": true,
          "docs": {
            "stability": "external",
            "summary": "The CloudFormation resource type name for this resource class."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 432
          },
          "name": "CFN_RESOURCE_TYPE_NAME",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "external"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 510
          },
          "name": "cfnProperties",
          "overrides": "@aws-cdk/core.CfnResource",
          "protected": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-tags",
            "stability": "external",
            "summary": "`AWS::CloudFormation::Stack.Tags`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 472
          },
          "name": "tags",
          "type": {
            "fqn": "@aws-cdk/core.TagManager"
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-templateurl",
            "stability": "external",
            "summary": "`AWS::CloudFormation::Stack.TemplateURL`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 454
          },
          "name": "templateUrl",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-notificationarns",
            "stability": "external",
            "summary": "`AWS::CloudFormation::Stack.NotificationARNs`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 460
          },
          "name": "notificationArns",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-parameters",
            "stability": "external",
            "summary": "`AWS::CloudFormation::Stack.Parameters`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 466
          },
          "name": "parameters",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "fqn": "@aws-cdk/core.IResolvable"
                },
                {
                  "collection": {
                    "elementtype": {
                      "primitive": "string"
                    },
                    "kind": "map"
                  }
                }
              ]
            }
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-timeoutinminutes",
            "stability": "external",
            "summary": "`AWS::CloudFormation::Stack.TimeoutInMinutes`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 478
          },
          "name": "timeoutInMinutes",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnStackProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html",
        "stability": "external",
        "summary": "Properties for defining a `AWS::CloudFormation::Stack`."
      },
      "fqn": "@aws-cdk/core.CfnStackProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cloudformation.generated.ts",
        "line": 337
      },
      "name": "CfnStackProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-templateurl",
            "stability": "external",
            "summary": "`AWS::CloudFormation::Stack.TemplateURL`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 343
          },
          "name": "templateUrl",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-notificationarns",
            "stability": "external",
            "summary": "`AWS::CloudFormation::Stack.NotificationARNs`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 349
          },
          "name": "notificationArns",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-parameters",
            "stability": "external",
            "summary": "`AWS::CloudFormation::Stack.Parameters`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 355
          },
          "name": "parameters",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "fqn": "@aws-cdk/core.IResolvable"
                },
                {
                  "collection": {
                    "elementtype": {
                      "primitive": "string"
                    },
                    "kind": "map"
                  }
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-tags",
            "stability": "external",
            "summary": "`AWS::CloudFormation::Stack.Tags`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 361
          },
          "name": "tags",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "@aws-cdk/core.CfnTag"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-timeoutinminutes",
            "stability": "external",
            "summary": "`AWS::CloudFormation::Stack.TimeoutInMinutes`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 367
          },
          "name": "timeoutInMinutes",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnStackSet": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.CfnResource",
      "docs": {
        "custom": {
          "cloudformationResource": "AWS::CloudFormation::StackSet"
        },
        "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html",
        "stability": "external",
        "summary": "A CloudFormation `AWS::CloudFormation::StackSet`."
      },
      "fqn": "@aws-cdk/core.CfnStackSet",
      "initializer": {
        "docs": {
          "stability": "external",
          "summary": "Create a new `AWS::CloudFormation::StackSet`."
        },
        "locationInModule": {
          "filename": "lib/cloudformation.generated.ts",
          "line": 804
        },
        "parameters": [
          {
            "docs": {
              "summary": "- scope in which this resource is defined."
            },
            "name": "scope",
            "type": {
              "fqn": "@aws-cdk/core.Construct"
            }
          },
          {
            "docs": {
              "summary": "- scoped id of the resource."
            },
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "docs": {
              "summary": "- resource properties."
            },
            "name": "props",
            "optional": true,
            "type": {
              "fqn": "@aws-cdk/core.CfnStackSetProps"
            }
          }
        ]
      },
      "interfaces": [
        "@aws-cdk/core.IInspectable"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "lib/cloudformation.generated.ts",
        "line": 692
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Examines the CloudFormation resource and discloses attributes."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 830
          },
          "name": "inspect",
          "overrides": "@aws-cdk/core.IInspectable",
          "parameters": [
            {
              "docs": {
                "summary": "- tree inspector to collect and process attributes."
              },
              "name": "inspector",
              "type": {
                "fqn": "@aws-cdk/core.TreeInspector"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "external"
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 852
          },
          "name": "renderProperties",
          "overrides": "@aws-cdk/core.CfnResource",
          "parameters": [
            {
              "name": "props",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "any"
                  },
                  "kind": "map"
                }
              }
            }
          ],
          "protected": true,
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "any"
                },
                "kind": "map"
              }
            }
          }
        }
      ],
      "name": "CfnStackSet",
      "properties": [
        {
          "const": true,
          "docs": {
            "stability": "external",
            "summary": "The CloudFormation resource type name for this resource class."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 696
          },
          "name": "CFN_RESOURCE_TYPE_NAME",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "custom": {
              "cloudformationAttribute": "StackSetId"
            },
            "stability": "external"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 717
          },
          "name": "attrStackSetId",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "external"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 835
          },
          "name": "cfnProperties",
          "overrides": "@aws-cdk/core.CfnResource",
          "protected": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-tags",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.Tags`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 783
          },
          "name": "tags",
          "type": {
            "fqn": "@aws-cdk/core.TagManager"
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-administrationrolearn",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.AdministrationRoleARN`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 723
          },
          "name": "administrationRoleArn",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-autodeployment",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.AutoDeployment`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 729
          },
          "name": "autoDeployment",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "fqn": "@aws-cdk/core.IResolvable"
                },
                {
                  "fqn": "@aws-cdk/core.CfnStackSet.AutoDeploymentProperty"
                }
              ]
            }
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-capabilities",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.Capabilities`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 735
          },
          "name": "capabilities",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-description",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.Description`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 741
          },
          "name": "description",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-executionrolename",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.ExecutionRoleName`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 747
          },
          "name": "executionRoleName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-operationpreferences",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.OperationPreferences`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 753
          },
          "name": "operationPreferences",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "fqn": "@aws-cdk/core.IResolvable"
                },
                {
                  "fqn": "@aws-cdk/core.CfnStackSet.OperationPreferencesProperty"
                }
              ]
            }
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-parameters",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.Parameters`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 759
          },
          "name": "parameters",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "fqn": "@aws-cdk/core.IResolvable"
                },
                {
                  "collection": {
                    "elementtype": {
                      "union": {
                        "types": [
                          {
                            "fqn": "@aws-cdk/core.IResolvable"
                          },
                          {
                            "fqn": "@aws-cdk/core.CfnStackSet.ParameterProperty"
                          }
                        ]
                      }
                    },
                    "kind": "array"
                  }
                }
              ]
            }
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-permissionmodel",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.PermissionModel`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 765
          },
          "name": "permissionModel",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-stackinstancesgroup",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.StackInstancesGroup`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 771
          },
          "name": "stackInstancesGroup",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "fqn": "@aws-cdk/core.IResolvable"
                },
                {
                  "collection": {
                    "elementtype": {
                      "union": {
                        "types": [
                          {
                            "fqn": "@aws-cdk/core.IResolvable"
                          },
                          {
                            "fqn": "@aws-cdk/core.CfnStackSet.StackInstancesProperty"
                          }
                        ]
                      }
                    },
                    "kind": "array"
                  }
                }
              ]
            }
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-stacksetname",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.StackSetName`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 777
          },
          "name": "stackSetName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-templatebody",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.TemplateBody`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 789
          },
          "name": "templateBody",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-templateurl",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.TemplateURL`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 795
          },
          "name": "templateUrl",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnStackSet.AutoDeploymentProperty": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-autodeployment.html",
        "stability": "external"
      },
      "fqn": "@aws-cdk/core.CfnStackSet.AutoDeploymentProperty",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cloudformation.generated.ts",
        "line": 862
      },
      "name": "AutoDeploymentProperty",
      "namespace": "CfnStackSet",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-autodeployment.html#cfn-cloudformation-stackset-autodeployment-enabled",
            "stability": "external",
            "summary": "`CfnStackSet.AutoDeploymentProperty.Enabled`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 867
          },
          "name": "enabled",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "primitive": "boolean"
                },
                {
                  "fqn": "@aws-cdk/core.IResolvable"
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-autodeployment.html#cfn-cloudformation-stackset-autodeployment-retainstacksonaccountremoval",
            "stability": "external",
            "summary": "`CfnStackSet.AutoDeploymentProperty.RetainStacksOnAccountRemoval`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 872
          },
          "name": "retainStacksOnAccountRemoval",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "primitive": "boolean"
                },
                {
                  "fqn": "@aws-cdk/core.IResolvable"
                }
              ]
            }
          }
        }
      ]
    },
    "@aws-cdk/core.CfnStackSet.DeploymentTargetsProperty": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-deploymenttargets.html",
        "stability": "external"
      },
      "fqn": "@aws-cdk/core.CfnStackSet.DeploymentTargetsProperty",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cloudformation.generated.ts",
        "line": 925
      },
      "name": "DeploymentTargetsProperty",
      "namespace": "CfnStackSet",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-deploymenttargets.html#cfn-cloudformation-stackset-deploymenttargets-accounts",
            "stability": "external",
            "summary": "`CfnStackSet.DeploymentTargetsProperty.Accounts`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 930
          },
          "name": "accounts",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-deploymenttargets.html#cfn-cloudformation-stackset-deploymenttargets-organizationalunitids",
            "stability": "external",
            "summary": "`CfnStackSet.DeploymentTargetsProperty.OrganizationalUnitIds`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 935
          },
          "name": "organizationalUnitIds",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ]
    },
    "@aws-cdk/core.CfnStackSet.OperationPreferencesProperty": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-operationpreferences.html",
        "stability": "external"
      },
      "fqn": "@aws-cdk/core.CfnStackSet.OperationPreferencesProperty",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cloudformation.generated.ts",
        "line": 988
      },
      "name": "OperationPreferencesProperty",
      "namespace": "CfnStackSet",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-operationpreferences.html#cfn-cloudformation-stackset-operationpreferences-failuretolerancecount",
            "stability": "external",
            "summary": "`CfnStackSet.OperationPreferencesProperty.FailureToleranceCount`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 993
          },
          "name": "failureToleranceCount",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-operationpreferences.html#cfn-cloudformation-stackset-operationpreferences-failuretolerancepercentage",
            "stability": "external",
            "summary": "`CfnStackSet.OperationPreferencesProperty.FailureTolerancePercentage`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 998
          },
          "name": "failureTolerancePercentage",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-operationpreferences.html#cfn-cloudformation-stackset-operationpreferences-maxconcurrentcount",
            "stability": "external",
            "summary": "`CfnStackSet.OperationPreferencesProperty.MaxConcurrentCount`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 1003
          },
          "name": "maxConcurrentCount",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-operationpreferences.html#cfn-cloudformation-stackset-operationpreferences-maxconcurrentpercentage",
            "stability": "external",
            "summary": "`CfnStackSet.OperationPreferencesProperty.MaxConcurrentPercentage`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 1008
          },
          "name": "maxConcurrentPercentage",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-operationpreferences.html#cfn-cloudformation-stackset-operationpreferences-regionorder",
            "stability": "external",
            "summary": "`CfnStackSet.OperationPreferencesProperty.RegionOrder`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 1013
          },
          "name": "regionOrder",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ]
    },
    "@aws-cdk/core.CfnStackSet.ParameterProperty": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-parameter.html",
        "stability": "external"
      },
      "fqn": "@aws-cdk/core.CfnStackSet.ParameterProperty",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cloudformation.generated.ts",
        "line": 1075
      },
      "name": "ParameterProperty",
      "namespace": "CfnStackSet",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-parameter.html#cfn-cloudformation-stackset-parameter-parameterkey",
            "stability": "external",
            "summary": "`CfnStackSet.ParameterProperty.ParameterKey`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 1080
          },
          "name": "parameterKey",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-parameter.html#cfn-cloudformation-stackset-parameter-parametervalue",
            "stability": "external",
            "summary": "`CfnStackSet.ParameterProperty.ParameterValue`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 1085
          },
          "name": "parameterValue",
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnStackSet.StackInstancesProperty": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-stackinstances.html",
        "stability": "external"
      },
      "fqn": "@aws-cdk/core.CfnStackSet.StackInstancesProperty",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cloudformation.generated.ts",
        "line": 1140
      },
      "name": "StackInstancesProperty",
      "namespace": "CfnStackSet",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-stackinstances.html#cfn-cloudformation-stackset-stackinstances-deploymenttargets",
            "stability": "external",
            "summary": "`CfnStackSet.StackInstancesProperty.DeploymentTargets`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 1145
          },
          "name": "deploymentTargets",
          "type": {
            "union": {
              "types": [
                {
                  "fqn": "@aws-cdk/core.IResolvable"
                },
                {
                  "fqn": "@aws-cdk/core.CfnStackSet.DeploymentTargetsProperty"
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-stackinstances.html#cfn-cloudformation-stackset-stackinstances-regions",
            "stability": "external",
            "summary": "`CfnStackSet.StackInstancesProperty.Regions`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 1155
          },
          "name": "regions",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-stackinstances.html#cfn-cloudformation-stackset-stackinstances-parameteroverrides",
            "stability": "external",
            "summary": "`CfnStackSet.StackInstancesProperty.ParameterOverrides`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 1150
          },
          "name": "parameterOverrides",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "fqn": "@aws-cdk/core.IResolvable"
                },
                {
                  "collection": {
                    "elementtype": {
                      "union": {
                        "types": [
                          {
                            "fqn": "@aws-cdk/core.IResolvable"
                          },
                          {
                            "fqn": "@aws-cdk/core.CfnStackSet.ParameterProperty"
                          }
                        ]
                      }
                    },
                    "kind": "array"
                  }
                }
              ]
            }
          }
        }
      ]
    },
    "@aws-cdk/core.CfnStackSetProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html",
        "stability": "external",
        "summary": "Properties for defining a `AWS::CloudFormation::StackSet`."
      },
      "fqn": "@aws-cdk/core.CfnStackSetProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cloudformation.generated.ts",
        "line": 530
      },
      "name": "CfnStackSetProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-administrationrolearn",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.AdministrationRoleARN`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 536
          },
          "name": "administrationRoleArn",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-autodeployment",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.AutoDeployment`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 542
          },
          "name": "autoDeployment",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "fqn": "@aws-cdk/core.IResolvable"
                },
                {
                  "fqn": "@aws-cdk/core.CfnStackSet.AutoDeploymentProperty"
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-capabilities",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.Capabilities`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 548
          },
          "name": "capabilities",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-description",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.Description`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 554
          },
          "name": "description",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-executionrolename",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.ExecutionRoleName`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 560
          },
          "name": "executionRoleName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-operationpreferences",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.OperationPreferences`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 566
          },
          "name": "operationPreferences",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "fqn": "@aws-cdk/core.IResolvable"
                },
                {
                  "fqn": "@aws-cdk/core.CfnStackSet.OperationPreferencesProperty"
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-parameters",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.Parameters`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 572
          },
          "name": "parameters",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "fqn": "@aws-cdk/core.IResolvable"
                },
                {
                  "collection": {
                    "elementtype": {
                      "union": {
                        "types": [
                          {
                            "fqn": "@aws-cdk/core.IResolvable"
                          },
                          {
                            "fqn": "@aws-cdk/core.CfnStackSet.ParameterProperty"
                          }
                        ]
                      }
                    },
                    "kind": "array"
                  }
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-permissionmodel",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.PermissionModel`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 578
          },
          "name": "permissionModel",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-stackinstancesgroup",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.StackInstancesGroup`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 584
          },
          "name": "stackInstancesGroup",
          "optional": true,
          "type": {
            "union": {
              "types": [
                {
                  "fqn": "@aws-cdk/core.IResolvable"
                },
                {
                  "collection": {
                    "elementtype": {
                      "union": {
                        "types": [
                          {
                            "fqn": "@aws-cdk/core.IResolvable"
                          },
                          {
                            "fqn": "@aws-cdk/core.CfnStackSet.StackInstancesProperty"
                          }
                        ]
                      }
                    },
                    "kind": "array"
                  }
                }
              ]
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-stacksetname",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.StackSetName`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 590
          },
          "name": "stackSetName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-tags",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.Tags`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 596
          },
          "name": "tags",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "@aws-cdk/core.CfnTag"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-templatebody",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.TemplateBody`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 602
          },
          "name": "templateBody",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-templateurl",
            "stability": "external",
            "summary": "`AWS::CloudFormation::StackSet.TemplateURL`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 608
          },
          "name": "templateUrl",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnTag": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "custom": {
          "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html"
        },
        "stability": "stable"
      },
      "fqn": "@aws-cdk/core.CfnTag",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-tag.ts",
        "line": 4
      },
      "name": "CfnTag",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "custom": {
              "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html#cfn-resource-tags-key"
            },
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-tag.ts",
            "line": 8
          },
          "name": "key",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html#cfn-resource-tags-value"
            },
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-tag.ts",
            "line": 13
          },
          "name": "value",
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnTrafficRoute": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "A traffic route, representing where the traffic is being directed to."
      },
      "fqn": "@aws-cdk/core.CfnTrafficRoute",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
        "line": 173
      },
      "name": "CfnTrafficRoute",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The logical id of the target resource."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 183
          },
          "name": "logicalId",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Today, the only allowed value is 'AWS::ElasticLoadBalancingV2::Listener'.",
            "stability": "stable",
            "summary": "The resource type of the route."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 178
          },
          "name": "type",
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnTrafficRouting": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Type of the {@link CfnCodeDeployBlueGreenEcsAttributes.trafficRouting} property."
      },
      "fqn": "@aws-cdk/core.CfnTrafficRouting",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
        "line": 189
      },
      "name": "CfnTrafficRouting",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The listener to be used by your load balancer to direct traffic to your target groups."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 193
          },
          "name": "prodTrafficRoute",
          "type": {
            "fqn": "@aws-cdk/core.CfnTrafficRoute"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The logical IDs of the blue and green, respectively, AWS::ElasticLoadBalancingV2::TargetGroup target groups."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 204
          },
          "name": "targetGroups",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The listener to be used by your load balancer to direct traffic to your target groups."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 198
          },
          "name": "testTrafficRoute",
          "type": {
            "fqn": "@aws-cdk/core.CfnTrafficRoute"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnTrafficRoutingConfig": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "remarks": "The type of the {@link CfnCodeDeployBlueGreenHookProps.trafficRoutingConfig} property.",
        "stability": "stable",
        "summary": "Traffic routing configuration settings."
      },
      "fqn": "@aws-cdk/core.CfnTrafficRoutingConfig",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
        "line": 75
      },
      "name": "CfnTrafficRoutingConfig",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The type of traffic shifting used by the blue-green deployment configuration."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 79
          },
          "name": "type",
          "type": {
            "fqn": "@aws-cdk/core.CfnTrafficRoutingType"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- none",
            "stability": "stable",
            "summary": "The configuration for traffic routing when {@link type} is {@link CfnTrafficRoutingType.TIME_BASED_CANARY}."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 87
          },
          "name": "timeBasedCanary",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.CfnTrafficRoutingTimeBasedCanary"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- none",
            "stability": "stable",
            "summary": "The configuration for traffic routing when {@link type} is {@link CfnTrafficRoutingType.TIME_BASED_LINEAR}."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 95
          },
          "name": "timeBasedLinear",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.CfnTrafficRoutingTimeBasedLinear"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnTrafficRoutingTimeBasedCanary": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "The traffic routing configuration if {@link CfnTrafficRoutingConfig.type} is {@link CfnTrafficRoutingType.TIME_BASED_CANARY}."
      },
      "fqn": "@aws-cdk/core.CfnTrafficRoutingTimeBasedCanary",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
        "line": 33
      },
      "name": "CfnTrafficRoutingTimeBasedCanary",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "5",
            "stability": "stable",
            "summary": "The number of minutes between the first and second traffic shifts of a time-based canary deployment."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 47
          },
          "name": "bakeTimeMins",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "15",
            "remarks": "The step percentage must be 14% or greater.",
            "stability": "stable",
            "summary": "The percentage of traffic to shift in the first increment of a time-based canary deployment."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 40
          },
          "name": "stepPercentage",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnTrafficRoutingTimeBasedLinear": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "The traffic routing configuration if {@link CfnTrafficRoutingConfig.type} is {@link CfnTrafficRoutingType.TIME_BASED_LINEAR}."
      },
      "fqn": "@aws-cdk/core.CfnTrafficRoutingTimeBasedLinear",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
        "line": 54
      },
      "name": "CfnTrafficRoutingTimeBasedLinear",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "5",
            "stability": "stable",
            "summary": "The number of minutes between the first and second traffic shifts of a time-based linear deployment."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 68
          },
          "name": "bakeTimeMins",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "15",
            "remarks": "The step percentage must be 14% or greater.",
            "stability": "stable",
            "summary": "The percentage of traffic that is shifted at the start of each increment of a time-based linear deployment."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
            "line": 61
          },
          "name": "stepPercentage",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnTrafficRoutingType": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "The type of the {@link CfnTrafficRoutingConfig.type} property.",
        "stability": "stable",
        "summary": "The possible types of traffic shifting for the blue-green deployment configuration."
      },
      "fqn": "@aws-cdk/core.CfnTrafficRoutingType",
      "kind": "enum",
      "locationInModule": {
        "filename": "lib/cfn-codedeploy-blue-green-hook.ts",
        "line": 11
      },
      "members": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Switch from blue to green at once."
          },
          "name": "ALL_AT_ONCE"
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Specifies a configuration that shifts traffic from blue to green in two increments."
          },
          "name": "TIME_BASED_CANARY"
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Specifies a configuration that shifts traffic from blue to green in equal increments, with an equal number of minutes between each increment."
          },
          "name": "TIME_BASED_LINEAR"
        }
      ],
      "name": "CfnTrafficRoutingType"
    },
    "@aws-cdk/core.CfnUpdatePolicy": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "remarks": "AWS CloudFormation invokes one of three update policies depending on the type of change you make or whether a\nscheduled action is associated with the Auto Scaling group.",
        "stability": "stable",
        "summary": "Use the UpdatePolicy attribute to specify how AWS CloudFormation handles updates to the AWS::AutoScaling::AutoScalingGroup resource."
      },
      "fqn": "@aws-cdk/core.CfnUpdatePolicy",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-resource-policy.ts",
        "line": 104
      },
      "name": "CfnUpdatePolicy",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "During replacement,\nAWS CloudFormation retains the old group until it finishes creating the new one. If the update fails, AWS CloudFormation\ncan roll back to the old Auto Scaling group and delete the new Auto Scaling group.",
            "stability": "stable",
            "summary": "Specifies whether an Auto Scaling group and the instances it contains are replaced during an update."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource-policy.ts",
            "line": 111
          },
          "name": "autoScalingReplacingUpdate",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.CfnAutoScalingReplacingUpdate"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Rolling updates enable you to specify whether AWS CloudFormation updates instances that are in an Auto Scaling\ngroup in batches or all at once.",
            "stability": "stable",
            "summary": "To specify how AWS CloudFormation handles rolling updates for an Auto Scaling group, use the AutoScalingRollingUpdate policy."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource-policy.ts",
            "line": 118
          },
          "name": "autoScalingRollingUpdate",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.CfnAutoScalingRollingUpdate"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "To specify how AWS CloudFormation handles updates for the MinSize, MaxSize, and DesiredCapacity properties when the AWS::AutoScaling::AutoScalingGroup resource has an associated scheduled action, use the AutoScalingScheduledAction policy."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource-policy.ts",
            "line": 125
          },
          "name": "autoScalingScheduledAction",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.CfnAutoScalingScheduledAction"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "To perform an AWS CodeDeploy deployment when the version changes on an AWS::Lambda::Alias resource, use the CodeDeployLambdaAliasUpdate update policy."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource-policy.ts",
            "line": 131
          },
          "name": "codeDeployLambdaAliasUpdate",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.CfnCodeDeployLambdaAliasUpdate"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "To upgrade an Amazon ES domain to a new version of Elasticsearch rather than replacing the entire AWS::Elasticsearch::Domain resource, use the EnableVersionUpgrade update policy."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource-policy.ts",
            "line": 143
          },
          "name": "enableVersionUpgrade",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "To modify a replication group's shards by adding or removing shards, rather than replacing the entire AWS::ElastiCache::ReplicationGroup resource, use the UseOnlineResharding update policy."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-resource-policy.ts",
            "line": 137
          },
          "name": "useOnlineResharding",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnWaitCondition": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.CfnResource",
      "docs": {
        "custom": {
          "cloudformationResource": "AWS::CloudFormation::WaitCondition"
        },
        "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html",
        "stability": "external",
        "summary": "A CloudFormation `AWS::CloudFormation::WaitCondition`."
      },
      "fqn": "@aws-cdk/core.CfnWaitCondition",
      "initializer": {
        "docs": {
          "stability": "external",
          "summary": "Create a new `AWS::CloudFormation::WaitCondition`."
        },
        "locationInModule": {
          "filename": "lib/cloudformation.generated.ts",
          "line": 1338
        },
        "parameters": [
          {
            "docs": {
              "summary": "- scope in which this resource is defined."
            },
            "name": "scope",
            "type": {
              "fqn": "@aws-cdk/core.Construct"
            }
          },
          {
            "docs": {
              "summary": "- scoped id of the resource."
            },
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "docs": {
              "summary": "- resource properties."
            },
            "name": "props",
            "optional": true,
            "type": {
              "fqn": "@aws-cdk/core.CfnWaitConditionProps"
            }
          }
        ]
      },
      "interfaces": [
        "@aws-cdk/core.IInspectable"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "lib/cloudformation.generated.ts",
        "line": 1286
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Examines the CloudFormation resource and discloses attributes."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 1354
          },
          "name": "inspect",
          "overrides": "@aws-cdk/core.IInspectable",
          "parameters": [
            {
              "docs": {
                "summary": "- tree inspector to collect and process attributes."
              },
              "name": "inspector",
              "type": {
                "fqn": "@aws-cdk/core.TreeInspector"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "external"
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 1366
          },
          "name": "renderProperties",
          "overrides": "@aws-cdk/core.CfnResource",
          "parameters": [
            {
              "name": "props",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "any"
                  },
                  "kind": "map"
                }
              }
            }
          ],
          "protected": true,
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "any"
                },
                "kind": "map"
              }
            }
          }
        }
      ],
      "name": "CfnWaitCondition",
      "properties": [
        {
          "const": true,
          "docs": {
            "stability": "external",
            "summary": "The CloudFormation resource type name for this resource class."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 1290
          },
          "name": "CFN_RESOURCE_TYPE_NAME",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "custom": {
              "cloudformationAttribute": "Data"
            },
            "stability": "external"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 1311
          },
          "name": "attrData",
          "type": {
            "fqn": "@aws-cdk/core.IResolvable"
          }
        },
        {
          "docs": {
            "stability": "external"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 1359
          },
          "name": "cfnProperties",
          "overrides": "@aws-cdk/core.CfnResource",
          "protected": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html#cfn-waitcondition-count",
            "stability": "external",
            "summary": "`AWS::CloudFormation::WaitCondition.Count`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 1317
          },
          "name": "count",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html#cfn-waitcondition-handle",
            "stability": "external",
            "summary": "`AWS::CloudFormation::WaitCondition.Handle`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 1323
          },
          "name": "handle",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html#cfn-waitcondition-timeout",
            "stability": "external",
            "summary": "`AWS::CloudFormation::WaitCondition.Timeout`."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 1329
          },
          "name": "timeout",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnWaitConditionHandle": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.CfnResource",
      "docs": {
        "custom": {
          "cloudformationResource": "AWS::CloudFormation::WaitConditionHandle"
        },
        "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitconditionhandle.html",
        "stability": "external",
        "summary": "A CloudFormation `AWS::CloudFormation::WaitConditionHandle`."
      },
      "fqn": "@aws-cdk/core.CfnWaitConditionHandle",
      "initializer": {
        "docs": {
          "stability": "external",
          "summary": "Create a new `AWS::CloudFormation::WaitConditionHandle`."
        },
        "locationInModule": {
          "filename": "lib/cloudformation.generated.ts",
          "line": 1405
        },
        "parameters": [
          {
            "docs": {
              "summary": "- scope in which this resource is defined."
            },
            "name": "scope",
            "type": {
              "fqn": "@aws-cdk/core.Construct"
            }
          },
          {
            "docs": {
              "summary": "- scoped id of the resource."
            },
            "name": "id",
            "type": {
              "primitive": "string"
            }
          }
        ]
      },
      "interfaces": [
        "@aws-cdk/core.IInspectable"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "lib/cloudformation.generated.ts",
        "line": 1378
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Examines the CloudFormation resource and discloses attributes."
          },
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 1416
          },
          "name": "inspect",
          "overrides": "@aws-cdk/core.IInspectable",
          "parameters": [
            {
              "docs": {
                "summary": "- tree inspector to collect and process attributes."
              },
              "name": "inspector",
              "type": {
                "fqn": "@aws-cdk/core.TreeInspector"
              }
            }
          ]
        }
      ],
      "name": "CfnWaitConditionHandle",
      "properties": [
        {
          "const": true,
          "docs": {
            "stability": "external",
            "summary": "The CloudFormation resource type name for this resource class."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 1382
          },
          "name": "CFN_RESOURCE_TYPE_NAME",
          "static": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CfnWaitConditionProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html",
        "stability": "external",
        "summary": "Properties for defining a `AWS::CloudFormation::WaitCondition`."
      },
      "fqn": "@aws-cdk/core.CfnWaitConditionProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cloudformation.generated.ts",
        "line": 1214
      },
      "name": "CfnWaitConditionProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html#cfn-waitcondition-count",
            "stability": "external",
            "summary": "`AWS::CloudFormation::WaitCondition.Count`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 1220
          },
          "name": "count",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html#cfn-waitcondition-handle",
            "stability": "external",
            "summary": "`AWS::CloudFormation::WaitCondition.Handle`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 1226
          },
          "name": "handle",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "see": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html#cfn-waitcondition-timeout",
            "stability": "external",
            "summary": "`AWS::CloudFormation::WaitCondition.Timeout`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cloudformation.generated.ts",
            "line": 1232
          },
          "name": "timeout",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.ConcreteDependable": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "This class can be used when a set of constructs which are disjoint in the\nconstruct tree needs to be combined to be used as a single dependable.",
        "stability": "experimental",
        "summary": "A set of constructs to be used as a dependable."
      },
      "fqn": "@aws-cdk/core.ConcreteDependable",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "lib/dependency.ts",
          "line": 29
        }
      },
      "interfaces": [
        "@aws-cdk/core.IDependable"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "lib/dependency.ts",
        "line": 26
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Add a construct to the dependency roots."
          },
          "locationInModule": {
            "filename": "lib/dependency.ts",
            "line": 39
          },
          "name": "add",
          "parameters": [
            {
              "name": "construct",
              "type": {
                "fqn": "@aws-cdk/core.IConstruct"
              }
            }
          ]
        }
      ],
      "name": "ConcreteDependable"
    },
    "@aws-cdk/core.Construct": {
      "assembly": "@aws-cdk/core",
      "base": "constructs.Construct",
      "docs": {
        "remarks": "All constructs besides the root construct must be created within the scope of\nanother construct.",
        "stability": "stable",
        "summary": "Represents the building block of the construct graph."
      },
      "fqn": "@aws-cdk/core.Construct",
      "initializer": {
        "docs": {
          "stability": "stable"
        },
        "locationInModule": {
          "filename": "lib/construct-compat.ts",
          "line": 67
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          }
        ]
      },
      "interfaces": [
        "@aws-cdk/core.IConstruct"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "lib/construct-compat.ts",
        "line": 54
      },
      "methods": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Return whether the given object is a Construct."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 58
          },
          "name": "isConstruct",
          "parameters": [
            {
              "name": "x",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "This method can be implemented by derived constructs in order to perform\nfinal changes before synthesis. prepare() will be called after child\nconstructs have been prepared.\n\nThis is an advanced framework feature. Only use this if you\nunderstand the implications.",
            "stability": "stable",
            "summary": "Perform final modifications before synthesis."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 116
          },
          "name": "onPrepare",
          "overrides": "constructs.Construct",
          "protected": true
        },
        {
          "docs": {
            "remarks": "This method is usually implemented by framework-level constructs such as `Stack` and `Asset`\nas they participate in synthesizing the cloud assembly.",
            "stability": "stable",
            "summary": "Allows this construct to emit artifacts into the cloud assembly during synthesis."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 128
          },
          "name": "onSynthesize",
          "overrides": "constructs.Construct",
          "parameters": [
            {
              "docs": {
                "summary": "The synthesis session."
              },
              "name": "session",
              "type": {
                "fqn": "constructs.ISynthesisSession"
              }
            }
          ],
          "protected": true
        },
        {
          "docs": {
            "remarks": "This method can be implemented by derived constructs in order to perform\nvalidation logic. It is called on all constructs before synthesis.",
            "returns": "An array of validation error messages, or an empty array if the construct is valid.",
            "stability": "stable",
            "summary": "Validate the current construct."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 102
          },
          "name": "onValidate",
          "overrides": "constructs.Construct",
          "protected": true,
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "string"
                },
                "kind": "array"
              }
            }
          }
        },
        {
          "docs": {
            "remarks": "This method can be implemented by derived constructs in order to perform\nfinal changes before synthesis. prepare() will be called after child\nconstructs have been prepared.\n\nThis is an advanced framework feature. Only use this if you\nunderstand the implications.",
            "stability": "stable",
            "summary": "Perform final modifications before synthesis."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 157
          },
          "name": "prepare",
          "protected": true
        },
        {
          "docs": {
            "remarks": "This method is usually implemented by framework-level constructs such as `Stack` and `Asset`\nas they participate in synthesizing the cloud assembly.",
            "stability": "stable",
            "summary": "Allows this construct to emit artifacts into the cloud assembly during synthesis."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 169
          },
          "name": "synthesize",
          "parameters": [
            {
              "docs": {
                "summary": "The synthesis session."
              },
              "name": "session",
              "type": {
                "fqn": "@aws-cdk/core.ISynthesisSession"
              }
            }
          ],
          "protected": true
        },
        {
          "docs": {
            "remarks": "This method can be implemented by derived constructs in order to perform\nvalidation logic. It is called on all constructs before synthesis.",
            "returns": "An array of validation error messages, or an empty array if the construct is valid.",
            "stability": "stable",
            "summary": "Validate the current construct."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 143
          },
          "name": "validate",
          "protected": true,
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "string"
                },
                "kind": "array"
              }
            }
          }
        }
      ],
      "name": "Construct",
      "properties": [
        {
          "docs": {
            "stability": "stable",
            "summary": "The construct tree node associated with this construct."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 65
          },
          "name": "node",
          "overrides": "@aws-cdk/core.IConstruct",
          "type": {
            "fqn": "@aws-cdk/core.ConstructNode"
          }
        }
      ]
    },
    "@aws-cdk/core.ConstructNode": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "Represents the construct node in the scope tree."
      },
      "fqn": "@aws-cdk/core.ConstructNode",
      "initializer": {
        "docs": {
          "stability": "stable"
        },
        "locationInModule": {
          "filename": "lib/construct-compat.ts",
          "line": 275
        },
        "parameters": [
          {
            "name": "host",
            "type": {
              "fqn": "@aws-cdk/core.Construct"
            }
          },
          {
            "name": "scope",
            "type": {
              "fqn": "@aws-cdk/core.IConstruct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/construct-compat.ts",
        "line": 211
      },
      "methods": [
        {
          "docs": {
            "deprecated": "Use `app.synth()` instead",
            "stability": "deprecated",
            "summary": "Invokes \"prepare\" on all constructs (depth-first, post-order) in the tree under `node`."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 248
          },
          "name": "prepare",
          "parameters": [
            {
              "docs": {
                "summary": "The root node."
              },
              "name": "node",
              "type": {
                "fqn": "@aws-cdk/core.ConstructNode"
              }
            }
          ],
          "static": true
        },
        {
          "docs": {
            "deprecated": "Use `app.synth()` or `stage.synth()` instead",
            "stability": "deprecated",
            "summary": "Synthesizes a CloudAssembly from a construct tree."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 237
          },
          "name": "synth",
          "parameters": [
            {
              "docs": {
                "summary": "The root of the construct tree."
              },
              "name": "node",
              "type": {
                "fqn": "@aws-cdk/core.ConstructNode"
              }
            },
            {
              "docs": {
                "summary": "Synthesis options."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.SynthesisOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/cx-api.CloudAssembly"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "An empty list indicates that there are no errors.",
            "stability": "stable",
            "summary": "Invokes \"validate\" on all constructs in the tree (depth-first, pre-order) and returns the list of all errors."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 261
          },
          "name": "validate",
          "parameters": [
            {
              "docs": {
                "summary": "The root node."
              },
              "name": "node",
              "type": {
                "fqn": "@aws-cdk/core.ConstructNode"
              }
            }
          ],
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "fqn": "@aws-cdk/core.ValidationError"
                },
                "kind": "array"
              }
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "All constructs in the dependency's scope will be deployed before any\nconstruct in this construct's scope.",
            "stability": "stable",
            "summary": "Add an ordering dependency on another Construct."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 481
          },
          "name": "addDependency",
          "parameters": [
            {
              "name": "dependencies",
              "type": {
                "fqn": "@aws-cdk/core.IDependable"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "docs": {
            "deprecated": "use `Annotations.of(construct).addError()`",
            "remarks": "The toolkit will fail synthesis when errors are reported.",
            "stability": "deprecated",
            "summary": "DEPRECATED: Adds an { \"error\": <message> } metadata entry to this construct."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 440
          },
          "name": "addError",
          "parameters": [
            {
              "docs": {
                "summary": "The error message."
              },
              "name": "message",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "deprecated": "use `Annotations.of(construct).addInfo()`",
            "remarks": "The toolkit will display the info message when apps are synthesized.",
            "stability": "deprecated",
            "summary": "DEPRECATED: Adds a { \"info\": <message> } metadata entry to this construct."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 419
          },
          "name": "addInfo",
          "parameters": [
            {
              "docs": {
                "summary": "The info message."
              },
              "name": "message",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "Entries are arbitrary values and will also include a stack trace to allow tracing back to\nthe code location for when the entry was added. It can be used, for example, to include source\nmapping in CloudFormation templates to improve diagnostics.",
            "stability": "stable",
            "summary": "Adds a metadata entry to this construct."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 411
          },
          "name": "addMetadata",
          "parameters": [
            {
              "docs": {
                "summary": "a string denoting the type of metadata."
              },
              "name": "type",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "remarks": "If null/undefined, metadata will not be added.",
                "summary": "the value of the metadata (can be a Token)."
              },
              "name": "data",
              "type": {
                "primitive": "any"
              }
            },
            {
              "docs": {
                "summary": "a function under which to restrict the metadata entry's stack trace (defaults to this.addMetadata)."
              },
              "name": "fromFunction",
              "optional": true,
              "type": {
                "primitive": "any"
              }
            }
          ]
        },
        {
          "docs": {
            "deprecated": "use `Annotations.of(construct).addWarning()`",
            "remarks": "The toolkit will display the warning when an app is synthesized, or fail\nif run in --strict mode.",
            "stability": "deprecated",
            "summary": "DEPRECATED: Adds a { \"warning\": <message> } metadata entry to this construct."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 430
          },
          "name": "addWarning",
          "parameters": [
            {
              "docs": {
                "summary": "The warning message."
              },
              "name": "message",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "deprecated": "This API is going to be removed in the next major version of\nthe AWS CDK. Please use `Aspects.of(scope).add()` instead.",
            "stability": "deprecated",
            "summary": "DEPRECATED: Applies the aspect to this Constructs node."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 450
          },
          "name": "applyAspect",
          "parameters": [
            {
              "name": "aspect",
              "type": {
                "fqn": "@aws-cdk/core.IAspect"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Return this construct and all of its children in the given order."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 364
          },
          "name": "findAll",
          "parameters": [
            {
              "name": "order",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.ConstructOrder"
              }
            }
          ],
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "fqn": "@aws-cdk/core.IConstruct"
                },
                "kind": "array"
              }
            }
          }
        },
        {
          "docs": {
            "remarks": "Throws an error if the child is not found.",
            "returns": "Child with the given id.",
            "stability": "stable",
            "summary": "Return a direct child by id."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 332
          },
          "name": "findChild",
          "parameters": [
            {
              "docs": {
                "summary": "Identifier of direct child."
              },
              "name": "id",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.IConstruct"
            }
          }
        },
        {
          "docs": {
            "remarks": "Context must be set before any children are added, since children may consult context info during construction.\nIf the key already exists, it will be overridden.",
            "stability": "stable",
            "summary": "This can be used to set contextual values."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 373
          },
          "name": "setContext",
          "parameters": [
            {
              "docs": {
                "summary": "The context key."
              },
              "name": "key",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "The context value."
              },
              "name": "value",
              "type": {
                "primitive": "any"
              }
            }
          ]
        },
        {
          "docs": {
            "returns": "the child if found, or undefined",
            "stability": "stable",
            "summary": "Return a direct child by id, or undefined."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 322
          },
          "name": "tryFindChild",
          "parameters": [
            {
              "docs": {
                "summary": "Identifier of direct child."
              },
              "name": "id",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "fqn": "@aws-cdk/core.IConstruct"
            }
          }
        },
        {
          "docs": {
            "remarks": "Context is usually initialized at the root, but can be overridden at any point in the tree.",
            "returns": "The context value or `undefined` if there is no context value for the key.",
            "stability": "stable",
            "summary": "Retrieves a value from tree context."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 388
          },
          "name": "tryGetContext",
          "parameters": [
            {
              "docs": {
                "summary": "The context key."
              },
              "name": "key",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        },
        {
          "docs": {
            "returns": "Whether a child with the given name was deleted.",
            "stability": "experimental",
            "summary": "Remove the child with the given name, if present."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 494
          },
          "name": "tryRemoveChild",
          "parameters": [
            {
              "name": "childName",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          }
        }
      ],
      "name": "ConstructNode",
      "properties": [
        {
          "const": true,
          "docs": {
            "stability": "stable",
            "summary": "Separator used to delimit construct path components."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 215
          },
          "name": "PATH_SEP",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "All direct children of this construct."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 359
          },
          "name": "children",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "@aws-cdk/core.IConstruct"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Return all dependencies registered on this node or any of its children."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 486
          },
          "name": "dependencies",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "@aws-cdk/core.Dependency"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "remarks": "This is a a scope-unique id. To obtain an app-unique id for this construct, use `uniqueId`.",
            "stability": "stable",
            "summary": "The id of this construct within the current scope."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 301
          },
          "name": "id",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Returns true if this construct or the scopes in which it is defined are locked."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 473
          },
          "name": "locked",
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "docs": {
            "remarks": "This can be used, for example, to implement support for deprecation notices, source mapping, etc.",
            "stability": "stable",
            "summary": "An immutable array of metadata objects associated with this construct."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 399
          },
          "name": "metadata",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "@aws-cdk/cx-api.MetadataEntry"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "remarks": "Components are separated by '/'.",
            "stability": "stable",
            "summary": "The full, absolute path of this construct in the tree."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 308
          },
          "name": "path",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "returns": "The root of the construct tree.",
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 467
          },
          "name": "root",
          "type": {
            "fqn": "@aws-cdk/core.IConstruct"
          }
        },
        {
          "docs": {
            "returns": "a list of parent scopes. The last element in the list will always\nbe the current construct and the first element will be the root of the\ntree.",
            "stability": "stable",
            "summary": "All parent scopes of this construct."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 462
          },
          "name": "scopes",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "@aws-cdk/core.IConstruct"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "remarks": "Includes all components of the tree.",
            "stability": "stable",
            "summary": "A tree-global unique alphanumeric identifier for this construct."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 314
          },
          "name": "uniqueId",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "remarks": "The value is `undefined` at the root of the construct scope tree.",
            "stability": "stable",
            "summary": "Returns the scope in which this construct is defined."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 292
          },
          "name": "scope",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.IConstruct"
          }
        },
        {
          "docs": {
            "custom": {
              "throws": "if there is more than one child"
            },
            "remarks": "This is usually the construct that provides the bulk of the underlying functionality.\nUseful for modifications of the underlying construct that are not available at the higher levels.\nOverride the defaultChild property.\n\nThis should only be used in the cases where the correct\ndefault child is not named 'Resource' or 'Default' as it\nshould be.\n\nIf you set this to undefined, the default behavior of finding\nthe child named 'Resource' or 'Default' will be used.",
            "returns": "a construct or undefined if there is no default child",
            "stability": "stable",
            "summary": "Returns the child construct that has the id `Default` or `Resource\"`."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 342
          },
          "name": "defaultChild",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.IConstruct"
          }
        }
      ]
    },
    "@aws-cdk/core.ConstructOrder": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "In what order to return constructs."
      },
      "fqn": "@aws-cdk/core.ConstructOrder",
      "kind": "enum",
      "locationInModule": {
        "filename": "lib/construct-compat.ts",
        "line": 177
      },
      "members": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Depth-first, pre-order."
          },
          "name": "PREORDER"
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Depth-first, post-order (leaf nodes first)."
          },
          "name": "POSTORDER"
        }
      ],
      "name": "ConstructOrder"
    },
    "@aws-cdk/core.ContextProvider": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "Instances of this class communicate with context provider plugins in the 'cdk\ntoolkit' via context variables (input), outputting specialized queries for\nmore context variables (output).\n\nContextProvider needs access to a Construct to hook into the context mechanism.",
        "stability": "experimental",
        "summary": "Base class for the model side of context providers."
      },
      "fqn": "@aws-cdk/core.ContextProvider",
      "kind": "class",
      "locationInModule": {
        "filename": "lib/context-provider.ts",
        "line": 61
      },
      "methods": [
        {
          "docs": {
            "returns": "the context key or undefined if a key cannot be rendered (due to tokens used in any of the props)",
            "stability": "experimental"
          },
          "locationInModule": {
            "filename": "lib/context-provider.ts",
            "line": 65
          },
          "name": "getKey",
          "parameters": [
            {
              "name": "scope",
              "type": {
                "fqn": "constructs.Construct"
              }
            },
            {
              "name": "options",
              "type": {
                "fqn": "@aws-cdk/core.GetContextKeyOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.GetContextKeyResult"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "experimental"
          },
          "locationInModule": {
            "filename": "lib/context-provider.ts",
            "line": 87
          },
          "name": "getValue",
          "parameters": [
            {
              "name": "scope",
              "type": {
                "fqn": "constructs.Construct"
              }
            },
            {
              "name": "options",
              "type": {
                "fqn": "@aws-cdk/core.GetContextValueOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.GetContextValueResult"
            }
          },
          "static": true
        }
      ],
      "name": "ContextProvider"
    },
    "@aws-cdk/core.CopyOptions": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Obtains applied when copying directories into the staging location."
      },
      "fqn": "@aws-cdk/core.CopyOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/fs/options.ts",
        "line": 36
      },
      "name": "CopyOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- nothing is excluded",
            "stability": "stable",
            "summary": "Glob patterns to exclude from the copy."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/fs/options.ts",
            "line": 49
          },
          "name": "exclude",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "SymlinkFollowMode.NEVER",
            "stability": "stable",
            "summary": "A strategy for how to handle symlinks."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/fs/options.ts",
            "line": 42
          },
          "name": "follow",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.SymlinkFollowMode"
          }
        }
      ]
    },
    "@aws-cdk/core.CustomResource": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.Resource",
      "docs": {
        "custom": {
          "resource": "AWS::CloudFormation::CustomResource"
        },
        "remarks": "As a custom resource author, you should be publishing a subclass of this class\nthat hides the choice of provider, and accepts a strongly-typed properties\nobject with the properties your provider accepts.",
        "stability": "stable",
        "summary": "Custom resource that is implemented using a Lambda."
      },
      "fqn": "@aws-cdk/core.CustomResource",
      "initializer": {
        "docs": {
          "stability": "stable"
        },
        "locationInModule": {
          "filename": "lib/custom-resource.ts",
          "line": 108
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "props",
            "type": {
              "fqn": "@aws-cdk/core.CustomResourceProps"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/custom-resource.ts",
        "line": 105
      },
      "methods": [
        {
          "docs": {
            "remarks": "Attributes are returned from the custom resource provider through the\n`Data` map where the key is the attribute name.",
            "returns": "a token for `Fn::GetAtt`. Use `Token.asXxx` to encode the returned `Reference` as a specific type or\nuse the convenience `getAttString` for string attributes.",
            "stability": "stable",
            "summary": "Returns the value of an attribute of the custom resource of an arbitrary type."
          },
          "locationInModule": {
            "filename": "lib/custom-resource.ts",
            "line": 144
          },
          "name": "getAtt",
          "parameters": [
            {
              "docs": {
                "summary": "the name of the attribute."
              },
              "name": "attributeName",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.Reference"
            }
          }
        },
        {
          "docs": {
            "remarks": "Attributes are returned from the custom resource provider through the\n`Data` map where the key is the attribute name.",
            "returns": "a token for `Fn::GetAtt` encoded as a string.",
            "stability": "stable",
            "summary": "Returns the value of an attribute of the custom resource of type string."
          },
          "locationInModule": {
            "filename": "lib/custom-resource.ts",
            "line": 156
          },
          "name": "getAttString",
          "parameters": [
            {
              "docs": {
                "summary": "the name of the attribute."
              },
              "name": "attributeName",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "CustomResource",
      "properties": [
        {
          "docs": {
            "stability": "stable",
            "summary": "The physical name of this custom resource."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/custom-resource.ts",
            "line": 131
          },
          "name": "ref",
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CustomResourceProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Properties to provide a Lambda-backed custom resource."
      },
      "fqn": "@aws-cdk/core.CustomResourceProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/custom-resource.ts",
        "line": 10
      },
      "name": "CustomResourceProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "You can implement a provider by listening to raw AWS CloudFormation events\nand specify the ARN of an SNS topic (`topic.topicArn`) or the ARN of an AWS\nLambda function (`lambda.functionArn`) or use the CDK's custom [resource\nprovider framework] which makes it easier to implement robust providers.\n\n[resource provider framework]:\nhttps://docs.aws.amazon.com/cdk/api/latest/docs/custom-resources-readme.html\n\nProvider framework:\n\n```ts\n// use the provider framework from aws-cdk/custom-resources:\nconst provider = new custom_resources.Provider({\n   onEventHandler: myOnEventLambda,\n   isCompleteHandler: myIsCompleteLambda, // optional\n});\n\nnew CustomResource(this, 'MyResource', {\n   serviceToken: provider.serviceToken\n});\n```\n\nAWS Lambda function:\n\n```ts\n// invoke an AWS Lambda function when a lifecycle event occurs:\nserviceToken: myFunction.functionArn\n```\n\nSNS topic:\n\n```ts\n// publish lifecycle events to an SNS topic:\nserviceToken: myTopic.topicArn\n```",
            "stability": "stable",
            "summary": "The ARN of the provider which implements this custom resource type."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/custom-resource.ts",
            "line": 50
          },
          "name": "serviceToken",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "stable",
            "summary": "Convert all property keys to pascal case."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/custom-resource.ts",
            "line": 93
          },
          "name": "pascalCaseProperties",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- No properties.",
            "stability": "stable",
            "summary": "Properties to pass to the Lambda."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/custom-resource.ts",
            "line": 57
          },
          "name": "properties",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "cdk.RemovalPolicy.Destroy",
            "stability": "stable",
            "summary": "The policy to apply when this resource is removed from the application."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/custom-resource.ts",
            "line": 86
          },
          "name": "removalPolicy",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.RemovalPolicy"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- AWS::CloudFormation::CustomResource",
            "remarks": "For example, you can use \"Custom::MyCustomResourceTypeName\".\n\nCustom resource type names must begin with \"Custom::\" and can include\nalphanumeric characters and the following characters: _@-. You can specify\na custom resource type name up to a maximum length of 60 characters. You\ncannot change the type during an update.\n\nUsing your own resource type names helps you quickly differentiate the\ntypes of custom resources in your stack. For example, if you had two custom\nresources that conduct two different ping tests, you could name their type\nas Custom::PingTester to make them easily identifiable as ping testers\n(instead of using AWS::CloudFormation::CustomResource).",
            "see": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html#aws-cfn-resource-type-name",
            "stability": "stable",
            "summary": "For custom resources, you can specify AWS::CloudFormation::CustomResource (the default) as the resource type, or you can specify your own resource type name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/custom-resource.ts",
            "line": 79
          },
          "name": "resourceType",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CustomResourceProvider": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.Construct",
      "docs": {
        "stability": "experimental",
        "summary": "An AWS-Lambda backed custom resource provider."
      },
      "fqn": "@aws-cdk/core.CustomResourceProvider",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "lib/custom-resource-provider/custom-resource-provider.ts",
          "line": 125
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "props",
            "type": {
              "fqn": "@aws-cdk/core.CustomResourceProviderProps"
            }
          }
        ],
        "protected": true
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/custom-resource-provider/custom-resource-provider.ts",
        "line": 89
      },
      "methods": [
        {
          "docs": {
            "returns": "the service token of the custom resource provider, which should be\nused when defining a `CustomResource`.",
            "stability": "experimental",
            "summary": "Returns a stack-level singleton ARN (service token) for the custom resource provider."
          },
          "locationInModule": {
            "filename": "lib/custom-resource-provider/custom-resource-provider.ts",
            "line": 102
          },
          "name": "getOrCreate",
          "parameters": [
            {
              "docs": {
                "summary": "Construct scope."
              },
              "name": "scope",
              "type": {
                "fqn": "constructs.Construct"
              }
            },
            {
              "docs": {
                "summary": "A globally unique id that will be used for the stack-level construct."
              },
              "name": "uniqueid",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "Provider properties which will only be applied when the provider is first created."
              },
              "name": "props",
              "type": {
                "fqn": "@aws-cdk/core.CustomResourceProviderProps"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          },
          "static": true
        }
      ],
      "name": "CustomResourceProvider",
      "properties": [
        {
          "docs": {
            "example": "  new CustomResource(this, 'MyCustomResource', {\n    // ...\n    serviceToken: provider.serviceToken // <--- here\n  })",
            "stability": "experimental",
            "summary": "The ARN of the provider's AWS Lambda function which should be used as the `serviceToken` when defining a custom resource."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/custom-resource-provider/custom-resource-provider.ts",
            "line": 123
          },
          "name": "serviceToken",
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.CustomResourceProviderProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Initialization properties for `CustomResourceProvider`."
      },
      "fqn": "@aws-cdk/core.CustomResourceProviderProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/custom-resource-provider/custom-resource-provider.ts",
        "line": 24
      },
      "name": "CustomResourceProviderProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "The code will be\nbundled into a zip asset and wired to the provider's AWS Lambda function.",
            "stability": "experimental",
            "summary": "A local file system directory with the provider's code."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/custom-resource-provider/custom-resource-provider.ts",
            "line": 29
          },
          "name": "codeDirectory",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The AWS Lambda runtime and version to use for the provider."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/custom-resource-provider/custom-resource-provider.ts",
            "line": 34
          },
          "name": "runtime",
          "type": {
            "fqn": "@aws-cdk/core.CustomResourceProviderRuntime"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- No environment variables.",
            "stability": "experimental",
            "summary": "Key-value pairs that are passed to Lambda as Environment."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/custom-resource-provider/custom-resource-provider.ts",
            "line": 69
          },
          "name": "environment",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "Size.mebibytes(128)",
            "remarks": "Increasing the\nfunction's memory also increases its CPU allocation.",
            "stability": "experimental",
            "summary": "The amount of memory that your function has access to."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/custom-resource-provider/custom-resource-provider.ts",
            "line": 62
          },
          "name": "memorySize",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.Size"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no additional inline policy",
            "example": "  policyStatements: [ { Effect: 'Allow', Action: 's3:PutObject*', Resource: '*' } ]",
            "stability": "experimental",
            "summary": "A set of IAM policy statements to include in the inline policy of the provider's lambda function."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/custom-resource-provider/custom-resource-provider.ts",
            "line": 47
          },
          "name": "policyStatements",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "Duration.minutes(15)",
            "stability": "experimental",
            "summary": "AWS Lambda timeout for the provider."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/custom-resource-provider/custom-resource-provider.ts",
            "line": 54
          },
          "name": "timeout",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.Duration"
          }
        }
      ]
    },
    "@aws-cdk/core.CustomResourceProviderRuntime": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "This also indicates\nwhich language is used for the handler.",
        "stability": "experimental",
        "summary": "The lambda runtime to use for the resource provider."
      },
      "fqn": "@aws-cdk/core.CustomResourceProviderRuntime",
      "kind": "enum",
      "locationInModule": {
        "filename": "lib/custom-resource-provider/custom-resource-provider.ts",
        "line": 77
      },
      "members": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Node.js 12.x."
          },
          "name": "NODEJS_12"
        }
      ],
      "name": "CustomResourceProviderRuntime"
    },
    "@aws-cdk/core.DefaultStackSynthesizer": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.StackSynthesizer",
      "docs": {
        "remarks": "This synthesizer is the only StackSynthesizer that generates\nan asset manifest, and is required to deploy CDK applications using the\n`@aws-cdk/app-delivery` CI/CD library.\n\nRequires the environment to have been bootstrapped with Bootstrap Stack V2.",
        "stability": "stable",
        "summary": "Uses conventionally named roles and reify asset storage locations."
      },
      "fqn": "@aws-cdk/core.DefaultStackSynthesizer",
      "initializer": {
        "docs": {
          "stability": "stable"
        },
        "locationInModule": {
          "filename": "lib/stack-synthesizers/default-synthesizer.ts",
          "line": 217
        },
        "parameters": [
          {
            "name": "props",
            "optional": true,
            "type": {
              "fqn": "@aws-cdk/core.DefaultStackSynthesizerProps"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/stack-synthesizers/default-synthesizer.ts",
        "line": 164
      },
      "methods": [
        {
          "docs": {
            "remarks": "Returns the parameters that can be used to refer to the asset inside the template.",
            "stability": "stable",
            "summary": "Register a Docker Image Asset."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 289
          },
          "name": "addDockerImageAsset",
          "overrides": "@aws-cdk/core.StackSynthesizer",
          "parameters": [
            {
              "name": "asset",
              "type": {
                "fqn": "@aws-cdk/core.DockerImageAssetSource"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.DockerImageAssetLocation"
            }
          }
        },
        {
          "docs": {
            "remarks": "Returns the parameters that can be used to refer to the asset inside the template.",
            "stability": "stable",
            "summary": "Register a File Asset."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 252
          },
          "name": "addFileAsset",
          "overrides": "@aws-cdk/core.StackSynthesizer",
          "parameters": [
            {
              "name": "asset",
              "type": {
                "fqn": "@aws-cdk/core.FileAssetSource"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.FileAssetLocation"
            }
          }
        },
        {
          "docs": {
            "remarks": "Must be called before any of the other methods are called.",
            "stability": "stable",
            "summary": "Bind to the stack this environment is going to be used on."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 221
          },
          "name": "bind",
          "overrides": "@aws-cdk/core.StackSynthesizer",
          "parameters": [
            {
              "name": "stack",
              "type": {
                "fqn": "@aws-cdk/core.Stack"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Synthesize the associated stack to the session."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 326
          },
          "name": "synthesize",
          "overrides": "@aws-cdk/core.StackSynthesizer",
          "parameters": [
            {
              "name": "session",
              "type": {
                "fqn": "@aws-cdk/core.ISynthesisSession"
              }
            }
          ]
        }
      ],
      "name": "DefaultStackSynthesizer",
      "properties": [
        {
          "const": true,
          "docs": {
            "stability": "stable",
            "summary": "Default CloudFormation role ARN."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 173
          },
          "name": "DEFAULT_CLOUDFORMATION_ROLE_ARN",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "stable",
            "summary": "Default deploy role ARN."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 178
          },
          "name": "DEFAULT_DEPLOY_ROLE_ARN",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "stable",
            "summary": "Name of the CloudFormation Export with the asset key name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 203
          },
          "name": "DEFAULT_FILE_ASSET_KEY_ARN_EXPORT_NAME",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "stable",
            "summary": "Default asset publishing role ARN for file (S3) assets."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 183
          },
          "name": "DEFAULT_FILE_ASSET_PUBLISHING_ROLE_ARN",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "stable",
            "summary": "Default file assets bucket name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 198
          },
          "name": "DEFAULT_FILE_ASSETS_BUCKET_NAME",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "stable",
            "summary": "Default asset publishing role ARN for image (ECR) assets."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 188
          },
          "name": "DEFAULT_IMAGE_ASSET_PUBLISHING_ROLE_ARN",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "stable",
            "summary": "Default image assets repository name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 193
          },
          "name": "DEFAULT_IMAGE_ASSETS_REPOSITORY_NAME",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "stable",
            "summary": "Default ARN qualifier."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 168
          },
          "name": "DEFAULT_QUALIFIER",
          "static": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Returns the ARN of the CFN execution Role."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 368
          },
          "name": "cloudFormationExecutionRoleArn",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Returns the ARN of the deploy Role."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 358
          },
          "name": "deployRoleArn",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 375
          },
          "name": "stack",
          "optional": true,
          "protected": true,
          "type": {
            "fqn": "@aws-cdk/core.Stack"
          }
        }
      ]
    },
    "@aws-cdk/core.DefaultStackSynthesizerProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Configuration properties for DefaultStackSynthesizer."
      },
      "fqn": "@aws-cdk/core.DefaultStackSynthesizerProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/stack-synthesizers/default-synthesizer.ts",
        "line": 27
      },
      "name": "DefaultStackSynthesizerProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "DefaultStackSynthesizer.DEFAULT_CLOUDFORMATION_ROLE_ARN",
            "remarks": "You must supply this if you have given a non-standard name to the execution role.\n\nThe placeholders `${Qualifier}`, `${AWS::AccountId}` and `${AWS::Region}` will\nbe replaced with the values of qualifier and the stack's account and region,\nrespectively.",
            "stability": "stable",
            "summary": "The role CloudFormation will assume when deploying the Stack."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 118
          },
          "name": "cloudFormationExecutionRole",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "DefaultStackSynthesizer.DEFAULT_DEPLOY_ROLE_ARN",
            "remarks": "You must supply this if you have given a non-standard name to the publishing role.\n\nThe placeholders `${Qualifier}`, `${AWS::AccountId}` and `${AWS::Region}` will\nbe replaced with the values of qualifier and the stack's account and region,\nrespectively.",
            "stability": "stable",
            "summary": "The role to assume to initiate a deployment in this environment."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 105
          },
          "name": "deployRoleArn",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "DefaultStackSynthesizer.DEFAULT_FILE_ASSET_KEY_ARN_EXPORT_NAME",
            "deprecated": "This property is not used anymore",
            "remarks": "You must supply this if you have given a non-standard name to the KMS key export\n\nThe placeholders `${Qualifier}`, `${AWS::AccountId}` and `${AWS::Region}` will\nbe replaced with the values of qualifier and the stack's account and region,\nrespectively.",
            "stability": "deprecated",
            "summary": "Name of the CloudFormation Export with the asset key name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 132
          },
          "name": "fileAssetKeyArnExportName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- No external ID",
            "stability": "stable",
            "summary": "External ID to use when assuming role for file asset publishing."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 72
          },
          "name": "fileAssetPublishingExternalId",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "DefaultStackSynthesizer.DEFAULT_FILE_ASSET_PUBLISHING_ROLE_ARN",
            "remarks": "You must supply this if you have given a non-standard name to the publishing role.\n\nThe placeholders `${Qualifier}`, `${AWS::AccountId}` and `${AWS::Region}` will\nbe replaced with the values of qualifier and the stack's account and region,\nrespectively.",
            "stability": "stable",
            "summary": "The role to use to publish file assets to the S3 bucket in this environment."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 65
          },
          "name": "fileAssetPublishingRoleArn",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "DefaultStackSynthesizer.DEFAULT_FILE_ASSETS_BUCKET_NAME",
            "remarks": "You must supply this if you have given a non-standard name to the staging bucket.\n\nThe placeholders `${Qualifier}`, `${AWS::AccountId}` and `${AWS::Region}` will\nbe replaced with the values of qualifier and the stack's account and region,\nrespectively.",
            "stability": "stable",
            "summary": "Name of the S3 bucket to hold file assets."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 39
          },
          "name": "fileAssetsBucketName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "remarks": "This generally should be left set to `true`, unless you explicitly\nwant to be able to deploy to an unbootstrapped environment.",
            "stability": "stable",
            "summary": "Whether to add a Rule to the stack template verifying the bootstrap stack version."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 152
          },
          "name": "generateBootstrapVersionRule",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- No external ID",
            "stability": "stable",
            "summary": "External ID to use when assuming role for image asset publishing."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 92
          },
          "name": "imageAssetPublishingExternalId",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "DefaultStackSynthesizer.DEFAULT_IMAGE_ASSET_PUBLISHING_ROLE_ARN",
            "remarks": "You must supply this if you have given a non-standard name to the publishing role.\n\nThe placeholders `${Qualifier}`, `${AWS::AccountId}` and `${AWS::Region}` will\nbe replaced with the values of qualifier and the stack's account and region,\nrespectively.",
            "stability": "stable",
            "summary": "The role to use to publish image assets to the ECR repository in this environment."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 85
          },
          "name": "imageAssetPublishingRoleArn",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "DefaultStackSynthesizer.DEFAULT_IMAGE_ASSETS_REPOSITORY_NAME",
            "remarks": "You must supply this if you have given a non-standard name to the ECR repository.\n\nThe placeholders `${Qualifier}`, `${AWS::AccountId}` and `${AWS::Region}` will\nbe replaced with the values of qualifier and the stack's account and region,\nrespectively.",
            "stability": "stable",
            "summary": "Name of the ECR repository to hold Docker Image assets."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 52
          },
          "name": "imageAssetsRepositoryName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "custom": {
              "aws-cdk": "/core:bootstrapQualifier' if set, otherwise `DefaultStackSynthesizer.DEFAULT_QUALIFIER`"
            },
            "default": "- Value of context key '",
            "remarks": "You can use this and leave the other naming properties empty if you have deployed\nthe bootstrap environment with standard names but only differnet qualifiers.",
            "stability": "stable",
            "summary": "Qualifier to disambiguate multiple environments in the same account."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/default-synthesizer.ts",
            "line": 142
          },
          "name": "qualifier",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.DefaultTokenResolver": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "experimental",
        "summary": "Default resolver implementation."
      },
      "fqn": "@aws-cdk/core.DefaultTokenResolver",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "lib/resolvable.ts",
          "line": 123
        },
        "parameters": [
          {
            "name": "concat",
            "type": {
              "fqn": "@aws-cdk/core.IFragmentConcatenator"
            }
          }
        ]
      },
      "interfaces": [
        "@aws-cdk/core.ITokenResolver"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "lib/resolvable.ts",
        "line": 122
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Resolve a tokenized list."
          },
          "locationInModule": {
            "filename": "lib/resolvable.ts",
            "line": 158
          },
          "name": "resolveList",
          "overrides": "@aws-cdk/core.ITokenResolver",
          "parameters": [
            {
              "name": "xs",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "string"
                  },
                  "kind": "array"
                }
              }
            },
            {
              "name": "context",
              "type": {
                "fqn": "@aws-cdk/core.IResolveContext"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Resolve string fragments to Tokens."
          },
          "locationInModule": {
            "filename": "lib/resolvable.ts",
            "line": 154
          },
          "name": "resolveString",
          "overrides": "@aws-cdk/core.ITokenResolver",
          "parameters": [
            {
              "name": "fragments",
              "type": {
                "fqn": "@aws-cdk/core.TokenizedStringFragments"
              }
            },
            {
              "name": "context",
              "type": {
                "fqn": "@aws-cdk/core.IResolveContext"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        },
        {
          "docs": {
            "remarks": "Resolve the Token, recurse into whatever it returns,\nthen finally post-process it.",
            "stability": "experimental",
            "summary": "Default Token resolution."
          },
          "locationInModule": {
            "filename": "lib/resolvable.ts",
            "line": 132
          },
          "name": "resolveToken",
          "overrides": "@aws-cdk/core.ITokenResolver",
          "parameters": [
            {
              "name": "t",
              "type": {
                "fqn": "@aws-cdk/core.IResolvable"
              }
            },
            {
              "name": "context",
              "type": {
                "fqn": "@aws-cdk/core.IResolveContext"
              }
            },
            {
              "name": "postProcessor",
              "type": {
                "fqn": "@aws-cdk/core.IPostProcessor"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        }
      ],
      "name": "DefaultTokenResolver"
    },
    "@aws-cdk/core.DependableTrait": {
      "abstract": true,
      "assembly": "@aws-cdk/core",
      "docs": {
        "example": "// Usage\nconst roots = DependableTrait.get(construct).dependencyRoots;\n\n// Definition\nDependableTrait.implement(construct, {\n  get dependencyRoots() { return []; }\n});",
        "remarks": "Traits are interfaces that are privately implemented by objects. Instead of\nshowing up in the public interface of a class, they need to be queried\nexplicitly. This is used to implement certain framework features that are\nnot intended to be used by Construct consumers, and so should be hidden\nfrom accidental use.",
        "stability": "experimental",
        "summary": "Trait for IDependable."
      },
      "fqn": "@aws-cdk/core.DependableTrait",
      "initializer": {
        "docs": {
          "stability": "stable"
        }
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/dependency.ts",
        "line": 67
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Return the matching DependableTrait for the given class instance."
          },
          "locationInModule": {
            "filename": "lib/dependency.ts",
            "line": 83
          },
          "name": "get",
          "parameters": [
            {
              "name": "instance",
              "type": {
                "fqn": "@aws-cdk/core.IDependable"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.DependableTrait"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "Should be called in the class constructor.",
            "stability": "experimental",
            "summary": "Register `instance` to have the given DependableTrait."
          },
          "locationInModule": {
            "filename": "lib/dependency.ts",
            "line": 73
          },
          "name": "implement",
          "parameters": [
            {
              "name": "instance",
              "type": {
                "fqn": "@aws-cdk/core.IDependable"
              }
            },
            {
              "name": "trait",
              "type": {
                "fqn": "@aws-cdk/core.DependableTrait"
              }
            }
          ],
          "static": true
        }
      ],
      "name": "DependableTrait",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "All resources under all returned constructs are included in the ordering\ndependency.",
            "stability": "experimental",
            "summary": "The set of constructs that form the root of this dependable."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/dependency.ts",
            "line": 97
          },
          "name": "dependencyRoots",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "@aws-cdk/core.IConstruct"
              },
              "kind": "array"
            }
          }
        }
      ]
    },
    "@aws-cdk/core.Dependency": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "A single dependency."
      },
      "fqn": "@aws-cdk/core.Dependency",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/construct-compat.ts",
        "line": 515
      },
      "name": "Dependency",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Source the dependency."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 519
          },
          "name": "source",
          "type": {
            "fqn": "@aws-cdk/core.IConstruct"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Target of the dependency."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 524
          },
          "name": "target",
          "type": {
            "fqn": "@aws-cdk/core.IConstruct"
          }
        }
      ]
    },
    "@aws-cdk/core.DockerBuildOptions": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Docker build options."
      },
      "fqn": "@aws-cdk/core.DockerBuildOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/bundling.ts",
        "line": 284
      },
      "name": "DockerBuildOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- no build args",
            "stability": "stable",
            "summary": "Build args."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/bundling.ts",
            "line": 290
          },
          "name": "buildArgs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- The Dockerfile immediately within the build context path",
            "stability": "stable",
            "summary": "Name of the Dockerfile."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/bundling.ts",
            "line": 297
          },
          "name": "file",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.DockerImageAssetLocation": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "remarks": "This is where the image can be\nconsumed at runtime.",
        "stability": "stable",
        "summary": "The location of the published docker image."
      },
      "fqn": "@aws-cdk/core.DockerImageAssetLocation",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/assets.ts",
        "line": 253
      },
      "name": "DockerImageAssetLocation",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The URI of the image in Amazon ECR."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/assets.ts",
            "line": 257
          },
          "name": "imageUri",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The name of the ECR repository."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/assets.ts",
            "line": 262
          },
          "name": "repositoryName",
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.DockerImageAssetSource": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable"
      },
      "fqn": "@aws-cdk/core.DockerImageAssetSource",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/assets.ts",
        "line": 122
      },
      "name": "DockerImageAssetSource",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The directory where the Dockerfile is stored, must be relative to the cloud assembly root."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/assets.ts",
            "line": 137
          },
          "name": "directoryName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "This hash is used\nthroughout the system to identify this image and avoid duplicate work\nin case the source did not change.\n\nNOTE: this means that if you wish to update your docker image, you\nmust make a modification to the source (e.g. add some metadata to your Dockerfile).",
            "stability": "stable",
            "summary": "The hash of the contents of the docker build context."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/assets.ts",
            "line": 131
          },
          "name": "sourceHash",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no build args are passed",
            "remarks": "Since Docker build arguments are resolved before deployment, keys and\nvalues cannot refer to unresolved tokens (such as `lambda.functionArn` or\n`queue.queueUrl`).",
            "stability": "stable",
            "summary": "Build args to pass to the `docker build` command."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/assets.ts",
            "line": 148
          },
          "name": "dockerBuildArgs",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no target",
            "stability": "stable",
            "summary": "Docker target to build to."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/assets.ts",
            "line": 155
          },
          "name": "dockerBuildTarget",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no file",
            "stability": "stable",
            "summary": "Path to the Dockerfile (relative to the directory)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/assets.ts",
            "line": 162
          },
          "name": "dockerFile",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- automatically derived from the asset's ID.",
            "deprecated": "repository name should be specified at the environment-level and not at the image level",
            "remarks": "Specify this property if you need to statically address the image, e.g.\nfrom a Kubernetes Pod. Note, this is only the repository name, without the\nregistry and the tag parts.",
            "stability": "deprecated",
            "summary": "ECR repository name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/assets.ts",
            "line": 174
          },
          "name": "repositoryName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.DockerRunOptions": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Docker run options."
      },
      "fqn": "@aws-cdk/core.DockerRunOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/bundling.ts",
        "line": 244
      },
      "name": "DockerRunOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- run the command defined in the image",
            "stability": "stable",
            "summary": "The command to run in the container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/bundling.ts",
            "line": 250
          },
          "name": "command",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no environment variables.",
            "stability": "stable",
            "summary": "The environment variables to pass to the container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/bundling.ts",
            "line": 264
          },
          "name": "environment",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- root or image default",
            "stability": "stable",
            "summary": "The user to use when running the container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/bundling.ts",
            "line": 278
          },
          "name": "user",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no volumes are mounted",
            "stability": "stable",
            "summary": "Docker volumes to mount."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/bundling.ts",
            "line": 257
          },
          "name": "volumes",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "@aws-cdk/core.DockerVolume"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- image default",
            "stability": "stable",
            "summary": "Working directory inside the container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/bundling.ts",
            "line": 271
          },
          "name": "workingDirectory",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.DockerVolume": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "A Docker volume."
      },
      "fqn": "@aws-cdk/core.DockerVolume",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/bundling.ts",
        "line": 203
      },
      "name": "DockerVolume",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The path where the file or directory is mounted in the container."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/bundling.ts",
            "line": 212
          },
          "name": "containerPath",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The path to the file or directory on the host machine."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/bundling.ts",
            "line": 207
          },
          "name": "hostPath",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "DockerConsistency.DELEGATED",
            "remarks": "Only applicable for macOS",
            "see": "https://docs.docker.com/storage/bind-mounts/#configure-mount-consistency-for-macos",
            "stability": "stable",
            "summary": "Mount consistency."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/bundling.ts",
            "line": 220
          },
          "name": "consistency",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.DockerVolumeConsistency"
          }
        }
      ]
    },
    "@aws-cdk/core.DockerVolumeConsistency": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "Only valid on macOS due to the way file storage works on Mac",
        "stability": "stable",
        "summary": "Supported Docker volume consistency types."
      },
      "fqn": "@aws-cdk/core.DockerVolumeConsistency",
      "kind": "enum",
      "locationInModule": {
        "filename": "lib/bundling.ts",
        "line": 226
      },
      "members": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Read/write operations inside the Docker container are applied immediately on the mounted host machine volumes."
          },
          "name": "CONSISTENT"
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Read/write operations on mounted Docker volumes are first written inside the container and then synchronized to the host machine."
          },
          "name": "DELEGATED"
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Read/write operations on mounted Docker volumes are first applied on the host machine and then synchronized to the container."
          },
          "name": "CACHED"
        }
      ],
      "name": "DockerVolumeConsistency"
    },
    "@aws-cdk/core.Duration": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "The amount can be specified either as a literal value (e.g: `10`) which\ncannot be negative, or as an unresolved number token.\n\nWhen the amount is passed as a token, unit conversion is not possible.",
        "stability": "stable",
        "summary": "Represents a length of time."
      },
      "fqn": "@aws-cdk/core.Duration",
      "kind": "class",
      "locationInModule": {
        "filename": "lib/duration.ts",
        "line": 11
      },
      "methods": [
        {
          "docs": {
            "returns": "a new `Duration` representing `amount` Days.",
            "stability": "stable",
            "summary": "Create a Duration representing an amount of days."
          },
          "locationInModule": {
            "filename": "lib/duration.ts",
            "line": 58
          },
          "name": "days",
          "parameters": [
            {
              "docs": {
                "summary": "the amount of Days the `Duration` will represent."
              },
              "name": "amount",
              "type": {
                "primitive": "number"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.Duration"
            }
          },
          "static": true
        },
        {
          "docs": {
            "returns": "a new `Duration` representing `amount` Hours.",
            "stability": "stable",
            "summary": "Create a Duration representing an amount of hours."
          },
          "locationInModule": {
            "filename": "lib/duration.ts",
            "line": 48
          },
          "name": "hours",
          "parameters": [
            {
              "docs": {
                "summary": "the amount of Hours the `Duration` will represent."
              },
              "name": "amount",
              "type": {
                "primitive": "number"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.Duration"
            }
          },
          "static": true
        },
        {
          "docs": {
            "returns": "a new `Duration` representing `amount` ms.",
            "stability": "stable",
            "summary": "Create a Duration representing an amount of milliseconds."
          },
          "locationInModule": {
            "filename": "lib/duration.ts",
            "line": 18
          },
          "name": "millis",
          "parameters": [
            {
              "docs": {
                "summary": "the amount of Milliseconds the `Duration` will represent."
              },
              "name": "amount",
              "type": {
                "primitive": "number"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.Duration"
            }
          },
          "static": true
        },
        {
          "docs": {
            "returns": "a new `Duration` representing `amount` Minutes.",
            "stability": "stable",
            "summary": "Create a Duration representing an amount of minutes."
          },
          "locationInModule": {
            "filename": "lib/duration.ts",
            "line": 38
          },
          "name": "minutes",
          "parameters": [
            {
              "docs": {
                "summary": "the amount of Minutes the `Duration` will represent."
              },
              "name": "amount",
              "type": {
                "primitive": "number"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.Duration"
            }
          },
          "static": true
        },
        {
          "docs": {
            "returns": "the parsed `Duration`.",
            "see": "https://www.iso.org/fr/standard/70907.html",
            "stability": "stable",
            "summary": "Parse a period formatted according to the ISO 8601 standard."
          },
          "locationInModule": {
            "filename": "lib/duration.ts",
            "line": 69
          },
          "name": "parse",
          "parameters": [
            {
              "docs": {
                "summary": "an ISO-formtted duration to be parsed."
              },
              "name": "duration",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.Duration"
            }
          },
          "static": true
        },
        {
          "docs": {
            "returns": "a new `Duration` representing `amount` Seconds.",
            "stability": "stable",
            "summary": "Create a Duration representing an amount of seconds."
          },
          "locationInModule": {
            "filename": "lib/duration.ts",
            "line": 28
          },
          "name": "seconds",
          "parameters": [
            {
              "docs": {
                "summary": "the amount of Seconds the `Duration` will represent."
              },
              "name": "amount",
              "type": {
                "primitive": "number"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.Duration"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Add two Durations together."
          },
          "locationInModule": {
            "filename": "lib/duration.ts",
            "line": 106
          },
          "name": "plus",
          "parameters": [
            {
              "name": "rhs",
              "type": {
                "fqn": "@aws-cdk/core.Duration"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.Duration"
            }
          }
        },
        {
          "docs": {
            "returns": "the value of this `Duration` expressed in Days.",
            "stability": "stable",
            "summary": "Return the total number of days in this Duration."
          },
          "locationInModule": {
            "filename": "lib/duration.ts",
            "line": 153
          },
          "name": "toDays",
          "parameters": [
            {
              "name": "opts",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.TimeConversionOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "number"
            }
          }
        },
        {
          "docs": {
            "returns": "the value of this `Duration` expressed in Hours.",
            "stability": "stable",
            "summary": "Return the total number of hours in this Duration."
          },
          "locationInModule": {
            "filename": "lib/duration.ts",
            "line": 144
          },
          "name": "toHours",
          "parameters": [
            {
              "name": "opts",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.TimeConversionOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "number"
            }
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Turn this duration into a human-readable string."
          },
          "locationInModule": {
            "filename": "lib/duration.ts",
            "line": 194
          },
          "name": "toHumanString",
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        },
        {
          "docs": {
            "returns": "a string starting with 'P' describing the period",
            "see": "https://www.iso.org/fr/standard/70907.html",
            "stability": "stable",
            "summary": "Return an ISO 8601 representation of this period."
          },
          "locationInModule": {
            "filename": "lib/duration.ts",
            "line": 163
          },
          "name": "toIsoString",
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        },
        {
          "docs": {
            "deprecated": "Use `toIsoString()` instead.",
            "returns": "a string starting with 'P' describing the period",
            "see": "https://www.iso.org/fr/standard/70907.html",
            "stability": "deprecated",
            "summary": "Return an ISO 8601 representation of this period."
          },
          "locationInModule": {
            "filename": "lib/duration.ts",
            "line": 187
          },
          "name": "toISOString",
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        },
        {
          "docs": {
            "returns": "the value of this `Duration` expressed in Milliseconds.",
            "stability": "stable",
            "summary": "Return the total number of milliseconds in this Duration."
          },
          "locationInModule": {
            "filename": "lib/duration.ts",
            "line": 117
          },
          "name": "toMilliseconds",
          "parameters": [
            {
              "name": "opts",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.TimeConversionOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "number"
            }
          }
        },
        {
          "docs": {
            "returns": "the value of this `Duration` expressed in Minutes.",
            "stability": "stable",
            "summary": "Return the total number of minutes in this Duration."
          },
          "locationInModule": {
            "filename": "lib/duration.ts",
            "line": 135
          },
          "name": "toMinutes",
          "parameters": [
            {
              "name": "opts",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.TimeConversionOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "number"
            }
          }
        },
        {
          "docs": {
            "returns": "the value of this `Duration` expressed in Seconds.",
            "stability": "stable",
            "summary": "Return the total number of seconds in this Duration."
          },
          "locationInModule": {
            "filename": "lib/duration.ts",
            "line": 126
          },
          "name": "toSeconds",
          "parameters": [
            {
              "name": "opts",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.TimeConversionOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "number"
            }
          }
        },
        {
          "docs": {
            "remarks": "This\nprotects users against inadvertently stringifying a `Duration` object, when they should have called one of the\n`to*` methods instead.",
            "stability": "stable",
            "summary": "Returns a string representation of this `Duration` that is also a Token that cannot be successfully resolved."
          },
          "locationInModule": {
            "filename": "lib/duration.ts",
            "line": 218
          },
          "name": "toString",
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "Duration"
    },
    "@aws-cdk/core.EncodingOptions": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Properties to string encodings."
      },
      "fqn": "@aws-cdk/core.EncodingOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/token.ts",
        "line": 226
      },
      "name": "EncodingOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "A hint for the Token's purpose when stringifying it."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/token.ts",
            "line": 230
          },
          "name": "displayHint",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.Environment": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "The deployment environment for a stack."
      },
      "fqn": "@aws-cdk/core.Environment",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/environment.ts",
        "line": 4
      },
      "name": "Environment",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "Aws.accountId which means that the stack will be account-agnostic.",
            "remarks": "This can be either a concrete value such as `585191031104` or `Aws.accountId` which\nindicates that account ID will only be determined during deployment (it\nwill resolve to the CloudFormation intrinsic `{\"Ref\":\"AWS::AccountId\"}`).\nNote that certain features, such as cross-stack references and\nenvironmental context providers require concerete region information and\nwill cause this stack to emit synthesis errors.",
            "stability": "stable",
            "summary": "The AWS account ID for this environment."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/environment.ts",
            "line": 17
          },
          "name": "account",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "Aws.region which means that the stack will be region-agnostic.",
            "remarks": "This can be either a concrete value such as `eu-west-2` or `Aws.region`\nwhich indicates that account ID will only be determined during deployment\n(it will resolve to the CloudFormation intrinsic `{\"Ref\":\"AWS::Region\"}`).\nNote that certain features, such as cross-stack references and\nenvironmental context providers require concerete region information and\nwill cause this stack to emit synthesis errors.",
            "stability": "stable",
            "summary": "The AWS region for this environment."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/environment.ts",
            "line": 31
          },
          "name": "region",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.Expiration": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "The amount can be specified either as a Date object, timestamp, Duration or string.",
        "stability": "stable",
        "summary": "Represents a date of expiration."
      },
      "fqn": "@aws-cdk/core.Expiration",
      "kind": "class",
      "locationInModule": {
        "filename": "lib/expiration.ts",
        "line": 7
      },
      "methods": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Expire once the specified duration has passed since deployment time."
          },
          "locationInModule": {
            "filename": "lib/expiration.ts",
            "line": 24
          },
          "name": "after",
          "parameters": [
            {
              "docs": {
                "summary": "the duration to wait before expiring."
              },
              "name": "t",
              "type": {
                "fqn": "@aws-cdk/core.Duration"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.Expiration"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Expire at the specified date."
          },
          "locationInModule": {
            "filename": "lib/expiration.ts",
            "line": 12
          },
          "name": "atDate",
          "parameters": [
            {
              "docs": {
                "summary": "date to expire at."
              },
              "name": "d",
              "type": {
                "primitive": "date"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.Expiration"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Expire at the specified timestamp."
          },
          "locationInModule": {
            "filename": "lib/expiration.ts",
            "line": 18
          },
          "name": "atTimestamp",
          "parameters": [
            {
              "docs": {
                "summary": "timestamp in unix milliseconds."
              },
              "name": "t",
              "type": {
                "primitive": "number"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.Expiration"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Expire at specified date, represented as a string."
          },
          "locationInModule": {
            "filename": "lib/expiration.ts",
            "line": 31
          },
          "name": "fromString",
          "parameters": [
            {
              "docs": {
                "summary": "the string that represents date to expire at."
              },
              "name": "s",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.Expiration"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Check if Exipiration expires after input."
          },
          "locationInModule": {
            "filename": "lib/expiration.ts",
            "line": 60
          },
          "name": "isAfter",
          "parameters": [
            {
              "docs": {
                "summary": "the duration to check against."
              },
              "name": "t",
              "type": {
                "fqn": "@aws-cdk/core.Duration"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Check if Exipiration expires before input."
          },
          "locationInModule": {
            "filename": "lib/expiration.ts",
            "line": 52
          },
          "name": "isBefore",
          "parameters": [
            {
              "docs": {
                "summary": "the duration to check against."
              },
              "name": "t",
              "type": {
                "fqn": "@aws-cdk/core.Duration"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Exipration Value in a formatted Unix Epoch Time in seconds."
          },
          "locationInModule": {
            "filename": "lib/expiration.ts",
            "line": 45
          },
          "name": "toEpoch",
          "returns": {
            "type": {
              "primitive": "number"
            }
          }
        }
      ],
      "name": "Expiration",
      "properties": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Expiration value as a Date object."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/expiration.ts",
            "line": 36
          },
          "name": "date",
          "type": {
            "primitive": "date"
          }
        }
      ]
    },
    "@aws-cdk/core.FeatureFlags": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "The list of flags are available in the\n`@aws-cdk/cx-api` module.\n\nThe state of the flag for this application is stored as a CDK context variable.",
        "stability": "stable",
        "summary": "Features that are implemented behind a flag in order to preserve backwards compatibility for existing apps."
      },
      "fqn": "@aws-cdk/core.FeatureFlags",
      "kind": "class",
      "locationInModule": {
        "filename": "lib/feature-flags.ts",
        "line": 11
      },
      "methods": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Inspect feature flags on the construct node's context."
          },
          "locationInModule": {
            "filename": "lib/feature-flags.ts",
            "line": 15
          },
          "name": "of",
          "parameters": [
            {
              "name": "scope",
              "type": {
                "fqn": "@aws-cdk/core.Construct"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.FeatureFlags"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "If configured, the flag is present in\nthe construct node context. Falls back to the defaults defined in the `cx-api`\nmodule.",
            "stability": "stable",
            "summary": "Check whether a feature flag is enabled."
          },
          "locationInModule": {
            "filename": "lib/feature-flags.ts",
            "line": 26
          },
          "name": "isEnabled",
          "parameters": [
            {
              "name": "featureFlag",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "primitive": "boolean"
            }
          }
        }
      ],
      "name": "FeatureFlags"
    },
    "@aws-cdk/core.FileAssetLocation": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "remarks": "This is where the asset\ncan be consumed at runtime.",
        "stability": "stable",
        "summary": "The location of the published file asset."
      },
      "fqn": "@aws-cdk/core.FileAssetLocation",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/assets.ts",
        "line": 198
      },
      "name": "FileAssetLocation",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The name of the Amazon S3 bucket."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/assets.ts",
            "line": 202
          },
          "name": "bucketName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "example": "https://s3-us-east-1.amazonaws.com/mybucket/myobject",
            "stability": "stable",
            "summary": "The HTTP URL of this asset on Amazon S3."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/assets.ts",
            "line": 220
          },
          "name": "httpUrl",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The Amazon S3 object key."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/assets.ts",
            "line": 207
          },
          "name": "objectKey",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "example": "s3://mybucket/myobject",
            "stability": "stable",
            "summary": "The S3 URL of this asset on Amazon S3."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/assets.ts",
            "line": 227
          },
          "name": "s3ObjectUrl",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "deprecated": "use `httpUrl`",
            "stability": "deprecated",
            "summary": "The HTTP URL of this asset on Amazon S3."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/assets.ts",
            "line": 213
          },
          "name": "s3Url",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- Asset bucket is not encrypted",
            "deprecated": "Since bootstrap bucket v4, the key policy properly allows use of the\nkey via the bucket and no additional parameters have to be granted anymore.",
            "remarks": "If so, the consuming role should be given \"kms:Decrypt\" permissions in its\nidentity policy.\n\nIt's the responsibility of they key's creator to make sure that all\nconsumers that the key's key policy is configured such that the key can be used\nby all consumers that need it.\n\nThe default bootstrap stack provisioned by the CDK CLI ensures this, and\ncan be used as an example for how to configure the key properly.",
            "stability": "deprecated",
            "summary": "The ARN of the KMS key used to encrypt the file asset bucket, if any."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/assets.ts",
            "line": 246
          },
          "name": "kmsKeyArn",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.FileAssetPackaging": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "Packaging modes for file assets."
      },
      "fqn": "@aws-cdk/core.FileAssetPackaging",
      "kind": "enum",
      "locationInModule": {
        "filename": "lib/assets.ts",
        "line": 180
      },
      "members": [
        {
          "docs": {
            "stability": "stable",
            "summary": "The asset source path points to a directory, which should be archived using zip and and then uploaded to Amazon S3."
          },
          "name": "ZIP_DIRECTORY"
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "The asset source path points to a single file, which should be uploaded to Amazon S3."
          },
          "name": "FILE"
        }
      ],
      "name": "FileAssetPackaging"
    },
    "@aws-cdk/core.FileAssetSource": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Represents the source for a file asset."
      },
      "fqn": "@aws-cdk/core.FileAssetSource",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/assets.ts",
        "line": 101
      },
      "name": "FileAssetSource",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "This can be a path to a file or a directory, dependning on the\npackaging type.",
            "stability": "stable",
            "summary": "The path, relative to the root of the cloud assembly, in which this asset source resides."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/assets.ts",
            "line": 114
          },
          "name": "fileName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Which type of packaging to perform."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/assets.ts",
            "line": 119
          },
          "name": "packaging",
          "type": {
            "fqn": "@aws-cdk/core.FileAssetPackaging"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "This hash is used to uniquely identify this\nasset throughout the system. If this value doesn't change, the asset will\nnot be rebuilt or republished.",
            "stability": "stable",
            "summary": "A hash on the content source."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/assets.ts",
            "line": 107
          },
          "name": "sourceHash",
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.FileSystem": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "File system utilities."
      },
      "fqn": "@aws-cdk/core.FileSystem",
      "initializer": {
        "docs": {
          "stability": "stable"
        }
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/fs/index.ts",
        "line": 13
      },
      "methods": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Copies an entire directory structure."
          },
          "locationInModule": {
            "filename": "lib/fs/index.ts",
            "line": 21
          },
          "name": "copyDirectory",
          "parameters": [
            {
              "docs": {
                "summary": "Source directory."
              },
              "name": "srcDir",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "Destination directory."
              },
              "name": "destDir",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "options."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.CopyOptions"
              }
            },
            {
              "docs": {
                "summary": "Root directory to calculate exclusions from."
              },
              "name": "rootDir",
              "optional": true,
              "type": {
                "primitive": "string"
              }
            }
          ],
          "static": true
        },
        {
          "docs": {
            "remarks": "The fingerprint will also include:\n1. An extra string if defined in `options.extra`.\n2. The set of exclude patterns, if defined in `options.exclude`\n3. The symlink follow mode value.",
            "stability": "stable",
            "summary": "Produces fingerprint based on the contents of a single file or an entire directory tree."
          },
          "locationInModule": {
            "filename": "lib/fs/index.ts",
            "line": 36
          },
          "name": "fingerprint",
          "parameters": [
            {
              "docs": {
                "summary": "The directory or file to fingerprint."
              },
              "name": "fileOrDirectory",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "Fingerprinting options."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.FingerprintOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Checks whether a directory is empty."
          },
          "locationInModule": {
            "filename": "lib/fs/index.ts",
            "line": 45
          },
          "name": "isEmpty",
          "parameters": [
            {
              "docs": {
                "summary": "The directory to check."
              },
              "name": "dir",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Creates a unique temporary directory in the **system temp directory**."
          },
          "locationInModule": {
            "filename": "lib/fs/index.ts",
            "line": 66
          },
          "name": "mkdtemp",
          "parameters": [
            {
              "docs": {
                "remarks": "Six random characters\nwill be generated and appended behind this prefix.",
                "summary": "A prefix for the directory name."
              },
              "name": "prefix",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          },
          "static": true
        }
      ],
      "name": "FileSystem",
      "properties": [
        {
          "docs": {
            "stability": "stable",
            "summary": "The real path of the system temp directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/fs/index.ts",
            "line": 52
          },
          "name": "tmpdir",
          "static": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.FingerprintOptions": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Options related to calculating source hash."
      },
      "fqn": "@aws-cdk/core.FingerprintOptions",
      "interfaces": [
        "@aws-cdk/core.CopyOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/fs/options.ts",
        "line": 55
      },
      "name": "FingerprintOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- hash is only based on source content",
            "stability": "stable",
            "summary": "Extra information to encode into the fingerprint (e.g. build instructions and other inputs)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/fs/options.ts",
            "line": 62
          },
          "name": "extraHash",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.Fn": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference.html",
        "stability": "stable",
        "summary": "CloudFormation intrinsic functions."
      },
      "fqn": "@aws-cdk/core.Fn",
      "kind": "class",
      "locationInModule": {
        "filename": "lib/cfn-fn.ts",
        "line": 15
      },
      "methods": [
        {
          "docs": {
            "remarks": "This function is typically used to pass encoded data to\nAmazon EC2 instances by way of the UserData property.",
            "returns": "a token represented as a string",
            "stability": "stable",
            "summary": "The intrinsic function ``Fn::Base64`` returns the Base64 representation of the input string."
          },
          "locationInModule": {
            "filename": "lib/cfn-fn.ts",
            "line": 122
          },
          "name": "base64",
          "parameters": [
            {
              "docs": {
                "summary": "The string value you want to convert to Base64."
              },
              "name": "data",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          },
          "static": true
        },
        {
          "docs": {
            "returns": "a token represented as a string",
            "stability": "stable",
            "summary": "The intrinsic function ``Fn::Cidr`` returns the specified Cidr address block."
          },
          "locationInModule": {
            "filename": "lib/cfn-fn.ts",
            "line": 133
          },
          "name": "cidr",
          "parameters": [
            {
              "docs": {
                "summary": "The user-specified default Cidr address block."
              },
              "name": "ipBlock",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "remarks": "Count can be 1 to 256.",
                "summary": "The number of subnets' Cidr block wanted."
              },
              "name": "count",
              "type": {
                "primitive": "number"
              }
            },
            {
              "docs": {
                "summary": "The digit covered in the subnet."
              },
              "name": "sizeMask",
              "optional": true,
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "string"
                },
                "kind": "array"
              }
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "``Fn::And`` acts as\nan AND operator. The minimum number of conditions that you can include is\n1.",
            "returns": "an FnCondition token",
            "stability": "stable",
            "summary": "Returns true if all the specified conditions evaluate to true, or returns false if any one of the conditions evaluates to false."
          },
          "locationInModule": {
            "filename": "lib/cfn-fn.ts",
            "line": 203
          },
          "name": "conditionAnd",
          "parameters": [
            {
              "docs": {
                "summary": "conditions to AND."
              },
              "name": "conditions",
              "type": {
                "fqn": "@aws-cdk/core.ICfnConditionExpression"
              },
              "variadic": true
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.ICfnConditionExpression"
            }
          },
          "static": true,
          "variadic": true
        },
        {
          "docs": {
            "returns": "an FnCondition token",
            "stability": "stable",
            "summary": "Returns true if a specified string matches at least one value in a list of strings."
          },
          "locationInModule": {
            "filename": "lib/cfn-fn.ts",
            "line": 279
          },
          "name": "conditionContains",
          "parameters": [
            {
              "docs": {
                "summary": "A list of strings, such as \"A\", \"B\", \"C\"."
              },
              "name": "listOfStrings",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "string"
                  },
                  "kind": "array"
                }
              }
            },
            {
              "docs": {
                "summary": "A string, such as \"A\", that you want to compare against a list of strings."
              },
              "name": "value",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.ICfnConditionExpression"
            }
          },
          "static": true
        },
        {
          "docs": {
            "returns": "an FnCondition token",
            "stability": "stable",
            "summary": "Returns true if a specified string matches all values in a list."
          },
          "locationInModule": {
            "filename": "lib/cfn-fn.ts",
            "line": 290
          },
          "name": "conditionEachMemberEquals",
          "parameters": [
            {
              "docs": {
                "summary": "A list of strings, such as \"A\", \"B\", \"C\"."
              },
              "name": "listOfStrings",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "string"
                  },
                  "kind": "array"
                }
              }
            },
            {
              "docs": {
                "summary": "A string, such as \"A\", that you want to compare against a list of strings."
              },
              "name": "value",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.ICfnConditionExpression"
            }
          },
          "static": true
        },
        {
          "docs": {
            "returns": "an FnCondition token",
            "stability": "stable",
            "summary": "Returns true if each member in a list of strings matches at least one value in a second list of strings."
          },
          "locationInModule": {
            "filename": "lib/cfn-fn.ts",
            "line": 305
          },
          "name": "conditionEachMemberIn",
          "parameters": [
            {
              "docs": {
                "remarks": "AWS\nCloudFormation checks whether each member in the strings_to_check parameter\nis in the strings_to_match parameter.",
                "summary": "A list of strings, such as \"A\", \"B\", \"C\"."
              },
              "name": "stringsToCheck",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "string"
                  },
                  "kind": "array"
                }
              }
            },
            {
              "docs": {
                "remarks": "Each member\nin the strings_to_match parameter is compared against the members of the\nstrings_to_check parameter.",
                "summary": "A list of strings, such as \"A\", \"B\", \"C\"."
              },
              "name": "stringsToMatch",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "string"
                  },
                  "kind": "array"
                }
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.ICfnConditionExpression"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "Returns true if the two values are equal\nor false if they aren't.",
            "returns": "an FnCondition token",
            "stability": "stable",
            "summary": "Compares if two values are equal."
          },
          "locationInModule": {
            "filename": "lib/cfn-fn.ts",
            "line": 220
          },
          "name": "conditionEquals",
          "parameters": [
            {
              "docs": {
                "summary": "A value of any type that you want to compare."
              },
              "name": "lhs",
              "type": {
                "primitive": "any"
              }
            },
            {
              "docs": {
                "summary": "A value of any type that you want to compare."
              },
              "name": "rhs",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.ICfnConditionExpression"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "Currently, AWS\nCloudFormation supports the ``Fn::If`` intrinsic function in the metadata\nattribute, update policy attribute, and property values in the Resources\nsection and Outputs sections of a template. You can use the AWS::NoValue\npseudo parameter as a return value to remove the corresponding property.",
            "returns": "an FnCondition token",
            "stability": "stable",
            "summary": "Returns one value if the specified condition evaluates to true and another value if the specified condition evaluates to false."
          },
          "locationInModule": {
            "filename": "lib/cfn-fn.ts",
            "line": 239
          },
          "name": "conditionIf",
          "parameters": [
            {
              "docs": {
                "remarks": "Use\nthe condition's name to reference it.",
                "summary": "A reference to a condition in the Conditions section."
              },
              "name": "conditionId",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "A value to be returned if the specified condition evaluates to true."
              },
              "name": "valueIfTrue",
              "type": {
                "primitive": "any"
              }
            },
            {
              "docs": {
                "summary": "A value to be returned if the specified condition evaluates to false."
              },
              "name": "valueIfFalse",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.ICfnConditionExpression"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "``Fn::Not`` acts as a NOT operator.",
            "returns": "an FnCondition token",
            "stability": "stable",
            "summary": "Returns true for a condition that evaluates to false or returns false for a condition that evaluates to true."
          },
          "locationInModule": {
            "filename": "lib/cfn-fn.ts",
            "line": 250
          },
          "name": "conditionNot",
          "parameters": [
            {
              "docs": {
                "summary": "A condition such as ``Fn::Equals`` that evaluates to true or false."
              },
              "name": "condition",
              "type": {
                "fqn": "@aws-cdk/core.ICfnConditionExpression"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.ICfnConditionExpression"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "``Fn::Or`` acts\nas an OR operator. The minimum number of conditions that you can include is\n1.",
            "returns": "an FnCondition token",
            "stability": "stable",
            "summary": "Returns true if any one of the specified conditions evaluate to true, or returns false if all of the conditions evaluates to false."
          },
          "locationInModule": {
            "filename": "lib/cfn-fn.ts",
            "line": 262
          },
          "name": "conditionOr",
          "parameters": [
            {
              "docs": {
                "summary": "conditions that evaluates to true or false."
              },
              "name": "conditions",
              "type": {
                "fqn": "@aws-cdk/core.ICfnConditionExpression"
              },
              "variadic": true
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.ICfnConditionExpression"
            }
          },
          "static": true,
          "variadic": true
        },
        {
          "docs": {
            "returns": "a token represented as a string",
            "stability": "stable",
            "summary": "The intrinsic function ``Fn::FindInMap`` returns the value corresponding to keys in a two-level map that is declared in the Mappings section."
          },
          "locationInModule": {
            "filename": "lib/cfn-fn.ts",
            "line": 180
          },
          "name": "findInMap",
          "parameters": [
            {
              "name": "mapName",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "topLevelKey",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "secondLevelKey",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          },
          "static": true
        },
        {
          "docs": {
            "returns": "an IResolvable object",
            "stability": "stable",
            "summary": "The ``Fn::GetAtt`` intrinsic function returns the value of an attribute from a resource in the template."
          },
          "locationInModule": {
            "filename": "lib/cfn-fn.ts",
            "line": 40
          },
          "name": "getAtt",
          "parameters": [
            {
              "docs": {
                "summary": "The logical name (also called logical ID) of the resource that contains the attribute that you want."
              },
              "name": "logicalNameOfResource",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "remarks": "See the resource's reference page for details about the\nattributes available for that resource type.",
                "summary": "The name of the resource-specific attribute whose value you want."
              },
              "name": "attributeName",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.IResolvable"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "Because customers have access to\ndifferent Availability Zones, the intrinsic function ``Fn::GetAZs`` enables\ntemplate authors to write templates that adapt to the calling user's\naccess. That way you don't have to hard-code a full list of Availability\nZones for a specified region.",
            "returns": "a token represented as a string array",
            "stability": "stable",
            "summary": "The intrinsic function ``Fn::GetAZs`` returns an array that lists Availability Zones for a specified region."
          },
          "locationInModule": {
            "filename": "lib/cfn-fn.ts",
            "line": 159
          },
          "name": "getAzs",
          "parameters": [
            {
              "docs": {
                "remarks": "You can use the AWS::Region pseudo parameter to specify\nthe region in which the stack is created. Specifying an empty string is\nequivalent to specifying AWS::Region.",
                "summary": "The name of the region for which you want to get the Availability Zones."
              },
              "name": "region",
              "optional": true,
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "string"
                },
                "kind": "array"
              }
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "You typically use this function to create\ncross-stack references. In the following example template snippets, Stack A\nexports VPC security group values and Stack B imports them.",
            "returns": "a token represented as a string",
            "stability": "stable",
            "summary": "The intrinsic function ``Fn::ImportValue`` returns the value of an output exported by another stack."
          },
          "locationInModule": {
            "filename": "lib/cfn-fn.ts",
            "line": 171
          },
          "name": "importValue",
          "parameters": [
            {
              "docs": {
                "summary": "The stack output value that you want to import."
              },
              "name": "sharedValueToImport",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "If a delimiter is the empty\nstring, the set of values are concatenated with no delimiter.",
            "returns": "a token represented as a string",
            "stability": "stable",
            "summary": "The intrinsic function ``Fn::Join`` appends a set of values into a single value, separated by the specified delimiter."
          },
          "locationInModule": {
            "filename": "lib/cfn-fn.ts",
            "line": 54
          },
          "name": "join",
          "parameters": [
            {
              "docs": {
                "remarks": "The\ndelimiter will occur between fragments only. It will not terminate the\nfinal value.",
                "summary": "The value you want to occur between fragments."
              },
              "name": "delimiter",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "The list of values you want combined."
              },
              "name": "listOfValues",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "string"
                  },
                  "kind": "array"
                }
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Given an url, parse the domain name."
          },
          "locationInModule": {
            "filename": "lib/cfn-fn.ts",
            "line": 141
          },
          "name": "parseDomainName",
          "parameters": [
            {
              "docs": {
                "summary": "the url to parse."
              },
              "name": "url",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "Note that it doesn't validate the logicalName, it mainly serves paremeter/resource reference defined in a ``CfnInclude`` template.",
            "stability": "stable",
            "summary": "The ``Ref`` intrinsic function returns the value of the specified parameter or resource."
          },
          "locationInModule": {
            "filename": "lib/cfn-fn.ts",
            "line": 21
          },
          "name": "ref",
          "parameters": [
            {
              "docs": {
                "summary": "The logical name of a parameter/resource for which you want to retrieve its value."
              },
              "name": "logicalName",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          },
          "static": true
        },
        {
          "docs": {
            "returns": "a token represented as a string array",
            "stability": "stable",
            "summary": "Returns all values for a specified parameter type."
          },
          "locationInModule": {
            "filename": "lib/cfn-fn.ts",
            "line": 316
          },
          "name": "refAll",
          "parameters": [
            {
              "docs": {
                "remarks": "For more information, see\nParameters in the AWS CloudFormation User Guide.",
                "summary": "An AWS-specific parameter type, such as AWS::EC2::SecurityGroup::Id or AWS::EC2::VPC::Id."
              },
              "name": "parameterType",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "string"
                },
                "kind": "array"
              }
            }
          },
          "static": true
        },
        {
          "docs": {
            "returns": "a token represented as a string",
            "stability": "stable",
            "summary": "The intrinsic function ``Fn::Select`` returns a single object from a list of objects by index."
          },
          "locationInModule": {
            "filename": "lib/cfn-fn.ts",
            "line": 87
          },
          "name": "select",
          "parameters": [
            {
              "docs": {
                "remarks": "This must be a value from zero to N-1, where N represents the number of elements in the array.",
                "summary": "The index of the object to retrieve."
              },
              "name": "index",
              "type": {
                "primitive": "number"
              }
            },
            {
              "docs": {
                "remarks": "This list must not be null, nor can it have null entries.",
                "summary": "The list of objects to select from."
              },
              "name": "array",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "string"
                  },
                  "kind": "array"
                }
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "Specify the location of splits\nwith a delimiter, such as , (a comma). After you split a string, use the ``Fn::Select`` function\nto pick a specific element.",
            "returns": "a token represented as a string array",
            "stability": "stable",
            "summary": "To split a string into a list of string values so that you can select an element from the resulting string list, use the ``Fn::Split`` intrinsic function."
          },
          "locationInModule": {
            "filename": "lib/cfn-fn.ts",
            "line": 71
          },
          "name": "split",
          "parameters": [
            {
              "docs": {
                "summary": "A string value that determines where the source string is divided."
              },
              "name": "delimiter",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "The string value that you want to split."
              },
              "name": "source",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "string"
                },
                "kind": "array"
              }
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "In your templates, you can use this function\nto construct commands or outputs that include values that aren't available\nuntil you create or update a stack.",
            "returns": "a token represented as a string",
            "stability": "stable",
            "summary": "The intrinsic function ``Fn::Sub`` substitutes variables in an input string with values that you specify."
          },
          "locationInModule": {
            "filename": "lib/cfn-fn.ts",
            "line": 111
          },
          "name": "sub",
          "parameters": [
            {
              "docs": {
                "remarks": "Write variables as ${MyVarName}.\nVariables can be template parameter names, resource logical IDs, resource\nattributes, or a variable in a key-value map. If you specify only template\nparameter names, resource logical IDs, and resource attributes, don't\nspecify a key-value map.",
                "summary": "A string with variables that AWS CloudFormation substitutes with their associated values at runtime."
              },
              "name": "body",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "remarks": "The value that AWS CloudFormation substitutes for the associated\nvariable name at runtime.",
                "summary": "The name of a variable that you included in the String parameter."
              },
              "name": "variables",
              "optional": true,
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "string"
                  },
                  "kind": "map"
                }
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          },
          "static": true
        },
        {
          "docs": {
            "returns": "a token representing the transform expression",
            "see": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-transform.html",
            "stability": "stable",
            "summary": "Creates a token representing the ``Fn::Transform`` expression."
          },
          "locationInModule": {
            "filename": "lib/cfn-fn.ts",
            "line": 191
          },
          "name": "transform",
          "parameters": [
            {
              "docs": {
                "summary": "The name of the macro to perform the processing."
              },
              "name": "macroName",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "The parameters to be passed to the macro."
              },
              "name": "parameters",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "any"
                  },
                  "kind": "map"
                }
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.IResolvable"
            }
          },
          "static": true
        },
        {
          "docs": {
            "returns": "a token represented as a string",
            "stability": "stable",
            "summary": "Returns an attribute value or list of values for a specific parameter and attribute."
          },
          "locationInModule": {
            "filename": "lib/cfn-fn.ts",
            "line": 330
          },
          "name": "valueOf",
          "parameters": [
            {
              "docs": {
                "remarks": "The parameter must be declared in the Parameters\nsection of the template.",
                "summary": "The name of a parameter for which you want to retrieve attribute values."
              },
              "name": "parameterOrLogicalId",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "The name of an attribute from which you want to retrieve a value."
              },
              "name": "attribute",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          },
          "static": true
        },
        {
          "docs": {
            "returns": "a token represented as a string array",
            "stability": "stable",
            "summary": "Returns a list of all attribute values for a given parameter type and attribute."
          },
          "locationInModule": {
            "filename": "lib/cfn-fn.ts",
            "line": 344
          },
          "name": "valueOfAll",
          "parameters": [
            {
              "docs": {
                "remarks": "For more information, see\nParameters in the AWS CloudFormation User Guide.",
                "summary": "An AWS-specific parameter type, such as AWS::EC2::SecurityGroup::Id or AWS::EC2::VPC::Id."
              },
              "name": "parameterType",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "remarks": "For more information about attributes, see Supported Attributes.",
                "summary": "The name of an attribute from which you want to retrieve a value."
              },
              "name": "attribute",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "string"
                },
                "kind": "array"
              }
            }
          },
          "static": true
        }
      ],
      "name": "Fn"
    },
    "@aws-cdk/core.GetContextKeyOptions": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "@aws-cdk/core.GetContextKeyOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/context-provider.ts",
        "line": 11
      },
      "name": "GetContextKeyOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The context provider to query."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/context-provider.ts",
            "line": 15
          },
          "name": "provider",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Provider-specific properties."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/context-provider.ts",
            "line": 20
          },
          "name": "props",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        }
      ]
    },
    "@aws-cdk/core.GetContextKeyResult": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "@aws-cdk/core.GetContextKeyResult",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/context-provider.ts",
        "line": 38
      },
      "name": "GetContextKeyResult",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/context-provider.ts",
            "line": 39
          },
          "name": "key",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/context-provider.ts",
            "line": 40
          },
          "name": "props",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        }
      ]
    },
    "@aws-cdk/core.GetContextValueOptions": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "@aws-cdk/core.GetContextValueOptions",
      "interfaces": [
        "@aws-cdk/core.GetContextKeyOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/context-provider.ts",
        "line": 26
      },
      "name": "GetContextValueOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "This should be a dummy value that should preferably\nfail during deployment since it represents an invalid state.",
            "stability": "experimental",
            "summary": "The value to return if the context value was not found and a missing context is reported."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/context-provider.ts",
            "line": 32
          },
          "name": "dummyValue",
          "type": {
            "primitive": "any"
          }
        }
      ]
    },
    "@aws-cdk/core.GetContextValueResult": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "experimental"
      },
      "fqn": "@aws-cdk/core.GetContextValueResult",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/context-provider.ts",
        "line": 46
      },
      "name": "GetContextValueResult",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/context-provider.ts",
            "line": 47
          },
          "name": "value",
          "optional": true,
          "type": {
            "primitive": "any"
          }
        }
      ]
    },
    "@aws-cdk/core.IAnyProducer": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "Interface for lazy untyped value producers."
      },
      "fqn": "@aws-cdk/core.IAnyProducer",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/lazy.ts",
        "line": 38
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Produce the value."
          },
          "locationInModule": {
            "filename": "lib/lazy.ts",
            "line": 42
          },
          "name": "produce",
          "parameters": [
            {
              "name": "context",
              "type": {
                "fqn": "@aws-cdk/core.IResolveContext"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        }
      ],
      "name": "IAnyProducer"
    },
    "@aws-cdk/core.IAspect": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "Represents an Aspect."
      },
      "fqn": "@aws-cdk/core.IAspect",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/aspect.ts",
        "line": 8
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "All aspects can visit an IConstruct."
          },
          "locationInModule": {
            "filename": "lib/aspect.ts",
            "line": 12
          },
          "name": "visit",
          "parameters": [
            {
              "name": "node",
              "type": {
                "fqn": "@aws-cdk/core.IConstruct"
              }
            }
          ]
        }
      ],
      "name": "IAspect"
    },
    "@aws-cdk/core.IAsset": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "Common interface for all assets."
      },
      "fqn": "@aws-cdk/core.IAsset",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/assets.ts",
        "line": 6
      },
      "name": "IAsset",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "As this is a plain string, it\ncan be used in construct IDs in order to enforce creation of a new resource when the content\nhash has changed.",
            "stability": "stable",
            "summary": "A hash of this asset, which is available at construction time."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/assets.ts",
            "line": 12
          },
          "name": "assetHash",
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.ICfnConditionExpression": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "You can use intrinsic functions, such as ``Fn.conditionIf``,\n``Fn.conditionEquals``, and ``Fn.conditionNot``, to conditionally create\nstack resources. These conditions are evaluated based on input parameters\nthat you declare when you create or update a stack. After you define all your\nconditions, you can associate them with resources or resource properties in\nthe Resources and Outputs sections of a template.\n\nYou define all conditions in the Conditions section of a template except for\n``Fn.conditionIf`` conditions. You can use the ``Fn.conditionIf`` condition\nin the metadata attribute, update policy attribute, and property values in\nthe Resources section and Outputs sections of a template.\n\nYou might use conditions when you want to reuse a template that can create\nresources in different contexts, such as a test environment versus a\nproduction environment. In your template, you can add an EnvironmentType\ninput parameter, which accepts either prod or test as inputs. For the\nproduction environment, you might include Amazon EC2 instances with certain\ncapabilities; however, for the test environment, you want to use less\ncapabilities to save costs. With conditions, you can define which resources\nare created and how they're configured for each environment type.\n\nYou can use `toString` when you wish to embed a condition expression\nin a property value that accepts a `string`. For example:\n\n```ts\nnew sqs.Queue(this, 'MyQueue', {\n   queueName: Fn.conditionIf('Condition', 'Hello', 'World').toString()\n});\n```",
        "stability": "stable",
        "summary": "Represents a CloudFormation element that can be used within a Condition."
      },
      "fqn": "@aws-cdk/core.ICfnConditionExpression",
      "interfaces": [
        "@aws-cdk/core.IResolvable"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-condition.ts",
        "line": 89
      },
      "name": "ICfnConditionExpression"
    },
    "@aws-cdk/core.ICfnResourceOptions": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable"
      },
      "fqn": "@aws-cdk/core.ICfnResourceOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/cfn-resource.ts",
        "line": 404
      },
      "name": "ICfnResourceOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "This means that only if the condition evaluates to 'true' when the stack\nis deployed, the resource will be included. This is provided to allow CDK projects to produce legacy templates, but noramlly\nthere is no need to use it in CDK projects.",
            "stability": "stable",
            "summary": "A condition to associate with this resource."
          },
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 410
          },
          "name": "condition",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.CfnCondition"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "To signal a\nresource, you can use the cfn-signal helper script or SignalResource API. AWS CloudFormation publishes valid signals\nto the stack events so that you track the number of signals sent.",
            "stability": "stable",
            "summary": "Associate the CreationPolicy attribute with a resource to prevent its status from reaching create complete until AWS CloudFormation receives a specified number of success signals or the timeout period is exceeded."
          },
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 418
          },
          "name": "creationPolicy",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.CfnCreationPolicy"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "You specify a DeletionPolicy attribute for each resource that you want to control. If a resource has no DeletionPolicy\nattribute, AWS CloudFormation deletes the resource by default. Note that this capability also applies to update operations\nthat lead to resources being removed.",
            "stability": "stable",
            "summary": "With the DeletionPolicy attribute you can preserve or (in some cases) backup a resource when its stack is deleted."
          },
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 426
          },
          "name": "deletionPolicy",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.CfnDeletionPolicy"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Used for informational purposes only, is not processed in any way\n(and stays with the CloudFormation template, is not passed to the underlying resource,\neven if it does have a 'description' property).",
            "stability": "stable",
            "summary": "The description of this resource."
          },
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 455
          },
          "name": "description",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "This is not the same as the construct metadata which can be added\nusing construct.addMetadata(), but would not appear in the CloudFormation template automatically.",
            "stability": "stable",
            "summary": "Metadata associated with the CloudFormation resource."
          },
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 461
          },
          "name": "metadata",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "AWS CloudFormation invokes one of three update policies depending on the type of change you make or whether a\nscheduled action is associated with the Auto Scaling group.",
            "stability": "stable",
            "summary": "Use the UpdatePolicy attribute to specify how AWS CloudFormation handles updates to the AWS::AutoScaling::AutoScalingGroup resource."
          },
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 433
          },
          "name": "updatePolicy",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.CfnUpdatePolicy"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Use the UpdateReplacePolicy attribute to retain or (in some cases) backup the existing physical instance of a resource when it is replaced during a stack update operation."
          },
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 439
          },
          "name": "updateReplacePolicy",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.CfnDeletionPolicy"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Used only for custom CloudFormation resources.",
            "see": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html",
            "stability": "stable",
            "summary": "The version of this resource."
          },
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 447
          },
          "name": "version",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.IConstruct": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "Represents a construct."
      },
      "fqn": "@aws-cdk/core.IConstruct",
      "interfaces": [
        "constructs.IConstruct",
        "@aws-cdk/core.IDependable"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/construct-compat.ts",
        "line": 26
      },
      "name": "IConstruct",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The construct tree node for this construct."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 30
          },
          "name": "node",
          "type": {
            "fqn": "@aws-cdk/core.ConstructNode"
          }
        }
      ]
    },
    "@aws-cdk/core.IDependable": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "The presence of this interface indicates that an object has\nan `IDependableTrait` implementation.\n\nThis interface can be used to take an (ordering) dependency on a set of\nconstructs. An ordering dependency implies that the resources represented by\nthose constructs are deployed before the resources depending ON them are\ndeployed.",
        "stability": "stable",
        "summary": "Trait marker for classes that can be depended upon."
      },
      "fqn": "@aws-cdk/core.IDependable",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/dependency.ts",
        "line": 14
      },
      "name": "IDependable"
    },
    "@aws-cdk/core.IFragmentConcatenator": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "Interface so it could potentially be exposed over jsii.",
        "stability": "experimental",
        "summary": "Function used to concatenate symbols in the target document language."
      },
      "fqn": "@aws-cdk/core.IFragmentConcatenator",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/resolvable.ts",
        "line": 97
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Join the fragment on the left and on the right."
          },
          "locationInModule": {
            "filename": "lib/resolvable.ts",
            "line": 101
          },
          "name": "join",
          "parameters": [
            {
              "name": "left",
              "type": {
                "primitive": "any"
              }
            },
            {
              "name": "right",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        }
      ],
      "name": "IFragmentConcatenator"
    },
    "@aws-cdk/core.IInspectable": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "Interface for examining a construct and exposing metadata."
      },
      "fqn": "@aws-cdk/core.IInspectable",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/tree.ts",
        "line": 26
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Examines construct."
          },
          "locationInModule": {
            "filename": "lib/tree.ts",
            "line": 32
          },
          "name": "inspect",
          "parameters": [
            {
              "docs": {
                "summary": "- tree inspector to collect and process attributes."
              },
              "name": "inspector",
              "type": {
                "fqn": "@aws-cdk/core.TreeInspector"
              }
            }
          ]
        }
      ],
      "name": "IInspectable"
    },
    "@aws-cdk/core.IListProducer": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "Interface for lazy list producers."
      },
      "fqn": "@aws-cdk/core.IListProducer",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/lazy.ts",
        "line": 18
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Produce the list value."
          },
          "locationInModule": {
            "filename": "lib/lazy.ts",
            "line": 22
          },
          "name": "produce",
          "parameters": [
            {
              "name": "context",
              "type": {
                "fqn": "@aws-cdk/core.IResolveContext"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "string"
                },
                "kind": "array"
              }
            }
          }
        }
      ],
      "name": "IListProducer"
    },
    "@aws-cdk/core.ILocalBundling": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "experimental",
        "summary": "Local bundling."
      },
      "fqn": "@aws-cdk/core.ILocalBundling",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/bundling.ts",
        "line": 77
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "remarks": "If the local bundler exists, and bundling\nwas performed locally, return `true`. Otherwise, return `false`.",
            "stability": "experimental",
            "summary": "This method is called before attempting docker bundling to allow the bundler to be executed locally."
          },
          "locationInModule": {
            "filename": "lib/bundling.ts",
            "line": 86
          },
          "name": "tryBundle",
          "parameters": [
            {
              "docs": {
                "summary": "the directory where the bundled asset should be output."
              },
              "name": "outputDir",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "bundling options for this asset."
              },
              "name": "options",
              "type": {
                "fqn": "@aws-cdk/core.BundlingOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          }
        }
      ],
      "name": "ILocalBundling"
    },
    "@aws-cdk/core.INumberProducer": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "Interface for lazy number producers."
      },
      "fqn": "@aws-cdk/core.INumberProducer",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/lazy.ts",
        "line": 28
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Produce the number value."
          },
          "locationInModule": {
            "filename": "lib/lazy.ts",
            "line": 32
          },
          "name": "produce",
          "parameters": [
            {
              "name": "context",
              "type": {
                "fqn": "@aws-cdk/core.IResolveContext"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "primitive": "number"
            }
          }
        }
      ],
      "name": "INumberProducer"
    },
    "@aws-cdk/core.IPostProcessor": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "A Token that can post-process the complete resolved value, after resolve() has recursed over it."
      },
      "fqn": "@aws-cdk/core.IPostProcessor",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/resolvable.ts",
        "line": 61
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Process the completely resolved value, after full recursion/resolution has happened."
          },
          "locationInModule": {
            "filename": "lib/resolvable.ts",
            "line": 65
          },
          "name": "postProcess",
          "parameters": [
            {
              "name": "input",
              "type": {
                "primitive": "any"
              }
            },
            {
              "name": "context",
              "type": {
                "fqn": "@aws-cdk/core.IResolveContext"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        }
      ],
      "name": "IPostProcessor"
    },
    "@aws-cdk/core.IResolvable": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "Tokens are special objects that participate in synthesis.",
        "stability": "stable",
        "summary": "Interface for values that can be resolvable later."
      },
      "fqn": "@aws-cdk/core.IResolvable",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/resolvable.ts",
        "line": 36
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Produce the Token's value at resolution time."
          },
          "locationInModule": {
            "filename": "lib/resolvable.ts",
            "line": 48
          },
          "name": "resolve",
          "parameters": [
            {
              "name": "context",
              "type": {
                "fqn": "@aws-cdk/core.IResolveContext"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Returns a reversible string representation.",
            "stability": "stable",
            "summary": "Return a string representation of this resolvable object."
          },
          "locationInModule": {
            "filename": "lib/resolvable.ts",
            "line": 55
          },
          "name": "toString",
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "IResolvable",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "If this returns an empty array the stack will not be attached.",
            "stability": "stable",
            "summary": "The creation stack of this resolvable which will be appended to errors thrown during resolution."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/resolvable.ts",
            "line": 43
          },
          "name": "creationStack",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ]
    },
    "@aws-cdk/core.IResolveContext": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "Current resolution context for tokens."
      },
      "fqn": "@aws-cdk/core.IResolveContext",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/resolvable.ts",
        "line": 9
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Use this postprocessor after the entire token structure has been resolved."
          },
          "locationInModule": {
            "filename": "lib/resolvable.ts",
            "line": 28
          },
          "name": "registerPostProcessor",
          "parameters": [
            {
              "name": "postProcessor",
              "type": {
                "fqn": "@aws-cdk/core.IPostProcessor"
              }
            }
          ]
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Resolve an inner object."
          },
          "locationInModule": {
            "filename": "lib/resolvable.ts",
            "line": 23
          },
          "name": "resolve",
          "parameters": [
            {
              "name": "x",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        }
      ],
      "name": "IResolveContext",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "True when we are still preparing, false if we're rendering the final output."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/resolvable.ts",
            "line": 18
          },
          "name": "preparing",
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The scope from which resolution has been initiated."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/resolvable.ts",
            "line": 13
          },
          "name": "scope",
          "type": {
            "fqn": "@aws-cdk/core.IConstruct"
          }
        }
      ]
    },
    "@aws-cdk/core.IResource": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "Interface for the Resource construct."
      },
      "fqn": "@aws-cdk/core.IResource",
      "interfaces": [
        "@aws-cdk/core.IConstruct"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/resource.ts",
        "line": 40
      },
      "name": "IResource",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "For resources that are created and managed by the CDK\n(generally, those created by creating new class instances like Role, Bucket, etc.),\nthis is always the same as the environment of the stack they belong to;\nhowever, for imported resources\n(those obtained from static methods like fromRoleArn, fromBucketName, etc.),\nthat might be different than the stack they were imported into.",
            "stability": "stable",
            "summary": "The environment this resource belongs to."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/resource.ts",
            "line": 55
          },
          "name": "env",
          "type": {
            "fqn": "@aws-cdk/core.ResourceEnvironment"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The stack in which this resource is defined."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/resource.ts",
            "line": 44
          },
          "name": "stack",
          "type": {
            "fqn": "@aws-cdk/core.Stack"
          }
        }
      ]
    },
    "@aws-cdk/core.IStackSynthesizer": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "Encodes information how a certain Stack should be deployed."
      },
      "fqn": "@aws-cdk/core.IStackSynthesizer",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/stack-synthesizers/types.ts",
        "line": 8
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "remarks": "Returns the parameters that can be used to refer to the asset inside the template.",
            "stability": "stable",
            "summary": "Register a Docker Image Asset."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/types.ts",
            "line": 28
          },
          "name": "addDockerImageAsset",
          "parameters": [
            {
              "name": "asset",
              "type": {
                "fqn": "@aws-cdk/core.DockerImageAssetSource"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.DockerImageAssetLocation"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Returns the parameters that can be used to refer to the asset inside the template.",
            "stability": "stable",
            "summary": "Register a File Asset."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/types.ts",
            "line": 21
          },
          "name": "addFileAsset",
          "parameters": [
            {
              "name": "asset",
              "type": {
                "fqn": "@aws-cdk/core.FileAssetSource"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.FileAssetLocation"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Must be called before any of the other methods are called.",
            "stability": "stable",
            "summary": "Bind to the stack this environment is going to be used on."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/types.ts",
            "line": 14
          },
          "name": "bind",
          "parameters": [
            {
              "name": "stack",
              "type": {
                "fqn": "@aws-cdk/core.Stack"
              }
            }
          ]
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Synthesize the associated stack to the session."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/types.ts",
            "line": 33
          },
          "name": "synthesize",
          "parameters": [
            {
              "name": "session",
              "type": {
                "fqn": "@aws-cdk/core.ISynthesisSession"
              }
            }
          ]
        }
      ],
      "name": "IStackSynthesizer"
    },
    "@aws-cdk/core.IStringProducer": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "Interface for lazy string producers."
      },
      "fqn": "@aws-cdk/core.IStringProducer",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/lazy.ts",
        "line": 8
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Produce the string value."
          },
          "locationInModule": {
            "filename": "lib/lazy.ts",
            "line": 12
          },
          "name": "produce",
          "parameters": [
            {
              "name": "context",
              "type": {
                "fqn": "@aws-cdk/core.IResolveContext"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "IStringProducer"
    },
    "@aws-cdk/core.ISynthesisSession": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "Passed into `Construct.synthesize()` methods.",
        "stability": "stable",
        "summary": "Represents a single session of synthesis."
      },
      "fqn": "@aws-cdk/core.ISynthesisSession",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/construct-compat.ts",
        "line": 36
      },
      "name": "ISynthesisSession",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Cloud assembly builder."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 45
          },
          "name": "assembly",
          "type": {
            "fqn": "@aws-cdk/cx-api.CloudAssemblyBuilder"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The output directory for this synthesis session."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 40
          },
          "name": "outdir",
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.ITaggable": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "Interface to implement tags."
      },
      "fqn": "@aws-cdk/core.ITaggable",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/tag-manager.ts",
        "line": 209
      },
      "name": "ITaggable",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "TagManager to set, remove and format tags."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/tag-manager.ts",
            "line": 213
          },
          "name": "tags",
          "type": {
            "fqn": "@aws-cdk/core.TagManager"
          }
        }
      ]
    },
    "@aws-cdk/core.ITemplateOptions": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "CloudFormation template options for a stack."
      },
      "fqn": "@aws-cdk/core.ITemplateOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/stack.ts",
        "line": 1040
      },
      "name": "ITemplateOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "If provided, it will be included in the CloudFormation template's \"Description\" attribute.",
            "stability": "stable",
            "summary": "Gets or sets the description of this stack."
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 1045
          },
          "name": "description",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Metadata associated with the CloudFormation template."
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 1067
          },
          "name": "metadata",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Gets or sets the AWSTemplateFormatVersion field of the CloudFormation template."
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 1050
          },
          "name": "templateFormatVersion",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "deprecated": "use `transforms` instead.",
            "stability": "deprecated",
            "summary": "Gets or sets the top-level template transform for this stack (e.g. \"AWS::Serverless-2016-10-31\")."
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 1057
          },
          "name": "transform",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Gets or sets the top-level template transform(s) for this stack (e.g. `[\"AWS::Serverless-2016-10-31\"]`)."
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 1062
          },
          "name": "transforms",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ]
    },
    "@aws-cdk/core.ITokenMapper": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "Interface so it can be exported via jsii.",
        "stability": "stable",
        "summary": "Interface to apply operation to tokens in a string."
      },
      "fqn": "@aws-cdk/core.ITokenMapper",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/string-fragments.ts",
        "line": 112
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Replace a single token."
          },
          "locationInModule": {
            "filename": "lib/string-fragments.ts",
            "line": 116
          },
          "name": "mapToken",
          "parameters": [
            {
              "name": "t",
              "type": {
                "fqn": "@aws-cdk/core.IResolvable"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        }
      ],
      "name": "ITokenMapper"
    },
    "@aws-cdk/core.ITokenResolver": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "How to resolve tokens."
      },
      "fqn": "@aws-cdk/core.ITokenResolver",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/resolvable.ts",
        "line": 71
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Resolve a tokenized list."
          },
          "locationInModule": {
            "filename": "lib/resolvable.ts",
            "line": 87
          },
          "name": "resolveList",
          "parameters": [
            {
              "name": "l",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "string"
                  },
                  "kind": "array"
                }
              }
            },
            {
              "name": "context",
              "type": {
                "fqn": "@aws-cdk/core.IResolveContext"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "(May use concatenation)",
            "stability": "stable",
            "summary": "Resolve a string with at least one stringified token in it."
          },
          "locationInModule": {
            "filename": "lib/resolvable.ts",
            "line": 82
          },
          "name": "resolveString",
          "parameters": [
            {
              "name": "s",
              "type": {
                "fqn": "@aws-cdk/core.TokenizedStringFragments"
              }
            },
            {
              "name": "context",
              "type": {
                "fqn": "@aws-cdk/core.IResolveContext"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Resolve a single token."
          },
          "locationInModule": {
            "filename": "lib/resolvable.ts",
            "line": 75
          },
          "name": "resolveToken",
          "parameters": [
            {
              "name": "t",
              "type": {
                "fqn": "@aws-cdk/core.IResolvable"
              }
            },
            {
              "name": "context",
              "type": {
                "fqn": "@aws-cdk/core.IResolveContext"
              }
            },
            {
              "name": "postProcessor",
              "type": {
                "fqn": "@aws-cdk/core.IPostProcessor"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        }
      ],
      "name": "ITokenResolver"
    },
    "@aws-cdk/core.Intrinsic": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "WARNING: this class should not be externally exposed, but is currently visible\nbecause of a limitation of jsii (https://github.com/aws/jsii/issues/524).\n\nThis class will disappear in a future release and should not be used.",
        "stability": "experimental",
        "summary": "Token subclass that represents values intrinsic to the target document language."
      },
      "fqn": "@aws-cdk/core.Intrinsic",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "lib/private/intrinsic.ts",
          "line": 37
        },
        "parameters": [
          {
            "name": "value",
            "type": {
              "primitive": "any"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "@aws-cdk/core.IntrinsicProps"
            }
          }
        ]
      },
      "interfaces": [
        "@aws-cdk/core.IResolvable"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "lib/private/intrinsic.ts",
        "line": 29
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Creates a throwable Error object that contains the token creation stack trace."
          },
          "locationInModule": {
            "filename": "lib/private/intrinsic.ts",
            "line": 84
          },
          "name": "newError",
          "parameters": [
            {
              "docs": {
                "summary": "Error message."
              },
              "name": "message",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "protected": true,
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Produce the Token's value at resolution time."
          },
          "locationInModule": {
            "filename": "lib/private/intrinsic.ts",
            "line": 46
          },
          "name": "resolve",
          "overrides": "@aws-cdk/core.IResolvable",
          "parameters": [
            {
              "name": "_context",
              "type": {
                "fqn": "@aws-cdk/core.IResolveContext"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        },
        {
          "docs": {
            "remarks": "Called automatically when JSON.stringify() is called on a Token.",
            "stability": "experimental",
            "summary": "Turn this Token into JSON."
          },
          "locationInModule": {
            "filename": "lib/private/intrinsic.ts",
            "line": 66
          },
          "name": "toJSON",
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        },
        {
          "docs": {
            "remarks": "This method will be called implicitly by language runtimes if the object\nis embedded into a string. We treat it the same as an explicit\nstringification.",
            "stability": "experimental",
            "summary": "Convert an instance of this Token to a string."
          },
          "locationInModule": {
            "filename": "lib/private/intrinsic.ts",
            "line": 57
          },
          "name": "toString",
          "overrides": "@aws-cdk/core.IResolvable",
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "Intrinsic",
      "properties": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "The captured stack trace which represents the location in which this token was created."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/private/intrinsic.ts",
            "line": 33
          },
          "name": "creationStack",
          "overrides": "@aws-cdk/core.IResolvable",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ]
    },
    "@aws-cdk/core.IntrinsicProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Customization properties for an Intrinsic token."
      },
      "fqn": "@aws-cdk/core.IntrinsicProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/private/intrinsic.ts",
        "line": 10
      },
      "name": "IntrinsicProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "experimental",
            "summary": "Capture the stack trace of where this token is created."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/private/intrinsic.ts",
            "line": 16
          },
          "name": "stackTrace",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ]
    },
    "@aws-cdk/core.Lazy": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "Can be used to return a string, list or numeric value whose actual value\nwill only be calculated later, during synthesis.",
        "stability": "stable",
        "summary": "Lazily produce a value."
      },
      "fqn": "@aws-cdk/core.Lazy",
      "kind": "class",
      "locationInModule": {
        "filename": "lib/lazy.ts",
        "line": 101
      },
      "methods": [
        {
          "docs": {
            "stability": "stable"
          },
          "locationInModule": {
            "filename": "lib/lazy.ts",
            "line": 114
          },
          "name": "anyValue",
          "parameters": [
            {
              "name": "producer",
              "type": {
                "fqn": "@aws-cdk/core.IAnyProducer"
              }
            },
            {
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.LazyAnyValueOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.IResolvable"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable"
          },
          "locationInModule": {
            "filename": "lib/lazy.ts",
            "line": 110
          },
          "name": "listValue",
          "parameters": [
            {
              "name": "producer",
              "type": {
                "fqn": "@aws-cdk/core.IListProducer"
              }
            },
            {
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.LazyListValueOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "string"
                },
                "kind": "array"
              }
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable"
          },
          "locationInModule": {
            "filename": "lib/lazy.ts",
            "line": 106
          },
          "name": "numberValue",
          "parameters": [
            {
              "name": "producer",
              "type": {
                "fqn": "@aws-cdk/core.INumberProducer"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "number"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable"
          },
          "locationInModule": {
            "filename": "lib/lazy.ts",
            "line": 102
          },
          "name": "stringValue",
          "parameters": [
            {
              "name": "producer",
              "type": {
                "fqn": "@aws-cdk/core.IStringProducer"
              }
            },
            {
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.LazyStringValueOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          },
          "static": true
        }
      ],
      "name": "Lazy"
    },
    "@aws-cdk/core.LazyAnyValueOptions": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Options for creating lazy untyped tokens."
      },
      "fqn": "@aws-cdk/core.LazyAnyValueOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/lazy.ts",
        "line": 79
      },
      "name": "LazyAnyValueOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- No hint",
            "stability": "stable",
            "summary": "Use the given name as a display hint."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/lazy.ts",
            "line": 85
          },
          "name": "displayHint",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "stable",
            "summary": "If the produced value is an array and it is empty, return 'undefined' instead."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/lazy.ts",
            "line": 92
          },
          "name": "omitEmptyArray",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ]
    },
    "@aws-cdk/core.LazyListValueOptions": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Options for creating a lazy list token."
      },
      "fqn": "@aws-cdk/core.LazyListValueOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/lazy.ts",
        "line": 60
      },
      "name": "LazyListValueOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- No hint",
            "stability": "stable",
            "summary": "Use the given name as a display hint."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/lazy.ts",
            "line": 66
          },
          "name": "displayHint",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "stable",
            "summary": "If the produced list is empty, return 'undefined' instead."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/lazy.ts",
            "line": 73
          },
          "name": "omitEmpty",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ]
    },
    "@aws-cdk/core.LazyStringValueOptions": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Options for creating a lazy string token."
      },
      "fqn": "@aws-cdk/core.LazyStringValueOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/lazy.ts",
        "line": 48
      },
      "name": "LazyStringValueOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- No hint",
            "stability": "stable",
            "summary": "Use the given name as a display hint."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/lazy.ts",
            "line": 54
          },
          "name": "displayHint",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.LegacyStackSynthesizer": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.StackSynthesizer",
      "docs": {
        "remarks": "This deployment environment is restricted in cross-environment deployments,\nCI/CD deployments, and will use up CloudFormation parameters in your template.\n\nThis is the only StackSynthesizer that supports customizing asset behavior\nby overriding `Stack.addFileAsset()` and `Stack.addDockerImageAsset()`.",
        "stability": "stable",
        "summary": "Use the original deployment environment."
      },
      "fqn": "@aws-cdk/core.LegacyStackSynthesizer",
      "initializer": {
        "docs": {
          "stability": "stable"
        }
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/stack-synthesizers/legacy.ts",
        "line": 35
      },
      "methods": [
        {
          "docs": {
            "remarks": "Returns the parameters that can be used to refer to the asset inside the template.",
            "stability": "stable",
            "summary": "Register a Docker Image Asset."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/legacy.ts",
            "line": 81
          },
          "name": "addDockerImageAsset",
          "overrides": "@aws-cdk/core.StackSynthesizer",
          "parameters": [
            {
              "name": "asset",
              "type": {
                "fqn": "@aws-cdk/core.DockerImageAssetSource"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.DockerImageAssetLocation"
            }
          }
        },
        {
          "docs": {
            "remarks": "Returns the parameters that can be used to refer to the asset inside the template.",
            "stability": "stable",
            "summary": "Register a File Asset."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/legacy.ts",
            "line": 54
          },
          "name": "addFileAsset",
          "overrides": "@aws-cdk/core.StackSynthesizer",
          "parameters": [
            {
              "name": "asset",
              "type": {
                "fqn": "@aws-cdk/core.FileAssetSource"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.FileAssetLocation"
            }
          }
        },
        {
          "docs": {
            "remarks": "Must be called before any of the other methods are called.",
            "stability": "stable",
            "summary": "Bind to the stack this environment is going to be used on."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/legacy.ts",
            "line": 50
          },
          "name": "bind",
          "overrides": "@aws-cdk/core.StackSynthesizer",
          "parameters": [
            {
              "name": "stack",
              "type": {
                "fqn": "@aws-cdk/core.Stack"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Synthesize the associated stack to the session."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/legacy.ts",
            "line": 100
          },
          "name": "synthesize",
          "overrides": "@aws-cdk/core.StackSynthesizer",
          "parameters": [
            {
              "name": "session",
              "type": {
                "fqn": "@aws-cdk/core.ISynthesisSession"
              }
            }
          ]
        }
      ],
      "name": "LegacyStackSynthesizer"
    },
    "@aws-cdk/core.NestedStack": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.Stack",
      "docs": {
        "remarks": "When you apply template changes to update a top-level stack, CloudFormation\nupdates the top-level stack and initiates an update to its nested stacks.\nCloudFormation updates the resources of modified nested stacks, but does not\nupdate the resources of unmodified nested stacks.\n\nFurthermore, this stack will not be treated as an independent deployment\nartifact (won't be listed in \"cdk list\" or deployable through \"cdk deploy\"),\nbut rather only synthesized as a template and uploaded as an asset to S3.\n\nCross references of resource attributes between the parent stack and the\nnested stack will automatically be translated to stack parameters and\noutputs.",
        "stability": "experimental",
        "summary": "A CloudFormation nested stack."
      },
      "fqn": "@aws-cdk/core.NestedStack",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "lib/nested-stack.ts",
          "line": 101
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "props",
            "optional": true,
            "type": {
              "fqn": "@aws-cdk/core.NestedStackProps"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/nested-stack.ts",
        "line": 82
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Checks if `x` is an object of type `NestedStack`."
          },
          "locationInModule": {
            "filename": "lib/nested-stack.ts",
            "line": 87
          },
          "name": "isNestedStack",
          "parameters": [
            {
              "name": "x",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Assign a value to one of the nested stack parameters."
          },
          "locationInModule": {
            "filename": "lib/nested-stack.ts",
            "line": 171
          },
          "name": "setParameter",
          "parameters": [
            {
              "docs": {
                "summary": "The parameter name (ID)."
              },
              "name": "name",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "The value to assign."
              },
              "name": "value",
              "type": {
                "primitive": "string"
              }
            }
          ]
        }
      ],
      "name": "NestedStack",
      "properties": [
        {
          "docs": {
            "custom": {
              "attribute": "true"
            },
            "example": "\"arn:aws:cloudformation:us-east-2:123456789012:stack/mystack-mynestedstack-sggfrhxhum7w/f449b250-b969-11e0-a185-5081d0136786\"",
            "remarks": "This is a context aware attribute:\n- If this is referenced from the parent stack, it will return `{ \"Ref\": \"LogicalIdOfNestedStackResource\" }`.\n- If this is referenced from the context of the nested stack, it will return `{ \"Ref\": \"AWS::StackId\" }`",
            "stability": "experimental",
            "summary": "An attribute that represents the ID of the stack."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/nested-stack.ts",
            "line": 162
          },
          "name": "stackId",
          "overrides": "@aws-cdk/core.Stack",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "custom": {
              "attribute": "true"
            },
            "example": "mystack-mynestedstack-sggfrhxhum7w",
            "remarks": "This is a context aware attribute:\n- If this is referenced from the parent stack, it will return a token that parses the name from the stack ID.\n- If this is referenced from the context of the nested stack, it will return `{ \"Ref\": \"AWS::StackName\" }`",
            "stability": "experimental",
            "summary": "An attribute that represents the name of the nested stack."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/nested-stack.ts",
            "line": 148
          },
          "name": "stackName",
          "overrides": "@aws-cdk/core.Stack",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The name of the CloudFormation template file emitted to the output directory during synthesis."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/nested-stack.ts",
            "line": 91
          },
          "name": "templateFile",
          "overrides": "@aws-cdk/core.Stack",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "remarks": "`undefined` for top-level (non-nested) stacks.",
            "stability": "experimental",
            "summary": "If this is a nested stack, this represents its `AWS::CloudFormation::Stack` resource."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/nested-stack.ts",
            "line": 92
          },
          "name": "nestedStackResource",
          "optional": true,
          "overrides": "@aws-cdk/core.Stack",
          "type": {
            "fqn": "@aws-cdk/core.CfnResource"
          }
        }
      ]
    },
    "@aws-cdk/core.NestedStackProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "experimental",
        "summary": "Initialization props for the `NestedStack` construct."
      },
      "fqn": "@aws-cdk/core.NestedStackProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/nested-stack.ts",
        "line": 26
      },
      "name": "NestedStackProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- notifications are not sent for this stack.",
            "stability": "experimental",
            "summary": "The Simple Notification Service (SNS) topics to publish stack related events."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/nested-stack.ts",
            "line": 61
          },
          "name": "notificationArns",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no user-defined parameters are passed to the nested stack",
            "remarks": "Each parameter has a name corresponding\nto a parameter defined in the embedded template and a value representing\nthe value that you want to set for the parameter.\n\nThe nested stack construct will automatically synthesize parameters in order\nto bind references from the parent stack(s) into the nested stack.",
            "stability": "experimental",
            "summary": "The set value pairs that represent the parameters passed to CloudFormation when this nested stack is created."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/nested-stack.ts",
            "line": 38
          },
          "name": "parameters",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- no timeout",
            "remarks": "When CloudFormation detects that the nested stack has reached the\nCREATE_COMPLETE state, it marks the nested stack resource as\nCREATE_COMPLETE in the parent stack and resumes creating the parent stack.\nIf the timeout period expires before the nested stack reaches\nCREATE_COMPLETE, CloudFormation marks the nested stack as failed and rolls\nback both the nested stack and parent stack.",
            "stability": "experimental",
            "summary": "The length of time that CloudFormation waits for the nested stack to reach the CREATE_COMPLETE state."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/nested-stack.ts",
            "line": 53
          },
          "name": "timeout",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.Duration"
          }
        }
      ]
    },
    "@aws-cdk/core.NestedStackSynthesizer": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.StackSynthesizer",
      "docs": {
        "remarks": "Interoperates with the StackSynthesizer of the parent stack.",
        "stability": "stable",
        "summary": "Deployment environment for a nested stack."
      },
      "fqn": "@aws-cdk/core.NestedStackSynthesizer",
      "initializer": {
        "docs": {
          "stability": "stable"
        },
        "locationInModule": {
          "filename": "lib/stack-synthesizers/nested.ts",
          "line": 16
        },
        "parameters": [
          {
            "name": "parentDeployment",
            "type": {
              "fqn": "@aws-cdk/core.IStackSynthesizer"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/stack-synthesizers/nested.ts",
        "line": 13
      },
      "methods": [
        {
          "docs": {
            "remarks": "Returns the parameters that can be used to refer to the asset inside the template.",
            "stability": "stable",
            "summary": "Register a Docker Image Asset."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/nested.ts",
            "line": 30
          },
          "name": "addDockerImageAsset",
          "overrides": "@aws-cdk/core.StackSynthesizer",
          "parameters": [
            {
              "name": "asset",
              "type": {
                "fqn": "@aws-cdk/core.DockerImageAssetSource"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.DockerImageAssetLocation"
            }
          }
        },
        {
          "docs": {
            "remarks": "Returns the parameters that can be used to refer to the asset inside the template.",
            "stability": "stable",
            "summary": "Register a File Asset."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/nested.ts",
            "line": 24
          },
          "name": "addFileAsset",
          "overrides": "@aws-cdk/core.StackSynthesizer",
          "parameters": [
            {
              "name": "asset",
              "type": {
                "fqn": "@aws-cdk/core.FileAssetSource"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.FileAssetLocation"
            }
          }
        },
        {
          "docs": {
            "remarks": "Must be called before any of the other methods are called.",
            "stability": "stable",
            "summary": "Bind to the stack this environment is going to be used on."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/nested.ts",
            "line": 20
          },
          "name": "bind",
          "overrides": "@aws-cdk/core.StackSynthesizer",
          "parameters": [
            {
              "name": "stack",
              "type": {
                "fqn": "@aws-cdk/core.Stack"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Synthesize the associated stack to the session."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/nested.ts",
            "line": 36
          },
          "name": "synthesize",
          "overrides": "@aws-cdk/core.StackSynthesizer",
          "parameters": [
            {
              "name": "session",
              "type": {
                "fqn": "@aws-cdk/core.ISynthesisSession"
              }
            }
          ]
        }
      ],
      "name": "NestedStackSynthesizer"
    },
    "@aws-cdk/core.PhysicalName": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "Includes special markers for automatic generation of physical names."
      },
      "fqn": "@aws-cdk/core.PhysicalName",
      "kind": "class",
      "locationInModule": {
        "filename": "lib/physical-name.ts",
        "line": 7
      },
      "name": "PhysicalName",
      "properties": [
        {
          "const": true,
          "docs": {
            "remarks": "Otherwise, the name will be allocated during deployment by CloudFormation.\n\nIf you are certain that a resource will be referenced across environments,\nyou may also specify an explicit physical name for it. This option is\nmostly designed for reusable constructs which may or may not be referenced\nacrossed environments.",
            "stability": "stable",
            "summary": "Use this to automatically generate a physical name for an AWS resource only if the resource is referenced across environments (account/region)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/physical-name.ts",
            "line": 18
          },
          "name": "GENERATE_IF_NEEDED",
          "static": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.Reference": {
      "abstract": true,
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.Intrinsic",
      "docs": {
        "remarks": "References are recorded.",
        "stability": "stable",
        "summary": "An intrinsic Token that represents a reference to a construct."
      },
      "fqn": "@aws-cdk/core.Reference",
      "initializer": {
        "docs": {
          "stability": "stable"
        },
        "locationInModule": {
          "filename": "lib/reference.ts",
          "line": 21
        },
        "parameters": [
          {
            "name": "value",
            "type": {
              "primitive": "any"
            }
          },
          {
            "name": "target",
            "type": {
              "fqn": "@aws-cdk/core.IConstruct"
            }
          },
          {
            "name": "displayName",
            "optional": true,
            "type": {
              "primitive": "string"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/reference.ts",
        "line": 10
      },
      "methods": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Check whether this is actually a Reference."
          },
          "locationInModule": {
            "filename": "lib/reference.ts",
            "line": 14
          },
          "name": "isReference",
          "parameters": [
            {
              "name": "x",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          },
          "static": true
        }
      ],
      "name": "Reference",
      "properties": [
        {
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/reference.ts",
            "line": 19
          },
          "name": "displayName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/reference.ts",
            "line": 18
          },
          "name": "target",
          "type": {
            "fqn": "@aws-cdk/core.IConstruct"
          }
        }
      ]
    },
    "@aws-cdk/core.RemovalPolicy": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable"
      },
      "fqn": "@aws-cdk/core.RemovalPolicy",
      "kind": "enum",
      "locationInModule": {
        "filename": "lib/removal-policy.ts",
        "line": 1
      },
      "members": [
        {
          "docs": {
            "remarks": "It means that when the resource is\nremoved from the app, it will be physically destroyed.",
            "stability": "stable",
            "summary": "This is the default removal policy."
          },
          "name": "DESTROY"
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "This uses the 'Retain' DeletionPolicy, which will cause the resource to be retained in the account, but orphaned from the stack."
          },
          "name": "RETAIN"
        },
        {
          "docs": {
            "remarks": "Only available for some stateful resources,\nlike databases, EFS volumes, etc.",
            "see": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options",
            "stability": "stable",
            "summary": "This retention policy deletes the resource, but saves a snapshot of its data before deleting, so that it can be re-created later."
          },
          "name": "SNAPSHOT"
        }
      ],
      "name": "RemovalPolicy"
    },
    "@aws-cdk/core.RemovalPolicyOptions": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable"
      },
      "fqn": "@aws-cdk/core.RemovalPolicyOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/removal-policy.ts",
        "line": 26
      },
      "name": "RemovalPolicyOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "stable",
            "summary": "Apply the same deletion policy to the resource's \"UpdateReplacePolicy\"."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/removal-policy.ts",
            "line": 39
          },
          "name": "applyToUpdateReplacePolicy",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- Default value is resource specific. To determine the default value for a resoure,\nplease consult that specific resource's documentation.",
            "stability": "stable",
            "summary": "The default policy to apply in case the removal policy is not defined."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/removal-policy.ts",
            "line": 33
          },
          "name": "default",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.RemovalPolicy"
          }
        }
      ]
    },
    "@aws-cdk/core.RemoveTag": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "The RemoveTag Aspect will handle removing tags from this node and children."
      },
      "fqn": "@aws-cdk/core.RemoveTag",
      "initializer": {
        "docs": {
          "stability": "stable"
        },
        "locationInModule": {
          "filename": "lib/tag-aspect.ts",
          "line": 172
        },
        "parameters": [
          {
            "name": "key",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "props",
            "optional": true,
            "type": {
              "fqn": "@aws-cdk/core.TagProps"
            }
          }
        ]
      },
      "interfaces": [
        "@aws-cdk/core.IAspect"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "lib/tag-aspect.ts",
        "line": 168
      },
      "methods": [
        {
          "docs": {
            "stability": "stable"
          },
          "locationInModule": {
            "filename": "lib/tag-aspect.ts",
            "line": 176
          },
          "name": "applyTag",
          "parameters": [
            {
              "name": "resource",
              "type": {
                "fqn": "@aws-cdk/core.ITaggable"
              }
            }
          ],
          "protected": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "All aspects can visit an IConstruct."
          },
          "locationInModule": {
            "filename": "lib/tag-aspect.ts",
            "line": 75
          },
          "name": "visit",
          "overrides": "@aws-cdk/core.IAspect",
          "parameters": [
            {
              "name": "construct",
              "type": {
                "fqn": "@aws-cdk/core.IConstruct"
              }
            }
          ]
        }
      ],
      "name": "RemoveTag",
      "properties": [
        {
          "docs": {
            "stability": "stable",
            "summary": "The string key for the tag."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/tag-aspect.ts",
            "line": 66
          },
          "name": "key",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/tag-aspect.ts",
            "line": 68
          },
          "name": "props",
          "protected": true,
          "type": {
            "fqn": "@aws-cdk/core.TagProps"
          }
        }
      ]
    },
    "@aws-cdk/core.ResolveOptions": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "remarks": "NOT the same as the ResolveContext; ResolveContext is exposed to Token\nimplementors and resolution hooks, whereas this struct is just to bundle\na number of things that would otherwise be arguments to resolve() in a\nreadable way.",
        "stability": "stable",
        "summary": "Options to the resolve() operation."
      },
      "fqn": "@aws-cdk/core.ResolveOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/token.ts",
        "line": 205
      },
      "name": "ResolveOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The resolver to apply to any resolvable tokens found."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/token.ts",
            "line": 214
          },
          "name": "resolver",
          "type": {
            "fqn": "@aws-cdk/core.ITokenResolver"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The scope from which resolution is performed."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/token.ts",
            "line": 209
          },
          "name": "scope",
          "type": {
            "fqn": "constructs.IConstruct"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "stable",
            "summary": "Whether the resolution is being executed during the prepare phase or not."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/token.ts",
            "line": 220
          },
          "name": "preparing",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ]
    },
    "@aws-cdk/core.Resource": {
      "abstract": true,
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.Construct",
      "docs": {
        "stability": "stable",
        "summary": "A construct which represents an AWS resource."
      },
      "fqn": "@aws-cdk/core.Resource",
      "initializer": {
        "docs": {
          "stability": "stable"
        },
        "locationInModule": {
          "filename": "lib/resource.ts",
          "line": 114
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "props",
            "optional": true,
            "type": {
              "fqn": "@aws-cdk/core.ResourceProps"
            }
          }
        ]
      },
      "interfaces": [
        "@aws-cdk/core.IResource"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "lib/resource.ts",
        "line": 93
      },
      "methods": [
        {
          "docs": {
            "stability": "stable"
          },
          "locationInModule": {
            "filename": "lib/resource.ts",
            "line": 167
          },
          "name": "generatePhysicalName",
          "protected": true,
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        },
        {
          "docs": {
            "remarks": "Normally, this token will resolve to `arnAttr`, but if the resource is\nreferenced across environments, `arnComponents` will be used to synthesize\na concrete ARN with the resource's physical name. Make sure to reference\n`this.physicalName` in `arnComponents`.",
            "stability": "experimental",
            "summary": "Returns an environment-sensitive token that should be used for the resource's \"ARN\" attribute (e.g. `bucket.bucketArn`)."
          },
          "locationInModule": {
            "filename": "lib/resource.ts",
            "line": 216
          },
          "name": "getResourceArnAttribute",
          "parameters": [
            {
              "docs": {
                "remarks": "Commonly it will be called \"Arn\" (e.g. `resource.attrArn`), but sometimes\nit's the CFN resource's `ref`.",
                "summary": "The CFN attribute which resolves to the ARN of the resource."
              },
              "name": "arnAttr",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "remarks": "You must\nreference `this.physicalName` somewhere within the ARN in order for\ncross-environment references to work.",
                "summary": "The format of the ARN of this resource."
              },
              "name": "arnComponents",
              "type": {
                "fqn": "@aws-cdk/core.ArnComponents"
              }
            }
          ],
          "protected": true,
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        },
        {
          "docs": {
            "remarks": "Normally, this token will resolve to `nameAttr`, but if the resource is\nreferenced across environments, it will be resolved to `this.physicalName`,\nwhich will be a concrete name.",
            "stability": "experimental",
            "summary": "Returns an environment-sensitive token that should be used for the resource's \"name\" attribute (e.g. `bucket.bucketName`)."
          },
          "locationInModule": {
            "filename": "lib/resource.ts",
            "line": 183
          },
          "name": "getResourceNameAttribute",
          "parameters": [
            {
              "docs": {
                "remarks": "Commonly this is the resource's `ref`.",
                "summary": "The CFN attribute which resolves to the resource's name."
              },
              "name": "nameAttr",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "protected": true,
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "Resource",
      "properties": [
        {
          "docs": {
            "remarks": "For resources that are created and managed by the CDK\n(generally, those created by creating new class instances like Role, Bucket, etc.),\nthis is always the same as the environment of the stack they belong to;\nhowever, for imported resources\n(those obtained from static methods like fromRoleArn, fromBucketName, etc.),\nthat might be different than the stack they were imported into.",
            "stability": "stable",
            "summary": "The environment this resource belongs to."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/resource.ts",
            "line": 95
          },
          "name": "env",
          "overrides": "@aws-cdk/core.IResource",
          "type": {
            "fqn": "@aws-cdk/core.ResourceEnvironment"
          }
        },
        {
          "docs": {
            "remarks": "This value will resolve to one of the following:\n- a concrete value (e.g. `\"my-awesome-bucket\"`)\n- `undefined`, when a name should be generated by CloudFormation\n- a concrete name generated automatically during synthesis, in\n   cross-environment scenarios.",
            "stability": "experimental",
            "summary": "Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/resource.ts",
            "line": 109
          },
          "name": "physicalName",
          "protected": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "The stack in which this resource is defined."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/resource.ts",
            "line": 94
          },
          "name": "stack",
          "overrides": "@aws-cdk/core.IResource",
          "type": {
            "fqn": "@aws-cdk/core.Stack"
          }
        }
      ]
    },
    "@aws-cdk/core.ResourceEnvironment": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "remarks": "Used as the return value for the {@link IResource.env} property.",
        "stability": "stable",
        "summary": "Represents the environment a given resource lives in."
      },
      "fqn": "@aws-cdk/core.ResourceEnvironment",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/resource.ts",
        "line": 17
      },
      "name": "ResourceEnvironment",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "remarks": "Since this can be a Token\n(for example, when the account is CloudFormation's AWS::AccountId intrinsic),\nmake sure to use Token.compareStrings()\ninstead of just comparing the values for equality.",
            "stability": "stable",
            "summary": "The AWS account ID that this resource belongs to."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/resource.ts",
            "line": 25
          },
          "name": "account",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Since this can be a Token\n(for example, when the region is CloudFormation's AWS::Region intrinsic),\nmake sure to use Token.compareStrings()\ninstead of just comparing the values for equality.",
            "stability": "stable",
            "summary": "The AWS region that this resource belongs to."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/resource.ts",
            "line": 34
          },
          "name": "region",
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.ResourceProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Construction properties for {@link Resource}."
      },
      "fqn": "@aws-cdk/core.ResourceProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/resource.ts",
        "line": 61
      },
      "name": "ResourceProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- the resource is in the same account as the stack it belongs to",
            "stability": "stable",
            "summary": "The AWS account ID this resource belongs to."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/resource.ts",
            "line": 80
          },
          "name": "account",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- The physical name will be allocated by CloudFormation at deployment time",
            "remarks": "- `undefined` implies that a physical name will be allocated by\n   CloudFormation during deployment.\n- a concrete value implies a specific physical name\n- `PhysicalName.GENERATE_IF_NEEDED` is a marker that indicates that a physical will only be generated\n   by the CDK if it is needed for cross-environment references. Otherwise, it will be allocated by CloudFormation.",
            "stability": "stable",
            "summary": "The value passed in by users to the physical name prop of the resource."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/resource.ts",
            "line": 73
          },
          "name": "physicalName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- the resource is in the same region as the stack it belongs to",
            "stability": "stable",
            "summary": "The AWS region this resource belongs to."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/resource.ts",
            "line": 87
          },
          "name": "region",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.ScopedAws": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "These pseudo parameters are anchored to a stack somewhere in the construct\ntree, and their values will be exported automatically.",
        "stability": "stable",
        "summary": "Accessor for scoped pseudo parameters."
      },
      "fqn": "@aws-cdk/core.ScopedAws",
      "initializer": {
        "docs": {
          "stability": "stable"
        },
        "locationInModule": {
          "filename": "lib/cfn-pseudo.ts",
          "line": 41
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "@aws-cdk/core.Construct"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/cfn-pseudo.ts",
        "line": 40
      },
      "name": "ScopedAws",
      "properties": [
        {
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-pseudo.ts",
            "line": 44
          },
          "name": "accountId",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-pseudo.ts",
            "line": 52
          },
          "name": "notificationArns",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-pseudo.ts",
            "line": 58
          },
          "name": "partition",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-pseudo.ts",
            "line": 62
          },
          "name": "region",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-pseudo.ts",
            "line": 66
          },
          "name": "stackId",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-pseudo.ts",
            "line": 70
          },
          "name": "stackName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-pseudo.ts",
            "line": 48
          },
          "name": "urlSuffix",
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.SecretValue": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.Intrinsic",
      "docs": {
        "remarks": "Secret values in the CDK (such as those retrieved from SecretsManager) are\nrepresented as regular strings, just like other values that are only\navailable at deployment time.\n\nTo help you avoid accidental mistakes which would lead to you putting your\nsecret values directly into a CloudFormation template, constructs that take\nsecret values will not allow you to pass in a literal secret value. They do\nso by calling `Secret.assertSafeSecret()`.\n\nYou can escape the check by calling `Secret.plainText()`, but doing\nso is highly discouraged.",
        "stability": "stable",
        "summary": "Work with secret values in the CDK."
      },
      "fqn": "@aws-cdk/core.SecretValue",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "locationInModule": {
          "filename": "lib/private/intrinsic.ts",
          "line": 37
        },
        "parameters": [
          {
            "name": "value",
            "type": {
              "primitive": "any"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "@aws-cdk/core.IntrinsicProps"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/secret-value.ts",
        "line": 20
      },
      "methods": [
        {
          "docs": {
            "remarks": "If possible, use `SecretValue.ssmSecure` or `SecretValue.secretsManager` directly.",
            "stability": "stable",
            "summary": "Obtain the secret value through a CloudFormation dynamic reference."
          },
          "locationInModule": {
            "filename": "lib/secret-value.ts",
            "line": 80
          },
          "name": "cfnDynamicReference",
          "parameters": [
            {
              "docs": {
                "summary": "The dynamic reference to use."
              },
              "name": "ref",
              "type": {
                "fqn": "@aws-cdk/core.CfnDynamicReference"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.SecretValue"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "Generally, this is not a recommended approach. AWS Secrets Manager is the\nrecommended way to reference secrets.",
            "stability": "stable",
            "summary": "Obtain the secret value through a CloudFormation parameter."
          },
          "locationInModule": {
            "filename": "lib/secret-value.ts",
            "line": 92
          },
          "name": "cfnParameter",
          "parameters": [
            {
              "docs": {
                "summary": "The CloudFormation parameter to use."
              },
              "name": "param",
              "type": {
                "fqn": "@aws-cdk/core.CfnParameter"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.SecretValue"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "*Do not use this method for any secrets that you care about.*\n\nThe only reasonable use case for using this method is when you are testing.",
            "stability": "stable",
            "summary": "Construct a literal secret value for use with secret-aware constructs."
          },
          "locationInModule": {
            "filename": "lib/secret-value.ts",
            "line": 28
          },
          "name": "plainText",
          "parameters": [
            {
              "name": "secret",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.SecretValue"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Creates a `SecretValue` with a value which is dynamically loaded from AWS Secrets Manager."
          },
          "locationInModule": {
            "filename": "lib/secret-value.ts",
            "line": 37
          },
          "name": "secretsManager",
          "parameters": [
            {
              "docs": {
                "summary": "The ID or ARN of the secret."
              },
              "name": "secretId",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "Options."
              },
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.SecretsManagerSecretOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.SecretValue"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Use a secret value stored from a Systems Manager (SSM) parameter."
          },
          "locationInModule": {
            "filename": "lib/secret-value.ts",
            "line": 68
          },
          "name": "ssmSecure",
          "parameters": [
            {
              "docs": {
                "remarks": "The parameter name is case-sensitive.",
                "summary": "The name of the parameter in the Systems Manager Parameter Store."
              },
              "name": "parameterName",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "remarks": "You must specify the exact version. You cannot currently specify that\nAWS CloudFormation use the latest version of a parameter.",
                "summary": "An integer that specifies the version of the parameter to use."
              },
              "name": "version",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.SecretValue"
            }
          },
          "static": true
        }
      ],
      "name": "SecretValue"
    },
    "@aws-cdk/core.SecretsManagerSecretOptions": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Options for referencing a secret value from Secrets Manager."
      },
      "fqn": "@aws-cdk/core.SecretsManagerSecretOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/secret-value.ts",
        "line": 104
      },
      "name": "SecretsManagerSecretOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- returns all the content stored in the Secrets Manager secret.",
            "remarks": "This can only be used if the secret\nstores a JSON object.",
            "stability": "stable",
            "summary": "The key of a JSON field to retrieve."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/secret-value.ts",
            "line": 129
          },
          "name": "jsonField",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "AWSCURRENT",
            "remarks": "Can specify at most one of `versionId` and `versionStage`.",
            "stability": "stable",
            "summary": "Specifies the unique identifier of the version of the secret you want to use."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/secret-value.ts",
            "line": 121
          },
          "name": "versionId",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "AWSCURRENT",
            "remarks": "Can specify at most one of `versionId` and `versionStage`.",
            "stability": "stable",
            "summary": "Specified the secret version that you want to retrieve by the staging label attached to the version."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/secret-value.ts",
            "line": 112
          },
          "name": "versionStage",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.Size": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "The amount can be specified either as a literal value (e.g: `10`) which\ncannot be negative, or as an unresolved number token.\n\nWhen the amount is passed as a token, unit conversion is not possible.",
        "stability": "stable",
        "summary": "Represents the amount of digital storage."
      },
      "fqn": "@aws-cdk/core.Size",
      "kind": "class",
      "locationInModule": {
        "filename": "lib/size.ts",
        "line": 11
      },
      "methods": [
        {
          "docs": {
            "remarks": "1 GiB = 1024 MiB",
            "returns": "a new `Size` instance",
            "stability": "stable",
            "summary": "Create a Storage representing an amount gibibytes."
          },
          "locationInModule": {
            "filename": "lib/size.ts",
            "line": 44
          },
          "name": "gibibytes",
          "parameters": [
            {
              "docs": {
                "summary": "the amount of gibibytes to be represented."
              },
              "name": "amount",
              "type": {
                "primitive": "number"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.Size"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "1 KiB = 1024 bytes",
            "returns": "a new `Size` instance",
            "stability": "stable",
            "summary": "Create a Storage representing an amount kibibytes."
          },
          "locationInModule": {
            "filename": "lib/size.ts",
            "line": 20
          },
          "name": "kibibytes",
          "parameters": [
            {
              "docs": {
                "summary": "the amount of kibibytes to be represented."
              },
              "name": "amount",
              "type": {
                "primitive": "number"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.Size"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "1 MiB = 1024 KiB",
            "returns": "a new `Size` instance",
            "stability": "stable",
            "summary": "Create a Storage representing an amount mebibytes."
          },
          "locationInModule": {
            "filename": "lib/size.ts",
            "line": 32
          },
          "name": "mebibytes",
          "parameters": [
            {
              "docs": {
                "summary": "the amount of mebibytes to be represented."
              },
              "name": "amount",
              "type": {
                "primitive": "number"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.Size"
            }
          },
          "static": true
        },
        {
          "docs": {
            "deprecated": "use `pebibytes` instead",
            "remarks": "1 PiB = 1024 TiB",
            "stability": "deprecated",
            "summary": "Create a Storage representing an amount pebibytes."
          },
          "locationInModule": {
            "filename": "lib/size.ts",
            "line": 66
          },
          "name": "pebibyte",
          "parameters": [
            {
              "name": "amount",
              "type": {
                "primitive": "number"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.Size"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "1 PiB = 1024 TiB",
            "returns": "a new `Size` instance",
            "stability": "stable",
            "summary": "Create a Storage representing an amount pebibytes."
          },
          "locationInModule": {
            "filename": "lib/size.ts",
            "line": 78
          },
          "name": "pebibytes",
          "parameters": [
            {
              "docs": {
                "summary": "the amount of pebibytes to be represented."
              },
              "name": "amount",
              "type": {
                "primitive": "number"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.Size"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "1 TiB = 1024 GiB",
            "returns": "a new `Size` instance",
            "stability": "stable",
            "summary": "Create a Storage representing an amount tebibytes."
          },
          "locationInModule": {
            "filename": "lib/size.ts",
            "line": 56
          },
          "name": "tebibytes",
          "parameters": [
            {
              "docs": {
                "summary": "the amount of tebibytes to be represented."
              },
              "name": "amount",
              "type": {
                "primitive": "number"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.Size"
            }
          },
          "static": true
        },
        {
          "docs": {
            "returns": "the quantity of bytes expressed in gibibytes",
            "stability": "stable",
            "summary": "Return this storage as a total number of gibibytes."
          },
          "locationInModule": {
            "filename": "lib/size.ts",
            "line": 122
          },
          "name": "toGibibytes",
          "parameters": [
            {
              "docs": {
                "summary": "the conversion options."
              },
              "name": "opts",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.SizeConversionOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "number"
            }
          }
        },
        {
          "docs": {
            "returns": "the quantity of bytes expressed in kibibytes",
            "stability": "stable",
            "summary": "Return this storage as a total number of kibibytes."
          },
          "locationInModule": {
            "filename": "lib/size.ts",
            "line": 100
          },
          "name": "toKibibytes",
          "parameters": [
            {
              "docs": {
                "summary": "the conversion options."
              },
              "name": "opts",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.SizeConversionOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "number"
            }
          }
        },
        {
          "docs": {
            "returns": "the quantity of bytes expressed in mebibytes",
            "stability": "stable",
            "summary": "Return this storage as a total number of mebibytes."
          },
          "locationInModule": {
            "filename": "lib/size.ts",
            "line": 111
          },
          "name": "toMebibytes",
          "parameters": [
            {
              "docs": {
                "summary": "the conversion options."
              },
              "name": "opts",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.SizeConversionOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "number"
            }
          }
        },
        {
          "docs": {
            "returns": "the quantity of bytes expressed in pebibytes",
            "stability": "stable",
            "summary": "Return this storage as a total number of pebibytes."
          },
          "locationInModule": {
            "filename": "lib/size.ts",
            "line": 144
          },
          "name": "toPebibytes",
          "parameters": [
            {
              "docs": {
                "summary": "the conversion options."
              },
              "name": "opts",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.SizeConversionOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "number"
            }
          }
        },
        {
          "docs": {
            "returns": "the quantity of bytes expressed in tebibytes",
            "stability": "stable",
            "summary": "Return this storage as a total number of tebibytes."
          },
          "locationInModule": {
            "filename": "lib/size.ts",
            "line": 133
          },
          "name": "toTebibytes",
          "parameters": [
            {
              "docs": {
                "summary": "the conversion options."
              },
              "name": "opts",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.SizeConversionOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "number"
            }
          }
        }
      ],
      "name": "Size"
    },
    "@aws-cdk/core.SizeConversionOptions": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Options for how to convert time to a different unit."
      },
      "fqn": "@aws-cdk/core.SizeConversionOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/size.ts",
        "line": 164
      },
      "name": "SizeConversionOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "SizeRoundingBehavior.FAIL",
            "stability": "stable",
            "summary": "How conversions should behave when it encounters a non-integer result."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/size.ts",
            "line": 169
          },
          "name": "rounding",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.SizeRoundingBehavior"
          }
        }
      ]
    },
    "@aws-cdk/core.SizeRoundingBehavior": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "Rounding behaviour when converting between units of `Size`."
      },
      "fqn": "@aws-cdk/core.SizeRoundingBehavior",
      "kind": "enum",
      "locationInModule": {
        "filename": "lib/size.ts",
        "line": 152
      },
      "members": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Fail the conversion if the result is not an integer."
          },
          "name": "FAIL"
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "If the result is not an integer, round it to the closest integer less than the result."
          },
          "name": "FLOOR"
        },
        {
          "docs": {
            "remarks": "Return even if the result is a fraction.",
            "stability": "stable",
            "summary": "Don't round."
          },
          "name": "NONE"
        }
      ],
      "name": "SizeRoundingBehavior"
    },
    "@aws-cdk/core.Stack": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.Construct",
      "docs": {
        "stability": "stable",
        "summary": "A root construct which represents a single CloudFormation stack."
      },
      "fqn": "@aws-cdk/core.Stack",
      "initializer": {
        "docs": {
          "stability": "stable",
          "summary": "Creates a new stack."
        },
        "locationInModule": {
          "filename": "lib/stack.ts",
          "line": 333
        },
        "parameters": [
          {
            "docs": {
              "summary": "Parent of this stack, usually an `App` or a `Stage`, but could be any construct."
            },
            "name": "scope",
            "optional": true,
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "docs": {
              "remarks": "If `stackName` is not explicitly\ndefined, this id (and any parent IDs) will be used to determine the\nphysical ID of the stack.",
              "summary": "The construct ID of this stack."
            },
            "name": "id",
            "optional": true,
            "type": {
              "primitive": "string"
            }
          },
          {
            "docs": {
              "summary": "Stack properties."
            },
            "name": "props",
            "optional": true,
            "type": {
              "fqn": "@aws-cdk/core.StackProps"
            }
          }
        ]
      },
      "interfaces": [
        "@aws-cdk/core.ITaggable"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "lib/stack.ts",
        "line": 147
      },
      "methods": [
        {
          "docs": {
            "remarks": "We do attribute detection since we can't reliably use 'instanceof'.",
            "stability": "stable",
            "summary": "Return whether the given object is a Stack."
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 153
          },
          "name": "isStack",
          "parameters": [
            {
              "name": "x",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "Fails if there is no stack up the tree.",
            "stability": "stable",
            "summary": "Looks up the first stack scope in which `construct` is defined."
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 161
          },
          "name": "of",
          "parameters": [
            {
              "docs": {
                "summary": "The construct to start the search from."
              },
              "name": "construct",
              "type": {
                "fqn": "constructs.IConstruct"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.Stack"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "This can be used to define dependencies between any two stacks within an\napp, and also supports nested stacks.",
            "stability": "stable",
            "summary": "Add a dependency between this stack and another stack."
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 474
          },
          "name": "addDependency",
          "parameters": [
            {
              "name": "target",
              "type": {
                "fqn": "@aws-cdk/core.Stack"
              }
            },
            {
              "name": "reason",
              "optional": true,
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "deprecated": "Use `stack.synthesizer.addDockerImageAsset()` if you are calling,\nand a different `IStackSynthesizer` class if you are implementing.",
            "stability": "deprecated",
            "summary": "Register a docker image asset on this Stack."
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 660
          },
          "name": "addDockerImageAsset",
          "parameters": [
            {
              "name": "asset",
              "type": {
                "fqn": "@aws-cdk/core.DockerImageAssetSource"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.DockerImageAssetLocation"
            }
          }
        },
        {
          "docs": {
            "deprecated": "Use `stack.synthesizer.addFileAsset()` if you are calling,\nand a different IStackSynthesizer class if you are implementing.",
            "stability": "deprecated",
            "summary": "Register a file asset on this Stack."
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 650
          },
          "name": "addFileAsset",
          "parameters": [
            {
              "name": "asset",
              "type": {
                "fqn": "@aws-cdk/core.FileAssetSource"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.FileAssetLocation"
            }
          }
        },
        {
          "docs": {
            "example": "addTransform('AWS::Serverless-2016-10-31')",
            "remarks": "Duplicate values are removed when stack is synthesized.",
            "see": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-section-structure.html",
            "stability": "stable",
            "summary": "Add a Transform to this stack. A Transform is a macro that AWS CloudFormation uses to process your template."
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 692
          },
          "name": "addTransform",
          "parameters": [
            {
              "docs": {
                "summary": "The transform to add."
              },
              "name": "transform",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "By default, uses\nthe `HashedAddressingScheme` but this method can be overridden to customize\nthis behavior.\n\nIn order to make sure logical IDs are unique and stable, we hash the resource\nconstruct tree path (i.e. toplevel/secondlevel/.../myresource) and add it as\na suffix to the path components joined without a separator (CloudFormation\nIDs only allow alphanumeric characters).\n\nThe result will be:\n\n   <path.join('')><md5(path.join('/')>\n     \"human\"      \"hash\"\n\nIf the \"human\" part of the ID exceeds 240 characters, we simply trim it so\nthe total ID doesn't exceed CloudFormation's 255 character limit.\n\nWe only take 8 characters from the md5 hash (0.000005 chance of collision).\n\nSpecial cases:\n\n- If the path only contains a single component (i.e. it's a top-level\n   resource), we won't add the hash to it. The hash is not needed for\n   disamiguation and also, it allows for a more straightforward migration an\n   existing CloudFormation template to a CDK stack without logical ID changes\n   (or renames).\n- For aesthetic reasons, if the last components of the path are the same\n   (i.e. `L1/L2/Pipeline/Pipeline`), they will be de-duplicated to make the\n   resulting human portion of the ID more pleasing: `L1L2Pipeline<HASH>`\n   instead of `L1L2PipelinePipeline<HASH>`\n- If a component is named \"Default\" it will be omitted from the path. This\n   allows refactoring higher level abstractions around constructs without affecting\n   the IDs of already deployed resources.\n- If a component is named \"Resource\" it will be omitted from the user-visible\n   path, but included in the hash. This reduces visual noise in the human readable\n   part of the identifier.",
            "stability": "stable",
            "summary": "Returns the naming scheme used to allocate logical IDs."
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 801
          },
          "name": "allocateLogicalId",
          "parameters": [
            {
              "docs": {
                "summary": "The element for which the logical ID is allocated."
              },
              "name": "cfnElement",
              "type": {
                "fqn": "@aws-cdk/core.CfnElement"
              }
            }
          ],
          "protected": true,
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        },
        {
          "docs": {
            "remarks": "If `partition`, `region` or `account` are not specified, the stack's\npartition, region and account will be used.\n\nIf any component is the empty string, an empty string will be inserted\ninto the generated ARN at the location that component corresponds to.\n\nThe ARN will be formatted as follows:\n\n   arn:{partition}:{service}:{region}:{account}:{resource}{sep}}{resource-name}\n\nThe required ARN pieces that are omitted will be taken from the stack that\nthe 'scope' is attached to. If all ARN pieces are supplied, the supplied scope\ncan be 'undefined'.",
            "stability": "stable",
            "summary": "Creates an ARN from components."
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 559
          },
          "name": "formatArn",
          "parameters": [
            {
              "name": "components",
              "type": {
                "fqn": "@aws-cdk/core.ArnComponents"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        },
        {
          "docs": {
            "remarks": "This method is called when a `CfnElement` is created and used to render the\ninitial logical identity of resources. Logical ID renames are applied at\nthis stage.\n\nThis method uses the protected method `allocateLogicalId` to render the\nlogical ID for an element. To modify the naming scheme, extend the `Stack`\nclass and override this method.",
            "stability": "stable",
            "summary": "Allocates a stack-unique CloudFormation-compatible logical identity for a specific resource."
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 463
          },
          "name": "getLogicalId",
          "parameters": [
            {
              "docs": {
                "summary": "The CloudFormation element for which a logical identity is needed."
              },
              "name": "element",
              "type": {
                "fqn": "@aws-cdk/core.CfnElement"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        },
        {
          "docs": {
            "remarks": "If the ARN is a concrete string, it will be parsed and validated. The\nseparator (`sep`) will be set to '/' if the 6th component includes a '/',\nin which case, `resource` will be set to the value before the '/' and\n`resourceName` will be the rest. In case there is no '/', `resource` will\nbe set to the 6th components and `resourceName` will be set to the rest\nof the string.\n\nIf the ARN includes tokens (or is a token), the ARN cannot be validated,\nsince we don't have the actual value yet at the time of this function\ncall. You will have to know the separator and the type of ARN. The\nresulting `ArnComponents` object will contain tokens for the\nsubexpressions of the ARN, not string literals. In this case this\nfunction cannot properly parse the complete final resourceName (path) out\nof ARNs that use '/' to both separate the 'resource' from the\n'resourceName' AND to subdivide the resourceName further. For example, in\nS3 ARNs:\n\n    arn:aws:s3:::my_corporate_bucket/path/to/exampleobject.png\n\nAfter parsing the resourceName will not contain\n'path/to/exampleobject.png' but simply 'path'. This is a limitation\nbecause there is no slicing functionality in CloudFormation templates.",
            "returns": "an ArnComponents object which allows access to the various\ncomponents of the ARN.",
            "stability": "stable",
            "summary": "Given an ARN, parses it and returns components."
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 601
          },
          "name": "parseArn",
          "parameters": [
            {
              "docs": {
                "summary": "The ARN string to parse."
              },
              "name": "arn",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "The separator used to separate resource from resourceName."
              },
              "name": "sepIfToken",
              "optional": true,
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "remarks": "For\nexample, SNS Topics ARNs have the 'resource' component contain the topic\nname, and no 'resourceName' component.",
                "summary": "Whether there is a name component in the ARN at all."
              },
              "name": "hasName",
              "optional": true,
              "type": {
                "primitive": "boolean"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.ArnComponents"
            }
          }
        },
        {
          "docs": {
            "deprecated": "cross reference handling has been moved to `App.prepare()`.",
            "returns": "reference itself without any change",
            "see": "https://github.com/aws/aws-cdk/pull/7187",
            "stability": "deprecated",
            "summary": "Deprecated."
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 875
          },
          "name": "prepareCrossReference",
          "parameters": [
            {
              "name": "_sourceStack",
              "type": {
                "fqn": "@aws-cdk/core.Stack"
              }
            },
            {
              "name": "reference",
              "type": {
                "fqn": "@aws-cdk/core.Reference"
              }
            }
          ],
          "protected": true,
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.IResolvable"
            }
          }
        },
        {
          "docs": {
            "remarks": "To modify the naming scheme strategy, extend the `Stack` class and\noverride the `allocateLogicalId` method.",
            "stability": "stable",
            "summary": "Rename a generated logical identities."
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 444
          },
          "name": "renameLogicalId",
          "parameters": [
            {
              "name": "oldId",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "newId",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "Contains instructions which will be emitted into the cloud assembly on how\nthe key should be supplied.",
            "stability": "stable",
            "summary": "Indicate that a context key was expected."
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 431
          },
          "name": "reportMissingContext",
          "parameters": [
            {
              "docs": {
                "summary": "The set of parameters needed to obtain the context."
              },
              "name": "report",
              "type": {
                "fqn": "@aws-cdk/cx-api.MissingContext"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Resolve a tokenized value in the context of the current stack."
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 407
          },
          "name": "resolve",
          "parameters": [
            {
              "name": "obj",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Convert an object, potentially containing tokens, to a JSON string."
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 419
          },
          "name": "toJsonString",
          "parameters": [
            {
              "name": "obj",
              "type": {
                "primitive": "any"
              }
            },
            {
              "name": "space",
              "optional": true,
              "type": {
                "primitive": "number"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        }
      ],
      "name": "Stack",
      "properties": [
        {
          "docs": {
            "remarks": "This value is resolved according to the following rules:\n\n1. The value provided to `env.account` when the stack is defined. This can\n    either be a concerete account (e.g. `585695031111`) or the\n    `Aws.accountId` token.\n3. `Aws.accountId`, which represents the CloudFormation intrinsic reference\n    `{ \"Ref\": \"AWS::AccountId\" }` encoded as a string token.\n\nPreferably, you should use the return value as an opaque string and not\nattempt to parse it to implement your logic. If you do, you must first\ncheck that it is a concerete value an not an unresolved token. If this\nvalue is an unresolved token (`Token.isUnresolved(stack.account)` returns\n`true`), this implies that the user wishes that this stack will synthesize\ninto a **account-agnostic template**. In this case, your code should either\nfail (throw an error, emit a synth error using `Annotations.of(construct).addError()`) or\nimplement some other region-agnostic behavior.",
            "stability": "stable",
            "summary": "The AWS account into which this stack will be deployed."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 246
          },
          "name": "account",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "The ID of the cloud assembly artifact for this stack."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 287
          },
          "name": "artifactId",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "remarks": "If the stack is environment-agnostic (either account and/or region are\ntokens), this property will return an array with 2 tokens that will resolve\nat deploy-time to the first two availability zones returned from CloudFormation's\n`Fn::GetAZs` intrinsic function.\n\nIf they are not available in the context, returns a set of dummy values and\nreports them as missing, and let the CLI resolve them by calling EC2\n`DescribeAvailabilityZones` on the target environment.\n\nTo specify a different strategy for selecting availability zones override this method.",
            "stability": "stable",
            "summary": "Returns the list of AZs that are available in the AWS environment (account/region) associated with this stack."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 620
          },
          "name": "availabilityZones",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Return the stacks this stack depends on."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 481
          },
          "name": "dependencies",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "@aws-cdk/core.Stack"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "remarks": "In the form\n`aws://account/region`. Use `stack.account` and `stack.region` to obtain\nthe specific values, no need to parse.\n\nYou can use this value to determine if two stacks are targeting the same\nenvironment.\n\nIf either `stack.account` or `stack.region` are not concrete values (e.g.\n`Aws.account` or `Aws.region`) the special strings `unknown-account` and/or\n`unknown-region` will be used respectively to indicate this stack is\nregion/account-agnostic.",
            "stability": "stable",
            "summary": "The environment coordinates in which this stack is deployed."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 261
          },
          "name": "environment",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Indicates if this is a nested stack, in which case `parentStack` will include a reference to it's parent."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 538
          },
          "name": "nested",
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Returns the list of notification Amazon Resource Names (ARNs) for the current stack."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 531
          },
          "name": "notificationArns",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "The partition in which this stack is defined."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 504
          },
          "name": "partition",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "remarks": "This value is resolved according to the following rules:\n\n1. The value provided to `env.region` when the stack is defined. This can\n    either be a concerete region (e.g. `us-west-2`) or the `Aws.region`\n    token.\n3. `Aws.region`, which is represents the CloudFormation intrinsic reference\n    `{ \"Ref\": \"AWS::Region\" }` encoded as a string token.\n\nPreferably, you should use the return value as an opaque string and not\nattempt to parse it to implement your logic. If you do, you must first\ncheck that it is a concerete value an not an unresolved token. If this\nvalue is an unresolved token (`Token.isUnresolved(stack.region)` returns\n`true`), this implies that the user wishes that this stack will synthesize\ninto a **region-agnostic template**. In this case, your code should either\nfail (throw an error, emit a synth error using `Annotations.of(construct).addError()`) or\nimplement some other region-agnostic behavior.",
            "stability": "stable",
            "summary": "The AWS region into which this stack will be deployed (e.g. `us-west-2`)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 224
          },
          "name": "region",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "example": "After resolving, looks like arn:aws:cloudformation:us-west-2:123456789012:stack/teststack/51af3dc0-da77-11e4-872e-1234567db123",
            "stability": "stable",
            "summary": "The ID of the stack."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 524
          },
          "name": "stackId",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "remarks": "This is either the name defined explicitly in the `stackName` prop or\nallocated based on the stack's location in the construct tree. Stacks that\nare directly defined under the app use their construct `id` as their stack\nname. Stacks that are defined deeper within the tree will use a hashed naming\nscheme based on the construct path to ensure uniqueness.\n\nIf you wish to obtain the deploy-time AWS::StackName intrinsic,\nyou can use `Aws.stackName` directly.",
            "stability": "stable",
            "summary": "The concrete CloudFormation physical stack name."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 497
          },
          "name": "stackName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "Synthesis method for this stack."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 294
          },
          "name": "synthesizer",
          "type": {
            "fqn": "@aws-cdk/core.IStackSynthesizer"
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Tags to be applied to the stack."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 197
          },
          "name": "tags",
          "overrides": "@aws-cdk/core.ITaggable",
          "type": {
            "fqn": "@aws-cdk/core.TagManager"
          }
        },
        {
          "docs": {
            "example": "MyStack.template.json",
            "stability": "stable",
            "summary": "The name of the CloudFormation template file emitted to the output directory during synthesis."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 282
          },
          "name": "templateFile",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Options for CloudFormation template (like version, transform, description)."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 202
          },
          "name": "templateOptions",
          "type": {
            "fqn": "@aws-cdk/core.ITemplateOptions"
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "The Amazon domain suffix for the region in which this stack is defined."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 514
          },
          "name": "urlSuffix",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "If this is a nested stack, returns it's parent stack."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 667
          },
          "name": "nestedStackParent",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.Stack"
          }
        },
        {
          "docs": {
            "remarks": "`undefined` for top-level (non-nested) stacks.",
            "stability": "experimental",
            "summary": "If this is a nested stack, this represents its `AWS::CloudFormation::Stack` resource."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 274
          },
          "name": "nestedStackResource",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.CfnResource"
          }
        },
        {
          "docs": {
            "deprecated": "use `nestedStackParent`",
            "stability": "deprecated",
            "summary": "Returns the parent of a nested stack."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 676
          },
          "name": "parentStack",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.Stack"
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Whether termination protection is enabled for this stack."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 266
          },
          "name": "terminationProtection",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ]
    },
    "@aws-cdk/core.StackProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable"
      },
      "fqn": "@aws-cdk/core.StackProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/stack.ts",
        "line": 32
      },
      "name": "StackProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "`analyticsReporting` setting of containing `App`, or value of\n'aws:cdk:version-reporting' context key",
            "stability": "stable",
            "summary": "Include runtime versioning information in this Stack."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 141
          },
          "name": "analyticsReporting",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- No description.",
            "stability": "stable",
            "summary": "A description of the stack."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 38
          },
          "name": "description",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- The environment of the containing `Stage` if available,\notherwise create the stack will be environment-agnostic.",
            "example": "// Use a concrete account and region to deploy this stack to:\n// `.account` and `.region` will simply return these values.\nnew MyStack(app, 'Stack1', {\n  env: {\n    account: '123456789012',\n    region: 'us-east-1'\n  },\n});\n\n// Use the CLI's current credentials to determine the target environment:\n// `.account` and `.region` will reflect the account+region the CLI\n// is configured to use (based on the user CLI credentials)\nnew MyStack(app, 'Stack2', {\n  env: {\n    account: process.env.CDK_DEFAULT_ACCOUNT,\n    region: process.env.CDK_DEFAULT_REGION\n  },\n});\n\n// Define multiple stacks stage associated with an environment\nconst myStage = new Stage(app, 'MyStage', {\n  env: {\n    account: '123456789012',\n    region: 'us-east-1'\n  }\n});\n\n// both of these stacks will use the stage's account/region:\n// `.account` and `.region` will resolve to the concrete values as above\nnew MyStack(myStage, 'Stack1');\nnew YourStack(myStage, 'Stack1');\n\n// Define an environment-agnostic stack:\n// `.account` and `.region` will resolve to `{ \"Ref\": \"AWS::AccountId\" }` and `{ \"Ref\": \"AWS::Region\" }` respectively.\n// which will only resolve to actual values by CloudFormation during deployment.\nnew MyStack(app, 'Stack1');",
            "remarks": "Set the `region`/`account` fields of `env` to either a concrete value to\nselect the indicated environment (recommended for production stacks), or to\nthe values of environment variables\n`CDK_DEFAULT_REGION`/`CDK_DEFAULT_ACCOUNT` to let the target environment\ndepend on the AWS credentials/configuration that the CDK CLI is executed\nunder (recommended for development stacks).\n\nIf the `Stack` is instantiated inside a `Stage`, any undefined\n`region`/`account` fields from `env` will default to the same field on the\nencompassing `Stage`, if configured there.\n\nIf either `region` or `account` are not set nor inherited from `Stage`, the\nStack will be considered \"*environment-agnostic*\"\". Environment-agnostic\nstacks can be deployed to any environment but may not be able to take\nadvantage of all features of the CDK. For example, they will not be able to\nuse environmental context lookups such as `ec2.Vpc.fromLookup` and will not\nautomatically translate Service Principals to the right format based on the\nenvironment's AWS partition, and other such enhancements.",
            "stability": "stable",
            "summary": "The AWS environment (account/region) where this stack will be deployed."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 104
          },
          "name": "env",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.Environment"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- Derived from construct path.",
            "stability": "stable",
            "summary": "Name to deploy the stack with."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 111
          },
          "name": "stackName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- `DefaultStackSynthesizer` if the `@aws-cdk/core:newStyleStackSynthesis` feature flag\nis set, `LegacyStackSynthesizer` otherwise.",
            "stability": "stable",
            "summary": "Synthesis method to use while deploying this stack."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 126
          },
          "name": "synthesizer",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.IStackSynthesizer"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "{}",
            "stability": "stable",
            "summary": "Stack tags that will be applied to all the taggable resources and the stack itself."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 118
          },
          "name": "tags",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "stable",
            "summary": "Whether to enable termination protection for this stack."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 133
          },
          "name": "terminationProtection",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ]
    },
    "@aws-cdk/core.StackSynthesizer": {
      "abstract": true,
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "This class needs to exist to provide public surface area for external\nimplementations of stack synthesizers. The protected methods give\naccess to functions that are otherwise @_internal to the framework\nand could not be accessed by external implementors.",
        "stability": "stable",
        "summary": "Base class for implementing an IStackSynthesizer."
      },
      "fqn": "@aws-cdk/core.StackSynthesizer",
      "initializer": {
        "docs": {
          "stability": "stable"
        }
      },
      "interfaces": [
        "@aws-cdk/core.IStackSynthesizer"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "lib/stack-synthesizers/stack-synthesizer.ts",
        "line": 15
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "remarks": "Returns the parameters that can be used to refer to the asset inside the template.",
            "stability": "stable",
            "summary": "Register a Docker Image Asset."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/stack-synthesizer.ts",
            "line": 35
          },
          "name": "addDockerImageAsset",
          "overrides": "@aws-cdk/core.IStackSynthesizer",
          "parameters": [
            {
              "name": "asset",
              "type": {
                "fqn": "@aws-cdk/core.DockerImageAssetSource"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.DockerImageAssetLocation"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Returns the parameters that can be used to refer to the asset inside the template.",
            "stability": "stable",
            "summary": "Register a File Asset."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/stack-synthesizer.ts",
            "line": 28
          },
          "name": "addFileAsset",
          "overrides": "@aws-cdk/core.IStackSynthesizer",
          "parameters": [
            {
              "name": "asset",
              "type": {
                "fqn": "@aws-cdk/core.FileAssetSource"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.FileAssetLocation"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "remarks": "Must be called before any of the other methods are called.",
            "stability": "stable",
            "summary": "Bind to the stack this environment is going to be used on."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/stack-synthesizer.ts",
            "line": 21
          },
          "name": "bind",
          "overrides": "@aws-cdk/core.IStackSynthesizer",
          "parameters": [
            {
              "name": "stack",
              "type": {
                "fqn": "@aws-cdk/core.Stack"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "Use default settings to add a CloudFormationStackArtifact artifact to\nthe given synthesis session.",
            "stability": "stable",
            "summary": "Write the stack artifact to the session."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/stack-synthesizer.ts",
            "line": 56
          },
          "name": "emitStackArtifact",
          "parameters": [
            {
              "name": "stack",
              "type": {
                "fqn": "@aws-cdk/core.Stack"
              }
            },
            {
              "name": "session",
              "type": {
                "fqn": "@aws-cdk/core.ISynthesisSession"
              }
            },
            {
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.SynthesizeStackArtifactOptions"
              }
            }
          ],
          "protected": true
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Synthesize the associated stack to the session."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/stack-synthesizer.ts",
            "line": 40
          },
          "name": "synthesize",
          "overrides": "@aws-cdk/core.IStackSynthesizer",
          "parameters": [
            {
              "name": "session",
              "type": {
                "fqn": "@aws-cdk/core.ISynthesisSession"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Have the stack write out its template."
          },
          "locationInModule": {
            "filename": "lib/stack-synthesizers/stack-synthesizer.ts",
            "line": 45
          },
          "name": "synthesizeStackTemplate",
          "parameters": [
            {
              "name": "stack",
              "type": {
                "fqn": "@aws-cdk/core.Stack"
              }
            },
            {
              "name": "session",
              "type": {
                "fqn": "@aws-cdk/core.ISynthesisSession"
              }
            }
          ],
          "protected": true
        }
      ],
      "name": "StackSynthesizer"
    },
    "@aws-cdk/core.Stage": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.Construct",
      "docs": {
        "remarks": "Derive a subclass of `Stage` and use it to model a single instance of your\napplication.\n\nYou can then instantiate your subclass multiple times to model multiple\ncopies of your application which should be be deployed to different\nenvironments.",
        "stability": "stable",
        "summary": "An abstract application modeling unit consisting of Stacks that should be deployed together."
      },
      "fqn": "@aws-cdk/core.Stage",
      "initializer": {
        "docs": {
          "stability": "stable"
        },
        "locationInModule": {
          "filename": "lib/stage.ts",
          "line": 133
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "constructs.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "props",
            "optional": true,
            "type": {
              "fqn": "@aws-cdk/core.StageProps"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/stage.ts",
        "line": 71
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Test whether the given construct is a stage."
          },
          "locationInModule": {
            "filename": "lib/stage.ts",
            "line": 87
          },
          "name": "isStage",
          "parameters": [
            {
              "name": "x",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "If called\non a nested stage, returns its parent.",
            "stability": "experimental",
            "summary": "Return the stage this construct is contained with, if available."
          },
          "locationInModule": {
            "filename": "lib/stage.ts",
            "line": 78
          },
          "name": "of",
          "parameters": [
            {
              "name": "construct",
              "type": {
                "fqn": "constructs.IConstruct"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "fqn": "@aws-cdk/core.Stage"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "Once an assembly has been synthesized, it cannot be modified. Subsequent\ncalls will return the same assembly.",
            "stability": "stable",
            "summary": "Synthesize this stage into a cloud assembly."
          },
          "locationInModule": {
            "filename": "lib/stage.ts",
            "line": 175
          },
          "name": "synth",
          "parameters": [
            {
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.StageSynthesisOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/cx-api.CloudAssembly"
            }
          }
        }
      ],
      "name": "Stage",
      "properties": [
        {
          "docs": {
            "remarks": "Derived from the construct path.",
            "stability": "experimental",
            "summary": "Artifact ID of the assembly if it is a nested stage. The root stage (app) will return an empty string."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stage.ts",
            "line": 164
          },
          "name": "artifactId",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "The cloud assembly output directory."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stage.ts",
            "line": 152
          },
          "name": "outdir",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "remarks": "Based on names of the parent stages separated by\nhypens.",
            "stability": "experimental",
            "summary": "The name of the stage."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stage.ts",
            "line": 119
          },
          "name": "stageName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The default account for all resources defined within this stage."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stage.ts",
            "line": 103
          },
          "name": "account",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "remarks": "*",
            "stability": "experimental",
            "summary": "The parent stage or `undefined` if this is the app."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stage.ts",
            "line": 126
          },
          "name": "parentStage",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.Stage"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "The default region for all resources defined within this stage."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stage.ts",
            "line": 96
          },
          "name": "region",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.StageProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Initialization props for a stage."
      },
      "fqn": "@aws-cdk/core.StageProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/stage.ts",
        "line": 13
      },
      "name": "StageProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- The environments should be configured on the `Stack`s.",
            "example": "// Use a concrete account and region to deploy this Stage to\nnew MyStage(app, 'Stage1', {\n  env: { account: '123456789012', region: 'us-east-1' },\n});\n\n// Use the CLI's current credentials to determine the target environment\nnew MyStage(app, 'Stage2', {\n  env: { account: process.env.CDK_DEFAULT_ACCOUNT, region: process.env.CDK_DEFAULT_REGION },\n});",
            "remarks": "Stacks defined inside this `Stage` with either `region` or `account` missing\nfrom its env will use the corresponding field given here.\n\nIf either `region` or `account`is is not configured for `Stack` (either on\nthe `Stack` itself or on the containing `Stage`), the Stack will be\n*environment-agnostic*.\n\nEnvironment-agnostic stacks can be deployed to any environment, may not be\nable to take advantage of all features of the CDK. For example, they will\nnot be able to use environmental context lookups, will not automatically\ntranslate Service Principals to the right format based on the environment's\nAWS partition, and other such enhancements.",
            "stability": "stable",
            "summary": "Default AWS environment (account/region) for `Stack`s in this `Stage`."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stage.ts",
            "line": 44
          },
          "name": "env",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.Environment"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- for nested stages, outdir will be determined as a relative\ndirectory to the outdir of the app. For apps, if outdir is not specified, a\ntemporary directory will be created.",
            "remarks": "Can only be specified if this stage is the root stage (the app). If this is\nspecified and this stage is nested within another stage, an error will be\nthrown.",
            "stability": "stable",
            "summary": "The output directory into which to emit synthesized artifacts."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stage.ts",
            "line": 57
          },
          "name": "outdir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.StageSynthesisOptions": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Options for assemly synthesis."
      },
      "fqn": "@aws-cdk/core.StageSynthesisOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/stage.ts",
        "line": 203
      },
      "name": "StageSynthesisOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "remarks": "This is used by tests to allow for incremental verification of the output.\nDo not use in production.",
            "stability": "stable",
            "summary": "Force a re-synth, even if the stage has already been synthesized."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stage.ts",
            "line": 216
          },
          "name": "force",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- false",
            "stability": "stable",
            "summary": "Should we skip construct validation."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stage.ts",
            "line": 208
          },
          "name": "skipValidation",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ]
    },
    "@aws-cdk/core.StringConcat": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "Drops 'undefined's.",
        "stability": "stable",
        "summary": "Converts all fragments to strings and concats those."
      },
      "fqn": "@aws-cdk/core.StringConcat",
      "initializer": {
        "docs": {
          "stability": "stable"
        }
      },
      "interfaces": [
        "@aws-cdk/core.IFragmentConcatenator"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "lib/resolvable.ts",
        "line": 109
      },
      "methods": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Join the fragment on the left and on the right."
          },
          "locationInModule": {
            "filename": "lib/resolvable.ts",
            "line": 110
          },
          "name": "join",
          "overrides": "@aws-cdk/core.IFragmentConcatenator",
          "parameters": [
            {
              "name": "left",
              "type": {
                "primitive": "any"
              }
            },
            {
              "name": "right",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        }
      ],
      "name": "StringConcat"
    },
    "@aws-cdk/core.SymlinkFollowMode": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "Determines how symlinks are followed."
      },
      "fqn": "@aws-cdk/core.SymlinkFollowMode",
      "kind": "enum",
      "locationInModule": {
        "filename": "lib/fs/options.ts",
        "line": 4
      },
      "members": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Never follow symlinks."
          },
          "name": "NEVER"
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Materialize all symlinks, whether they are internal or external to the source directory."
          },
          "name": "ALWAYS"
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Only follows symlinks that are external to the source directory."
          },
          "name": "EXTERNAL"
        },
        {
          "docs": {
            "remarks": "This is the safest mode of operation as it ensures that copy operations\nwon't materialize files from the user's file system. Internal symlinks are\nnot followed.\n\nIf the copy operation runs into an external symlink, it will fail.",
            "stability": "stable",
            "summary": "Forbids source from having any symlinks pointing outside of the source tree."
          },
          "name": "BLOCK_EXTERNAL"
        }
      ],
      "name": "SymlinkFollowMode"
    },
    "@aws-cdk/core.SynthesisOptions": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "deprecated": "use `app.synth()` or `stage.synth()` instead",
        "stability": "deprecated",
        "summary": "Options for synthesis."
      },
      "fqn": "@aws-cdk/core.SynthesisOptions",
      "interfaces": [
        "@aws-cdk/cx-api.AssemblyBuildOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/construct-compat.ts",
        "line": 194
      },
      "name": "SynthesisOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- creates a temporary directory",
            "stability": "deprecated",
            "summary": "The output directory into which to synthesize the cloud assembly."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 199
          },
          "name": "outdir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "deprecated",
            "summary": "Whether synthesis should skip the validation phase."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 205
          },
          "name": "skipValidation",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ]
    },
    "@aws-cdk/core.SynthesizeStackArtifactOptions": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "remarks": "A subset of `cxschema.AwsCloudFormationStackProperties` of optional settings that need to be\nconfigurable by synthesizers, plus `additionalDependencies`.",
        "stability": "stable",
        "summary": "Stack artifact options."
      },
      "fqn": "@aws-cdk/core.SynthesizeStackArtifactOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/stack-synthesizers/stack-synthesizer.ts",
        "line": 67
      },
      "name": "SynthesizeStackArtifactOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- No additional dependencies",
            "stability": "stable",
            "summary": "Identifiers of additional dependencies."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/stack-synthesizer.ts",
            "line": 73
          },
          "name": "additionalDependencies",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- No role is assumed (current credentials are used)",
            "stability": "stable",
            "summary": "The role that needs to be assumed to deploy the stack."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/stack-synthesizer.ts",
            "line": 87
          },
          "name": "assumeRoleArn",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- No role is passed (currently assumed role/credentials are used)",
            "stability": "stable",
            "summary": "The role that is passed to CloudFormation to execute the change set."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/stack-synthesizer.ts",
            "line": 94
          },
          "name": "cloudFormationExecutionRoleArn",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- No parameters",
            "stability": "stable",
            "summary": "Values for CloudFormation stack parameters that should be passed when the stack is deployed."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/stack-synthesizer.ts",
            "line": 80
          },
          "name": "parameters",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- No bootstrap stack required",
            "stability": "stable",
            "summary": "Version of bootstrap stack required to deploy this stack."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/stack-synthesizer.ts",
            "line": 108
          },
          "name": "requiresBootstrapStackVersion",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- Not uploaded yet, upload just before deploying",
            "stability": "stable",
            "summary": "If the stack template has already been included in the asset manifest, its asset URL."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack-synthesizers/stack-synthesizer.ts",
            "line": 101
          },
          "name": "stackTemplateAssetObjectUrl",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.Tag": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "The Tag Aspect will handle adding a tag to this node and cascading tags to children."
      },
      "fqn": "@aws-cdk/core.Tag",
      "initializer": {
        "docs": {
          "stability": "stable"
        },
        "locationInModule": {
          "filename": "lib/tag-aspect.ts",
          "line": 116
        },
        "parameters": [
          {
            "name": "key",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "value",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "props",
            "optional": true,
            "type": {
              "fqn": "@aws-cdk/core.TagProps"
            }
          }
        ]
      },
      "interfaces": [
        "@aws-cdk/core.IAspect"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "lib/tag-aspect.ts",
        "line": 87
      },
      "methods": [
        {
          "docs": {
            "deprecated": "use `Tags.of(scope).add()`",
            "stability": "deprecated",
            "summary": "DEPRECATED: add tags to the node of a construct and all its the taggable children."
          },
          "locationInModule": {
            "filename": "lib/tag-aspect.ts",
            "line": 94
          },
          "name": "add",
          "parameters": [
            {
              "name": "scope",
              "type": {
                "fqn": "@aws-cdk/core.Construct"
              }
            },
            {
              "name": "key",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "value",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "props",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.TagProps"
              }
            }
          ],
          "static": true
        },
        {
          "docs": {
            "deprecated": "use `Tags.of(scope).remove()`",
            "stability": "deprecated",
            "summary": "DEPRECATED: remove tags to the node of a construct and all its the taggable children."
          },
          "locationInModule": {
            "filename": "lib/tag-aspect.ts",
            "line": 104
          },
          "name": "remove",
          "parameters": [
            {
              "name": "scope",
              "type": {
                "fqn": "@aws-cdk/core.Construct"
              }
            },
            {
              "name": "key",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "props",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.TagProps"
              }
            }
          ],
          "static": true
        },
        {
          "docs": {
            "stability": "stable"
          },
          "locationInModule": {
            "filename": "lib/tag-aspect.ts",
            "line": 124
          },
          "name": "applyTag",
          "parameters": [
            {
              "name": "resource",
              "type": {
                "fqn": "@aws-cdk/core.ITaggable"
              }
            }
          ],
          "protected": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "All aspects can visit an IConstruct."
          },
          "locationInModule": {
            "filename": "lib/tag-aspect.ts",
            "line": 75
          },
          "name": "visit",
          "overrides": "@aws-cdk/core.IAspect",
          "parameters": [
            {
              "name": "construct",
              "type": {
                "fqn": "@aws-cdk/core.IConstruct"
              }
            }
          ]
        }
      ],
      "name": "Tag",
      "properties": [
        {
          "docs": {
            "stability": "stable",
            "summary": "The string key for the tag."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/tag-aspect.ts",
            "line": 66
          },
          "name": "key",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/tag-aspect.ts",
            "line": 68
          },
          "name": "props",
          "protected": true,
          "type": {
            "fqn": "@aws-cdk/core.TagProps"
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "The string value of the tag."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/tag-aspect.ts",
            "line": 112
          },
          "name": "value",
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.TagManager": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "TagManager facilitates a common implementation of tagging for Constructs."
      },
      "fqn": "@aws-cdk/core.TagManager",
      "initializer": {
        "docs": {
          "stability": "stable"
        },
        "locationInModule": {
          "filename": "lib/tag-manager.ts",
          "line": 256
        },
        "parameters": [
          {
            "name": "tagType",
            "type": {
              "fqn": "@aws-cdk/core.TagType"
            }
          },
          {
            "name": "resourceTypeName",
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "tagStructure",
            "optional": true,
            "type": {
              "primitive": "any"
            }
          },
          {
            "name": "options",
            "optional": true,
            "type": {
              "fqn": "@aws-cdk/core.TagManagerOptions"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/tag-manager.ts",
        "line": 233
      },
      "methods": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Check whether the given construct is Taggable."
          },
          "locationInModule": {
            "filename": "lib/tag-manager.ts",
            "line": 238
          },
          "name": "isTaggable",
          "parameters": [
            {
              "name": "construct",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "Looks at the include and exclude resourceTypeName arrays to determine if\nthe aspect applies here",
            "stability": "stable",
            "summary": "Determine if the aspect applies here."
          },
          "locationInModule": {
            "filename": "lib/tag-manager.ts",
            "line": 312
          },
          "name": "applyTagAspectHere",
          "parameters": [
            {
              "name": "include",
              "optional": true,
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "string"
                  },
                  "kind": "array"
                }
              }
            },
            {
              "name": "exclude",
              "optional": true,
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "string"
                  },
                  "kind": "array"
                }
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Returns true if there are any tags defined."
          },
          "locationInModule": {
            "filename": "lib/tag-manager.ts",
            "line": 326
          },
          "name": "hasTags",
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Removes the specified tag from the array if it exists."
          },
          "locationInModule": {
            "filename": "lib/tag-manager.ts",
            "line": 281
          },
          "name": "removeTag",
          "parameters": [
            {
              "docs": {
                "summary": "The tag to remove."
              },
              "name": "key",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "The priority of the remove operation."
              },
              "name": "priority",
              "type": {
                "primitive": "number"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Renders tags into the proper format based on TagType."
          },
          "locationInModule": {
            "filename": "lib/tag-manager.ts",
            "line": 291
          },
          "name": "renderTags",
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Adds the specified tag to the array of tags."
          },
          "locationInModule": {
            "filename": "lib/tag-manager.ts",
            "line": 269
          },
          "name": "setTag",
          "parameters": [
            {
              "name": "key",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "value",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "priority",
              "optional": true,
              "type": {
                "primitive": "number"
              }
            },
            {
              "name": "applyToLaunchedInstances",
              "optional": true,
              "type": {
                "primitive": "boolean"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Render the tags in a readable format."
          },
          "locationInModule": {
            "filename": "lib/tag-manager.ts",
            "line": 298
          },
          "name": "tagValues",
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "string"
                },
                "kind": "map"
              }
            }
          }
        }
      ],
      "name": "TagManager",
      "properties": [
        {
          "docs": {
            "remarks": "Normally this is `tags` but some resources choose a different name. Cognito\nUserPool uses UserPoolTags",
            "stability": "stable",
            "summary": "The property name for tag values."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/tag-manager.ts",
            "line": 248
          },
          "name": "tagPropertyName",
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.TagManagerOptions": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Options to configure TagManager behavior."
      },
      "fqn": "@aws-cdk/core.TagManagerOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/tag-manager.ts",
        "line": 219
      },
      "name": "TagManagerOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "\"tags\"",
            "remarks": "Normally this is `tags`, but Cognito UserPool uses UserPoolTags",
            "stability": "stable",
            "summary": "The name of the property in CloudFormation for these tags."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/tag-manager.ts",
            "line": 227
          },
          "name": "tagPropertyName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@aws-cdk/core.TagProps": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Properties for a tag."
      },
      "fqn": "@aws-cdk/core.TagProps",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/tag-aspect.ts",
        "line": 10
      },
      "name": "TagProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "stable",
            "summary": "Whether the tag should be applied to instances in an AutoScalingGroup."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/tag-aspect.ts",
            "line": 16
          },
          "name": "applyToLaunchedInstances",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "remarks": "An empty array will allow this tag to be applied to all resources. A\nnon-empty array will apply this tag only if the Resource type is not in\nthis array.",
            "stability": "stable",
            "summary": "An array of Resource Types that will not receive this tag."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/tag-aspect.ts",
            "line": 26
          },
          "name": "excludeResourceTypes",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "[]",
            "remarks": "An empty array will match any Resource. A non-empty array will apply this\ntag only to Resource types that are included in this array.",
            "stability": "stable",
            "summary": "An array of Resource Types that will receive this tag."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/tag-aspect.ts",
            "line": 35
          },
          "name": "includeResourceTypes",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "Default priorities:\n\n- 100 for {@link SetTag}\n- 200 for {@link RemoveTag}\n- 50 for tags added directly to CloudFormation resources",
            "remarks": "Higher or equal priority tags will take precedence.\n\nSetting priority will enable the user to control tags when they need to not\nfollow the default precedence pattern of last applied and closest to the\nconstruct in the tree.",
            "stability": "stable",
            "summary": "Priority of the tag operation."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/tag-aspect.ts",
            "line": 55
          },
          "name": "priority",
          "optional": true,
          "type": {
            "primitive": "number"
          }
        }
      ]
    },
    "@aws-cdk/core.TagType": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable"
      },
      "fqn": "@aws-cdk/core.TagType",
      "kind": "enum",
      "locationInModule": {
        "filename": "lib/cfn-resource.ts",
        "line": 396
      },
      "members": [
        {
          "docs": {
            "stability": "stable"
          },
          "name": "STANDARD"
        },
        {
          "docs": {
            "stability": "stable"
          },
          "name": "AUTOSCALING_GROUP"
        },
        {
          "docs": {
            "stability": "stable"
          },
          "name": "MAP"
        },
        {
          "docs": {
            "stability": "stable"
          },
          "name": "KEY_VALUE"
        },
        {
          "docs": {
            "stability": "stable"
          },
          "name": "NOT_TAGGABLE"
        }
      ],
      "name": "TagType"
    },
    "@aws-cdk/core.Tags": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "Manages AWS tags for all resources within a construct scope."
      },
      "fqn": "@aws-cdk/core.Tags",
      "kind": "class",
      "locationInModule": {
        "filename": "lib/tag-aspect.ts",
        "line": 139
      },
      "methods": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Returns the tags API for this scope."
          },
          "locationInModule": {
            "filename": "lib/tag-aspect.ts",
            "line": 144
          },
          "name": "of",
          "parameters": [
            {
              "docs": {
                "summary": "The scope."
              },
              "name": "scope",
              "type": {
                "fqn": "@aws-cdk/core.IConstruct"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.Tags"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "add tags to the node of a construct and all its the taggable children."
          },
          "locationInModule": {
            "filename": "lib/tag-aspect.ts",
            "line": 153
          },
          "name": "add",
          "parameters": [
            {
              "name": "key",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "value",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "props",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.TagProps"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "remove tags to the node of a construct and all its the taggable children."
          },
          "locationInModule": {
            "filename": "lib/tag-aspect.ts",
            "line": 160
          },
          "name": "remove",
          "parameters": [
            {
              "name": "key",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "props",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.TagProps"
              }
            }
          ]
        }
      ],
      "name": "Tags"
    },
    "@aws-cdk/core.TimeConversionOptions": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Options for how to convert time to a different unit."
      },
      "fqn": "@aws-cdk/core.TimeConversionOptions",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/duration.ts",
        "line": 260
      },
      "name": "TimeConversionOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "stable",
            "summary": "If `true`, conversions into a larger time unit (e.g. `Seconds` to `Minutes`) will fail if the result is not an integer."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/duration.ts",
            "line": 267
          },
          "name": "integral",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ]
    },
    "@aws-cdk/core.Token": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "Can be used to delay evaluation of a certain value in case, for example,\nthat it requires some context or late-bound data. Can also be used to\nmark values that need special processing at document rendering time.\n\nTokens can be embedded into strings while retaining their original\nsemantics.",
        "stability": "stable",
        "summary": "Represents a special or lazily-evaluated value."
      },
      "fqn": "@aws-cdk/core.Token",
      "kind": "class",
      "locationInModule": {
        "filename": "lib/token.ts",
        "line": 47
      },
      "methods": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Return a resolvable representation of the given value."
          },
          "locationInModule": {
            "filename": "lib/token.ts",
            "line": 101
          },
          "name": "asAny",
          "parameters": [
            {
              "name": "value",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.IResolvable"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Return a reversible list representation of this token."
          },
          "locationInModule": {
            "filename": "lib/token.ts",
            "line": 93
          },
          "name": "asList",
          "parameters": [
            {
              "name": "value",
              "type": {
                "primitive": "any"
              }
            },
            {
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.EncodingOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "string"
                },
                "kind": "array"
              }
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Return a reversible number representation of this token."
          },
          "locationInModule": {
            "filename": "lib/token.ts",
            "line": 85
          },
          "name": "asNumber",
          "parameters": [
            {
              "name": "value",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "number"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "If the Token is initialized with a literal, the stringified value of the\nliteral is returned. Otherwise, a special quoted string representation\nof the Token is returned that can be embedded into other strings.\n\nStrings with quoted Tokens in them can be restored back into\ncomplex values with the Tokens restored by calling `resolve()`\non the string.",
            "stability": "stable",
            "summary": "Return a reversible string representation of this token."
          },
          "locationInModule": {
            "filename": "lib/token.ts",
            "line": 77
          },
          "name": "asString",
          "parameters": [
            {
              "name": "value",
              "type": {
                "primitive": "any"
              }
            },
            {
              "name": "options",
              "optional": true,
              "type": {
                "fqn": "@aws-cdk/core.EncodingOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Compare two strings that might contain Tokens with each other."
          },
          "locationInModule": {
            "filename": "lib/token.ts",
            "line": 106
          },
          "name": "compareStrings",
          "parameters": [
            {
              "name": "possibleToken1",
              "type": {
                "primitive": "string"
              }
            },
            {
              "name": "possibleToken2",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.TokenComparison"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "One of these must be true:\n\n- `obj` is an IResolvable\n- `obj` is a string containing at least one encoded `IResolvable`\n- `obj` is either an encoded number or list\n\nThis does NOT recurse into lists or objects to see if they\ncontaining resolvables.",
            "stability": "stable",
            "summary": "Returns true if obj represents an unresolved value."
          },
          "locationInModule": {
            "filename": "lib/token.ts",
            "line": 62
          },
          "name": "isUnresolved",
          "parameters": [
            {
              "docs": {
                "summary": "The object to test."
              },
              "name": "obj",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          },
          "static": true
        }
      ],
      "name": "Token"
    },
    "@aws-cdk/core.TokenComparison": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "The return type of {@link Token.compareStrings}.",
        "stability": "stable",
        "summary": "An enum-like class that represents the result of comparing two Tokens."
      },
      "fqn": "@aws-cdk/core.TokenComparison",
      "kind": "class",
      "locationInModule": {
        "filename": "lib/token.ts",
        "line": 14
      },
      "name": "TokenComparison",
      "properties": [
        {
          "const": true,
          "docs": {
            "stability": "stable",
            "summary": "This means both components are Tokens."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/token.ts",
            "line": 31
          },
          "name": "BOTH_UNRESOLVED",
          "static": true,
          "type": {
            "fqn": "@aws-cdk/core.TokenComparison"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "stable",
            "summary": "This means we're certain the two components are NOT Tokens, and different."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/token.ts",
            "line": 25
          },
          "name": "DIFFERENT",
          "static": true,
          "type": {
            "fqn": "@aws-cdk/core.TokenComparison"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "stable",
            "summary": "This means exactly one of the components is a Token."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/token.ts",
            "line": 28
          },
          "name": "ONE_UNRESOLVED",
          "static": true,
          "type": {
            "fqn": "@aws-cdk/core.TokenComparison"
          }
        },
        {
          "const": true,
          "docs": {
            "stability": "stable",
            "summary": "This means we're certain the two components are NOT Tokens, and identical."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/token.ts",
            "line": 19
          },
          "name": "SAME",
          "static": true,
          "type": {
            "fqn": "@aws-cdk/core.TokenComparison"
          }
        }
      ]
    },
    "@aws-cdk/core.Tokenization": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "Less oft-needed functions to manipulate Tokens."
      },
      "fqn": "@aws-cdk/core.Tokenization",
      "kind": "class",
      "locationInModule": {
        "filename": "lib/token.ts",
        "line": 127
      },
      "methods": [
        {
          "docs": {
            "remarks": "This is different from Token.isUnresolved() which will also check for\nencoded Tokens, whereas this method will only do a type check on the given\nobject.",
            "stability": "stable",
            "summary": "Return whether the given object is an IResolvable object."
          },
          "locationInModule": {
            "filename": "lib/token.ts",
            "line": 171
          },
          "name": "isResolvable",
          "parameters": [
            {
              "name": "obj",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "Values can only be primitives, arrays or tokens. Other objects (i.e. with methods) will be rejected.",
            "stability": "stable",
            "summary": "Resolves an object by evaluating all tokens and removing any undefined or empty objects or arrays."
          },
          "locationInModule": {
            "filename": "lib/token.ts",
            "line": 156
          },
          "name": "resolve",
          "parameters": [
            {
              "docs": {
                "summary": "The object to resolve."
              },
              "name": "obj",
              "type": {
                "primitive": "any"
              }
            },
            {
              "docs": {
                "summary": "Prefix key path components for diagnostics."
              },
              "name": "options",
              "type": {
                "fqn": "@aws-cdk/core.ResolveOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Un-encode a Tokenized value from a list."
          },
          "locationInModule": {
            "filename": "lib/token.ts",
            "line": 145
          },
          "name": "reverseList",
          "parameters": [
            {
              "name": "l",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "string"
                  },
                  "kind": "array"
                }
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "fqn": "@aws-cdk/core.IResolvable"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Un-encode a Tokenized value from a number."
          },
          "locationInModule": {
            "filename": "lib/token.ts",
            "line": 138
          },
          "name": "reverseNumber",
          "parameters": [
            {
              "name": "n",
              "type": {
                "primitive": "number"
              }
            }
          ],
          "returns": {
            "optional": true,
            "type": {
              "fqn": "@aws-cdk/core.IResolvable"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Un-encode a string potentially containing encoded tokens."
          },
          "locationInModule": {
            "filename": "lib/token.ts",
            "line": 131
          },
          "name": "reverseString",
          "parameters": [
            {
              "name": "s",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.TokenizedStringFragments"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "If it is an object (i.e., { Ref: 'SomeLogicalId' }), return it as-is.",
            "stability": "stable",
            "summary": "Stringify a number directly or lazily if it's a Token."
          },
          "locationInModule": {
            "filename": "lib/token.ts",
            "line": 178
          },
          "name": "stringifyNumber",
          "parameters": [
            {
              "name": "x",
              "type": {
                "primitive": "number"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "string"
            }
          },
          "static": true
        }
      ],
      "name": "Tokenization"
    },
    "@aws-cdk/core.TokenizedStringFragments": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "Fragments of a concatenated string containing stringified Tokens."
      },
      "fqn": "@aws-cdk/core.TokenizedStringFragments",
      "initializer": {
        "docs": {
          "stability": "stable"
        }
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/string-fragments.ts",
        "line": 17
      },
      "methods": [
        {
          "docs": {
            "stability": "stable"
          },
          "locationInModule": {
            "filename": "lib/string-fragments.ts",
            "line": 42
          },
          "name": "addIntrinsic",
          "parameters": [
            {
              "name": "value",
              "type": {
                "primitive": "any"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "stable"
          },
          "locationInModule": {
            "filename": "lib/string-fragments.ts",
            "line": 34
          },
          "name": "addLiteral",
          "parameters": [
            {
              "name": "lit",
              "type": {
                "primitive": "any"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "stable"
          },
          "locationInModule": {
            "filename": "lib/string-fragments.ts",
            "line": 38
          },
          "name": "addToken",
          "parameters": [
            {
              "name": "token",
              "type": {
                "fqn": "@aws-cdk/core.IResolvable"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "If there are any",
            "stability": "stable",
            "summary": "Combine the string fragments using the given joiner."
          },
          "locationInModule": {
            "filename": "lib/string-fragments.ts",
            "line": 92
          },
          "name": "join",
          "parameters": [
            {
              "name": "concat",
              "type": {
                "fqn": "@aws-cdk/core.IFragmentConcatenator"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Apply a transformation function to all tokens in the string."
          },
          "locationInModule": {
            "filename": "lib/string-fragments.ts",
            "line": 62
          },
          "name": "mapTokens",
          "parameters": [
            {
              "name": "mapper",
              "type": {
                "fqn": "@aws-cdk/core.ITokenMapper"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.TokenizedStringFragments"
            }
          }
        }
      ],
      "name": "TokenizedStringFragments",
      "properties": [
        {
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/string-fragments.ts",
            "line": 26
          },
          "name": "firstValue",
          "type": {
            "primitive": "any"
          }
        },
        {
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/string-fragments.ts",
            "line": 30
          },
          "name": "length",
          "type": {
            "primitive": "number"
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Return all Tokens from this string."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/string-fragments.ts",
            "line": 49
          },
          "name": "tokens",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "@aws-cdk/core.IResolvable"
              },
              "kind": "array"
            }
          }
        },
        {
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/string-fragments.ts",
            "line": 20
          },
          "name": "firstToken",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.IResolvable"
          }
        }
      ]
    },
    "@aws-cdk/core.TreeInspector": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "Inspector that maintains an attribute bag."
      },
      "fqn": "@aws-cdk/core.TreeInspector",
      "initializer": {
        "docs": {
          "stability": "stable"
        }
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/tree.ts",
        "line": 4
      },
      "methods": [
        {
          "docs": {
            "remarks": "Keys should be added by convention to prevent conflicts\ni.e. L1 constructs will contain attributes with keys prefixed with aws:cdk:cloudformation",
            "stability": "stable",
            "summary": "Adds attribute to bag."
          },
          "locationInModule": {
            "filename": "lib/tree.ts",
            "line": 17
          },
          "name": "addAttribute",
          "parameters": [
            {
              "docs": {
                "summary": "- key for metadata."
              },
              "name": "key",
              "type": {
                "primitive": "string"
              }
            },
            {
              "docs": {
                "summary": "- value of metadata."
              },
              "name": "value",
              "type": {
                "primitive": "any"
              }
            }
          ]
        }
      ],
      "name": "TreeInspector",
      "properties": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Represents the bag of attributes as key-value pairs."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/tree.ts",
            "line": 8
          },
          "name": "attributes",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "any"
              },
              "kind": "map"
            }
          }
        }
      ]
    },
    "@aws-cdk/core.ValidationError": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "An error returned during the validation phase."
      },
      "fqn": "@aws-cdk/core.ValidationError",
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/construct-compat.ts",
        "line": 500
      },
      "name": "ValidationError",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The error message."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 509
          },
          "name": "message",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The construct which emitted the error."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 504
          },
          "name": "source",
          "type": {
            "fqn": "@aws-cdk/core.Construct"
          }
        }
      ]
    },
    "@aws-cdk/core.ValidationResult": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "remarks": "Models a tree of validation errors so that we have as much information as possible\nabout the failure that occurred.",
        "stability": "stable",
        "summary": "Representation of validation results."
      },
      "fqn": "@aws-cdk/core.ValidationResult",
      "initializer": {
        "docs": {
          "stability": "stable"
        },
        "locationInModule": {
          "filename": "lib/runtime.ts",
          "line": 126
        },
        "parameters": [
          {
            "name": "errorMessage",
            "optional": true,
            "type": {
              "primitive": "string"
            }
          },
          {
            "name": "results",
            "optional": true,
            "type": {
              "fqn": "@aws-cdk/core.ValidationResults"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/runtime.ts",
        "line": 125
      },
      "methods": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Turn a failed validation into an exception."
          },
          "locationInModule": {
            "filename": "lib/runtime.ts",
            "line": 136
          },
          "name": "assertSuccess"
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Return a string rendering of the tree of validation failures."
          },
          "locationInModule": {
            "filename": "lib/runtime.ts",
            "line": 148
          },
          "name": "errorTree",
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Wrap this result with an error message, if it concerns an error."
          },
          "locationInModule": {
            "filename": "lib/runtime.ts",
            "line": 156
          },
          "name": "prefix",
          "parameters": [
            {
              "name": "message",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.ValidationResult"
            }
          }
        }
      ],
      "name": "ValidationResult",
      "properties": [
        {
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/runtime.ts",
            "line": 126
          },
          "name": "errorMessage",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/runtime.ts",
            "line": 129
          },
          "name": "isSuccess",
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/runtime.ts",
            "line": 126
          },
          "name": "results",
          "type": {
            "fqn": "@aws-cdk/core.ValidationResults"
          }
        }
      ]
    },
    "@aws-cdk/core.ValidationResults": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "stable",
        "summary": "A collection of validation results."
      },
      "fqn": "@aws-cdk/core.ValidationResults",
      "initializer": {
        "docs": {
          "stability": "stable"
        },
        "locationInModule": {
          "filename": "lib/runtime.ts",
          "line": 166
        },
        "parameters": [
          {
            "name": "results",
            "optional": true,
            "type": {
              "collection": {
                "elementtype": {
                  "fqn": "@aws-cdk/core.ValidationResult"
                },
                "kind": "array"
              }
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/runtime.ts",
        "line": 165
      },
      "methods": [
        {
          "docs": {
            "stability": "stable"
          },
          "locationInModule": {
            "filename": "lib/runtime.ts",
            "line": 169
          },
          "name": "collect",
          "parameters": [
            {
              "name": "result",
              "type": {
                "fqn": "@aws-cdk/core.ValidationResult"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "stable"
          },
          "locationInModule": {
            "filename": "lib/runtime.ts",
            "line": 180
          },
          "name": "errorTreeList",
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        },
        {
          "docs": {
            "remarks": "If there are failures in the collection, add a message, otherwise\nreturn a success.",
            "stability": "stable",
            "summary": "Wrap up all validation results into a single tree node."
          },
          "locationInModule": {
            "filename": "lib/runtime.ts",
            "line": 190
          },
          "name": "wrap",
          "parameters": [
            {
              "name": "message",
              "type": {
                "primitive": "string"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.ValidationResult"
            }
          }
        }
      ],
      "name": "ValidationResults",
      "properties": [
        {
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/runtime.ts",
            "line": 176
          },
          "name": "isSuccess",
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "docs": {
            "stability": "stable"
          },
          "locationInModule": {
            "filename": "lib/runtime.ts",
            "line": 166
          },
          "name": "results",
          "type": {
            "collection": {
              "elementtype": {
                "fqn": "@aws-cdk/core.ValidationResult"
              },
              "kind": "array"
            }
          }
        }
      ]
    }
  },
  "version": "1.69.0",
  "fingerprint": "5m5F9ECdCwcB1GQ4keotaFmjNlD53ilOSnxX7ErysHI="
}
