{
  "author": {
    "name": "Amazon Web Services",
    "organization": true,
    "roles": [
      "author"
    ],
    "url": "https://aws.amazon.com"
  },
  "dependencies": {
    "@aws-cdk/cx-api": "1.30.0",
    "constructs": "^1.1.2"
  },
  "dependencyClosure": {
    "@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": {
          "distName": "aws-cdk.cx-api",
          "module": "aws_cdk.cx_api"
        }
      }
    },
    "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": "0.22.0 (build 14afdde)",
  "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\n![Stability: Stable](https://img.shields.io/badge/stability-Stable-success.svg?style=for-the-badge)\n\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## 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## 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\nconstruts, `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## 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 mapping = new CfnMapping(this, 'MappingTable', {\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\nmapping.findInMap('regionName', Aws.REGION);\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### 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"
  },
  "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": {
      "distName": "aws-cdk.core",
      "module": "aws_cdk.core"
    }
  },
  "types": {
    "@aws-cdk/core.App": {
      "assembly": "@aws-cdk/core",
      "base": "@aws-cdk/core.Construct",
      "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."
        },
        "parameters": [
          {
            "docs": {
              "summary": "initialization properties."
            },
            "name": "props",
            "optional": true,
            "type": {
              "fqn": "@aws-cdk/core.AppProps"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/app.ts",
        "line": 78
      },
      "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": 85
          },
          "name": "isApp",
          "parameters": [
            {
              "docs": {
                "summary": "The object to evaluate."
              },
              "name": "obj",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          },
          "static": true
        },
        {
          "docs": {
            "remarks": "Emits it to the directory\nspecified by `outdir`.",
            "returns": "a `CloudAssembly` which can be used to inspect synthesized\nartifacts such as CloudFormation templates and assets.",
            "stability": "stable",
            "summary": "Synthesizes a cloud assembly for this app."
          },
          "locationInModule": {
            "filename": "lib/app.ts",
            "line": 135
          },
          "name": "synth",
          "returns": {
            "type": {
              "fqn": "@aws-cdk/cx-api.CloudAssembly"
            }
          }
        }
      ],
      "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": 11
      },
      "name": "AppProps",
      "properties": [
        {
          "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": 22
          },
          "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": 53
          },
          "name": "context",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "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": 30
          },
          "name": "outdir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "true runtime info is included unless `aws:cdk:disable-runtime-info` is set in the context.",
            "stability": "stable",
            "summary": "Include runtime versioning information in cloud assembly manifest."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/app.ts",
            "line": 42
          },
          "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": 36
          },
          "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": 60
          },
          "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.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.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.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."
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "@aws-cdk/core.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.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"
        },
        "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."
        },
        "parameters": [
          {
            "docs": {
              "summary": "The parent construct."
            },
            "name": "scope",
            "type": {
              "fqn": "@aws-cdk/core.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/cfn-element.ts",
        "line": 11
      },
      "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": 21
          },
          "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": 71
          },
          "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": 80
          },
          "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": 34
          },
          "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": 39
          },
          "name": "stack",
          "type": {
            "fqn": "@aws-cdk/core.Stack"
          }
        }
      ]
    },
    "@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."
        },
        "parameters": [
          {
            "docs": {
              "summary": "The parent construct of this template."
            },
            "name": "scope",
            "type": {
              "fqn": "@aws-cdk/core.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.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"
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "@aws-cdk/core.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."
        },
        "parameters": [
          {
            "docs": {
              "summary": "The parent construct."
            },
            "name": "scope",
            "type": {
              "fqn": "@aws-cdk/core.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"
    },
    "@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."
        },
        "parameters": [
          {
            "docs": {
              "summary": "The parent construct."
            },
            "name": "scope",
            "type": {
              "fqn": "@aws-cdk/core.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": 183
          },
          "name": "resolve",
          "parameters": [
            {
              "name": "_context",
              "type": {
                "fqn": "@aws-cdk/core.IResolveContext"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        }
      ],
      "name": "CfnParameter",
      "properties": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Indicates if this parameter is configured with \"NoEcho\" enabled."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 119
          },
          "name": "noEcho",
          "type": {
            "primitive": "boolean"
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "The parameter value as a Token."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/cfn-parameter.ts",
            "line": 126
          },
          "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": 143
          },
          "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": 153
          },
          "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": 133
          },
          "name": "valueAsString",
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@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."
        },
        "parameters": [
          {
            "docs": {
              "summary": "The parent construct."
            },
            "name": "scope",
            "type": {
              "fqn": "@aws-cdk/core.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          }
        ]
      },
      "kind": "class",
      "locationInModule": {
        "filename": "lib/cfn-element.ts",
        "line": 145
      },
      "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": 152
          },
          "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."
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "@aws-cdk/core.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": "@aws-cdk/core.IConstruct"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "boolean"
            }
          },
          "static": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Syntactic sugar for `addOverride(path, undefined)`."
          },
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 202
          },
          "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": 233
          },
          "name": "addDependsOn",
          "parameters": [
            {
              "name": "target",
              "type": {
                "fqn": "@aws-cdk/core.CfnResource"
              }
            }
          ]
        },
        {
          "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\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": 177
          },
          "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": 222
          },
          "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": 214
          },
          "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": 105
          },
          "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": 135
          },
          "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": 330
          },
          "name": "renderProperties",
          "parameters": [
            {
              "name": "props",
              "type": {
                "collection": {
                  "elementtype": {
                    "primitive": "any"
                  },
                  "kind": "map"
                }
              }
            }
          ],
          "protected": true,
          "returns": {
            "type": {
              "collection": {
                "elementtype": {
                  "primitive": "any"
                },
                "kind": "map"
              }
            }
          }
        },
        {
          "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": 240
          },
          "name": "toString",
          "overrides": "constructs.Construct",
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        },
        {
          "docs": {
            "stability": "stable"
          },
          "locationInModule": {
            "filename": "lib/cfn-resource.ts",
            "line": 344
          },
          "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": 320
          },
          "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": 340
          },
          "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."
        },
        "parameters": [
          {
            "docs": {
              "summary": "The parent construct."
            },
            "name": "scope",
            "type": {
              "fqn": "@aws-cdk/core.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.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.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.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"
        }
      },
      "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"
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "@aws-cdk/core.Construct"
            }
          },
          {
            "name": "id",
            "type": {
              "primitive": "string"
            }
          }
        ]
      },
      "interfaces": [
        "@aws-cdk/core.IConstruct"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "lib/construct-compat.ts",
        "line": 52
      },
      "methods": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Return whether the given object is a Construct."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 56
          },
          "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": 104
          },
          "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": 116
          },
          "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 there the construct is valid.",
            "stability": "stable",
            "summary": "Validate the current construct."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 90
          },
          "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": 145
          },
          "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": 157
          },
          "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 there the construct is valid.",
            "stability": "stable",
            "summary": "Validate the current construct."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 131
          },
          "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": 63
          },
          "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"
        },
        "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": 197
      },
      "methods": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Invokes \"prepare\" on all constructs (depth-first, post-order) in the tree under `node`."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 240
          },
          "name": "prepare",
          "parameters": [
            {
              "docs": {
                "summary": "The root node."
              },
              "name": "node",
              "type": {
                "fqn": "@aws-cdk/core.ConstructNode"
              }
            }
          ],
          "static": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Synthesizes a CloudAssembly from a construct tree."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 222
          },
          "name": "synth",
          "parameters": [
            {
              "docs": {
                "summary": "The root of the construct tree."
              },
              "name": "root",
              "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": 250
          },
          "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": 445
          },
          "name": "addDependency",
          "parameters": [
            {
              "name": "dependencies",
              "type": {
                "fqn": "@aws-cdk/core.IDependable"
              },
              "variadic": true
            }
          ],
          "variadic": true
        },
        {
          "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/construct-compat.ts",
            "line": 410
          },
          "name": "addError",
          "parameters": [
            {
              "docs": {
                "summary": "The error message."
              },
              "name": "message",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "remarks": "The toolkit will display the info message when apps are synthesized.",
            "stability": "stable",
            "summary": "Adds a { \"info\": <message> } metadata entry to this construct."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 391
          },
          "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": 384
          },
          "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": {
            "remarks": "The toolkit will display the warning when an app is synthesized, or fail\nif run in --strict mode.",
            "stability": "stable",
            "summary": "Adds a { \"warning\": <message> } metadata entry to this construct."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 401
          },
          "name": "addWarning",
          "parameters": [
            {
              "docs": {
                "summary": "The warning message."
              },
              "name": "message",
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Applies the aspect to this Constructs node."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 417
          },
          "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": 347
          },
          "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": 315
          },
          "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": 356
          },
          "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": 305
          },
          "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 thie key.",
            "stability": "stable",
            "summary": "Retrieves a value from tree context."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 366
          },
          "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": 458
          },
          "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": 201
          },
          "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": 342
          },
          "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": 450
          },
          "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": 284
          },
          "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": 437
          },
          "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": 372
          },
          "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": 291
          },
          "name": "path",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "returns": "The root of the construct tree.",
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 431
          },
          "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": 426
          },
          "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": 297
          },
          "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": 275
          },
          "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": 325
          },
          "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": 165
      },
      "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": 59
      },
      "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": 63
          },
          "name": "getKey",
          "parameters": [
            {
              "name": "scope",
              "type": {
                "fqn": "@aws-cdk/core.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": 85
          },
          "name": "getValue",
          "parameters": [
            {
              "name": "scope",
              "type": {
                "fqn": "@aws-cdk/core.Construct"
              }
            },
            {
              "name": "options",
              "type": {
                "fqn": "@aws-cdk/core.GetContextValueOptions"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.GetContextValueResult"
            }
          },
          "static": true
        }
      ],
      "name": "ContextProvider"
    },
    "@aws-cdk/core.DefaultTokenResolver": {
      "assembly": "@aws-cdk/core",
      "docs": {
        "stability": "experimental",
        "summary": "Default resolver implementation."
      },
      "fqn": "@aws-cdk/core.DefaultTokenResolver",
      "initializer": {
        "docs": {
          "stability": "experimental"
        },
        "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": {},
      "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": 479
      },
      "name": "Dependency",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Source the dependency."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 483
          },
          "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": 488
          },
          "name": "target",
          "type": {
            "fqn": "@aws-cdk/core.IConstruct"
          }
        }
      ]
    },
    "@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": 124
      },
      "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": 128
          },
          "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": 133
          },
          "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": 25
      },
      "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": 40
          },
          "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": 34
          },
          "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": 51
          },
          "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": 58
          },
          "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": 65
          },
          "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": 77
          },
          "name": "repositoryName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        }
      ]
    },
    "@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": {
            "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": 144
          },
          "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": 135
          },
          "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": 184
          },
          "name": "toHumanString",
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        },
        {
          "docs": {
            "returns": "a string starting with 'PT' 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": 154
          },
          "name": "toIsoString",
          "returns": {
            "type": {
              "primitive": "string"
            }
          }
        },
        {
          "docs": {
            "deprecated": "Use `toIsoString()` instead.",
            "returns": "a string starting with 'PT' 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": 177
          },
          "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": 108
          },
          "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": 126
          },
          "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": 117
          },
          "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": 221
          },
          "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": 182
      },
      "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": 186
          },
          "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.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": 101
      },
      "name": "FileAssetLocation",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The name of the Amazon S3 bucket."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/assets.ts",
            "line": 105
          },
          "name": "bucketName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The Amazon S3 object key."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/assets.ts",
            "line": 110
          },
          "name": "objectKey",
          "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": 117
          },
          "name": "s3Url",
          "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": 83
      },
      "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": 4
      },
      "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": 17
          },
          "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": 22
          },
          "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": 10
          },
          "name": "sourceHash",
          "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": 117
          },
          "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": 128
          },
          "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\n2, and the maximum is 10.",
            "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": 178
          },
          "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": 242
          },
          "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": 253
          },
          "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": 268
          },
          "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": 189
          },
          "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": 208
          },
          "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": 219
          },
          "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\n2, and the maximum is 10.",
            "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": 231
          },
          "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": 166
          },
          "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": 35
          },
          "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": 145
          },
          "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": 157
          },
          "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": 49
          },
          "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": {
            "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": 279
          },
          "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": 82
          },
          "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": 66
          },
          "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": 106
          },
          "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 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": 293
          },
          "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": 307
          },
          "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": 9
      },
      "name": "GetContextKeyOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "The context provider to query."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/context-provider.ts",
            "line": 13
          },
          "name": "provider",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental",
            "summary": "Provider-specific properties."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/context-provider.ts",
            "line": 18
          },
          "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": 36
      },
      "name": "GetContextKeyResult",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/context-provider.ts",
            "line": 37
          },
          "name": "key",
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/context-provider.ts",
            "line": 38
          },
          "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": 24
      },
      "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": 30
          },
          "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": 44
      },
      "name": "GetContextValueResult",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "experimental"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/context-provider.ts",
            "line": 45
          },
          "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": 6
      },
      "methods": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "All aspects can visit an IConstruct."
          },
          "locationInModule": {
            "filename": "lib/aspect.ts",
            "line": 10
          },
          "name": "visit",
          "parameters": [
            {
              "name": "node",
              "type": {
                "fqn": "@aws-cdk/core.IConstruct"
              }
            }
          ]
        }
      ],
      "name": "IAspect"
    },
    "@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": 357
      },
      "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": 363
          },
          "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": 371
          },
          "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": 379
          },
          "name": "deletionPolicy",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.CfnDeletionPolicy"
          }
        },
        {
          "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": 398
          },
          "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": 386
          },
          "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": 392
          },
          "name": "updateReplacePolicy",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.CfnDeletionPolicy"
          }
        }
      ]
    },
    "@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": 24
      },
      "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": 28
          },
          "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.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": 12
      },
      "name": "IResource",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The stack in which this resource is defined."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/resource.ts",
            "line": 16
          },
          "name": "stack",
          "type": {
            "fqn": "@aws-cdk/core.Stack"
          }
        }
      ]
    },
    "@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": 34
      },
      "name": "ISynthesisSession",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "Cloud assembly builder."
          },
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 43
          },
          "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": 38
          },
          "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": 199
      },
      "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": 203
          },
          "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": 1135
      },
      "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": 1140
          },
          "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": 1162
          },
          "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": 1145
          },
          "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": 1152
          },
          "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": 1157
          },
          "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"
        },
        "parameters": [
          {
            "name": "value",
            "type": {
              "primitive": "any"
            }
          }
        ]
      },
      "interfaces": [
        "@aws-cdk/core.IResolvable"
      ],
      "kind": "class",
      "locationInModule": {
        "filename": "lib/private/intrinsic.ts",
        "line": 15
      },
      "methods": [
        {
          "docs": {
            "stability": "experimental",
            "summary": "Creates a throwable Error object that contains the token creation stack trace."
          },
          "locationInModule": {
            "filename": "lib/private/intrinsic.ts",
            "line": 70
          },
          "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": 32
          },
          "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": 52
          },
          "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": 43
          },
          "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": 19
          },
          "name": "creationStack",
          "overrides": "@aws-cdk/core.IResolvable",
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "array"
            }
          }
        }
      ]
    },
    "@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.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"
        },
        "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"
        }
      ],
      "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": 15
      },
      "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": 28
          },
          "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": 22
          },
          "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"
        },
        "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": 132
      },
      "methods": [
        {
          "docs": {
            "stability": "stable"
          },
          "locationInModule": {
            "filename": "lib/tag-aspect.ts",
            "line": 140
          },
          "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": 74
          },
          "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": 65
          },
          "name": "key",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/tag-aspect.ts",
            "line": 67
          },
          "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": 161
      },
      "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": 170
          },
          "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": 165
          },
          "name": "scope",
          "type": {
            "fqn": "@aws-cdk/core.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": 176
          },
          "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"
        },
        "parameters": [
          {
            "name": "scope",
            "type": {
              "fqn": "@aws-cdk/core.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": 40
      },
      "methods": [
        {
          "docs": {
            "stability": "stable"
          },
          "locationInModule": {
            "filename": "lib/resource.ts",
            "line": 108
          },
          "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": 157
          },
          "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": 124
          },
          "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": "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": 55
          },
          "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": 41
          },
          "name": "stack",
          "overrides": "@aws-cdk/core.IResource",
          "type": {
            "fqn": "@aws-cdk/core.Stack"
          }
        }
      ]
    },
    "@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": 22
      },
      "name": "ResourceProps",
      "properties": [
        {
          "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": 34
          },
          "name": "physicalName",
          "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"
        },
        "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"
        },
        "parameters": [
          {
            "name": "value",
            "type": {
              "primitive": "any"
            }
          }
        ]
      },
      "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.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."
        },
        "parameters": [
          {
            "docs": {
              "summary": "Parent of this stack, usually a Program instance."
            },
            "name": "scope",
            "optional": true,
            "type": {
              "fqn": "@aws-cdk/core.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": 69
      },
      "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": 75
          },
          "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": 83
          },
          "name": "of",
          "parameters": [
            {
              "docs": {
                "summary": "The construct to start the search from."
              },
              "name": "construct",
              "type": {
                "fqn": "@aws-cdk/core.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": 363
          },
          "name": "addDependency",
          "parameters": [
            {
              "name": "target",
              "type": {
                "fqn": "@aws-cdk/core.Stack"
              }
            },
            {
              "name": "reason",
              "optional": true,
              "type": {
                "primitive": "string"
              }
            }
          ]
        },
        {
          "docs": {
            "stability": "stable"
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 570
          },
          "name": "addDockerImageAsset",
          "parameters": [
            {
              "name": "asset",
              "type": {
                "fqn": "@aws-cdk/core.DockerImageAssetSource"
              }
            }
          ],
          "returns": {
            "type": {
              "fqn": "@aws-cdk/core.DockerImageAssetLocation"
            }
          }
        },
        {
          "docs": {
            "stability": "stable"
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 531
          },
          "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": 633
          },
          "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": 718
          },
          "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": 448
          },
          "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": 352
          },
          "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": 490
          },
          "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": {
            "remarks": "Find all CloudFormation references and tell them we're consuming them.\n\nFind all dependencies as well and add the appropriate DependsOn fields.",
            "stability": "stable",
            "summary": "Prepare stack."
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 746
          },
          "name": "prepare",
          "overrides": "@aws-cdk/core.Construct",
          "protected": true
        },
        {
          "docs": {
            "returns": "a token that can be used to reference the value from the producing stack.",
            "stability": "stable",
            "summary": "Exports a resolvable value for use in another stack."
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 904
          },
          "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 `createNamingScheme` method.",
            "stability": "stable",
            "summary": "Rename a generated logical identities."
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 333
          },
          "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": 323
          },
          "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": 299
          },
          "name": "resolve",
          "parameters": [
            {
              "name": "obj",
              "type": {
                "primitive": "any"
              }
            }
          ],
          "returns": {
            "type": {
              "primitive": "any"
            }
          }
        },
        {
          "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/stack.ts",
            "line": 807
          },
          "name": "synthesize",
          "overrides": "@aws-cdk/core.Construct",
          "parameters": [
            {
              "name": "session",
              "type": {
                "fqn": "@aws-cdk/core.ISynthesisSession"
              }
            }
          ],
          "protected": true
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Convert an object, potentially containing tokens, to a JSON string."
          },
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 311
          },
          "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 `node.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": 167
          },
          "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": 211
          },
          "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.",
            "stability": "stable",
            "summary": "Returnst the list of AZs that are availability in the AWS environment (account/region) associated with this stack."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 507
          },
          "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": 370
          },
          "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": 182
          },
          "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": 427
          },
          "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": 420
          },
          "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": 393
          },
          "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 `node.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": 145
          },
          "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": 413
          },
          "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": 386
          },
          "name": "stackName",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable",
            "summary": "Tags to be applied to the stack."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 118
          },
          "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": 206
          },
          "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": 123
          },
          "name": "templateOptions",
          "type": {
            "fqn": "@aws-cdk/core.ITemplateOptions"
          }
        },
        {
          "docs": {
            "stability": "experimental",
            "summary": "An attribute (late-bound) that represents the URL of the template file in the deployment bucket."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 198
          },
          "name": "templateUrl",
          "type": {
            "primitive": "string"
          }
        },
        {
          "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": 403
          },
          "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": 608
          },
          "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": 190
          },
          "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": 617
          },
          "name": "parentStack",
          "optional": true,
          "type": {
            "fqn": "@aws-cdk/core.Stack"
          }
        }
      ]
    },
    "@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": 35
      },
      "name": "StackProps",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- No description.",
            "stability": "stable",
            "summary": "A description of the stack."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 41
          },
          "name": "description",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "- The `default-account` and `default-region` context parameters will be\nused. If they are undefined, it will not be possible to deploy the stack.",
            "stability": "stable",
            "summary": "The AWS environment (account/region) where this stack will be deployed."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/stack.ts",
            "line": 49
          },
          "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": 56
          },
          "name": "stackName",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "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": 63
          },
          "name": "tags",
          "optional": true,
          "type": {
            "collection": {
              "elementtype": {
                "primitive": "string"
              },
              "kind": "map"
            }
          }
        }
      ]
    },
    "@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": {},
      "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.SynthesisOptions": {
      "assembly": "@aws-cdk/core",
      "datatype": true,
      "docs": {
        "stability": "stable",
        "summary": "Options for synthesis."
      },
      "fqn": "@aws-cdk/core.SynthesisOptions",
      "interfaces": [
        "@aws-cdk/cx-api.AssemblyBuildOptions"
      ],
      "kind": "interface",
      "locationInModule": {
        "filename": "lib/construct-compat.ts",
        "line": 180
      },
      "name": "SynthesisOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "- creates a temporary directory",
            "stability": "stable",
            "summary": "The output directory into which to synthesize the cloud assembly."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 185
          },
          "name": "outdir",
          "optional": true,
          "type": {
            "primitive": "string"
          }
        },
        {
          "abstract": true,
          "docs": {
            "default": "false",
            "stability": "stable",
            "summary": "Whether synthesis should skip the validation phase."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 191
          },
          "name": "skipValidation",
          "optional": true,
          "type": {
            "primitive": "boolean"
          }
        }
      ]
    },
    "@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"
        },
        "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": 86
      },
      "methods": [
        {
          "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": 91
          },
          "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": {
            "stability": "stable",
            "summary": "remove tags to the node of a construct and all its the taggable children."
          },
          "locationInModule": {
            "filename": "lib/tag-aspect.ts",
            "line": 98
          },
          "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": 117
          },
          "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": 74
          },
          "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": 65
          },
          "name": "key",
          "type": {
            "primitive": "string"
          }
        },
        {
          "docs": {
            "stability": "stable"
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/tag-aspect.ts",
            "line": 67
          },
          "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": 105
          },
          "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"
        },
        "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": 223
      },
      "methods": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Check whether the given construct is Taggable."
          },
          "locationInModule": {
            "filename": "lib/tag-manager.ts",
            "line": 228
          },
          "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": 291
          },
          "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": 305
          },
          "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": 271
          },
          "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": 281
          },
          "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": 259
          },
          "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"
              }
            }
          ]
        }
      ],
      "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": 238
          },
          "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": 209
      },
      "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": 217
          },
          "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": 9
      },
      "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": 15
          },
          "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": 25
          },
          "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": 34
          },
          "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": 54
          },
          "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": 349
      },
      "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.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": 245
      },
      "name": "TimeConversionOptions",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "default": "true",
            "stability": "stable",
            "summary": "If `true`, conversions into a larger time unit (e.g. `Seconds` to `Mintues`) will fail if the result is not an integer."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/duration.ts",
            "line": 252
          },
          "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": 20
      },
      "methods": [
        {
          "docs": {
            "stability": "stable",
            "summary": "Return a resolvable representation of the given value."
          },
          "locationInModule": {
            "filename": "lib/token.ts",
            "line": 74
          },
          "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": 66
          },
          "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": 58
          },
          "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": 50
          },
          "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": {
            "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": 35
          },
          "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.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": 85
      },
      "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": 129
          },
          "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": 114
          },
          "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": 103
          },
          "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": 96
          },
          "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": 89
          },
          "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": 136
          },
          "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": {},
      "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": {},
      "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": 464
      },
      "name": "ValidationError",
      "properties": [
        {
          "abstract": true,
          "docs": {
            "stability": "stable",
            "summary": "The error message."
          },
          "immutable": true,
          "locationInModule": {
            "filename": "lib/construct-compat.ts",
            "line": 473
          },
          "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": 468
          },
          "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"
        },
        "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"
        },
        "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.30.0",
  "fingerprint": "OnTncaWueoJ2nHWCuZxFMWpTpGXmPgT9m7w+hvUWl2I="
}
