{ "kind": "SourceFile", "statements": [{ "kind": "ImportDeclaration", "importClause": { "kind": "ImportClause", "isTypeOnly": false, "namedBindings": { "kind": "NamedImports", "elements": [{ "kind": "ImportSpecifier", "isTypeOnly": false, "name": { "kind": "Identifier", "escapedText": "EnvironmentDefinition", "id": 6 }, "id": 5 }, { "kind": "ImportSpecifier", "isTypeOnly": false, "name": { "kind": "Identifier", "escapedText": "AccountConnection", "id": 8 }, "id": 7 }, { "kind": "ImportSpecifier", "isTypeOnly": false, "name": { "kind": "Identifier", "escapedText": "Role", "id": 10 }, "id": 9 }], "id": 4 }, "id": 3 }, "moduleSpecifier": { "kind": "StringLiteral", "text": "@amazon-codecatalyst/blueprint-component.environments", "hasExtendedUnicodeEscape": false, "id": 11 }, "id": 2 }, { "kind": "ImportDeclaration", "importClause": { "kind": "ImportClause", "isTypeOnly": false, "namedBindings": { "kind": "NamedImports", "elements": [{ "kind": "ImportSpecifier", "isTypeOnly": false, "propertyName": { "kind": "Identifier", "escapedText": "Blueprint", "id": 16 }, "name": { "kind": "Identifier", "escapedText": "ParentBlueprint", "id": 17 }, "id": 15 }, { "kind": "ImportSpecifier", "isTypeOnly": false, "propertyName": { "kind": "Identifier", "escapedText": "Options", "id": 19 }, "name": { "kind": "Identifier", "escapedText": "ParentOptions", "id": 20 }, "id": 18 }], "id": 14 }, "id": 13 }, "moduleSpecifier": { "kind": "StringLiteral", "text": "@amazon-codecatalyst/blueprints.blueprint", "hasExtendedUnicodeEscape": false, "id": 21 }, "id": 12 }, { "kind": "InterfaceDeclaration", "modifiers": [{ "kind": "ExportKeyword", "id": 23 }], "name": { "kind": "Identifier", "escapedText": "Options", "id": 24 }, "heritageClauses": [{ "kind": "HeritageClause", "token": 94, "types": [{ "kind": "ExpressionWithTypeArguments", "expression": { "kind": "Identifier", "escapedText": "ParentOptions", "id": 27 }, "id": 26 }], "id": 25 }], "members": [{ "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "thisIsMyEnvironment", "id": 29 }, "type": { "kind": "TypeReference", "typeName": { "kind": "Identifier", "escapedText": "EnvironmentDefinition", "id": 31 }, "typeArguments": [{ "kind": "TypeLiteral", "members": [{ "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "thisIsMyFirstAccountConnection", "id": 34 }, "type": { "kind": "TypeReference", "typeName": { "kind": "Identifier", "escapedText": "AccountConnection", "id": 36 }, "typeArguments": [{ "kind": "TypeLiteral", "members": [{ "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "adminRole", "id": 39 }, "type": { "kind": "TypeReference", "typeName": { "kind": "Identifier", "escapedText": "Role", "id": 41 }, "typeArguments": [{ "kind": "TupleType", "elements": [{ "kind": "LiteralType", "literal": { "kind": "StringLiteral", "text": "admin", "hasExtendedUnicodeEscape": false, "id": 44 }, "id": 43 }, { "kind": "LiteralType", "literal": { "kind": "StringLiteral", "text": "lambda", "hasExtendedUnicodeEscape": false, "id": 46 }, "id": 45 }, { "kind": "LiteralType", "literal": { "kind": "StringLiteral", "text": "s3", "hasExtendedUnicodeEscape": false, "id": 48 }, "id": 47 }, { "kind": "LiteralType", "literal": { "kind": "StringLiteral", "text": "cloudfront", "hasExtendedUnicodeEscape": false, "id": 50 }, "id": 49 }], "id": 42 }], "id": 40 }, "jsDoc": [{ "kind": "JSDocComment", "comment": "Blah blah some information about the role that I expect\ne.g. here's a copy-pastable policy: [to a link]", "tags": [{ "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "displayName" }, "comment": "This role has an overriden name" }] }], "id": 38 }, { "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "lambdaRole", "id": 52 }, "type": { "kind": "TypeReference", "typeName": { "kind": "Identifier", "escapedText": "Role", "id": 54 }, "typeArguments": [{ "kind": "TupleType", "elements": [{ "kind": "LiteralType", "literal": { "kind": "StringLiteral", "text": "lambda", "hasExtendedUnicodeEscape": false, "id": 57 }, "id": 56 }, { "kind": "LiteralType", "literal": { "kind": "StringLiteral", "text": "s3", "hasExtendedUnicodeEscape": false, "id": 59 }, "id": 58 }], "id": 55 }], "id": 53 }, "jsDoc": [{ "kind": "JSDocComment", "comment": "Blah blah some information about the second role that I expect\ne.g. here's a copy-pastable policy: [to a link]" }], "id": 51 }], "id": 37 }], "id": 35 }, "jsDoc": [{ "kind": "JSDocComment", "comment": "blah blah blah some comments about the account that i'm deploying into", "tags": [{ "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "displayName" }, "comment": "This account connection has an overriden name" }, { "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "collapsed" } }] }], "id": 33 }, { "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "thisIsMySecondAccountConnection", "id": 61 }, "type": { "kind": "TypeReference", "typeName": { "kind": "Identifier", "escapedText": "AccountConnection", "id": 63 }, "typeArguments": [{ "kind": "TypeLiteral", "members": [{ "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "secondAdminRole", "id": 66 }, "type": { "kind": "TypeReference", "typeName": { "kind": "Identifier", "escapedText": "Role", "id": 68 }, "typeArguments": [{ "kind": "TupleType", "elements": [{ "kind": "LiteralType", "literal": { "kind": "StringLiteral", "text": "admin", "hasExtendedUnicodeEscape": false, "id": 71 }, "id": 70 }, { "kind": "LiteralType", "literal": { "kind": "StringLiteral", "text": "lambda", "hasExtendedUnicodeEscape": false, "id": 73 }, "id": 72 }, { "kind": "LiteralType", "literal": { "kind": "StringLiteral", "text": "s3", "hasExtendedUnicodeEscape": false, "id": 75 }, "id": 74 }, { "kind": "LiteralType", "literal": { "kind": "StringLiteral", "text": "cloudfront", "hasExtendedUnicodeEscape": false, "id": 77 }, "id": 76 }], "id": 69 }], "id": 67 }, "jsDoc": [{ "kind": "JSDocComment", "comment": "Blah blah some information about the role that I expect\ne.g. here's a copy-pastable policy: [to a link]" }], "id": 65 }, { "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "secondLambdaRole", "id": 79 }, "type": { "kind": "TypeReference", "typeName": { "kind": "Identifier", "escapedText": "Role", "id": 81 }, "typeArguments": [{ "kind": "TupleType", "elements": [{ "kind": "LiteralType", "literal": { "kind": "StringLiteral", "text": "lambda", "hasExtendedUnicodeEscape": false, "id": 84 }, "id": 83 }, { "kind": "LiteralType", "literal": { "kind": "StringLiteral", "text": "s3", "hasExtendedUnicodeEscape": false, "id": 86 }, "id": 85 }], "id": 82 }], "id": 80 }, "jsDoc": [{ "kind": "JSDocComment", "comment": "Blah blah some information about the second role that I expect\ne.g. here's a copy-pastable policy: [to a link]" }], "id": 78 }], "id": 64 }], "id": 62 }, "jsDoc": [{ "kind": "JSDocComment", "comment": "blah blah blah some comments about the account that i'm deploying into" }], "id": 60 }], "id": 32 }], "id": 30 }, "jsDoc": [{ "kind": "JSDocComment", "comment": "This is some information about what type of environment and what in the world an environment is.", "tags": [{ "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "displayName" }, "comment": "This is the Environment Title Area" }, { "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "collapsed" } }] }], "id": 28 }, { "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "stringInput", "id": 88 }, "type": { "kind": "StringKeyword", "id": 89 }, "jsDoc": [{ "kind": "JSDocComment", "comment": "This is a regular string input field.\n1. It's display has been overriden to 'new stringinput display name' from 'stringInput'\n2. It should be a required field\n3. It should be collapsed by default\n4. The default value should have entropy of length 5 appended to it", "tags": [{ "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "displayName" }, "comment": "'new input display name'" }, { "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "validationRegex" }, "comment": ".*" }, { "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "collapsed" } }, { "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "defaultEntropy" }, "comment": "5" }] }], "id": 87 }, { "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "runtimes", "id": 91 }, "type": { "kind": "UnionType", "types": [{ "kind": "LiteralType", "literal": { "kind": "StringLiteral", "text": "nodejs", "hasExtendedUnicodeEscape": false, "id": 94 }, "id": 93 }, { "kind": "LiteralType", "literal": { "kind": "StringLiteral", "text": "python", "hasExtendedUnicodeEscape": false, "id": 96 }, "id": 95 }, { "kind": "LiteralType", "literal": { "kind": "StringLiteral", "text": "java", "hasExtendedUnicodeEscape": false, "id": 98 }, "id": 97 }, { "kind": "LiteralType", "literal": { "kind": "StringLiteral", "text": "dotnetcore", "hasExtendedUnicodeEscape": false, "id": 100 }, "id": 99 }, { "kind": "LiteralType", "literal": { "kind": "StringLiteral", "text": "ruby", "hasExtendedUnicodeEscape": false, "id": 102 }, "id": 101 }], "id": 92 }, "jsDoc": [{ "kind": "JSDocComment", "comment": "This is a regular enum input field with an override display name.", "tags": [{ "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "displayName" }, "comment": "'Runtime Languages'" }] }], "id": 90 }, { "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "numberInput", "id": 104 }, "type": { "kind": "NumberKeyword", "id": 105 }, "jsDoc": [{ "kind": "JSDocComment", "comment": "This is a regular number input field.\n1. It's display has been overriden to 'new numberInput display name' from 'numberInput'\n2. It should be a required field\n3. It should be collapsed by default", "tags": [{ "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "displayName" }, "comment": "'new input display name'" }, { "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "collapsed" } }] }], "id": 103 }, { "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "optionalNumberInput", "id": 107 }, "type": { "kind": "NumberKeyword", "id": 109 }, "questionToken": { "kind": "QuestionToken", "id": 108 }, "id": 106 }, { "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "nestedArea", "id": 111 }, "type": { "kind": "TypeLiteral", "members": [{ "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "stringInput", "id": 114 }, "type": { "kind": "StringKeyword", "id": 115 }, "jsDoc": [{ "kind": "JSDocComment", "comment": "This is a regular string input field.", "tags": [{ "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "displayName" }, "comment": "'overriden input display name for nested object'" }, { "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "validationRegex" }, "comment": ".*" }] }], "id": 113 }, { "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "emptyInput", "id": 117 }, "type": { "kind": "StringKeyword", "id": 118 }, "jsDoc": [{ "kind": "JSDocComment", "tags": [{ "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "validationRegex" }, "comment": ".*" }] }], "id": 116 }], "id": 112 }, "jsDoc": [{ "kind": "JSDocComment", "comment": "This is a nested object input field.\ncollapsed open by default. Not overriding the display name", "tags": [{ "kind": "FirstJSDocTagNode", "tagName": { "kind": "Identifier", "escapedText": "collapsed" }, "comment": "false" }] }], "id": 110 }, { "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "stringListInput", "id": 120 }, "type": { "kind": "ArrayType", "elementType": { "kind": "StringKeyword", "id": 123 }, "id": 122 }, "questionToken": { "kind": "QuestionToken", "id": 121 }, "jsDoc": [{ "kind": "JSDocComment", "comment": "String list input that should have validation" }], "id": 119 }, { "kind": "PropertySignature", "name": { "kind": "Identifier", "escapedText": "trueCheckbox", "id": 125 }, "type": { "kind": "BooleanKeyword", "id": 126 }, "jsDoc": [{ "kind": "JSDocComment", "comment": "This should be checked by default" }], "id": 124 }], "jsDoc": [{ "kind": "JSDocComment", "comment": "This is the 'Options' interface. The 'Options' interface is interpreted by the wizard to dynamically generate a selection UI.\n1. It MUST be called 'Options' in order to be interpreted by the wizard\n2. This is how you control the fields that show up on a wizard selection panel. Keeping this small leads to a better user experience.\n3. You can use JSDOCs and annotations such as: '?', @advanced, @hidden, @display - textarea, etc. to control how the wizard displays certain fields.\n4. All required members of 'Options' must be defined in 'defaults.json' to synth your blueprint locally\n5. The 'Options' member values defined in 'defaults.json' will be used to populate the wizard selection panel with default values" }], "id": 22 }, { "kind": "ClassDeclaration", "modifiers": [{ "kind": "ExportKeyword", "id": 128 }, { "kind": "DeclareKeyword", "id": 129 }], "name": { "kind": "Identifier", "escapedText": "Blueprint", "id": 130 }, "heritageClauses": [{ "kind": "HeritageClause", "token": 94, "types": [{ "kind": "ExpressionWithTypeArguments", "expression": { "kind": "Identifier", "escapedText": "ParentBlueprint", "id": 133 }, "id": 132 }], "id": 131 }], "members": [{ "kind": "Constructor", "parameters": [{ "kind": "Parameter", "name": { "kind": "Identifier", "escapedText": "options_", "id": 136 }, "type": { "kind": "TypeReference", "typeName": { "kind": "Identifier", "escapedText": "Options", "id": 138 }, "id": 137 }, "id": 135 }], "id": 134 }], "jsDoc": [{ "kind": "JSDocComment", "comment": "This is the actual blueprint class.\n1. This MUST be the only 'class' exported, as 'Blueprint'\n2. This Blueprint should extend another ParentBlueprint" }], "id": 127 }], "endOfFileToken": { "kind": "EndOfFileToken", "id": 139 }, "fileName": "temp-ast.d.ts", "languageVersion": 99, "languageVariant": 0, "scriptKind": 3, "isDeclarationFile": true, "hasNoDefaultLib": false, "bindDiagnostics": [], "pragmas": {}, "referencedFiles": [], "typeReferenceDirectives": [], "libReferenceDirectives": [], "amdDependencies": [], "nodeCount": 191, "identifierCount": 52, "identifiers": {}, "parseDiagnostics": [], "id": 1 }
