diff --git a/.eslint-dictionary.json b/.eslint-dictionary.json index 7610461e76e..0ddef6abaec 100644 --- a/.eslint-dictionary.json +++ b/.eslint-dictionary.json @@ -67,6 +67,7 @@ "captcha", "cfn", "cfnlambda", + "changeset", "chatbot", "chatbots", "chdir", @@ -330,9 +331,12 @@ "regenerator", "regexes", "rekognition", + "renderer", "repo", "reqheaders", "resolvers", + "refactorer", + "refactorers", "rethrow", "retrier", "rimraf", diff --git a/AGENTS.md b/AGENTS.md index f223c4ce65f..dab19d09e5c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -39,8 +39,11 @@ Verify your changes by following these guidelines: - **Always** update the appropriate JSDoc strings in the code you change. Be concise. - Do not create additional markdown files in the repository unless you are instructed explicitly to. - Never commit `.ai-generated` files (`.commit-message.ai-generated.txt`, `.pr-body.ai-generated.md`, etc.) — they are gitignored and are only used as local scratch files. -- Commit your changes in git using a well-formed commit message following the Conventional Commits format. The message must start - with a type prefix (e.g., `feat:`, `fix:`, `docs:`, `refactor:`, `test:`, `chore:`) followed by a single sentence summary and no more +- Commit your changes in git using a well-formed commit message following the Conventional Commits format. The message must include + a scope when the change is scoped to a specific package: `type(scope): subject`. The scope is derived from the package's `name` + field in `package.json` with the `@aws-amplify/` prefix stripped. For example, `@aws-amplify/cli-internal` → `cli-internal`, + `@aws-amplify/amplify-prompts` → `amplify-prompts`. Valid scopes are enforced by commitlint via `commitlint.config.js`. The + message must start with a type prefix (e.g., `feat:`, `fix:`, `docs:`, `refactor:`, `test:`, `chore:`) followed by a single sentence summary and no more than a few paragraphs explaining the change and your testing. After this explanation, place the prompt the user used to trigger this work prefixed with a "Prompt: " after a single line consisting of '---'. Make sure there are no empty lines before or after this line. Word wrap all paragraphs at 72 columns including the prompt. For the author of the commit, use the configured username in git with @@ -48,9 +51,12 @@ Verify your changes by following these guidelines: To avoid issues with multi-line commit messages, write the message to `.commit-message.ai-generated.txt` and use `-F`: ```bash - git commit --author="John Doe (AI) " -F .commit-message.ai-generated.txt + NODE_OPTIONS="--max-old-space-size=8192" git commit --author="John Doe (AI) " -F .commit-message.ai-generated.txt ``` + Always set `NODE_OPTIONS="--max-old-space-size=8192"` when committing to prevent OOM failures in the lint-staged hook. + After a successful commit, delete the scratch file: `rm -f .commit-message.ai-generated.txt`. + - Since this repo has a commit hook that takes quite a long time to run, don't immediately commit every change you were asked to do. Apply your judgment, if the diff is still fairly small just keep going. Otherwise, ask the user if they want to commit or keep going. diff --git a/CODING_GUIDELINES.md b/CODING_GUIDELINES.md index 0fb54fb4692..8bd13545158 100644 --- a/CODING_GUIDELINES.md +++ b/CODING_GUIDELINES.md @@ -129,6 +129,43 @@ funcGenerator.setAuthGenerator(authGenerator); --- +### Don't mutate module-level constant objects + +`const` prevents reassignment but does not prevent mutation of the object's properties. A module-level `const` object that gets passed to a function and mutated there silently becomes shared mutable state — every subsequent caller sees the mutations from previous calls. + +This is especially dangerous when the constant looks like a template or default value that multiple callers use as a starting point. The first caller mutates it, and the second caller unknowingly starts with the first caller's leftovers. + +```typescript +// Bad — shared object mutated by callers +const EMPTY_TEMPLATE = { Resources: {} }; + +function createStack(resources: Record) { + const template = EMPTY_TEMPLATE; // not a copy! + for (const [id, r] of Object.entries(resources)) { + template.Resources[id] = r; // mutates the shared constant + } + return template; +} + +// Second call sees resources from the first call +createStack({ BucketA: bucket }); +createStack({ BucketB: bucket }); // template now has both BucketA and BucketB +``` + +**Instead:** Clone the object before mutating it, or use a factory function that returns a fresh object each time. + +```typescript +// Good — clone before use +const template = JSON.parse(JSON.stringify(EMPTY_TEMPLATE)); + +// Good — factory function +function emptyTemplate() { + return { Resources: {} }; +} +``` + +--- + ### Prefer `const` over `let` Avoid `let` when the code can be restructured to use `const` instead. Even when `let` is technically correct (the variable is reassigned), the reassignment pattern itself is often the problem — it usually means branching logic is being used to populate variables that are consumed later, making it hard to reason about what values they hold at any given point. diff --git a/amplify-migration-apps/backend-only/_snapshot.post.refactor/refactor.__from__.amplify-backendonly-gen2main-branch-8e0f260810-auth179371D7-SEM95NL3BKFT.__to__.amplify-backendonly-gen2main-branch-8e0f260810-auth179371D7-SEM95NL3BKFT-holding.target.template.json b/amplify-migration-apps/backend-only/_snapshot.post.refactor/refactor.__from__.amplify-backendonly-gen2main-branch-8e0f260810-auth179371D7-SEM95NL3BKFT.__to__.amplify-backendonly-gen2main-branch-8e0f260810-auth179371D7-SEM95NL3BKFT-holding.target.template.json index 01658891def..281c9db4335 100644 --- a/amplify-migration-apps/backend-only/_snapshot.post.refactor/refactor.__from__.amplify-backendonly-gen2main-branch-8e0f260810-auth179371D7-SEM95NL3BKFT.__to__.amplify-backendonly-gen2main-branch-8e0f260810-auth179371D7-SEM95NL3BKFT-holding.target.template.json +++ b/amplify-migration-apps/backend-only/_snapshot.post.refactor/refactor.__from__.amplify-backendonly-gen2main-branch-8e0f260810-auth179371D7-SEM95NL3BKFT.__to__.amplify-backendonly-gen2main-branch-8e0f260810-auth179371D7-SEM95NL3BKFT-holding.target.template.json @@ -204,10 +204,6 @@ "authenticated": "arn:aws:iam::123456789012:role/amplify-backendonly-ge-amplifyAuthauthenticatedU-NrnOsacJVeCr" } }, - "DependsOn": [ - "amplifyAuthIdentityPool3FDE84CC", - "amplifyAuthUserPoolAppClient2626C6F8" - ], "Metadata": { "aws:cdk:path": "amplify-backendonly-gen2main-branch-8e0f260810/auth/amplifyAuth/IdentityPoolRoleAttachment" } diff --git a/amplify-migration-apps/backend-only/_snapshot.post.refactor/refactor.__from__.amplify-backendonly-gen2main-branch-8e0f260810-storage0EC3F24A-1BTE7UH0TFE2I.__to__.amplify-backendonly-gen2main-branch-8e0f260810-storage0EC3F24A-1BTE7UH0TFE2I-holding.source.template.json b/amplify-migration-apps/backend-only/_snapshot.post.refactor/refactor.__from__.amplify-backendonly-gen2main-branch-8e0f260810-storage0EC3F24A-1BTE7UH0TFE2I.__to__.amplify-backendonly-gen2main-branch-8e0f260810-storage0EC3F24A-1BTE7UH0TFE2I-holding.source.template.json index 28297393fb9..dfdd342e50f 100644 --- a/amplify-migration-apps/backend-only/_snapshot.post.refactor/refactor.__from__.amplify-backendonly-gen2main-branch-8e0f260810-storage0EC3F24A-1BTE7UH0TFE2I.__to__.amplify-backendonly-gen2main-branch-8e0f260810-storage0EC3F24A-1BTE7UH0TFE2I-holding.source.template.json +++ b/amplify-migration-apps/backend-only/_snapshot.post.refactor/refactor.__from__.amplify-backendonly-gen2main-branch-8e0f260810-storage0EC3F24A-1BTE7UH0TFE2I.__to__.amplify-backendonly-gen2main-branch-8e0f260810-storage0EC3F24A-1BTE7UH0TFE2I-holding.source.template.json @@ -69,9 +69,6 @@ "ServiceToken": "arn:aws:lambda:us-east-1:123456789012:function:amplify-backendonly-gen2main-branch-8e0f260810-storage0EC3F24A-1BTE7UH0TFE2I/CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F", "BucketName": "amplify-backendonly-ge-backendonlycb1a13ab81664-hysxrjfwrstc" }, - "DependsOn": [ - "backendonlycb1a13ab81664ecaa7d015068ab2d0165e0fagen2mainBucketPolicy14D90AB6" - ], "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { @@ -128,9 +125,6 @@ ] } }, - "DependsOn": [ - "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092" - ], "Metadata": { "aws:cdk:path": "amplify-backendonly-gen2main-branch-8e0f260810/storage/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler", "aws:asset:path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", diff --git a/amplify-migration-apps/backend-only/_snapshot.post.refactor/refactor.__from__.amplify-backendonly-main-5e0fa-authbackendonlyf8c4c57b-SC9H4E2DZU7A.__to__.amplify-backendonly-gen2main-branch-8e0f260810-auth179371D7-SEM95NL3BKFT.target.template.json b/amplify-migration-apps/backend-only/_snapshot.post.refactor/refactor.__from__.amplify-backendonly-main-5e0fa-authbackendonlyf8c4c57b-SC9H4E2DZU7A.__to__.amplify-backendonly-gen2main-branch-8e0f260810-auth179371D7-SEM95NL3BKFT.target.template.json index 15d25475c46..178ab4671af 100644 --- a/amplify-migration-apps/backend-only/_snapshot.post.refactor/refactor.__from__.amplify-backendonly-main-5e0fa-authbackendonlyf8c4c57b-SC9H4E2DZU7A.__to__.amplify-backendonly-gen2main-branch-8e0f260810-auth179371D7-SEM95NL3BKFT.target.template.json +++ b/amplify-migration-apps/backend-only/_snapshot.post.refactor/refactor.__from__.amplify-backendonly-main-5e0fa-authbackendonlyf8c4c57b-SC9H4E2DZU7A.__to__.amplify-backendonly-gen2main-branch-8e0f260810-auth179371D7-SEM95NL3BKFT.target.template.json @@ -168,10 +168,7 @@ "RefreshToken": "days" }, "UserPoolId": "us-east-1_1rvCNKN5B" - }, - "DependsOn": [ - "amplifyAuthUserPool4BA7F805" - ] + } }, "amplifyAuthUserPoolNativeAppClient79534448": { "Type": "AWS::Cognito::UserPoolClient", @@ -183,10 +180,7 @@ "RefreshToken": "days" }, "UserPoolId": "us-east-1_1rvCNKN5B" - }, - "DependsOn": [ - "amplifyAuthUserPool4BA7F805" - ] + } }, "amplifyAuthIdentityPool3FDE84CC": { "Type": "AWS::Cognito::IdentityPool", @@ -241,10 +235,7 @@ "unauthenticated": "arn:aws:iam::123456789012:role/amplify-backendonly-main-5e0fa-unauthRole", "authenticated": "arn:aws:iam::123456789012:role/amplify-backendonly-main-5e0fa-authRole" } - }, - "DependsOn": [ - "amplifyAuthIdentityPool3FDE84CC" - ] + } } }, "Conditions": { diff --git a/amplify-migration-apps/backend-only/_snapshot.post.refactor/refactor.__from__.amplify-backendonly-main-5e0fa-storages3c31471c3-MQFWTKK6ETYR.__to__.amplify-backendonly-gen2main-branch-8e0f260810-storage0EC3F24A-1BTE7UH0TFE2I.source.template.json b/amplify-migration-apps/backend-only/_snapshot.post.refactor/refactor.__from__.amplify-backendonly-main-5e0fa-storages3c31471c3-MQFWTKK6ETYR.__to__.amplify-backendonly-gen2main-branch-8e0f260810-storage0EC3F24A-1BTE7UH0TFE2I.source.template.json index d623d0c18b3..c3476642330 100644 --- a/amplify-migration-apps/backend-only/_snapshot.post.refactor/refactor.__from__.amplify-backendonly-main-5e0fa-storages3c31471c3-MQFWTKK6ETYR.__to__.amplify-backendonly-gen2main-branch-8e0f260810-storage0EC3F24A-1BTE7UH0TFE2I.source.template.json +++ b/amplify-migration-apps/backend-only/_snapshot.post.refactor/refactor.__from__.amplify-backendonly-main-5e0fa-storages3c31471c3-MQFWTKK6ETYR.__to__.amplify-backendonly-gen2main-branch-8e0f260810-storage0EC3F24A-1BTE7UH0TFE2I.source.template.json @@ -213,7 +213,6 @@ "amplify-backendonly-main-5e0fa-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthPublic" }, "S3AuthProtectedPolicy": { @@ -250,7 +249,6 @@ "amplify-backendonly-main-5e0fa-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthProtected" }, "S3AuthPrivatePolicy": { @@ -287,7 +285,6 @@ "amplify-backendonly-main-5e0fa-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthPrivate" }, "S3AuthUploadPolicy": { @@ -324,7 +321,6 @@ "amplify-backendonly-main-5e0fa-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthUploads" }, "S3GuestPublicPolicy": { @@ -361,7 +357,6 @@ "amplify-backendonly-main-5e0fa-unauthRole" ] }, - "DependsOn": [], "Condition": "CreateGuestPublic" }, "S3AuthReadPolicy": { @@ -416,7 +411,6 @@ "amplify-backendonly-main-5e0fa-authRole" ] }, - "DependsOn": [], "Condition": "AuthReadAndList" }, "S3GuestReadPolicy": { @@ -469,7 +463,6 @@ "amplify-backendonly-main-5e0fa-unauthRole" ] }, - "DependsOn": [], "Condition": "GuestReadAndList" } } diff --git a/amplify-migration-apps/backend-only/_snapshot.post.refactor/refactor.__from__.amplify-backendonly-main-5e0fa-storages3c31471c3-MQFWTKK6ETYR.__to__.amplify-backendonly-gen2main-branch-8e0f260810-storage0EC3F24A-1BTE7UH0TFE2I.target.template.json b/amplify-migration-apps/backend-only/_snapshot.post.refactor/refactor.__from__.amplify-backendonly-main-5e0fa-storages3c31471c3-MQFWTKK6ETYR.__to__.amplify-backendonly-gen2main-branch-8e0f260810-storage0EC3F24A-1BTE7UH0TFE2I.target.template.json index a7608416efc..2c4aa9226e0 100644 --- a/amplify-migration-apps/backend-only/_snapshot.post.refactor/refactor.__from__.amplify-backendonly-main-5e0fa-storages3c31471c3-MQFWTKK6ETYR.__to__.amplify-backendonly-gen2main-branch-8e0f260810-storage0EC3F24A-1BTE7UH0TFE2I.target.template.json +++ b/amplify-migration-apps/backend-only/_snapshot.post.refactor/refactor.__from__.amplify-backendonly-main-5e0fa-storages3c31471c3-MQFWTKK6ETYR.__to__.amplify-backendonly-gen2main-branch-8e0f260810-storage0EC3F24A-1BTE7UH0TFE2I.target.template.json @@ -69,9 +69,6 @@ "ServiceToken": "arn:aws:lambda:us-east-1:123456789012:function:amplify-backendonly-gen2main-branch-8e0f260810-storage0EC3F24A-1BTE7UH0TFE2I/CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F", "BucketName": "amplify-backendonly-ge-backendonlycb1a13ab81664-hysxrjfwrstc" }, - "DependsOn": [ - "backendonlycb1a13ab81664ecaa7d015068ab2d0165e0fagen2mainBucketPolicy14D90AB6" - ], "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { @@ -128,9 +125,6 @@ ] } }, - "DependsOn": [ - "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092" - ], "Metadata": { "aws:cdk:path": "amplify-backendonly-gen2main-branch-8e0f260810/storage/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler", "aws:asset:path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", diff --git a/amplify-migration-apps/backend-only/_snapshot.post.refactor/update.amplify-backendonly-gen2main-branch-8e0f260810-auth179371D7-SEM95NL3BKFT.template.json b/amplify-migration-apps/backend-only/_snapshot.post.refactor/update.amplify-backendonly-gen2main-branch-8e0f260810-auth179371D7-SEM95NL3BKFT.template.json index 215b67b1a19..e4c6ac26f39 100644 --- a/amplify-migration-apps/backend-only/_snapshot.post.refactor/update.amplify-backendonly-gen2main-branch-8e0f260810-auth179371D7-SEM95NL3BKFT.template.json +++ b/amplify-migration-apps/backend-only/_snapshot.post.refactor/update.amplify-backendonly-gen2main-branch-8e0f260810-auth179371D7-SEM95NL3BKFT.template.json @@ -303,10 +303,6 @@ "authenticated": "arn:aws:iam::123456789012:role/amplify-backendonly-ge-amplifyAuthauthenticatedU-NrnOsacJVeCr" } }, - "DependsOn": [ - "amplifyAuthIdentityPool3FDE84CC", - "amplifyAuthUserPoolAppClient2626C6F8" - ], "Metadata": { "aws:cdk:path": "amplify-backendonly-gen2main-branch-8e0f260810/auth/amplifyAuth/IdentityPoolRoleAttachment" } diff --git a/amplify-migration-apps/backend-only/_snapshot.post.refactor/update.amplify-backendonly-gen2main-branch-8e0f260810-storage0EC3F24A-1BTE7UH0TFE2I.template.json b/amplify-migration-apps/backend-only/_snapshot.post.refactor/update.amplify-backendonly-gen2main-branch-8e0f260810-storage0EC3F24A-1BTE7UH0TFE2I.template.json index 4c65e86344c..7d2b002bc3d 100644 --- a/amplify-migration-apps/backend-only/_snapshot.post.refactor/update.amplify-backendonly-gen2main-branch-8e0f260810-storage0EC3F24A-1BTE7UH0TFE2I.template.json +++ b/amplify-migration-apps/backend-only/_snapshot.post.refactor/update.amplify-backendonly-gen2main-branch-8e0f260810-storage0EC3F24A-1BTE7UH0TFE2I.template.json @@ -141,9 +141,6 @@ "ServiceToken": "arn:aws:lambda:us-east-1:123456789012:function:amplify-backendonly-gen2main-branch-8e0f260810-storage0EC3F24A-1BTE7UH0TFE2I/CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F", "BucketName": "amplify-backendonly-ge-backendonlycb1a13ab81664-hysxrjfwrstc" }, - "DependsOn": [ - "backendonlycb1a13ab81664ecaa7d015068ab2d0165e0fagen2mainBucketPolicy14D90AB6" - ], "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { @@ -200,9 +197,6 @@ ] } }, - "DependsOn": [ - "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092" - ], "Metadata": { "aws:cdk:path": "amplify-backendonly-gen2main-branch-8e0f260810/storage/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler", "aws:asset:path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", diff --git a/amplify-migration-apps/backend-only/_snapshot.post.refactor/update.amplify-backendonly-main-5e0fa-authbackendonlyf8c4c57b-SC9H4E2DZU7A.template.json b/amplify-migration-apps/backend-only/_snapshot.post.refactor/update.amplify-backendonly-main-5e0fa-authbackendonlyf8c4c57b-SC9H4E2DZU7A.template.json index fcc393b3d08..f92f2b63239 100644 --- a/amplify-migration-apps/backend-only/_snapshot.post.refactor/update.amplify-backendonly-main-5e0fa-authbackendonlyf8c4c57b-SC9H4E2DZU7A.template.json +++ b/amplify-migration-apps/backend-only/_snapshot.post.refactor/update.amplify-backendonly-main-5e0fa-authbackendonlyf8c4c57b-SC9H4E2DZU7A.template.json @@ -177,10 +177,7 @@ "RefreshToken": "days" }, "UserPoolId": "us-east-1_1rvCNKN5B" - }, - "DependsOn": [ - "UserPool" - ] + } }, "UserPoolClient": { "Type": "AWS::Cognito::UserPoolClient", @@ -192,10 +189,7 @@ "RefreshToken": "days" }, "UserPoolId": "us-east-1_1rvCNKN5B" - }, - "DependsOn": [ - "UserPool" - ] + } }, "UserPoolClientRole": { "Type": "AWS::IAM::Role", @@ -288,10 +282,7 @@ "unauthenticated": "arn:aws:iam::123456789012:role/amplify-backendonly-main-5e0fa-unauthRole", "authenticated": "arn:aws:iam::123456789012:role/amplify-backendonly-main-5e0fa-authRole" } - }, - "DependsOn": [ - "IdentityPool" - ] + } } }, "Outputs": { diff --git a/amplify-migration-apps/backend-only/_snapshot.post.refactor/update.amplify-backendonly-main-5e0fa-storages3c31471c3-MQFWTKK6ETYR.template.json b/amplify-migration-apps/backend-only/_snapshot.post.refactor/update.amplify-backendonly-main-5e0fa-storages3c31471c3-MQFWTKK6ETYR.template.json index 79c87cef7b1..87ee6202dd7 100644 --- a/amplify-migration-apps/backend-only/_snapshot.post.refactor/update.amplify-backendonly-main-5e0fa-storages3c31471c3-MQFWTKK6ETYR.template.json +++ b/amplify-migration-apps/backend-only/_snapshot.post.refactor/update.amplify-backendonly-main-5e0fa-storages3c31471c3-MQFWTKK6ETYR.template.json @@ -277,7 +277,6 @@ "amplify-backendonly-main-5e0fa-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthPublic" }, "S3AuthProtectedPolicy": { @@ -314,7 +313,6 @@ "amplify-backendonly-main-5e0fa-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthProtected" }, "S3AuthPrivatePolicy": { @@ -351,7 +349,6 @@ "amplify-backendonly-main-5e0fa-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthPrivate" }, "S3AuthUploadPolicy": { @@ -388,7 +385,6 @@ "amplify-backendonly-main-5e0fa-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthUploads" }, "S3GuestPublicPolicy": { @@ -425,7 +421,6 @@ "amplify-backendonly-main-5e0fa-unauthRole" ] }, - "DependsOn": [], "Condition": "CreateGuestPublic" }, "S3AuthReadPolicy": { @@ -480,7 +475,6 @@ "amplify-backendonly-main-5e0fa-authRole" ] }, - "DependsOn": [], "Condition": "AuthReadAndList" }, "S3GuestReadPolicy": { @@ -533,7 +527,6 @@ "amplify-backendonly-main-5e0fa-unauthRole" ] }, - "DependsOn": [], "Condition": "GuestReadAndList" } } diff --git a/amplify-migration-apps/discussions/_snapshot.post.refactor/refactor.__from__.amplify-discussions-gen2main-branch-a27e51c30a-auth179371D7-6NIMXK30VQKX.__to__.amplify-discussions-gen2main-branch-a27e51c30a-auth179371D7-6NIMXK30VQKX-holding.target.template.json b/amplify-migration-apps/discussions/_snapshot.post.refactor/refactor.__from__.amplify-discussions-gen2main-branch-a27e51c30a-auth179371D7-6NIMXK30VQKX.__to__.amplify-discussions-gen2main-branch-a27e51c30a-auth179371D7-6NIMXK30VQKX-holding.target.template.json index 5a533e7e419..436c49291be 100644 --- a/amplify-migration-apps/discussions/_snapshot.post.refactor/refactor.__from__.amplify-discussions-gen2main-branch-a27e51c30a-auth179371D7-6NIMXK30VQKX.__to__.amplify-discussions-gen2main-branch-a27e51c30a-auth179371D7-6NIMXK30VQKX-holding.target.template.json +++ b/amplify-migration-apps/discussions/_snapshot.post.refactor/refactor.__from__.amplify-discussions-gen2main-branch-a27e51c30a-auth179371D7-6NIMXK30VQKX.__to__.amplify-discussions-gen2main-branch-a27e51c30a-auth179371D7-6NIMXK30VQKX-holding.target.template.json @@ -209,10 +209,6 @@ "authenticated": "arn:aws:iam::123456789012:role/amplify-discussions-ge-amplifyAuthauthenticatedU-fjzgnNdQ7Oe2" } }, - "DependsOn": [ - "amplifyAuthIdentityPool3FDE84CC", - "amplifyAuthUserPoolAppClient2626C6F8" - ], "Metadata": { "aws:cdk:path": "amplify-discussions-gen2main-branch-a27e51c30a/auth/amplifyAuth/IdentityPoolRoleAttachment" } diff --git a/amplify-migration-apps/discussions/_snapshot.post.refactor/refactor.__from__.amplify-discussions-gen2main-branch-a27e51c30a-storage0EC3F24A-O1Q835F0QK5N.__to__.amplify-discussions-gen2main-branch-a27e51c30a-storage0EC3F24A-O1Q835F0QK5N-holding.source.template.json b/amplify-migration-apps/discussions/_snapshot.post.refactor/refactor.__from__.amplify-discussions-gen2main-branch-a27e51c30a-storage0EC3F24A-O1Q835F0QK5N.__to__.amplify-discussions-gen2main-branch-a27e51c30a-storage0EC3F24A-O1Q835F0QK5N-holding.source.template.json index 31457687dae..07e4c75c307 100644 --- a/amplify-migration-apps/discussions/_snapshot.post.refactor/refactor.__from__.amplify-discussions-gen2main-branch-a27e51c30a-storage0EC3F24A-O1Q835F0QK5N.__to__.amplify-discussions-gen2main-branch-a27e51c30a-storage0EC3F24A-O1Q835F0QK5N-holding.source.template.json +++ b/amplify-migration-apps/discussions/_snapshot.post.refactor/refactor.__from__.amplify-discussions-gen2main-branch-a27e51c30a-storage0EC3F24A-O1Q835F0QK5N.__to__.amplify-discussions-gen2main-branch-a27e51c30a-storage0EC3F24A-O1Q835F0QK5N-holding.source.template.json @@ -69,9 +69,6 @@ "ServiceToken": "arn:aws:lambda:us-east-1:123456789012:function:amplify-discussions-gen2main-branch-a27e51c30a-storage0EC3F24A-O1Q835F0QK5N/CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F", "BucketName": "amplify-discussions-ge-discusavatarsc39a5gen2ma-tofeojsv2jx4" }, - "DependsOn": [ - "discusavatarsc39a5gen2mainBucketPolicy73EB7DB2" - ], "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { @@ -128,9 +125,6 @@ ] } }, - "DependsOn": [ - "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092" - ], "Metadata": { "aws:cdk:path": "amplify-discussions-gen2main-branch-a27e51c30a/storage/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler", "aws:asset:path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", diff --git a/amplify-migration-apps/discussions/_snapshot.post.refactor/refactor.__from__.amplify-discussions-main-c39a5-authdiscussionsc578c16ec578c16e-1XF3OX52Z0KBB.__to__.amplify-discussions-gen2main-branch-a27e51c30a-auth179371D7-6NIMXK30VQKX.target.template.json b/amplify-migration-apps/discussions/_snapshot.post.refactor/refactor.__from__.amplify-discussions-main-c39a5-authdiscussionsc578c16ec578c16e-1XF3OX52Z0KBB.__to__.amplify-discussions-gen2main-branch-a27e51c30a-auth179371D7-6NIMXK30VQKX.target.template.json index ed4aeff95d6..6641106028e 100644 --- a/amplify-migration-apps/discussions/_snapshot.post.refactor/refactor.__from__.amplify-discussions-main-c39a5-authdiscussionsc578c16ec578c16e-1XF3OX52Z0KBB.__to__.amplify-discussions-gen2main-branch-a27e51c30a-auth179371D7-6NIMXK30VQKX.target.template.json +++ b/amplify-migration-apps/discussions/_snapshot.post.refactor/refactor.__from__.amplify-discussions-main-c39a5-authdiscussionsc578c16ec578c16e-1XF3OX52Z0KBB.__to__.amplify-discussions-gen2main-branch-a27e51c30a-auth179371D7-6NIMXK30VQKX.target.template.json @@ -168,8 +168,7 @@ "UsernameConfiguration": { "CaseSensitive": false } - }, - "DependsOn": [] + } }, "amplifyAuthUserPoolAppClient2626C6F8": { "Type": "AWS::Cognito::UserPoolClient", @@ -180,10 +179,7 @@ "RefreshToken": "days" }, "UserPoolId": "us-east-1_vv2HFjwRK" - }, - "DependsOn": [ - "amplifyAuthUserPool4BA7F805" - ] + } }, "amplifyAuthUserPoolNativeAppClient79534448": { "Type": "AWS::Cognito::UserPoolClient", @@ -195,10 +191,7 @@ "RefreshToken": "days" }, "UserPoolId": "us-east-1_vv2HFjwRK" - }, - "DependsOn": [ - "amplifyAuthUserPool4BA7F805" - ] + } }, "amplifyAuthIdentityPool3FDE84CC": { "Type": "AWS::Cognito::IdentityPool", @@ -253,10 +246,7 @@ "unauthenticated": "arn:aws:iam::123456789012:role/amplify-discussions-main-c39a5-unauthRole", "authenticated": "arn:aws:iam::123456789012:role/amplify-discussions-main-c39a5-authRole" } - }, - "DependsOn": [ - "amplifyAuthIdentityPool3FDE84CC" - ] + } } }, "Conditions": { diff --git a/amplify-migration-apps/discussions/_snapshot.post.refactor/refactor.__from__.amplify-discussions-main-c39a5-storageavatars-1BVCGXECPBEMB.__to__.amplify-discussions-gen2main-branch-a27e51c30a-storage0EC3F24A-O1Q835F0QK5N.source.template.json b/amplify-migration-apps/discussions/_snapshot.post.refactor/refactor.__from__.amplify-discussions-main-c39a5-storageavatars-1BVCGXECPBEMB.__to__.amplify-discussions-gen2main-branch-a27e51c30a-storage0EC3F24A-O1Q835F0QK5N.source.template.json index 40b2aebaa72..655911bf950 100644 --- a/amplify-migration-apps/discussions/_snapshot.post.refactor/refactor.__from__.amplify-discussions-main-c39a5-storageavatars-1BVCGXECPBEMB.__to__.amplify-discussions-gen2main-branch-a27e51c30a-storage0EC3F24A-O1Q835F0QK5N.source.template.json +++ b/amplify-migration-apps/discussions/_snapshot.post.refactor/refactor.__from__.amplify-discussions-main-c39a5-storageavatars-1BVCGXECPBEMB.__to__.amplify-discussions-gen2main-branch-a27e51c30a-storage0EC3F24A-O1Q835F0QK5N.source.template.json @@ -213,7 +213,6 @@ "amplify-discussions-main-c39a5-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthPublic" }, "S3AuthProtectedPolicy": { @@ -250,7 +249,6 @@ "amplify-discussions-main-c39a5-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthProtected" }, "S3AuthPrivatePolicy": { @@ -287,7 +285,6 @@ "amplify-discussions-main-c39a5-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthPrivate" }, "S3AuthUploadPolicy": { @@ -324,7 +321,6 @@ "amplify-discussions-main-c39a5-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthUploads" }, "S3AuthReadPolicy": { @@ -379,7 +375,6 @@ "amplify-discussions-main-c39a5-authRole" ] }, - "DependsOn": [], "Condition": "AuthReadAndList" } } diff --git a/amplify-migration-apps/discussions/_snapshot.post.refactor/refactor.__from__.amplify-discussions-main-c39a5-storageavatars-1BVCGXECPBEMB.__to__.amplify-discussions-gen2main-branch-a27e51c30a-storage0EC3F24A-O1Q835F0QK5N.target.template.json b/amplify-migration-apps/discussions/_snapshot.post.refactor/refactor.__from__.amplify-discussions-main-c39a5-storageavatars-1BVCGXECPBEMB.__to__.amplify-discussions-gen2main-branch-a27e51c30a-storage0EC3F24A-O1Q835F0QK5N.target.template.json index 053e6a76b6b..ca70bc938f7 100644 --- a/amplify-migration-apps/discussions/_snapshot.post.refactor/refactor.__from__.amplify-discussions-main-c39a5-storageavatars-1BVCGXECPBEMB.__to__.amplify-discussions-gen2main-branch-a27e51c30a-storage0EC3F24A-O1Q835F0QK5N.target.template.json +++ b/amplify-migration-apps/discussions/_snapshot.post.refactor/refactor.__from__.amplify-discussions-main-c39a5-storageavatars-1BVCGXECPBEMB.__to__.amplify-discussions-gen2main-branch-a27e51c30a-storage0EC3F24A-O1Q835F0QK5N.target.template.json @@ -69,9 +69,6 @@ "ServiceToken": "arn:aws:lambda:us-east-1:123456789012:function:amplify-discussions-gen2main-branch-a27e51c30a-storage0EC3F24A-O1Q835F0QK5N/CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F", "BucketName": "amplify-discussions-ge-discusavatarsc39a5gen2ma-tofeojsv2jx4" }, - "DependsOn": [ - "discusavatarsc39a5gen2mainBucketPolicy73EB7DB2" - ], "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { @@ -128,9 +125,6 @@ ] } }, - "DependsOn": [ - "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092" - ], "Metadata": { "aws:cdk:path": "amplify-discussions-gen2main-branch-a27e51c30a/storage/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler", "aws:asset:path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", diff --git a/amplify-migration-apps/discussions/_snapshot.post.refactor/update.amplify-discussions-gen2main-branch-a27e51c30a-auth179371D7-6NIMXK30VQKX.template.json b/amplify-migration-apps/discussions/_snapshot.post.refactor/update.amplify-discussions-gen2main-branch-a27e51c30a-auth179371D7-6NIMXK30VQKX.template.json index 60395f860ba..41640dfbadb 100644 --- a/amplify-migration-apps/discussions/_snapshot.post.refactor/update.amplify-discussions-gen2main-branch-a27e51c30a-auth179371D7-6NIMXK30VQKX.template.json +++ b/amplify-migration-apps/discussions/_snapshot.post.refactor/update.amplify-discussions-gen2main-branch-a27e51c30a-auth179371D7-6NIMXK30VQKX.template.json @@ -308,10 +308,6 @@ "authenticated": "arn:aws:iam::123456789012:role/amplify-discussions-ge-amplifyAuthauthenticatedU-fjzgnNdQ7Oe2" } }, - "DependsOn": [ - "amplifyAuthIdentityPool3FDE84CC", - "amplifyAuthUserPoolAppClient2626C6F8" - ], "Metadata": { "aws:cdk:path": "amplify-discussions-gen2main-branch-a27e51c30a/auth/amplifyAuth/IdentityPoolRoleAttachment" } diff --git a/amplify-migration-apps/discussions/_snapshot.post.refactor/update.amplify-discussions-gen2main-branch-a27e51c30a-storage0EC3F24A-O1Q835F0QK5N.template.json b/amplify-migration-apps/discussions/_snapshot.post.refactor/update.amplify-discussions-gen2main-branch-a27e51c30a-storage0EC3F24A-O1Q835F0QK5N.template.json index e5802525794..fff2b4be29f 100644 --- a/amplify-migration-apps/discussions/_snapshot.post.refactor/update.amplify-discussions-gen2main-branch-a27e51c30a-storage0EC3F24A-O1Q835F0QK5N.template.json +++ b/amplify-migration-apps/discussions/_snapshot.post.refactor/update.amplify-discussions-gen2main-branch-a27e51c30a-storage0EC3F24A-O1Q835F0QK5N.template.json @@ -141,9 +141,6 @@ "ServiceToken": "arn:aws:lambda:us-east-1:123456789012:function:amplify-discussions-gen2main-branch-a27e51c30a-storage0EC3F24A-O1Q835F0QK5N/CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F", "BucketName": "amplify-discussions-ge-discusavatarsc39a5gen2ma-tofeojsv2jx4" }, - "DependsOn": [ - "discusavatarsc39a5gen2mainBucketPolicy73EB7DB2" - ], "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { @@ -200,9 +197,6 @@ ] } }, - "DependsOn": [ - "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092" - ], "Metadata": { "aws:cdk:path": "amplify-discussions-gen2main-branch-a27e51c30a/storage/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler", "aws:asset:path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", diff --git a/amplify-migration-apps/discussions/_snapshot.post.refactor/update.amplify-discussions-main-c39a5-authdiscussionsc578c16ec578c16e-1XF3OX52Z0KBB.template.json b/amplify-migration-apps/discussions/_snapshot.post.refactor/update.amplify-discussions-main-c39a5-authdiscussionsc578c16ec578c16e-1XF3OX52Z0KBB.template.json index bd2a9006e68..eb336444e97 100644 --- a/amplify-migration-apps/discussions/_snapshot.post.refactor/update.amplify-discussions-main-c39a5-authdiscussionsc578c16ec578c16e-1XF3OX52Z0KBB.template.json +++ b/amplify-migration-apps/discussions/_snapshot.post.refactor/update.amplify-discussions-main-c39a5-authdiscussionsc578c16ec578c16e-1XF3OX52Z0KBB.template.json @@ -255,8 +255,7 @@ "UsernameConfiguration": { "CaseSensitive": false } - }, - "DependsOn": [] + } }, "UserPoolClientWeb": { "Type": "AWS::Cognito::UserPoolClient", @@ -267,10 +266,7 @@ "RefreshToken": "days" }, "UserPoolId": "us-east-1_vv2HFjwRK" - }, - "DependsOn": [ - "UserPool" - ] + } }, "UserPoolClient": { "Type": "AWS::Cognito::UserPoolClient", @@ -282,10 +278,7 @@ "RefreshToken": "days" }, "UserPoolId": "us-east-1_vv2HFjwRK" - }, - "DependsOn": [ - "UserPool" - ] + } }, "UserPoolClientRole": { "Type": "AWS::IAM::Role", @@ -378,10 +371,7 @@ "unauthenticated": "arn:aws:iam::123456789012:role/amplify-discussions-main-c39a5-unauthRole", "authenticated": "arn:aws:iam::123456789012:role/amplify-discussions-main-c39a5-authRole" } - }, - "DependsOn": [ - "IdentityPool" - ] + } } }, "Outputs": { diff --git a/amplify-migration-apps/discussions/_snapshot.post.refactor/update.amplify-discussions-main-c39a5-storageavatars-1BVCGXECPBEMB.template.json b/amplify-migration-apps/discussions/_snapshot.post.refactor/update.amplify-discussions-main-c39a5-storageavatars-1BVCGXECPBEMB.template.json index 873f59b7fb1..abb27344101 100644 --- a/amplify-migration-apps/discussions/_snapshot.post.refactor/update.amplify-discussions-main-c39a5-storageavatars-1BVCGXECPBEMB.template.json +++ b/amplify-migration-apps/discussions/_snapshot.post.refactor/update.amplify-discussions-main-c39a5-storageavatars-1BVCGXECPBEMB.template.json @@ -277,7 +277,6 @@ "amplify-discussions-main-c39a5-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthPublic" }, "S3AuthProtectedPolicy": { @@ -314,7 +313,6 @@ "amplify-discussions-main-c39a5-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthProtected" }, "S3AuthPrivatePolicy": { @@ -351,7 +349,6 @@ "amplify-discussions-main-c39a5-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthPrivate" }, "S3AuthUploadPolicy": { @@ -388,7 +385,6 @@ "amplify-discussions-main-c39a5-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthUploads" }, "S3AuthReadPolicy": { @@ -443,7 +439,6 @@ "amplify-discussions-main-c39a5-authRole" ] }, - "DependsOn": [], "Condition": "AuthReadAndList" } } diff --git a/amplify-migration-apps/discussions/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/discussions22367c6822367c68/build/discussions22367c6822367c68-cloudformation-template.json b/amplify-migration-apps/discussions/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/discussions22367c6822367c68/build/discussions22367c6822367c68-cloudformation-template.json new file mode 100644 index 00000000000..c305475136f --- /dev/null +++ b/amplify-migration-apps/discussions/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/discussions22367c6822367c68/build/discussions22367c6822367c68-cloudformation-template.json @@ -0,0 +1,533 @@ +{ + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"auth-Cognito\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "env": { + "Type": "String" + }, + "identityPoolName": { + "Type": "String" + }, + "allowUnauthenticatedIdentities": { + "Type": "String" + }, + "resourceNameTruncated": { + "Type": "String" + }, + "userPoolName": { + "Type": "String" + }, + "autoVerifiedAttributes": { + "Type": "CommaDelimitedList" + }, + "mfaConfiguration": { + "Type": "String" + }, + "mfaTypes": { + "Type": "CommaDelimitedList" + }, + "smsAuthenticationMessage": { + "Type": "String" + }, + "smsVerificationMessage": { + "Type": "String" + }, + "emailVerificationSubject": { + "Type": "String" + }, + "emailVerificationMessage": { + "Type": "String" + }, + "defaultPasswordPolicy": { + "Type": "String" + }, + "passwordPolicyMinLength": { + "Type": "String" + }, + "passwordPolicyCharacters": { + "Type": "CommaDelimitedList" + }, + "requiredAttributes": { + "Type": "CommaDelimitedList" + }, + "aliasAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientGenerateSecret": { + "Type": "String" + }, + "userpoolClientRefreshTokenValidity": { + "Type": "String" + }, + "userpoolClientWriteAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientReadAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientLambdaRole": { + "Type": "String" + }, + "userpoolClientSetAttributes": { + "Type": "String" + }, + "sharedId": { + "Type": "String" + }, + "resourceName": { + "Type": "String" + }, + "authSelections": { + "Type": "String" + }, + "useDefault": { + "Type": "String" + }, + "thirdPartyAuth": { + "Type": "String" + }, + "usernameAttributes": { + "Type": "CommaDelimitedList" + }, + "userPoolGroups": { + "Type": "String" + }, + "adminQueries": { + "Type": "String" + }, + "triggers": { + "Type": "String" + }, + "hostedUI": { + "Type": "String" + }, + "userPoolGroupList": { + "Type": "CommaDelimitedList" + }, + "serviceName": { + "Type": "String" + }, + "usernameCaseSensitive": { + "Type": "String" + }, + "useEnabledMfas": { + "Type": "String" + }, + "authRoleArn": { + "Type": "String" + }, + "unauthRoleArn": { + "Type": "String" + }, + "breakCircularDependency": { + "Type": "String" + }, + "dependsOn": { + "Type": "CommaDelimitedList" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + }, + "Resources": { + "SNSRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Allow", + "Principal": { + "Service": "cognito-idp.amazonaws.com" + }, + "Action": [ + "sts:AssumeRole" + ], + "Condition": { + "StringEquals": { + "sts:ExternalId": "discus22367c68_role_external_id" + } + } + } + ] + }, + "Policies": [ + { + "PolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "sns:Publish" + ], + "Resource": "*" + } + ] + }, + "PolicyName": "discus22367c68-sns-policy" + } + ], + "RoleName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "discus22367c68_sns-role", + { + "Fn::Join": [ + "", + [ + "sns22367c68", + { + "Fn::Select": [ + 3, + { + "Fn::Split": [ + "-", + { + "Ref": "AWS::StackName" + } + ] + } + ] + }, + "-", + { + "Ref": "env" + } + ] + ] + } + ] + } + } + }, + "UserPool": { + "Type": "AWS::Cognito::UserPool", + "Properties": { + "AutoVerifiedAttributes": [ + "email" + ], + "EmailVerificationMessage": { + "Ref": "emailVerificationMessage" + }, + "EmailVerificationSubject": { + "Ref": "emailVerificationSubject" + }, + "MfaConfiguration": { + "Ref": "mfaConfiguration" + }, + "Policies": { + "PasswordPolicy": { + "MinimumLength": { + "Ref": "passwordPolicyMinLength" + }, + "RequireLowercase": false, + "RequireNumbers": false, + "RequireSymbols": false, + "RequireUppercase": false + } + }, + "Schema": [ + { + "Mutable": true, + "Name": "email", + "Required": true + }, + { + "Mutable": true, + "Name": "phone_number", + "Required": true + } + ], + "SmsAuthenticationMessage": { + "Ref": "smsAuthenticationMessage" + }, + "SmsConfiguration": { + "ExternalId": "discus22367c68_role_external_id", + "SnsCallerArn": { + "Fn::GetAtt": [ + "SNSRole", + "Arn" + ] + } + }, + "SmsVerificationMessage": { + "Ref": "smsVerificationMessage" + }, + "UserAttributeUpdateSettings": { + "AttributesRequireVerificationBeforeUpdate": [ + "email" + ] + }, + "UserPoolName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + { + "Ref": "userPoolName" + }, + { + "Fn::Join": [ + "", + [ + { + "Ref": "userPoolName" + }, + "-", + { + "Ref": "env" + } + ] + ] + } + ] + }, + "UsernameAttributes": { + "Ref": "usernameAttributes" + }, + "UsernameConfiguration": { + "CaseSensitive": false + } + }, + "DependsOn": [ + "SNSRole" + ] + }, + "UserPoolClientWeb": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "ClientName": "discus22367c68_app_clientWeb", + "RefreshTokenValidity": { + "Ref": "userpoolClientRefreshTokenValidity" + }, + "TokenValidityUnits": { + "RefreshToken": "days" + }, + "UserPoolId": { + "Ref": "UserPool" + } + }, + "DependsOn": [ + "UserPool" + ] + }, + "UserPoolClient": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "ClientName": "discus22367c68_app_client", + "GenerateSecret": { + "Ref": "userpoolClientGenerateSecret" + }, + "RefreshTokenValidity": { + "Ref": "userpoolClientRefreshTokenValidity" + }, + "TokenValidityUnits": { + "RefreshToken": "days" + }, + "UserPoolId": { + "Ref": "UserPool" + } + }, + "DependsOn": [ + "UserPool" + ] + }, + "UserPoolClientRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + }, + "Action": "sts:AssumeRole" + } + ] + }, + "RoleName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + { + "Ref": "userpoolClientLambdaRole" + }, + { + "Fn::Join": [ + "", + [ + "upClientLambdaRole22367c68", + { + "Fn::Select": [ + 3, + { + "Fn::Split": [ + "-", + { + "Ref": "AWS::StackName" + } + ] + } + ] + }, + "-", + { + "Ref": "env" + } + ] + ] + } + ] + } + } + }, + "IdentityPool": { + "Type": "AWS::Cognito::IdentityPool", + "Properties": { + "AllowUnauthenticatedIdentities": { + "Ref": "allowUnauthenticatedIdentities" + }, + "CognitoIdentityProviders": [ + { + "ClientId": { + "Ref": "UserPoolClient" + }, + "ProviderName": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "client": { + "Ref": "UserPool" + } + } + ] + } + }, + { + "ClientId": { + "Ref": "UserPoolClientWeb" + }, + "ProviderName": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "client": { + "Ref": "UserPool" + } + } + ] + } + } + ], + "IdentityPoolName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "discussions22367c68_identitypool_22367c68", + { + "Fn::Join": [ + "", + [ + "discussions22367c68_identitypool_22367c68__", + { + "Ref": "env" + } + ] + ] + } + ] + } + } + }, + "IdentityPoolRoleMap": { + "Type": "AWS::Cognito::IdentityPoolRoleAttachment", + "Properties": { + "IdentityPoolId": { + "Ref": "IdentityPool" + }, + "Roles": { + "unauthenticated": { + "Ref": "unauthRoleArn" + }, + "authenticated": { + "Ref": "authRoleArn" + } + } + }, + "DependsOn": [ + "IdentityPool" + ] + } + }, + "Outputs": { + "IdentityPoolId": { + "Description": "Id for the identity pool", + "Value": { + "Ref": "IdentityPool" + } + }, + "IdentityPoolName": { + "Value": { + "Fn::GetAtt": [ + "IdentityPool", + "Name" + ] + } + }, + "UserPoolId": { + "Description": "Id for the user pool", + "Value": { + "Ref": "UserPool" + } + }, + "UserPoolArn": { + "Description": "Arn for the user pool", + "Value": { + "Fn::GetAtt": [ + "UserPool", + "Arn" + ] + } + }, + "UserPoolName": { + "Value": { + "Ref": "userPoolName" + } + }, + "AppClientIDWeb": { + "Description": "The user pool app client id for web", + "Value": { + "Ref": "UserPoolClientWeb" + } + }, + "AppClientID": { + "Description": "The user pool app client id", + "Value": { + "Ref": "UserPoolClient" + } + }, + "CreatedSNSRole": { + "Description": "role arn", + "Value": { + "Fn::GetAtt": [ + "SNSRole", + "Arn" + ] + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/discussions/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/discussions22367c6822367c68/build/parameters.json b/amplify-migration-apps/discussions/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/discussions22367c6822367c68/build/parameters.json new file mode 100644 index 00000000000..bee8cd0d32d --- /dev/null +++ b/amplify-migration-apps/discussions/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/discussions22367c6822367c68/build/parameters.json @@ -0,0 +1,65 @@ +{ + "identityPoolName": "discussions22367c68_identitypool_22367c68", + "allowUnauthenticatedIdentities": false, + "resourceNameTruncated": "discus22367c68", + "userPoolName": "discussions22367c68_userpool_22367c68", + "autoVerifiedAttributes": [ + "email" + ], + "mfaConfiguration": "OFF", + "mfaTypes": [ + "SMS Text Message" + ], + "smsAuthenticationMessage": "Your authentication code is {####}", + "smsVerificationMessage": "Your verification code is {####}", + "emailVerificationSubject": "Verification", + "emailVerificationMessage": "Here is your verification code {####}", + "defaultPasswordPolicy": false, + "passwordPolicyMinLength": 8, + "passwordPolicyCharacters": [], + "requiredAttributes": [ + "email", + "phone_number" + ], + "aliasAttributes": [], + "userpoolClientGenerateSecret": false, + "userpoolClientRefreshTokenValidity": "120", + "userpoolClientWriteAttributes": [ + "email" + ], + "userpoolClientReadAttributes": [ + "email" + ], + "userpoolClientLambdaRole": "discus22367c68_userpoolclient_lambda_role", + "userpoolClientSetAttributes": false, + "sharedId": "22367c68", + "resourceName": "discussions22367c6822367c68", + "authSelections": "identityPoolAndUserPool", + "useDefault": "manual", + "thirdPartyAuth": false, + "usernameAttributes": [ + "phone_number" + ], + "userPoolGroups": false, + "adminQueries": false, + "triggers": "{}", + "hostedUI": false, + "userPoolGroupList": [], + "serviceName": "Cognito", + "usernameCaseSensitive": false, + "useEnabledMfas": true, + "authRoleArn": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + }, + "unauthRoleArn": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + }, + "breakCircularDependency": true, + "dependsOn": [] +} \ No newline at end of file diff --git a/amplify-migration-apps/discussions/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/discussions22367c6822367c68/cli-inputs.json b/amplify-migration-apps/discussions/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/discussions22367c6822367c68/cli-inputs.json new file mode 100644 index 00000000000..6cd53a84bd2 --- /dev/null +++ b/amplify-migration-apps/discussions/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/discussions22367c6822367c68/cli-inputs.json @@ -0,0 +1,54 @@ +{ + "version": "1", + "cognitoConfig": { + "identityPoolName": "discussions22367c68_identitypool_22367c68", + "allowUnauthenticatedIdentities": false, + "resourceNameTruncated": "discus22367c68", + "userPoolName": "discussions22367c68_userpool_22367c68", + "autoVerifiedAttributes": [ + "email" + ], + "mfaConfiguration": "OFF", + "mfaTypes": [ + "SMS Text Message" + ], + "smsAuthenticationMessage": "Your authentication code is {####}", + "smsVerificationMessage": "Your verification code is {####}", + "emailVerificationSubject": "Verification", + "emailVerificationMessage": "Here is your verification code {####}", + "defaultPasswordPolicy": false, + "passwordPolicyMinLength": 8, + "passwordPolicyCharacters": [], + "requiredAttributes": [ + "email", + "phone_number" + ], + "aliasAttributes": [], + "userpoolClientGenerateSecret": false, + "userpoolClientRefreshTokenValidity": "120", + "userpoolClientWriteAttributes": [ + "email" + ], + "userpoolClientReadAttributes": [ + "email" + ], + "userpoolClientLambdaRole": "discus22367c68_userpoolclient_lambda_role", + "userpoolClientSetAttributes": false, + "sharedId": "22367c68", + "resourceName": "discussions22367c6822367c68", + "authSelections": "identityPoolAndUserPool", + "useDefault": "manual", + "thirdPartyAuth": false, + "usernameAttributes": [ + "phone_number" + ], + "userPoolGroups": false, + "adminQueries": false, + "triggers": {}, + "hostedUI": false, + "userPoolGroupList": [], + "serviceName": "Cognito", + "usernameCaseSensitive": false, + "useEnabledMfas": true + } +} \ No newline at end of file diff --git a/amplify-migration-apps/discussions/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/auth/discussions22367c6822367c68/build/discussions22367c6822367c68-cloudformation-template.json b/amplify-migration-apps/discussions/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/auth/discussions22367c6822367c68/build/discussions22367c6822367c68-cloudformation-template.json new file mode 100644 index 00000000000..c305475136f --- /dev/null +++ b/amplify-migration-apps/discussions/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/auth/discussions22367c6822367c68/build/discussions22367c6822367c68-cloudformation-template.json @@ -0,0 +1,533 @@ +{ + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"auth-Cognito\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "env": { + "Type": "String" + }, + "identityPoolName": { + "Type": "String" + }, + "allowUnauthenticatedIdentities": { + "Type": "String" + }, + "resourceNameTruncated": { + "Type": "String" + }, + "userPoolName": { + "Type": "String" + }, + "autoVerifiedAttributes": { + "Type": "CommaDelimitedList" + }, + "mfaConfiguration": { + "Type": "String" + }, + "mfaTypes": { + "Type": "CommaDelimitedList" + }, + "smsAuthenticationMessage": { + "Type": "String" + }, + "smsVerificationMessage": { + "Type": "String" + }, + "emailVerificationSubject": { + "Type": "String" + }, + "emailVerificationMessage": { + "Type": "String" + }, + "defaultPasswordPolicy": { + "Type": "String" + }, + "passwordPolicyMinLength": { + "Type": "String" + }, + "passwordPolicyCharacters": { + "Type": "CommaDelimitedList" + }, + "requiredAttributes": { + "Type": "CommaDelimitedList" + }, + "aliasAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientGenerateSecret": { + "Type": "String" + }, + "userpoolClientRefreshTokenValidity": { + "Type": "String" + }, + "userpoolClientWriteAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientReadAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientLambdaRole": { + "Type": "String" + }, + "userpoolClientSetAttributes": { + "Type": "String" + }, + "sharedId": { + "Type": "String" + }, + "resourceName": { + "Type": "String" + }, + "authSelections": { + "Type": "String" + }, + "useDefault": { + "Type": "String" + }, + "thirdPartyAuth": { + "Type": "String" + }, + "usernameAttributes": { + "Type": "CommaDelimitedList" + }, + "userPoolGroups": { + "Type": "String" + }, + "adminQueries": { + "Type": "String" + }, + "triggers": { + "Type": "String" + }, + "hostedUI": { + "Type": "String" + }, + "userPoolGroupList": { + "Type": "CommaDelimitedList" + }, + "serviceName": { + "Type": "String" + }, + "usernameCaseSensitive": { + "Type": "String" + }, + "useEnabledMfas": { + "Type": "String" + }, + "authRoleArn": { + "Type": "String" + }, + "unauthRoleArn": { + "Type": "String" + }, + "breakCircularDependency": { + "Type": "String" + }, + "dependsOn": { + "Type": "CommaDelimitedList" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + }, + "Resources": { + "SNSRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Allow", + "Principal": { + "Service": "cognito-idp.amazonaws.com" + }, + "Action": [ + "sts:AssumeRole" + ], + "Condition": { + "StringEquals": { + "sts:ExternalId": "discus22367c68_role_external_id" + } + } + } + ] + }, + "Policies": [ + { + "PolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "sns:Publish" + ], + "Resource": "*" + } + ] + }, + "PolicyName": "discus22367c68-sns-policy" + } + ], + "RoleName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "discus22367c68_sns-role", + { + "Fn::Join": [ + "", + [ + "sns22367c68", + { + "Fn::Select": [ + 3, + { + "Fn::Split": [ + "-", + { + "Ref": "AWS::StackName" + } + ] + } + ] + }, + "-", + { + "Ref": "env" + } + ] + ] + } + ] + } + } + }, + "UserPool": { + "Type": "AWS::Cognito::UserPool", + "Properties": { + "AutoVerifiedAttributes": [ + "email" + ], + "EmailVerificationMessage": { + "Ref": "emailVerificationMessage" + }, + "EmailVerificationSubject": { + "Ref": "emailVerificationSubject" + }, + "MfaConfiguration": { + "Ref": "mfaConfiguration" + }, + "Policies": { + "PasswordPolicy": { + "MinimumLength": { + "Ref": "passwordPolicyMinLength" + }, + "RequireLowercase": false, + "RequireNumbers": false, + "RequireSymbols": false, + "RequireUppercase": false + } + }, + "Schema": [ + { + "Mutable": true, + "Name": "email", + "Required": true + }, + { + "Mutable": true, + "Name": "phone_number", + "Required": true + } + ], + "SmsAuthenticationMessage": { + "Ref": "smsAuthenticationMessage" + }, + "SmsConfiguration": { + "ExternalId": "discus22367c68_role_external_id", + "SnsCallerArn": { + "Fn::GetAtt": [ + "SNSRole", + "Arn" + ] + } + }, + "SmsVerificationMessage": { + "Ref": "smsVerificationMessage" + }, + "UserAttributeUpdateSettings": { + "AttributesRequireVerificationBeforeUpdate": [ + "email" + ] + }, + "UserPoolName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + { + "Ref": "userPoolName" + }, + { + "Fn::Join": [ + "", + [ + { + "Ref": "userPoolName" + }, + "-", + { + "Ref": "env" + } + ] + ] + } + ] + }, + "UsernameAttributes": { + "Ref": "usernameAttributes" + }, + "UsernameConfiguration": { + "CaseSensitive": false + } + }, + "DependsOn": [ + "SNSRole" + ] + }, + "UserPoolClientWeb": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "ClientName": "discus22367c68_app_clientWeb", + "RefreshTokenValidity": { + "Ref": "userpoolClientRefreshTokenValidity" + }, + "TokenValidityUnits": { + "RefreshToken": "days" + }, + "UserPoolId": { + "Ref": "UserPool" + } + }, + "DependsOn": [ + "UserPool" + ] + }, + "UserPoolClient": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "ClientName": "discus22367c68_app_client", + "GenerateSecret": { + "Ref": "userpoolClientGenerateSecret" + }, + "RefreshTokenValidity": { + "Ref": "userpoolClientRefreshTokenValidity" + }, + "TokenValidityUnits": { + "RefreshToken": "days" + }, + "UserPoolId": { + "Ref": "UserPool" + } + }, + "DependsOn": [ + "UserPool" + ] + }, + "UserPoolClientRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + }, + "Action": "sts:AssumeRole" + } + ] + }, + "RoleName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + { + "Ref": "userpoolClientLambdaRole" + }, + { + "Fn::Join": [ + "", + [ + "upClientLambdaRole22367c68", + { + "Fn::Select": [ + 3, + { + "Fn::Split": [ + "-", + { + "Ref": "AWS::StackName" + } + ] + } + ] + }, + "-", + { + "Ref": "env" + } + ] + ] + } + ] + } + } + }, + "IdentityPool": { + "Type": "AWS::Cognito::IdentityPool", + "Properties": { + "AllowUnauthenticatedIdentities": { + "Ref": "allowUnauthenticatedIdentities" + }, + "CognitoIdentityProviders": [ + { + "ClientId": { + "Ref": "UserPoolClient" + }, + "ProviderName": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "client": { + "Ref": "UserPool" + } + } + ] + } + }, + { + "ClientId": { + "Ref": "UserPoolClientWeb" + }, + "ProviderName": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "client": { + "Ref": "UserPool" + } + } + ] + } + } + ], + "IdentityPoolName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "discussions22367c68_identitypool_22367c68", + { + "Fn::Join": [ + "", + [ + "discussions22367c68_identitypool_22367c68__", + { + "Ref": "env" + } + ] + ] + } + ] + } + } + }, + "IdentityPoolRoleMap": { + "Type": "AWS::Cognito::IdentityPoolRoleAttachment", + "Properties": { + "IdentityPoolId": { + "Ref": "IdentityPool" + }, + "Roles": { + "unauthenticated": { + "Ref": "unauthRoleArn" + }, + "authenticated": { + "Ref": "authRoleArn" + } + } + }, + "DependsOn": [ + "IdentityPool" + ] + } + }, + "Outputs": { + "IdentityPoolId": { + "Description": "Id for the identity pool", + "Value": { + "Ref": "IdentityPool" + } + }, + "IdentityPoolName": { + "Value": { + "Fn::GetAtt": [ + "IdentityPool", + "Name" + ] + } + }, + "UserPoolId": { + "Description": "Id for the user pool", + "Value": { + "Ref": "UserPool" + } + }, + "UserPoolArn": { + "Description": "Arn for the user pool", + "Value": { + "Fn::GetAtt": [ + "UserPool", + "Arn" + ] + } + }, + "UserPoolName": { + "Value": { + "Ref": "userPoolName" + } + }, + "AppClientIDWeb": { + "Description": "The user pool app client id for web", + "Value": { + "Ref": "UserPoolClientWeb" + } + }, + "AppClientID": { + "Description": "The user pool app client id", + "Value": { + "Ref": "UserPoolClient" + } + }, + "CreatedSNSRole": { + "Description": "role arn", + "Value": { + "Fn::GetAtt": [ + "SNSRole", + "Arn" + ] + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/discussions/_snapshot.pre.generate/amplify/backend/auth/discussions22367c6822367c68/build/discussions22367c6822367c68-cloudformation-template.json b/amplify-migration-apps/discussions/_snapshot.pre.generate/amplify/backend/auth/discussions22367c6822367c68/build/discussions22367c6822367c68-cloudformation-template.json new file mode 100644 index 00000000000..c305475136f --- /dev/null +++ b/amplify-migration-apps/discussions/_snapshot.pre.generate/amplify/backend/auth/discussions22367c6822367c68/build/discussions22367c6822367c68-cloudformation-template.json @@ -0,0 +1,533 @@ +{ + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"auth-Cognito\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "env": { + "Type": "String" + }, + "identityPoolName": { + "Type": "String" + }, + "allowUnauthenticatedIdentities": { + "Type": "String" + }, + "resourceNameTruncated": { + "Type": "String" + }, + "userPoolName": { + "Type": "String" + }, + "autoVerifiedAttributes": { + "Type": "CommaDelimitedList" + }, + "mfaConfiguration": { + "Type": "String" + }, + "mfaTypes": { + "Type": "CommaDelimitedList" + }, + "smsAuthenticationMessage": { + "Type": "String" + }, + "smsVerificationMessage": { + "Type": "String" + }, + "emailVerificationSubject": { + "Type": "String" + }, + "emailVerificationMessage": { + "Type": "String" + }, + "defaultPasswordPolicy": { + "Type": "String" + }, + "passwordPolicyMinLength": { + "Type": "String" + }, + "passwordPolicyCharacters": { + "Type": "CommaDelimitedList" + }, + "requiredAttributes": { + "Type": "CommaDelimitedList" + }, + "aliasAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientGenerateSecret": { + "Type": "String" + }, + "userpoolClientRefreshTokenValidity": { + "Type": "String" + }, + "userpoolClientWriteAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientReadAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientLambdaRole": { + "Type": "String" + }, + "userpoolClientSetAttributes": { + "Type": "String" + }, + "sharedId": { + "Type": "String" + }, + "resourceName": { + "Type": "String" + }, + "authSelections": { + "Type": "String" + }, + "useDefault": { + "Type": "String" + }, + "thirdPartyAuth": { + "Type": "String" + }, + "usernameAttributes": { + "Type": "CommaDelimitedList" + }, + "userPoolGroups": { + "Type": "String" + }, + "adminQueries": { + "Type": "String" + }, + "triggers": { + "Type": "String" + }, + "hostedUI": { + "Type": "String" + }, + "userPoolGroupList": { + "Type": "CommaDelimitedList" + }, + "serviceName": { + "Type": "String" + }, + "usernameCaseSensitive": { + "Type": "String" + }, + "useEnabledMfas": { + "Type": "String" + }, + "authRoleArn": { + "Type": "String" + }, + "unauthRoleArn": { + "Type": "String" + }, + "breakCircularDependency": { + "Type": "String" + }, + "dependsOn": { + "Type": "CommaDelimitedList" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + }, + "Resources": { + "SNSRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Allow", + "Principal": { + "Service": "cognito-idp.amazonaws.com" + }, + "Action": [ + "sts:AssumeRole" + ], + "Condition": { + "StringEquals": { + "sts:ExternalId": "discus22367c68_role_external_id" + } + } + } + ] + }, + "Policies": [ + { + "PolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "sns:Publish" + ], + "Resource": "*" + } + ] + }, + "PolicyName": "discus22367c68-sns-policy" + } + ], + "RoleName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "discus22367c68_sns-role", + { + "Fn::Join": [ + "", + [ + "sns22367c68", + { + "Fn::Select": [ + 3, + { + "Fn::Split": [ + "-", + { + "Ref": "AWS::StackName" + } + ] + } + ] + }, + "-", + { + "Ref": "env" + } + ] + ] + } + ] + } + } + }, + "UserPool": { + "Type": "AWS::Cognito::UserPool", + "Properties": { + "AutoVerifiedAttributes": [ + "email" + ], + "EmailVerificationMessage": { + "Ref": "emailVerificationMessage" + }, + "EmailVerificationSubject": { + "Ref": "emailVerificationSubject" + }, + "MfaConfiguration": { + "Ref": "mfaConfiguration" + }, + "Policies": { + "PasswordPolicy": { + "MinimumLength": { + "Ref": "passwordPolicyMinLength" + }, + "RequireLowercase": false, + "RequireNumbers": false, + "RequireSymbols": false, + "RequireUppercase": false + } + }, + "Schema": [ + { + "Mutable": true, + "Name": "email", + "Required": true + }, + { + "Mutable": true, + "Name": "phone_number", + "Required": true + } + ], + "SmsAuthenticationMessage": { + "Ref": "smsAuthenticationMessage" + }, + "SmsConfiguration": { + "ExternalId": "discus22367c68_role_external_id", + "SnsCallerArn": { + "Fn::GetAtt": [ + "SNSRole", + "Arn" + ] + } + }, + "SmsVerificationMessage": { + "Ref": "smsVerificationMessage" + }, + "UserAttributeUpdateSettings": { + "AttributesRequireVerificationBeforeUpdate": [ + "email" + ] + }, + "UserPoolName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + { + "Ref": "userPoolName" + }, + { + "Fn::Join": [ + "", + [ + { + "Ref": "userPoolName" + }, + "-", + { + "Ref": "env" + } + ] + ] + } + ] + }, + "UsernameAttributes": { + "Ref": "usernameAttributes" + }, + "UsernameConfiguration": { + "CaseSensitive": false + } + }, + "DependsOn": [ + "SNSRole" + ] + }, + "UserPoolClientWeb": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "ClientName": "discus22367c68_app_clientWeb", + "RefreshTokenValidity": { + "Ref": "userpoolClientRefreshTokenValidity" + }, + "TokenValidityUnits": { + "RefreshToken": "days" + }, + "UserPoolId": { + "Ref": "UserPool" + } + }, + "DependsOn": [ + "UserPool" + ] + }, + "UserPoolClient": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "ClientName": "discus22367c68_app_client", + "GenerateSecret": { + "Ref": "userpoolClientGenerateSecret" + }, + "RefreshTokenValidity": { + "Ref": "userpoolClientRefreshTokenValidity" + }, + "TokenValidityUnits": { + "RefreshToken": "days" + }, + "UserPoolId": { + "Ref": "UserPool" + } + }, + "DependsOn": [ + "UserPool" + ] + }, + "UserPoolClientRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + }, + "Action": "sts:AssumeRole" + } + ] + }, + "RoleName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + { + "Ref": "userpoolClientLambdaRole" + }, + { + "Fn::Join": [ + "", + [ + "upClientLambdaRole22367c68", + { + "Fn::Select": [ + 3, + { + "Fn::Split": [ + "-", + { + "Ref": "AWS::StackName" + } + ] + } + ] + }, + "-", + { + "Ref": "env" + } + ] + ] + } + ] + } + } + }, + "IdentityPool": { + "Type": "AWS::Cognito::IdentityPool", + "Properties": { + "AllowUnauthenticatedIdentities": { + "Ref": "allowUnauthenticatedIdentities" + }, + "CognitoIdentityProviders": [ + { + "ClientId": { + "Ref": "UserPoolClient" + }, + "ProviderName": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "client": { + "Ref": "UserPool" + } + } + ] + } + }, + { + "ClientId": { + "Ref": "UserPoolClientWeb" + }, + "ProviderName": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "client": { + "Ref": "UserPool" + } + } + ] + } + } + ], + "IdentityPoolName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "discussions22367c68_identitypool_22367c68", + { + "Fn::Join": [ + "", + [ + "discussions22367c68_identitypool_22367c68__", + { + "Ref": "env" + } + ] + ] + } + ] + } + } + }, + "IdentityPoolRoleMap": { + "Type": "AWS::Cognito::IdentityPoolRoleAttachment", + "Properties": { + "IdentityPoolId": { + "Ref": "IdentityPool" + }, + "Roles": { + "unauthenticated": { + "Ref": "unauthRoleArn" + }, + "authenticated": { + "Ref": "authRoleArn" + } + } + }, + "DependsOn": [ + "IdentityPool" + ] + } + }, + "Outputs": { + "IdentityPoolId": { + "Description": "Id for the identity pool", + "Value": { + "Ref": "IdentityPool" + } + }, + "IdentityPoolName": { + "Value": { + "Fn::GetAtt": [ + "IdentityPool", + "Name" + ] + } + }, + "UserPoolId": { + "Description": "Id for the user pool", + "Value": { + "Ref": "UserPool" + } + }, + "UserPoolArn": { + "Description": "Arn for the user pool", + "Value": { + "Fn::GetAtt": [ + "UserPool", + "Arn" + ] + } + }, + "UserPoolName": { + "Value": { + "Ref": "userPoolName" + } + }, + "AppClientIDWeb": { + "Description": "The user pool app client id for web", + "Value": { + "Ref": "UserPoolClientWeb" + } + }, + "AppClientID": { + "Description": "The user pool app client id", + "Value": { + "Ref": "UserPoolClient" + } + }, + "CreatedSNSRole": { + "Description": "role arn", + "Value": { + "Fn::GetAtt": [ + "SNSRole", + "Arn" + ] + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/discussions/_snapshot.pre.generate/amplify/backend/auth/discussions22367c6822367c68/build/parameters.json b/amplify-migration-apps/discussions/_snapshot.pre.generate/amplify/backend/auth/discussions22367c6822367c68/build/parameters.json new file mode 100644 index 00000000000..bee8cd0d32d --- /dev/null +++ b/amplify-migration-apps/discussions/_snapshot.pre.generate/amplify/backend/auth/discussions22367c6822367c68/build/parameters.json @@ -0,0 +1,65 @@ +{ + "identityPoolName": "discussions22367c68_identitypool_22367c68", + "allowUnauthenticatedIdentities": false, + "resourceNameTruncated": "discus22367c68", + "userPoolName": "discussions22367c68_userpool_22367c68", + "autoVerifiedAttributes": [ + "email" + ], + "mfaConfiguration": "OFF", + "mfaTypes": [ + "SMS Text Message" + ], + "smsAuthenticationMessage": "Your authentication code is {####}", + "smsVerificationMessage": "Your verification code is {####}", + "emailVerificationSubject": "Verification", + "emailVerificationMessage": "Here is your verification code {####}", + "defaultPasswordPolicy": false, + "passwordPolicyMinLength": 8, + "passwordPolicyCharacters": [], + "requiredAttributes": [ + "email", + "phone_number" + ], + "aliasAttributes": [], + "userpoolClientGenerateSecret": false, + "userpoolClientRefreshTokenValidity": "120", + "userpoolClientWriteAttributes": [ + "email" + ], + "userpoolClientReadAttributes": [ + "email" + ], + "userpoolClientLambdaRole": "discus22367c68_userpoolclient_lambda_role", + "userpoolClientSetAttributes": false, + "sharedId": "22367c68", + "resourceName": "discussions22367c6822367c68", + "authSelections": "identityPoolAndUserPool", + "useDefault": "manual", + "thirdPartyAuth": false, + "usernameAttributes": [ + "phone_number" + ], + "userPoolGroups": false, + "adminQueries": false, + "triggers": "{}", + "hostedUI": false, + "userPoolGroupList": [], + "serviceName": "Cognito", + "usernameCaseSensitive": false, + "useEnabledMfas": true, + "authRoleArn": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + }, + "unauthRoleArn": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + }, + "breakCircularDependency": true, + "dependsOn": [] +} \ No newline at end of file diff --git a/amplify-migration-apps/discussions/_snapshot.pre.generate/amplify/backend/auth/discussions22367c6822367c68/cli-inputs.json b/amplify-migration-apps/discussions/_snapshot.pre.generate/amplify/backend/auth/discussions22367c6822367c68/cli-inputs.json new file mode 100644 index 00000000000..6cd53a84bd2 --- /dev/null +++ b/amplify-migration-apps/discussions/_snapshot.pre.generate/amplify/backend/auth/discussions22367c6822367c68/cli-inputs.json @@ -0,0 +1,54 @@ +{ + "version": "1", + "cognitoConfig": { + "identityPoolName": "discussions22367c68_identitypool_22367c68", + "allowUnauthenticatedIdentities": false, + "resourceNameTruncated": "discus22367c68", + "userPoolName": "discussions22367c68_userpool_22367c68", + "autoVerifiedAttributes": [ + "email" + ], + "mfaConfiguration": "OFF", + "mfaTypes": [ + "SMS Text Message" + ], + "smsAuthenticationMessage": "Your authentication code is {####}", + "smsVerificationMessage": "Your verification code is {####}", + "emailVerificationSubject": "Verification", + "emailVerificationMessage": "Here is your verification code {####}", + "defaultPasswordPolicy": false, + "passwordPolicyMinLength": 8, + "passwordPolicyCharacters": [], + "requiredAttributes": [ + "email", + "phone_number" + ], + "aliasAttributes": [], + "userpoolClientGenerateSecret": false, + "userpoolClientRefreshTokenValidity": "120", + "userpoolClientWriteAttributes": [ + "email" + ], + "userpoolClientReadAttributes": [ + "email" + ], + "userpoolClientLambdaRole": "discus22367c68_userpoolclient_lambda_role", + "userpoolClientSetAttributes": false, + "sharedId": "22367c68", + "resourceName": "discussions22367c6822367c68", + "authSelections": "identityPoolAndUserPool", + "useDefault": "manual", + "thirdPartyAuth": false, + "usernameAttributes": [ + "phone_number" + ], + "userPoolGroups": false, + "adminQueries": false, + "triggers": {}, + "hostedUI": false, + "userPoolGroupList": [], + "serviceName": "Cognito", + "usernameCaseSensitive": false, + "useEnabledMfas": true + } +} \ No newline at end of file diff --git a/amplify-migration-apps/discussions/_snapshot.pre.generate/amplify/backend/awscloudformation/build/auth/discussions22367c6822367c68/build/discussions22367c6822367c68-cloudformation-template.json b/amplify-migration-apps/discussions/_snapshot.pre.generate/amplify/backend/awscloudformation/build/auth/discussions22367c6822367c68/build/discussions22367c6822367c68-cloudformation-template.json new file mode 100644 index 00000000000..c305475136f --- /dev/null +++ b/amplify-migration-apps/discussions/_snapshot.pre.generate/amplify/backend/awscloudformation/build/auth/discussions22367c6822367c68/build/discussions22367c6822367c68-cloudformation-template.json @@ -0,0 +1,533 @@ +{ + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"auth-Cognito\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "env": { + "Type": "String" + }, + "identityPoolName": { + "Type": "String" + }, + "allowUnauthenticatedIdentities": { + "Type": "String" + }, + "resourceNameTruncated": { + "Type": "String" + }, + "userPoolName": { + "Type": "String" + }, + "autoVerifiedAttributes": { + "Type": "CommaDelimitedList" + }, + "mfaConfiguration": { + "Type": "String" + }, + "mfaTypes": { + "Type": "CommaDelimitedList" + }, + "smsAuthenticationMessage": { + "Type": "String" + }, + "smsVerificationMessage": { + "Type": "String" + }, + "emailVerificationSubject": { + "Type": "String" + }, + "emailVerificationMessage": { + "Type": "String" + }, + "defaultPasswordPolicy": { + "Type": "String" + }, + "passwordPolicyMinLength": { + "Type": "String" + }, + "passwordPolicyCharacters": { + "Type": "CommaDelimitedList" + }, + "requiredAttributes": { + "Type": "CommaDelimitedList" + }, + "aliasAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientGenerateSecret": { + "Type": "String" + }, + "userpoolClientRefreshTokenValidity": { + "Type": "String" + }, + "userpoolClientWriteAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientReadAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientLambdaRole": { + "Type": "String" + }, + "userpoolClientSetAttributes": { + "Type": "String" + }, + "sharedId": { + "Type": "String" + }, + "resourceName": { + "Type": "String" + }, + "authSelections": { + "Type": "String" + }, + "useDefault": { + "Type": "String" + }, + "thirdPartyAuth": { + "Type": "String" + }, + "usernameAttributes": { + "Type": "CommaDelimitedList" + }, + "userPoolGroups": { + "Type": "String" + }, + "adminQueries": { + "Type": "String" + }, + "triggers": { + "Type": "String" + }, + "hostedUI": { + "Type": "String" + }, + "userPoolGroupList": { + "Type": "CommaDelimitedList" + }, + "serviceName": { + "Type": "String" + }, + "usernameCaseSensitive": { + "Type": "String" + }, + "useEnabledMfas": { + "Type": "String" + }, + "authRoleArn": { + "Type": "String" + }, + "unauthRoleArn": { + "Type": "String" + }, + "breakCircularDependency": { + "Type": "String" + }, + "dependsOn": { + "Type": "CommaDelimitedList" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + }, + "Resources": { + "SNSRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Allow", + "Principal": { + "Service": "cognito-idp.amazonaws.com" + }, + "Action": [ + "sts:AssumeRole" + ], + "Condition": { + "StringEquals": { + "sts:ExternalId": "discus22367c68_role_external_id" + } + } + } + ] + }, + "Policies": [ + { + "PolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "sns:Publish" + ], + "Resource": "*" + } + ] + }, + "PolicyName": "discus22367c68-sns-policy" + } + ], + "RoleName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "discus22367c68_sns-role", + { + "Fn::Join": [ + "", + [ + "sns22367c68", + { + "Fn::Select": [ + 3, + { + "Fn::Split": [ + "-", + { + "Ref": "AWS::StackName" + } + ] + } + ] + }, + "-", + { + "Ref": "env" + } + ] + ] + } + ] + } + } + }, + "UserPool": { + "Type": "AWS::Cognito::UserPool", + "Properties": { + "AutoVerifiedAttributes": [ + "email" + ], + "EmailVerificationMessage": { + "Ref": "emailVerificationMessage" + }, + "EmailVerificationSubject": { + "Ref": "emailVerificationSubject" + }, + "MfaConfiguration": { + "Ref": "mfaConfiguration" + }, + "Policies": { + "PasswordPolicy": { + "MinimumLength": { + "Ref": "passwordPolicyMinLength" + }, + "RequireLowercase": false, + "RequireNumbers": false, + "RequireSymbols": false, + "RequireUppercase": false + } + }, + "Schema": [ + { + "Mutable": true, + "Name": "email", + "Required": true + }, + { + "Mutable": true, + "Name": "phone_number", + "Required": true + } + ], + "SmsAuthenticationMessage": { + "Ref": "smsAuthenticationMessage" + }, + "SmsConfiguration": { + "ExternalId": "discus22367c68_role_external_id", + "SnsCallerArn": { + "Fn::GetAtt": [ + "SNSRole", + "Arn" + ] + } + }, + "SmsVerificationMessage": { + "Ref": "smsVerificationMessage" + }, + "UserAttributeUpdateSettings": { + "AttributesRequireVerificationBeforeUpdate": [ + "email" + ] + }, + "UserPoolName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + { + "Ref": "userPoolName" + }, + { + "Fn::Join": [ + "", + [ + { + "Ref": "userPoolName" + }, + "-", + { + "Ref": "env" + } + ] + ] + } + ] + }, + "UsernameAttributes": { + "Ref": "usernameAttributes" + }, + "UsernameConfiguration": { + "CaseSensitive": false + } + }, + "DependsOn": [ + "SNSRole" + ] + }, + "UserPoolClientWeb": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "ClientName": "discus22367c68_app_clientWeb", + "RefreshTokenValidity": { + "Ref": "userpoolClientRefreshTokenValidity" + }, + "TokenValidityUnits": { + "RefreshToken": "days" + }, + "UserPoolId": { + "Ref": "UserPool" + } + }, + "DependsOn": [ + "UserPool" + ] + }, + "UserPoolClient": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "ClientName": "discus22367c68_app_client", + "GenerateSecret": { + "Ref": "userpoolClientGenerateSecret" + }, + "RefreshTokenValidity": { + "Ref": "userpoolClientRefreshTokenValidity" + }, + "TokenValidityUnits": { + "RefreshToken": "days" + }, + "UserPoolId": { + "Ref": "UserPool" + } + }, + "DependsOn": [ + "UserPool" + ] + }, + "UserPoolClientRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + }, + "Action": "sts:AssumeRole" + } + ] + }, + "RoleName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + { + "Ref": "userpoolClientLambdaRole" + }, + { + "Fn::Join": [ + "", + [ + "upClientLambdaRole22367c68", + { + "Fn::Select": [ + 3, + { + "Fn::Split": [ + "-", + { + "Ref": "AWS::StackName" + } + ] + } + ] + }, + "-", + { + "Ref": "env" + } + ] + ] + } + ] + } + } + }, + "IdentityPool": { + "Type": "AWS::Cognito::IdentityPool", + "Properties": { + "AllowUnauthenticatedIdentities": { + "Ref": "allowUnauthenticatedIdentities" + }, + "CognitoIdentityProviders": [ + { + "ClientId": { + "Ref": "UserPoolClient" + }, + "ProviderName": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "client": { + "Ref": "UserPool" + } + } + ] + } + }, + { + "ClientId": { + "Ref": "UserPoolClientWeb" + }, + "ProviderName": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "client": { + "Ref": "UserPool" + } + } + ] + } + } + ], + "IdentityPoolName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "discussions22367c68_identitypool_22367c68", + { + "Fn::Join": [ + "", + [ + "discussions22367c68_identitypool_22367c68__", + { + "Ref": "env" + } + ] + ] + } + ] + } + } + }, + "IdentityPoolRoleMap": { + "Type": "AWS::Cognito::IdentityPoolRoleAttachment", + "Properties": { + "IdentityPoolId": { + "Ref": "IdentityPool" + }, + "Roles": { + "unauthenticated": { + "Ref": "unauthRoleArn" + }, + "authenticated": { + "Ref": "authRoleArn" + } + } + }, + "DependsOn": [ + "IdentityPool" + ] + } + }, + "Outputs": { + "IdentityPoolId": { + "Description": "Id for the identity pool", + "Value": { + "Ref": "IdentityPool" + } + }, + "IdentityPoolName": { + "Value": { + "Fn::GetAtt": [ + "IdentityPool", + "Name" + ] + } + }, + "UserPoolId": { + "Description": "Id for the user pool", + "Value": { + "Ref": "UserPool" + } + }, + "UserPoolArn": { + "Description": "Arn for the user pool", + "Value": { + "Fn::GetAtt": [ + "UserPool", + "Arn" + ] + } + }, + "UserPoolName": { + "Value": { + "Ref": "userPoolName" + } + }, + "AppClientIDWeb": { + "Description": "The user pool app client id for web", + "Value": { + "Ref": "UserPoolClientWeb" + } + }, + "AppClientID": { + "Description": "The user pool app client id", + "Value": { + "Ref": "UserPoolClient" + } + }, + "CreatedSNSRole": { + "Description": "role arn", + "Value": { + "Fn::GetAtt": [ + "SNSRole", + "Arn" + ] + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/README.md b/amplify-migration-apps/fitness-tracker/README.md index bb575803389..569b1cfd9de 100644 --- a/amplify-migration-apps/fitness-tracker/README.md +++ b/amplify-migration-apps/fitness-tracker/README.md @@ -300,30 +300,6 @@ npx amplify gen2-migration generate + branchName: "gen2-main" ``` -**Edit in `./amplify/backend.ts`:** - -Navigate to the Amplify Console to find the `` and `` on the ApiGateway AWS Console. For example: - -![](./images/gen1-rest-api-id.png) -![](./images/gen1-root-resource-id.png) - -```diff -+ const gen1RestApi = RestApi.fromRestApiAttributes(restApiStack, "Gen1RestApi", { -+ restApiId: '', -+ rootResourceId: '', -+ }) -+ const gen1RestApiPolicy = new Policy(restApiStack, "Gen1RestApiPolicy", { -+ statements: [ -+ new PolicyStatement({ -+ actions: ["execute-api:Invoke"], -+ resources: [`${gen1RestApi.arnForExecuteApi("*", "/*")}`] -+ }) -+ ] -+ }); -+ backend.auth.resources.authenticatedUserIamRole.attachInlinePolicy(gen1RestApiPolicy); -``` - - **Edit in `./amplify/function/lognutrition/resource.ts`:** ```diff @@ -489,10 +465,6 @@ Now connect the `gen2-main` branch to the hosting service: ![](./images/add-gen2-main-branch.png) ![](./images/deploying-gen2-main-branch.png) -> Note: REST API currently cannot be accessed via the Gen2 app due to some CORS misconfiguration that is -unrelated to the automatic migration process. It is likely a problem with the manually written REST API definitions -and needs to be addressed for the app to fully work. - Wait for the deployment to finish successfully. Next, locate the root stack of the Gen2 branch: ![](./images/find-gen2-stack.png) diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/auth/fitnesstracker6b0fc1196b0fc119PreSignup/email-filter-allowlist.js b/amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/auth/fitnesstracker33f5545533f55455PreSignup/email-filter-allowlist.js similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/auth/fitnesstracker6b0fc1196b0fc119PreSignup/email-filter-allowlist.js rename to amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/auth/fitnesstracker33f5545533f55455PreSignup/email-filter-allowlist.js diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/auth/fitnesstracker6b0fc1196b0fc119PreSignup/event.json b/amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/auth/fitnesstracker33f5545533f55455PreSignup/event.json similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/auth/fitnesstracker6b0fc1196b0fc119PreSignup/event.json rename to amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/auth/fitnesstracker33f5545533f55455PreSignup/event.json diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/auth/fitnesstracker6b0fc1196b0fc119PreSignup/index.js b/amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/auth/fitnesstracker33f5545533f55455PreSignup/index.js similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/auth/fitnesstracker6b0fc1196b0fc119PreSignup/index.js rename to amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/auth/fitnesstracker33f5545533f55455PreSignup/index.js diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/auth/fitnesstracker6b0fc1196b0fc119PreSignup/resource.ts b/amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/auth/fitnesstracker33f5545533f55455PreSignup/resource.ts similarity index 74% rename from amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/auth/fitnesstracker6b0fc1196b0fc119PreSignup/resource.ts rename to amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/auth/fitnesstracker33f5545533f55455PreSignup/resource.ts index 06a0de5e1b4..ebc5e5951a1 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/auth/fitnesstracker6b0fc1196b0fc119PreSignup/resource.ts +++ b/amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/auth/fitnesstracker33f5545533f55455PreSignup/resource.ts @@ -2,9 +2,9 @@ import { defineFunction } from '@aws-amplify/backend'; const branchName = process.env.AWS_BRANCH ?? 'sandbox'; -export const fitnesstracker6b0fc1196b0fc119PreSignup = defineFunction({ +export const fitnesstracker33f5545533f55455PreSignup = defineFunction({ entry: './index.js', - name: `fitnesstracker6b0fc1196b0fc119PreSignup-${branchName}`, + name: `fitnesstracker33f5545533f55455PreSignup-${branchName}`, timeoutSeconds: 25, memoryMB: 128, environment: { diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/auth/resource.ts b/amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/auth/resource.ts index f75b172e34b..49dafe755f2 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/auth/resource.ts +++ b/amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/auth/resource.ts @@ -1,5 +1,5 @@ import { defineAuth } from '@aws-amplify/backend'; -import { fitnesstracker6b0fc1196b0fc119PreSignup } from './fitnesstracker6b0fc1196b0fc119PreSignup/resource'; +import { fitnesstracker33f5545533f55455PreSignup } from './fitnesstracker33f5545533f55455PreSignup/resource'; import { admin } from '../function/admin/resource'; export const auth = defineAuth({ @@ -17,7 +17,7 @@ export const auth = defineAuth({ }, groups: ['Admin'], triggers: { - preSignUp: fitnesstracker6b0fc1196b0fc119PreSignup, + preSignUp: fitnesstracker33f5545533f55455PreSignup, }, multifactor: { mode: 'OFF', diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/backend.ts b/amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/backend.ts index 874325a08aa..582a879b36a 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/backend.ts +++ b/amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/backend.ts @@ -1,6 +1,6 @@ import { auth } from './auth/resource'; import { data } from './data/resource'; -import { fitnesstracker6b0fc1196b0fc119PreSignup } from './auth/fitnesstracker6b0fc1196b0fc119PreSignup/resource'; +import { fitnesstracker33f5545533f55455PreSignup } from './auth/fitnesstracker33f5545533f55455PreSignup/resource'; import { lognutrition } from './function/lognutrition/resource'; import { admin } from './function/admin/resource'; import { @@ -17,7 +17,7 @@ import { Duration, Stack } from 'aws-cdk-lib'; const backend = defineBackend({ auth, data, - fitnesstracker6b0fc1196b0fc119PreSignup, + fitnesstracker33f5545533f55455PreSignup, lognutrition, admin, }); @@ -45,7 +45,7 @@ userPool.addClient('NativeAppClient', { generateSecret: false, }); const branchName = process.env.AWS_BRANCH ?? 'sandbox'; -backend.fitnesstracker6b0fc1196b0fc119PreSignup.resources.cfnResources.cfnFunction.functionName = `fitnesstracker6b0fc1196b0fc119PreSignup-${branchName}`; +backend.fitnesstracker33f5545533f55455PreSignup.resources.cfnResources.cfnFunction.functionName = `fitnesstracker33f5545533f55455PreSignup-${branchName}`; backend.lognutrition.resources.cfnResources.cfnFunction.functionName = `lognutrition-${branchName}`; backend.lognutrition.addEnvironment( 'API_FITNESSTRACKER_GRAPHQLAPIIDOUTPUT', @@ -80,7 +80,7 @@ backend.data.resources.tables['Meal'].grant( ); backend.admin.resources.cfnResources.cfnFunction.functionName = `admin-${branchName}`; backend.admin.addEnvironment( - 'AUTH_FITNESSTRACKER6B0FC1196B0FC119_USERPOOLID', + 'AUTH_FITNESSTRACKER33F5545533F55455_USERPOOLID', backend.auth.resources.userPool.userPoolId ); const cfnGraphqlApi = backend.data.resources.cfnResources.cfnGraphqlApi; @@ -120,8 +120,8 @@ const gen1nutritionapiApi = RestApi.fromRestApiAttributes( nutritionapiStack, 'Gen1nutritionapiApi', { - restApiId: '6smuxn28tb', - rootResourceId: '6smuxn28tb-root', + restApiId: 'hmydcaubcb', + rootResourceId: 'hmydcaubcb-root', } ); const gen1nutritionapiPolicy = new Policy( @@ -249,8 +249,8 @@ const gen1adminapiApi = RestApi.fromRestApiAttributes( adminapiStack, 'Gen1adminapiApi', { - restApiId: 'kh5xa5hayh', - rootResourceId: 'kh5xa5hayh-root', + restApiId: 'oxq86r59h6', + rootResourceId: 'oxq86r59h6-root', } ); const gen1adminapiPolicy = new Policy(adminapiStack, 'Gen1adminapiPolicy', { diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/data/resource.ts b/amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/data/resource.ts index f0cd5d66650..26962a0c071 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/data/resource.ts +++ b/amplify-migration-apps/fitness-tracker/_snapshot.post.generate/amplify/data/resource.ts @@ -38,9 +38,9 @@ export const data = defineData({ //The "branchname" variable needs to be the same as your deployment branch if you want to reuse your Gen1 app tables branchName: 'main', modelNameToTableNameMapping: { - WorkoutProgram: 'WorkoutProgram-2aikutabnvbuhlzmh4mvkg3eji-main', - Exercise: 'Exercise-2aikutabnvbuhlzmh4mvkg3eji-main', - Meal: 'Meal-2aikutabnvbuhlzmh4mvkg3eji-main', + WorkoutProgram: 'WorkoutProgram-jzwb5p2vcbd2ldlnlxokgjcjby-main', + Exercise: 'Exercise-jzwb5p2vcbd2ldlnlxokgjcjby-main', + Meal: 'Meal-jzwb5p2vcbd2ldlnlxokgjcjby-main', }, }, ], diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I-holding.mappings.json b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I-holding.mappings.json new file mode 100644 index 00000000000..45dc09dc29f --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I-holding.mappings.json @@ -0,0 +1,52 @@ +[ + { + "Source": { + "StackName": "amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I", + "LogicalResourceId": "amplifyAuthUserPool4BA7F805" + }, + "Destination": { + "StackName": "amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I-holding", + "LogicalResourceId": "amplifyAuthUserPool4BA7F805" + } + }, + { + "Source": { + "StackName": "amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I", + "LogicalResourceId": "amplifyAuthUserPoolNativeAppClient79534448" + }, + "Destination": { + "StackName": "amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I-holding", + "LogicalResourceId": "amplifyAuthUserPoolNativeAppClient79534448" + } + }, + { + "Source": { + "StackName": "amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I", + "LogicalResourceId": "amplifyAuthUserPoolAppClient2626C6F8" + }, + "Destination": { + "StackName": "amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I-holding", + "LogicalResourceId": "amplifyAuthUserPoolAppClient2626C6F8" + } + }, + { + "Source": { + "StackName": "amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I", + "LogicalResourceId": "amplifyAuthIdentityPool3FDE84CC" + }, + "Destination": { + "StackName": "amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I-holding", + "LogicalResourceId": "amplifyAuthIdentityPool3FDE84CC" + } + }, + { + "Source": { + "StackName": "amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I", + "LogicalResourceId": "amplifyAuthIdentityPoolRoleAttachment045F17C8" + }, + "Destination": { + "StackName": "amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I-holding", + "LogicalResourceId": "amplifyAuthIdentityPoolRoleAttachment045F17C8" + } + } +] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I-holding.source.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I-holding.source.template.json new file mode 100644 index 00000000000..59b4cf9ec3a --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I-holding.source.template.json @@ -0,0 +1,943 @@ +{ + "Description": "{\"createdOn\":\"Linux\",\"createdBy\":\"AmplifyPipelineDeploy\",\"createdWith\":\"1.11.2\",\"stackType\":\"auth-Cognito\",\"metadata\":{}}", + "Resources": { + "amplifyAuthUserPoolPreSignUpCognito55F45D8E": { + "Type": "AWS::Lambda::Permission", + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:fitnesstracker33f5545533f55455PreSignup-gen2-main", + "Principal": "cognito-idp.amazonaws.com", + "SourceArn": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/UserPool/PreSignUpCognito" + } + }, + "amplifyAuthauthenticatedUserRoleD8DA3689": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringEquals": { + "cognito-identity.amazonaws.com:aud": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3" + }, + "ForAnyValue:StringLike": { + "cognito-identity.amazonaws.com:amr": "authenticated" + } + }, + "Effect": "Allow", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "amplifyAuth" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/authenticatedUserRole/Resource" + } + }, + "amplifyAuthunauthenticatedUserRole2B524D9E": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringEquals": { + "cognito-identity.amazonaws.com:aud": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3" + }, + "ForAnyValue:StringLike": { + "cognito-identity.amazonaws.com:amr": "unauthenticated" + } + }, + "Effect": "Allow", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "amplifyAuth" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/unauthenticatedUserRole/Resource" + } + }, + "amplifyAuthAdminGroupRole766878DC": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringEquals": { + "cognito-identity.amazonaws.com:aud": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3" + }, + "ForAnyValue:StringLike": { + "cognito-identity.amazonaws.com:amr": "authenticated" + } + }, + "Effect": "Allow", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "amplifyAuth" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/AdminGroupRole/Resource" + } + }, + "fitnesstracker33f5545533f55455PreSignupgen2mainlambdaServiceRole713FCE90": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ], + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "fitnesstracker33f5545533f55455PreSignup-gen2-main" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/fitnesstracker33f5545533f55455PreSignup-gen2-main-lambda/ServiceRole/Resource" + } + }, + "fitnesstracker33f5545533f55455PreSignupgen2mainlambda1F6BAF02": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Architectures": [ + "x86_64" + ], + "Code": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "9f9c01e67674891c2af7783b0075317068ffc260976375cef1a2fb293d54b4f7.zip" + }, + "Environment": { + "Variables": { + "MODULES": "email-filter-allowlist", + "DOMAINALLOWLIST": "amazon.com", + "DOMAINBLACKLIST": "", + "ENV": "gen2-main", + "REGION": "us-east-1", + "AMPLIFY_SSM_ENV_CONFIG": "{}" + } + }, + "EphemeralStorage": { + "Size": 512 + }, + "FunctionName": "fitnesstracker33f5545533f55455PreSignup-gen2-main", + "Handler": "index.handler", + "MemorySize": 128, + "Role": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I/fitnesstracker33f5545533f55455PreSignupgen2mainlambdaServiceRole713FCE90", + "Runtime": "nodejs22.x", + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "fitnesstracker33f5545533f55455PreSignup-gen2-main" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ], + "Timeout": 25 + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/fitnesstracker33f5545533f55455PreSignup-gen2-main-lambda/Resource", + "aws:asset:path": "asset.9f9c01e67674891c2af7783b0075317068ffc260976375cef1a2fb293d54b4f7", + "aws:asset:is-bundled": true, + "aws:asset:property": "Code" + } + }, + "AMPLIFYAUTHUSERPOOLIDParameterCC466CA3": { + "Type": "AWS::SSM::Parameter", + "Properties": { + "Name": "/amplify/resource_reference/fitnesstracker/gen2main-branch-400746baeb/AMPLIFY_AUTH_USERPOOL_ID", + "Tags": { + "amplify:app-id": "fitnesstracker", + "amplify:branch-name": "gen2-main", + "amplify:deployment-type": "branch", + "created-by": "amplify" + }, + "Type": "String", + "Value": "us-east-1_KGveHFLxc" + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/AMPLIFY_AUTH_USERPOOL_IDParameter/Resource" + } + }, + "admingen2mainlambdaServiceRole439B1792": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ], + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "admin-gen2-main" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/admin-gen2-main-lambda/ServiceRole/Resource" + } + }, + "admingen2mainlambdaServiceRoleDefaultPolicy0F640A9C": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "ssm:GetParameters", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":ssm:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":parameter/amplify/resource_reference/fitnesstracker/gen2main-branch-400746baeb/AMPLIFY_AUTH_USERPOOL_ID" + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "admingen2mainlambdaServiceRoleDefaultPolicy0F640A9C", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/admin-gen2-main-lambda/ServiceRole/DefaultPolicy/Resource" + } + }, + "admingen2mainlambdaECF7211C": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Architectures": [ + "x86_64" + ], + "Code": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "b92a661741ad73057aa08e5c49f164a180c0bb1ad1d4be9740e7154f2b916a62.zip" + }, + "Environment": { + "Variables": { + "ENV": "gen2-main", + "REGION": "us-east-1", + "AMPLIFY_SSM_ENV_CONFIG": "{\"AMPLIFY_AUTH_USERPOOL_ID\":{\"path\":\"/amplify/resource_reference/fitnesstracker/gen2main-branch-400746baeb/AMPLIFY_AUTH_USERPOOL_ID\"}}", + "AMPLIFY_AUTH_USERPOOL_ID": "", + "AUTH_FITNESSTRACKER33F5545533F55455_USERPOOLID": "us-east-1_KGveHFLxc" + } + }, + "EphemeralStorage": { + "Size": 512 + }, + "FunctionName": "admin-gen2-main", + "Handler": "index.handler", + "MemorySize": 128, + "Role": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I/admingen2mainlambdaServiceRole439B1792", + "Runtime": "nodejs22.x", + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "admin-gen2-main" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ], + "Timeout": 25 + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/admin-gen2-main-lambda/Resource", + "aws:asset:path": "asset.b92a661741ad73057aa08e5c49f164a180c0bb1ad1d4be9740e7154f2b916a62", + "aws:asset:is-bundled": true, + "aws:asset:property": "Code" + } + }, + "userpoolAccess13FEE5419": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:AdminGetDevice", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess13FEE5419", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess1/Resource" + } + }, + "userpoolAccess268F187DB": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:AdminGetUser", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess268F187DB", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess2/Resource" + } + }, + "userpoolAccess3956C62F8": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:AdminListDevices", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess3956C62F8", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess3/Resource" + } + }, + "userpoolAccess4A84025C3": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:AdminListGroupsForUser", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess4A84025C3", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess4/Resource" + } + }, + "userpoolAccess585E2FB32": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:ListUsers", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess585E2FB32", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess5/Resource" + } + }, + "userpoolAccess600DA4CB0": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:ListUsersInGroup", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess600DA4CB0", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess6/Resource" + } + }, + "userpoolAccess76F9C91C1": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:ListGroups", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess76F9C91C1", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess7/Resource" + } + }, + "CDKMetadata": { + "Type": "AWS::CDK::Metadata", + "Properties": { + "Analytics": "v2:deflate64:H4sIAAAAAAAA/12NzW7CQAyEn4X74tLAoVeI1KoXFBH1HC0bkzrZn2rtFKFV3r3aoLSop5mxPZ8LKHY72Kz0ldemHdaWzpCOyIJtLdoMSl+5SSZ0niRA+mCMVQhWlRf/6xdTWkIvj6u/yXuLXkhuS/kxn4LFvYg2n+5f/y2G8WtSVrtzqyGVF19hdMRMwee719EboeAnRdpByqA8nrUKlswtx7tbMI0PLfYMx1kWguJto5lRGPZZFG/hMJoB5aAZFbODVEsk31U6aoeCcUYvYZrU3KtFd+S7SeUv0PPTd1HA8wtsVj0TrePohRzC6a4/caZnM34BAAA=" + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/CDKMetadata/Default" + }, + "Condition": "CDKMetadataAvailable" + }, + "amplifyAuthAdminGroupCC42FF04": { + "Type": "AWS::Cognito::UserPoolGroup", + "Properties": { + "Description": "override success", + "GroupName": "Admin", + "Precedence": 1, + "RoleArn": "arn:aws:iam::123456789012:role/us-east-1_iguxCIcMS-AdminGroupRole", + "UserPoolId": "us-east-1_iguxCIcMS" + } + } + }, + "Conditions": { + "CDKMetadataAvailable": { + "Fn::Or": [ + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "af-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-3" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-south-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-3" + ] + } + ] + }, + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-4" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ca-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ca-west-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "cn-north-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "cn-northwest-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-central-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-north-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-south-2" + ] + } + ] + }, + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-3" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "il-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "me-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "me-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "sa-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-east-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-west-1" + ] + } + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-west-2" + ] + } + ] + } + }, + "Outputs": { + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthUserPoolBF05A444Ref": { + "Value": "us-east-1_KGveHFLxc" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthUserPoolAppClient1903AFDARef": { + "Value": "1o40oi80febsgsdamen2i1gnfd" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref": { + "Value": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthfitnesstracker33f5545533f55455PreSignupgen2mainlambda2B17C7BARef": { + "Value": "fitnesstracker33f5545533f55455PreSignup-gen2-main" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthadmingen2mainlambda19698385Ref": { + "Value": "admin-gen2-main" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref": { + "Value": "amplify-fitnesstracker-ge-amplifyAuthauthenticatedU-fF1WwIKcoHtV" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef": { + "Value": "amplify-fitnesstracker-ge-amplifyAuthunauthenticate-RtuRf8ygfomA" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthadmingen2mainlambda19698385Arn": { + "Value": "arn:aws:lambda:us-east-1:123456789012:function:admin-gen2-main" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthAdminGroupRoleC37E0196Ref": { + "Value": "amplify-fitnesstracker-ge-amplifyAuthAdminGroupRole-jIdkeXSZarK4" + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I-holding.target.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I-holding.target.template.json new file mode 100644 index 00000000000..17c4bf8ebf4 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I-holding.target.template.json @@ -0,0 +1,225 @@ +{ + "AWSTemplateFormatVersion": "2010-09-09", + "Description": "Temporary holding stack for Gen2 migration", + "Resources": { + "amplifyAuthAdminGroupCC42FF04": { + "Type": "AWS::Cognito::UserPoolGroup", + "Properties": { + "GroupName": "Admin", + "Precedence": 0, + "RoleArn": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-ge-amplifyAuthAdminGroupRole-jIdkeXSZarK4", + "UserPoolId": "us-east-1_KGveHFLxc" + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/AdminGroup" + } + }, + "amplifyAuthUserPool4BA7F805": { + "Type": "AWS::Cognito::UserPool", + "Properties": { + "AccountRecoverySetting": { + "RecoveryMechanisms": [ + { + "Name": "verified_email", + "Priority": 1 + } + ] + }, + "AdminCreateUserConfig": { + "AllowAdminCreateUserOnly": false + }, + "AutoVerifiedAttributes": [ + "email" + ], + "EmailVerificationMessage": "Your verification code is {####}", + "EmailVerificationSubject": "Your verification code", + "LambdaConfig": { + "PreSignUp": "arn:aws:lambda:us-east-1:123456789012:function:fitnesstracker33f5545533f55455PreSignup-gen2-main" + }, + "MfaConfiguration": "OFF", + "Policies": { + "PasswordPolicy": { + "MinimumLength": 8, + "RequireLowercase": false, + "RequireNumbers": false, + "RequireSymbols": false, + "RequireUppercase": false, + "TemporaryPasswordValidityDays": 7 + } + }, + "Schema": [ + { + "Mutable": true, + "Name": "email", + "Required": true + } + ], + "SmsVerificationMessage": "The verification code to your new account is {####}", + "UserAttributeUpdateSettings": { + "AttributesRequireVerificationBeforeUpdate": [ + "email" + ] + }, + "UserPoolTags": { + "amplify:app-id": "fitnesstracker", + "amplify:branch-name": "gen2-main", + "amplify:deployment-type": "branch", + "amplify:friendly-name": "amplifyAuth", + "created-by": "amplify" + }, + "UsernameConfiguration": { + "CaseSensitive": false + }, + "VerificationMessageTemplate": { + "DefaultEmailOption": "CONFIRM_WITH_CODE", + "EmailMessage": "Your verification code is {####}", + "EmailSubject": "Your verification code", + "SmsMessage": "The verification code to your new account is {####}" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete", + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/UserPool/Resource" + } + }, + "amplifyAuthUserPoolNativeAppClient79534448": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "AllowedOAuthFlowsUserPoolClient": false, + "AuthSessionValidity": 3, + "EnablePropagateAdditionalUserContextData": false, + "EnableTokenRevocation": true, + "GenerateSecret": false, + "RefreshTokenValidity": 43200, + "SupportedIdentityProviders": [ + "COGNITO" + ], + "TokenValidityUnits": { + "RefreshToken": "minutes" + }, + "UserPoolId": "us-east-1_KGveHFLxc" + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/UserPool/NativeAppClient/Resource" + } + }, + "amplifyAuthUserPoolAppClient2626C6F8": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "AllowedOAuthFlows": [ + "code" + ], + "AllowedOAuthFlowsUserPoolClient": true, + "AllowedOAuthScopes": [ + "profile", + "phone", + "email", + "openid", + "aws.cognito.signin.user.admin" + ], + "CallbackURLs": [ + "https://example.com" + ], + "ExplicitAuthFlows": [ + "ALLOW_CUSTOM_AUTH", + "ALLOW_USER_SRP_AUTH", + "ALLOW_REFRESH_TOKEN_AUTH" + ], + "PreventUserExistenceErrors": "ENABLED", + "SupportedIdentityProviders": [ + "COGNITO" + ], + "UserPoolId": "us-east-1_KGveHFLxc" + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/UserPoolAppClient/Resource" + } + }, + "amplifyAuthIdentityPool3FDE84CC": { + "Type": "AWS::Cognito::IdentityPool", + "Properties": { + "AllowUnauthenticatedIdentities": false, + "CognitoIdentityProviders": [ + { + "ClientId": "1o40oi80febsgsdamen2i1gnfd", + "ProviderName": { + "Fn::Join": [ + "", + [ + "cognito-idp.", + { + "Ref": "AWS::Region" + }, + ".amazonaws.com/", + "us-east-1_KGveHFLxc" + ] + ] + } + } + ], + "IdentityPoolTags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "amplifyAuth" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ], + "SupportedLoginProviders": {} + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/IdentityPool" + } + }, + "amplifyAuthIdentityPoolRoleAttachment045F17C8": { + "Type": "AWS::Cognito::IdentityPoolRoleAttachment", + "Properties": { + "IdentityPoolId": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3", + "RoleMappings": { + "UserPoolWebClientRoleMapping": { + "AmbiguousRoleResolution": "AuthenticatedRole", + "IdentityProvider": { + "Fn::Join": [ + "", + [ + "cognito-idp.", + { + "Ref": "AWS::Region" + }, + ".amazonaws.com/", + "us-east-1_KGveHFLxc", + ":", + "1o40oi80febsgsdamen2i1gnfd" + ] + ] + }, + "Type": "Token" + } + }, + "Roles": { + "unauthenticated": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-ge-amplifyAuthunauthenticate-RtuRf8ygfomA", + "authenticated": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-ge-amplifyAuthauthenticatedU-fF1WwIKcoHtV" + } + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/IdentityPoolRoleAttachment" + } + } + }, + "Outputs": {} +} \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.mappings.json b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.mappings.json new file mode 100644 index 00000000000..44c8ff21ad3 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.mappings.json @@ -0,0 +1,52 @@ +[ + { + "Source": { + "StackName": "amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508", + "LogicalResourceId": "UserPool" + }, + "Destination": { + "StackName": "amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I", + "LogicalResourceId": "amplifyAuthUserPool4BA7F805" + } + }, + { + "Source": { + "StackName": "amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508", + "LogicalResourceId": "UserPoolClientWeb" + }, + "Destination": { + "StackName": "amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I", + "LogicalResourceId": "amplifyAuthUserPoolAppClient2626C6F8" + } + }, + { + "Source": { + "StackName": "amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508", + "LogicalResourceId": "UserPoolClient" + }, + "Destination": { + "StackName": "amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I", + "LogicalResourceId": "amplifyAuthUserPoolNativeAppClient79534448" + } + }, + { + "Source": { + "StackName": "amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508", + "LogicalResourceId": "IdentityPool" + }, + "Destination": { + "StackName": "amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I", + "LogicalResourceId": "amplifyAuthIdentityPool3FDE84CC" + } + }, + { + "Source": { + "StackName": "amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508", + "LogicalResourceId": "IdentityPoolRoleMap" + }, + "Destination": { + "StackName": "amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I", + "LogicalResourceId": "amplifyAuthIdentityPoolRoleAttachment045F17C8" + } + } +] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.source.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.source.template.json new file mode 100644 index 00000000000..747de2cd975 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.source.template.json @@ -0,0 +1,216 @@ +{ + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"auth-Cognito\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "env": { + "Type": "String" + }, + "functionfitnesstracker33f5545533f55455PreSignupArn": { + "Type": "String", + "Default": "functionfitnesstracker33f5545533f55455PreSignupArn" + }, + "functionfitnesstracker33f5545533f55455PreSignupName": { + "Type": "String", + "Default": "functionfitnesstracker33f5545533f55455PreSignupName" + }, + "identityPoolName": { + "Type": "String" + }, + "allowUnauthenticatedIdentities": { + "Type": "String" + }, + "resourceNameTruncated": { + "Type": "String" + }, + "userPoolName": { + "Type": "String" + }, + "autoVerifiedAttributes": { + "Type": "CommaDelimitedList" + }, + "mfaConfiguration": { + "Type": "String" + }, + "mfaTypes": { + "Type": "CommaDelimitedList" + }, + "smsAuthenticationMessage": { + "Type": "String" + }, + "smsVerificationMessage": { + "Type": "String" + }, + "emailVerificationSubject": { + "Type": "String" + }, + "emailVerificationMessage": { + "Type": "String" + }, + "defaultPasswordPolicy": { + "Type": "String" + }, + "passwordPolicyMinLength": { + "Type": "String" + }, + "passwordPolicyCharacters": { + "Type": "CommaDelimitedList" + }, + "requiredAttributes": { + "Type": "CommaDelimitedList" + }, + "aliasAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientGenerateSecret": { + "Type": "String" + }, + "userpoolClientRefreshTokenValidity": { + "Type": "String" + }, + "userpoolClientWriteAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientReadAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientLambdaRole": { + "Type": "String" + }, + "userpoolClientSetAttributes": { + "Type": "String" + }, + "sharedId": { + "Type": "String" + }, + "resourceName": { + "Type": "String" + }, + "authSelections": { + "Type": "String" + }, + "useDefault": { + "Type": "String" + }, + "thirdPartyAuth": { + "Type": "String" + }, + "userPoolGroups": { + "Type": "String" + }, + "adminQueries": { + "Type": "String" + }, + "triggers": { + "Type": "String" + }, + "hostedUI": { + "Type": "String" + }, + "userPoolGroupList": { + "Type": "CommaDelimitedList" + }, + "serviceName": { + "Type": "String" + }, + "usernameCaseSensitive": { + "Type": "String" + }, + "useEnabledMfas": { + "Type": "String" + }, + "authRoleArn": { + "Type": "String" + }, + "unauthRoleArn": { + "Type": "String" + }, + "breakCircularDependency": { + "Type": "String" + }, + "dependsOn": { + "Type": "CommaDelimitedList" + }, + "permissions": { + "Type": "CommaDelimitedList" + }, + "authTriggerConnections": { + "Type": "CommaDelimitedList" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + "main", + "NONE" + ] + } + }, + "Resources": { + "UserPoolClientRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + }, + "Action": "sts:AssumeRole" + } + ] + }, + "RoleName": { + "Fn::Join": [ + "", + [ + "upClientLambdaRole33f55455", + { + "Fn::Select": [ + 3, + { + "Fn::Split": [ + "-", + "amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508" + ] + } + ] + }, + "-", + "main" + ] + ] + } + } + } + }, + "Outputs": { + "IdentityPoolId": { + "Description": "Id for the identity pool", + "Value": "us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022" + }, + "IdentityPoolName": { + "Value": "fitnesstracker33f55455_identitypool_33f55455__main" + }, + "UserPoolId": { + "Description": "Id for the user pool", + "Value": "us-east-1_iguxCIcMS" + }, + "UserPoolArn": { + "Description": "Arn for the user pool", + "Value": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_iguxCIcMS" + }, + "UserPoolName": { + "Value": "fitnesstracker33f55455_userpool_33f55455" + }, + "AppClientIDWeb": { + "Description": "The user pool app client id for web", + "Value": "29bubgvfbbqkp4k60rl7oaqd8s" + }, + "AppClientID": { + "Description": "The user pool app client id", + "Value": "3s8jcv7nflisr91emephrr2a9s" + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.target.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.target.template.json new file mode 100644 index 00000000000..d34f92e81e5 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.target.template.json @@ -0,0 +1,1100 @@ +{ + "Description": "{\"createdOn\":\"Linux\",\"createdBy\":\"AmplifyPipelineDeploy\",\"createdWith\":\"1.11.2\",\"stackType\":\"auth-Cognito\",\"metadata\":{}}", + "Resources": { + "amplifyAuthUserPoolPreSignUpCognito55F45D8E": { + "Type": "AWS::Lambda::Permission", + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:fitnesstracker33f5545533f55455PreSignup-gen2-main", + "Principal": "cognito-idp.amazonaws.com", + "SourceArn": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/UserPool/PreSignUpCognito" + } + }, + "amplifyAuthauthenticatedUserRoleD8DA3689": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringEquals": { + "cognito-identity.amazonaws.com:aud": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3" + }, + "ForAnyValue:StringLike": { + "cognito-identity.amazonaws.com:amr": "authenticated" + } + }, + "Effect": "Allow", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "amplifyAuth" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/authenticatedUserRole/Resource" + } + }, + "amplifyAuthunauthenticatedUserRole2B524D9E": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringEquals": { + "cognito-identity.amazonaws.com:aud": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3" + }, + "ForAnyValue:StringLike": { + "cognito-identity.amazonaws.com:amr": "unauthenticated" + } + }, + "Effect": "Allow", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "amplifyAuth" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/unauthenticatedUserRole/Resource" + } + }, + "amplifyAuthAdminGroupRole766878DC": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringEquals": { + "cognito-identity.amazonaws.com:aud": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3" + }, + "ForAnyValue:StringLike": { + "cognito-identity.amazonaws.com:amr": "authenticated" + } + }, + "Effect": "Allow", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "amplifyAuth" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/AdminGroupRole/Resource" + } + }, + "fitnesstracker33f5545533f55455PreSignupgen2mainlambdaServiceRole713FCE90": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ], + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "fitnesstracker33f5545533f55455PreSignup-gen2-main" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/fitnesstracker33f5545533f55455PreSignup-gen2-main-lambda/ServiceRole/Resource" + } + }, + "fitnesstracker33f5545533f55455PreSignupgen2mainlambda1F6BAF02": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Architectures": [ + "x86_64" + ], + "Code": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "9f9c01e67674891c2af7783b0075317068ffc260976375cef1a2fb293d54b4f7.zip" + }, + "Environment": { + "Variables": { + "MODULES": "email-filter-allowlist", + "DOMAINALLOWLIST": "amazon.com", + "DOMAINBLACKLIST": "", + "ENV": "gen2-main", + "REGION": "us-east-1", + "AMPLIFY_SSM_ENV_CONFIG": "{}" + } + }, + "EphemeralStorage": { + "Size": 512 + }, + "FunctionName": "fitnesstracker33f5545533f55455PreSignup-gen2-main", + "Handler": "index.handler", + "MemorySize": 128, + "Role": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I/fitnesstracker33f5545533f55455PreSignupgen2mainlambdaServiceRole713FCE90", + "Runtime": "nodejs22.x", + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "fitnesstracker33f5545533f55455PreSignup-gen2-main" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ], + "Timeout": 25 + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/fitnesstracker33f5545533f55455PreSignup-gen2-main-lambda/Resource", + "aws:asset:path": "asset.9f9c01e67674891c2af7783b0075317068ffc260976375cef1a2fb293d54b4f7", + "aws:asset:is-bundled": true, + "aws:asset:property": "Code" + } + }, + "AMPLIFYAUTHUSERPOOLIDParameterCC466CA3": { + "Type": "AWS::SSM::Parameter", + "Properties": { + "Name": "/amplify/resource_reference/fitnesstracker/gen2main-branch-400746baeb/AMPLIFY_AUTH_USERPOOL_ID", + "Tags": { + "amplify:app-id": "fitnesstracker", + "amplify:branch-name": "gen2-main", + "amplify:deployment-type": "branch", + "created-by": "amplify" + }, + "Type": "String", + "Value": "us-east-1_KGveHFLxc" + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/AMPLIFY_AUTH_USERPOOL_IDParameter/Resource" + } + }, + "admingen2mainlambdaServiceRole439B1792": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ], + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "admin-gen2-main" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/admin-gen2-main-lambda/ServiceRole/Resource" + } + }, + "admingen2mainlambdaServiceRoleDefaultPolicy0F640A9C": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "ssm:GetParameters", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":ssm:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":parameter/amplify/resource_reference/fitnesstracker/gen2main-branch-400746baeb/AMPLIFY_AUTH_USERPOOL_ID" + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "admingen2mainlambdaServiceRoleDefaultPolicy0F640A9C", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/admin-gen2-main-lambda/ServiceRole/DefaultPolicy/Resource" + } + }, + "admingen2mainlambdaECF7211C": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Architectures": [ + "x86_64" + ], + "Code": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "b92a661741ad73057aa08e5c49f164a180c0bb1ad1d4be9740e7154f2b916a62.zip" + }, + "Environment": { + "Variables": { + "ENV": "gen2-main", + "REGION": "us-east-1", + "AMPLIFY_SSM_ENV_CONFIG": "{\"AMPLIFY_AUTH_USERPOOL_ID\":{\"path\":\"/amplify/resource_reference/fitnesstracker/gen2main-branch-400746baeb/AMPLIFY_AUTH_USERPOOL_ID\"}}", + "AMPLIFY_AUTH_USERPOOL_ID": "", + "AUTH_FITNESSTRACKER33F5545533F55455_USERPOOLID": "us-east-1_KGveHFLxc" + } + }, + "EphemeralStorage": { + "Size": 512 + }, + "FunctionName": "admin-gen2-main", + "Handler": "index.handler", + "MemorySize": 128, + "Role": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I/admingen2mainlambdaServiceRole439B1792", + "Runtime": "nodejs22.x", + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "admin-gen2-main" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ], + "Timeout": 25 + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/admin-gen2-main-lambda/Resource", + "aws:asset:path": "asset.b92a661741ad73057aa08e5c49f164a180c0bb1ad1d4be9740e7154f2b916a62", + "aws:asset:is-bundled": true, + "aws:asset:property": "Code" + } + }, + "userpoolAccess13FEE5419": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:AdminGetDevice", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess13FEE5419", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess1/Resource" + } + }, + "userpoolAccess268F187DB": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:AdminGetUser", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess268F187DB", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess2/Resource" + } + }, + "userpoolAccess3956C62F8": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:AdminListDevices", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess3956C62F8", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess3/Resource" + } + }, + "userpoolAccess4A84025C3": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:AdminListGroupsForUser", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess4A84025C3", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess4/Resource" + } + }, + "userpoolAccess585E2FB32": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:ListUsers", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess585E2FB32", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess5/Resource" + } + }, + "userpoolAccess600DA4CB0": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:ListUsersInGroup", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess600DA4CB0", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess6/Resource" + } + }, + "userpoolAccess76F9C91C1": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:ListGroups", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess76F9C91C1", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess7/Resource" + } + }, + "CDKMetadata": { + "Type": "AWS::CDK::Metadata", + "Properties": { + "Analytics": "v2:deflate64:H4sIAAAAAAAA/12NzW7CQAyEn4X74tLAoVeI1KoXFBH1HC0bkzrZn2rtFKFV3r3aoLSop5mxPZ8LKHY72Kz0ldemHdaWzpCOyIJtLdoMSl+5SSZ0niRA+mCMVQhWlRf/6xdTWkIvj6u/yXuLXkhuS/kxn4LFvYg2n+5f/y2G8WtSVrtzqyGVF19hdMRMwee719EboeAnRdpByqA8nrUKlswtx7tbMI0PLfYMx1kWguJto5lRGPZZFG/hMJoB5aAZFbODVEsk31U6aoeCcUYvYZrU3KtFd+S7SeUv0PPTd1HA8wtsVj0TrePohRzC6a4/caZnM34BAAA=" + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/CDKMetadata/Default" + }, + "Condition": "CDKMetadataAvailable" + }, + "amplifyAuthAdminGroupCC42FF04": { + "Type": "AWS::Cognito::UserPoolGroup", + "Properties": { + "Description": "override success", + "GroupName": "Admin", + "Precedence": 1, + "RoleArn": "arn:aws:iam::123456789012:role/us-east-1_iguxCIcMS-AdminGroupRole", + "UserPoolId": "us-east-1_iguxCIcMS" + } + }, + "amplifyAuthUserPool4BA7F805": { + "Type": "AWS::Cognito::UserPool", + "Properties": { + "AutoVerifiedAttributes": [ + "email" + ], + "EmailVerificationMessage": "Your verification code is {####}", + "EmailVerificationSubject": "Your verification code", + "MfaConfiguration": "OFF", + "Policies": { + "PasswordPolicy": { + "MinimumLength": "8", + "RequireLowercase": false, + "RequireNumbers": false, + "RequireSymbols": false, + "RequireUppercase": false + } + }, + "Schema": [ + { + "Mutable": true, + "Name": "email", + "Required": true + } + ], + "UserAttributeUpdateSettings": { + "AttributesRequireVerificationBeforeUpdate": [ + "email" + ] + }, + "UserPoolName": { + "Fn::Join": [ + "", + [ + "fitnesstracker33f55455_userpool_33f55455", + "-", + "main" + ] + ] + }, + "UsernameConfiguration": { + "CaseSensitive": false + } + } + }, + "amplifyAuthUserPoolAppClient2626C6F8": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "ClientName": "fitnes33f55455_app_clientWeb", + "RefreshTokenValidity": "30", + "TokenValidityUnits": { + "RefreshToken": "days" + }, + "UserPoolId": "us-east-1_iguxCIcMS" + } + }, + "amplifyAuthUserPoolNativeAppClient79534448": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "ClientName": "fitnes33f55455_app_client", + "GenerateSecret": "false", + "RefreshTokenValidity": "30", + "TokenValidityUnits": { + "RefreshToken": "days" + }, + "UserPoolId": "us-east-1_iguxCIcMS" + } + }, + "amplifyAuthIdentityPool3FDE84CC": { + "Type": "AWS::Cognito::IdentityPool", + "Properties": { + "AllowUnauthenticatedIdentities": "false", + "CognitoIdentityProviders": [ + { + "ClientId": "3s8jcv7nflisr91emephrr2a9s", + "ProviderName": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "client": "us-east-1_iguxCIcMS" + } + ] + } + }, + { + "ClientId": "29bubgvfbbqkp4k60rl7oaqd8s", + "ProviderName": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "client": "us-east-1_iguxCIcMS" + } + ] + } + } + ], + "IdentityPoolName": { + "Fn::Join": [ + "", + [ + "fitnesstracker33f55455_identitypool_33f55455__", + "main" + ] + ] + } + } + }, + "amplifyAuthIdentityPoolRoleAttachment045F17C8": { + "Type": "AWS::Cognito::IdentityPoolRoleAttachment", + "Properties": { + "IdentityPoolId": "us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022", + "RoleMappings": { + "UserPoolClientRoleMapping": { + "AmbiguousRoleResolution": "AuthenticatedRole", + "IdentityProvider": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${userPool}:${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "userPool": "us-east-1_iguxCIcMS", + "client": "3s8jcv7nflisr91emephrr2a9s" + } + ] + }, + "Type": "Token" + }, + "UserPoolWebClientRoleMapping": { + "AmbiguousRoleResolution": "AuthenticatedRole", + "IdentityProvider": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${userPool}:${webClient}", + { + "region": { + "Ref": "AWS::Region" + }, + "userPool": "us-east-1_iguxCIcMS", + "webClient": "29bubgvfbbqkp4k60rl7oaqd8s" + } + ] + }, + "Type": "Token" + } + }, + "Roles": { + "unauthenticated": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-a0537-unauthRole", + "authenticated": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-a0537-authRole" + } + } + } + }, + "Conditions": { + "CDKMetadataAvailable": { + "Fn::Or": [ + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "af-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-3" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-south-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-3" + ] + } + ] + }, + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-4" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ca-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ca-west-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "cn-north-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "cn-northwest-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-central-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-north-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-south-2" + ] + } + ] + }, + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-3" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "il-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "me-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "me-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "sa-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-east-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-west-1" + ] + } + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-west-2" + ] + } + ] + } + }, + "Outputs": { + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthUserPoolBF05A444Ref": { + "Value": "us-east-1_KGveHFLxc" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthUserPoolAppClient1903AFDARef": { + "Value": "1o40oi80febsgsdamen2i1gnfd" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref": { + "Value": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthfitnesstracker33f5545533f55455PreSignupgen2mainlambda2B17C7BARef": { + "Value": "fitnesstracker33f5545533f55455PreSignup-gen2-main" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthadmingen2mainlambda19698385Ref": { + "Value": "admin-gen2-main" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref": { + "Value": "amplify-fitnesstracker-ge-amplifyAuthauthenticatedU-fF1WwIKcoHtV" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef": { + "Value": "amplify-fitnesstracker-ge-amplifyAuthunauthenticate-RtuRf8ygfomA" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthadmingen2mainlambda19698385Arn": { + "Value": "arn:aws:lambda:us-east-1:123456789012:function:admin-gen2-main" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthAdminGroupRoleC37E0196Ref": { + "Value": "amplify-fitnesstracker-ge-amplifyAuthAdminGroupRole-jIdkeXSZarK4" + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.mappings.json b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.mappings.json new file mode 100644 index 00000000000..d6ab8efe950 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.mappings.json @@ -0,0 +1,12 @@ +[ + { + "Source": { + "StackName": "amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF", + "LogicalResourceId": "AdminGroup" + }, + "Destination": { + "StackName": "amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I", + "LogicalResourceId": "amplifyAuthAdminGroupCC42FF04" + } + } +] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.source.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.source.template.json new file mode 100644 index 00000000000..4f2192b77e7 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.source.template.json @@ -0,0 +1,81 @@ +{ + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"auth-Cognito-UserPool-Groups\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "env": { + "Type": "String" + }, + "AuthRoleArn": { + "Type": "String" + }, + "UnauthRoleArn": { + "Type": "String" + }, + "authfitnesstracker33f5545533f55455UserPoolId": { + "Type": "String", + "Default": "authfitnesstracker33f5545533f55455UserPoolId" + }, + "authfitnesstracker33f5545533f55455IdentityPoolId": { + "Type": "String", + "Default": "authfitnesstracker33f5545533f55455IdentityPoolId" + }, + "authfitnesstracker33f5545533f55455AppClientID": { + "Type": "String", + "Default": "authfitnesstracker33f5545533f55455AppClientID" + }, + "authfitnesstracker33f5545533f55455AppClientIDWeb": { + "Type": "String", + "Default": "authfitnesstracker33f5545533f55455AppClientIDWeb" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + "main", + "NONE" + ] + } + }, + "Resources": { + "AdminGroupRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Allow", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + }, + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringEquals": { + "cognito-identity.amazonaws.com:aud": "us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022" + }, + "ForAnyValue:StringLike": { + "cognito-identity.amazonaws.com:amr": "authenticated" + } + } + } + ] + }, + "RoleName": { + "Fn::Join": [ + "", + [ + "us-east-1_iguxCIcMS", + "-AdminGroupRole" + ] + ] + } + } + } + }, + "Outputs": { + "AdminGroupRole": { + "Value": "arn:aws:iam::123456789012:role/us-east-1_iguxCIcMS-AdminGroupRole" + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.target.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.target.template.json new file mode 100644 index 00000000000..90e47d86a0d --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/refactor.__from__.amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.__to__.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.target.template.json @@ -0,0 +1,1149 @@ +{ + "Description": "{\"createdOn\":\"Linux\",\"createdBy\":\"AmplifyPipelineDeploy\",\"createdWith\":\"1.11.2\",\"stackType\":\"auth-Cognito\",\"metadata\":{}}", + "Resources": { + "amplifyAuthUserPool4BA7F805": { + "Type": "AWS::Cognito::UserPool", + "Properties": { + "AccountRecoverySetting": { + "RecoveryMechanisms": [ + { + "Name": "verified_email", + "Priority": 1 + } + ] + }, + "AdminCreateUserConfig": { + "AllowAdminCreateUserOnly": false + }, + "AutoVerifiedAttributes": [ + "email" + ], + "EmailVerificationMessage": "Your verification code is {####}", + "EmailVerificationSubject": "Your verification code", + "LambdaConfig": { + "PreSignUp": "arn:aws:lambda:us-east-1:123456789012:function:fitnesstracker33f5545533f55455PreSignup-gen2-main" + }, + "MfaConfiguration": "OFF", + "Policies": { + "PasswordPolicy": { + "MinimumLength": 8, + "RequireLowercase": false, + "RequireNumbers": false, + "RequireSymbols": false, + "RequireUppercase": false, + "TemporaryPasswordValidityDays": 7 + } + }, + "Schema": [ + { + "Mutable": true, + "Name": "email", + "Required": true + } + ], + "SmsVerificationMessage": "The verification code to your new account is {####}", + "UserAttributeUpdateSettings": { + "AttributesRequireVerificationBeforeUpdate": [ + "email" + ] + }, + "UserPoolTags": { + "amplify:app-id": "fitnesstracker", + "amplify:branch-name": "gen2-main", + "amplify:deployment-type": "branch", + "amplify:friendly-name": "amplifyAuth", + "created-by": "amplify" + }, + "UsernameConfiguration": { + "CaseSensitive": false + }, + "VerificationMessageTemplate": { + "DefaultEmailOption": "CONFIRM_WITH_CODE", + "EmailMessage": "Your verification code is {####}", + "EmailSubject": "Your verification code", + "SmsMessage": "The verification code to your new account is {####}" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete", + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/UserPool/Resource" + } + }, + "amplifyAuthUserPoolPreSignUpCognito55F45D8E": { + "Type": "AWS::Lambda::Permission", + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:fitnesstracker33f5545533f55455PreSignup-gen2-main", + "Principal": "cognito-idp.amazonaws.com", + "SourceArn": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/UserPool/PreSignUpCognito" + } + }, + "amplifyAuthUserPoolNativeAppClient79534448": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "AllowedOAuthFlowsUserPoolClient": false, + "AuthSessionValidity": 3, + "EnablePropagateAdditionalUserContextData": false, + "EnableTokenRevocation": true, + "GenerateSecret": false, + "RefreshTokenValidity": 43200, + "SupportedIdentityProviders": [ + "COGNITO" + ], + "TokenValidityUnits": { + "RefreshToken": "minutes" + }, + "UserPoolId": "us-east-1_KGveHFLxc" + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/UserPool/NativeAppClient/Resource" + } + }, + "amplifyAuthUserPoolAppClient2626C6F8": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "AllowedOAuthFlows": [ + "code" + ], + "AllowedOAuthFlowsUserPoolClient": true, + "AllowedOAuthScopes": [ + "profile", + "phone", + "email", + "openid", + "aws.cognito.signin.user.admin" + ], + "CallbackURLs": [ + "https://example.com" + ], + "ExplicitAuthFlows": [ + "ALLOW_CUSTOM_AUTH", + "ALLOW_USER_SRP_AUTH", + "ALLOW_REFRESH_TOKEN_AUTH" + ], + "PreventUserExistenceErrors": "ENABLED", + "SupportedIdentityProviders": [ + "COGNITO" + ], + "UserPoolId": "us-east-1_KGveHFLxc" + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/UserPoolAppClient/Resource" + } + }, + "amplifyAuthIdentityPool3FDE84CC": { + "Type": "AWS::Cognito::IdentityPool", + "Properties": { + "AllowUnauthenticatedIdentities": false, + "CognitoIdentityProviders": [ + { + "ClientId": "1o40oi80febsgsdamen2i1gnfd", + "ProviderName": { + "Fn::Join": [ + "", + [ + "cognito-idp.", + { + "Ref": "AWS::Region" + }, + ".amazonaws.com/", + "us-east-1_KGveHFLxc" + ] + ] + } + } + ], + "IdentityPoolTags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "amplifyAuth" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ], + "SupportedLoginProviders": {} + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/IdentityPool" + } + }, + "amplifyAuthauthenticatedUserRoleD8DA3689": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringEquals": { + "cognito-identity.amazonaws.com:aud": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3" + }, + "ForAnyValue:StringLike": { + "cognito-identity.amazonaws.com:amr": "authenticated" + } + }, + "Effect": "Allow", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "amplifyAuth" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/authenticatedUserRole/Resource" + } + }, + "amplifyAuthunauthenticatedUserRole2B524D9E": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringEquals": { + "cognito-identity.amazonaws.com:aud": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3" + }, + "ForAnyValue:StringLike": { + "cognito-identity.amazonaws.com:amr": "unauthenticated" + } + }, + "Effect": "Allow", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "amplifyAuth" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/unauthenticatedUserRole/Resource" + } + }, + "amplifyAuthIdentityPoolRoleAttachment045F17C8": { + "Type": "AWS::Cognito::IdentityPoolRoleAttachment", + "Properties": { + "IdentityPoolId": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3", + "RoleMappings": { + "UserPoolWebClientRoleMapping": { + "AmbiguousRoleResolution": "AuthenticatedRole", + "IdentityProvider": { + "Fn::Join": [ + "", + [ + "cognito-idp.", + { + "Ref": "AWS::Region" + }, + ".amazonaws.com/", + "us-east-1_KGveHFLxc", + ":", + "1o40oi80febsgsdamen2i1gnfd" + ] + ] + }, + "Type": "Token" + } + }, + "Roles": { + "unauthenticated": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-ge-amplifyAuthunauthenticate-RtuRf8ygfomA", + "authenticated": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-ge-amplifyAuthauthenticatedU-fF1WwIKcoHtV" + } + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/IdentityPoolRoleAttachment" + } + }, + "amplifyAuthAdminGroupRole766878DC": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringEquals": { + "cognito-identity.amazonaws.com:aud": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3" + }, + "ForAnyValue:StringLike": { + "cognito-identity.amazonaws.com:amr": "authenticated" + } + }, + "Effect": "Allow", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "amplifyAuth" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/AdminGroupRole/Resource" + } + }, + "fitnesstracker33f5545533f55455PreSignupgen2mainlambdaServiceRole713FCE90": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ], + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "fitnesstracker33f5545533f55455PreSignup-gen2-main" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/fitnesstracker33f5545533f55455PreSignup-gen2-main-lambda/ServiceRole/Resource" + } + }, + "fitnesstracker33f5545533f55455PreSignupgen2mainlambda1F6BAF02": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Architectures": [ + "x86_64" + ], + "Code": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "9f9c01e67674891c2af7783b0075317068ffc260976375cef1a2fb293d54b4f7.zip" + }, + "Environment": { + "Variables": { + "MODULES": "email-filter-allowlist", + "DOMAINALLOWLIST": "amazon.com", + "DOMAINBLACKLIST": "", + "ENV": "gen2-main", + "REGION": "us-east-1", + "AMPLIFY_SSM_ENV_CONFIG": "{}" + } + }, + "EphemeralStorage": { + "Size": 512 + }, + "FunctionName": "fitnesstracker33f5545533f55455PreSignup-gen2-main", + "Handler": "index.handler", + "MemorySize": 128, + "Role": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I/fitnesstracker33f5545533f55455PreSignupgen2mainlambdaServiceRole713FCE90", + "Runtime": "nodejs22.x", + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "fitnesstracker33f5545533f55455PreSignup-gen2-main" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ], + "Timeout": 25 + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/fitnesstracker33f5545533f55455PreSignup-gen2-main-lambda/Resource", + "aws:asset:path": "asset.9f9c01e67674891c2af7783b0075317068ffc260976375cef1a2fb293d54b4f7", + "aws:asset:is-bundled": true, + "aws:asset:property": "Code" + } + }, + "AMPLIFYAUTHUSERPOOLIDParameterCC466CA3": { + "Type": "AWS::SSM::Parameter", + "Properties": { + "Name": "/amplify/resource_reference/fitnesstracker/gen2main-branch-400746baeb/AMPLIFY_AUTH_USERPOOL_ID", + "Tags": { + "amplify:app-id": "fitnesstracker", + "amplify:branch-name": "gen2-main", + "amplify:deployment-type": "branch", + "created-by": "amplify" + }, + "Type": "String", + "Value": "us-east-1_KGveHFLxc" + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/AMPLIFY_AUTH_USERPOOL_IDParameter/Resource" + } + }, + "admingen2mainlambdaServiceRole439B1792": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ], + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "admin-gen2-main" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/admin-gen2-main-lambda/ServiceRole/Resource" + } + }, + "admingen2mainlambdaServiceRoleDefaultPolicy0F640A9C": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "ssm:GetParameters", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":ssm:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":parameter/amplify/resource_reference/fitnesstracker/gen2main-branch-400746baeb/AMPLIFY_AUTH_USERPOOL_ID" + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "admingen2mainlambdaServiceRoleDefaultPolicy0F640A9C", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/admin-gen2-main-lambda/ServiceRole/DefaultPolicy/Resource" + } + }, + "admingen2mainlambdaECF7211C": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Architectures": [ + "x86_64" + ], + "Code": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "b92a661741ad73057aa08e5c49f164a180c0bb1ad1d4be9740e7154f2b916a62.zip" + }, + "Environment": { + "Variables": { + "ENV": "gen2-main", + "REGION": "us-east-1", + "AMPLIFY_SSM_ENV_CONFIG": "{\"AMPLIFY_AUTH_USERPOOL_ID\":{\"path\":\"/amplify/resource_reference/fitnesstracker/gen2main-branch-400746baeb/AMPLIFY_AUTH_USERPOOL_ID\"}}", + "AMPLIFY_AUTH_USERPOOL_ID": "", + "AUTH_FITNESSTRACKER33F5545533F55455_USERPOOLID": "us-east-1_KGveHFLxc" + } + }, + "EphemeralStorage": { + "Size": 512 + }, + "FunctionName": "admin-gen2-main", + "Handler": "index.handler", + "MemorySize": 128, + "Role": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I/admingen2mainlambdaServiceRole439B1792", + "Runtime": "nodejs22.x", + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "admin-gen2-main" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ], + "Timeout": 25 + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/admin-gen2-main-lambda/Resource", + "aws:asset:path": "asset.b92a661741ad73057aa08e5c49f164a180c0bb1ad1d4be9740e7154f2b916a62", + "aws:asset:is-bundled": true, + "aws:asset:property": "Code" + } + }, + "userpoolAccess13FEE5419": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:AdminGetDevice", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess13FEE5419", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess1/Resource" + } + }, + "userpoolAccess268F187DB": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:AdminGetUser", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess268F187DB", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess2/Resource" + } + }, + "userpoolAccess3956C62F8": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:AdminListDevices", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess3956C62F8", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess3/Resource" + } + }, + "userpoolAccess4A84025C3": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:AdminListGroupsForUser", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess4A84025C3", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess4/Resource" + } + }, + "userpoolAccess585E2FB32": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:ListUsers", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess585E2FB32", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess5/Resource" + } + }, + "userpoolAccess600DA4CB0": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:ListUsersInGroup", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess600DA4CB0", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess6/Resource" + } + }, + "userpoolAccess76F9C91C1": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:ListGroups", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess76F9C91C1", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess7/Resource" + } + }, + "CDKMetadata": { + "Type": "AWS::CDK::Metadata", + "Properties": { + "Analytics": "v2:deflate64:H4sIAAAAAAAA/12NzW7CQAyEn4X74tLAoVeI1KoXFBH1HC0bkzrZn2rtFKFV3r3aoLSop5mxPZ8LKHY72Kz0ldemHdaWzpCOyIJtLdoMSl+5SSZ0niRA+mCMVQhWlRf/6xdTWkIvj6u/yXuLXkhuS/kxn4LFvYg2n+5f/y2G8WtSVrtzqyGVF19hdMRMwee719EboeAnRdpByqA8nrUKlswtx7tbMI0PLfYMx1kWguJto5lRGPZZFG/hMJoB5aAZFbODVEsk31U6aoeCcUYvYZrU3KtFd+S7SeUv0PPTd1HA8wtsVj0TrePohRzC6a4/caZnM34BAAA=" + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/CDKMetadata/Default" + }, + "Condition": "CDKMetadataAvailable" + }, + "amplifyAuthAdminGroupCC42FF04": { + "Type": "AWS::Cognito::UserPoolGroup", + "Properties": { + "Description": "override success", + "GroupName": "Admin", + "Precedence": 1, + "RoleArn": "arn:aws:iam::123456789012:role/us-east-1_iguxCIcMS-AdminGroupRole", + "UserPoolId": "us-east-1_iguxCIcMS" + } + } + }, + "Conditions": { + "CDKMetadataAvailable": { + "Fn::Or": [ + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "af-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-3" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-south-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-3" + ] + } + ] + }, + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-4" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ca-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ca-west-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "cn-north-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "cn-northwest-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-central-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-north-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-south-2" + ] + } + ] + }, + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-3" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "il-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "me-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "me-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "sa-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-east-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-west-1" + ] + } + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-west-2" + ] + } + ] + } + }, + "Outputs": { + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthUserPoolBF05A444Ref": { + "Value": "us-east-1_KGveHFLxc" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthUserPoolAppClient1903AFDARef": { + "Value": "1o40oi80febsgsdamen2i1gnfd" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref": { + "Value": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthfitnesstracker33f5545533f55455PreSignupgen2mainlambda2B17C7BARef": { + "Value": "fitnesstracker33f5545533f55455PreSignup-gen2-main" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthadmingen2mainlambda19698385Ref": { + "Value": "admin-gen2-main" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref": { + "Value": "amplify-fitnesstracker-ge-amplifyAuthauthenticatedU-fF1WwIKcoHtV" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef": { + "Value": "amplify-fitnesstracker-ge-amplifyAuthunauthenticate-RtuRf8ygfomA" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthadmingen2mainlambda19698385Arn": { + "Value": "arn:aws:lambda:us-east-1:123456789012:function:admin-gen2-main" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthAdminGroupRoleC37E0196Ref": { + "Value": "amplify-fitnesstracker-ge-amplifyAuthAdminGroupRole-jIdkeXSZarK4" + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataConnectionStackNestedStackConne-1PZTW5BMDQ740.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/update.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.parameters.json similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataConnectionStackNestedStackConne-1PZTW5BMDQ740.outputs.json rename to amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/update.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.parameters.json diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/update.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/update.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.template.json new file mode 100644 index 00000000000..3d8a92fce02 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/update.amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.template.json @@ -0,0 +1,1151 @@ +{ + "Description": "{\"createdOn\":\"Linux\",\"createdBy\":\"AmplifyPipelineDeploy\",\"createdWith\":\"1.11.2\",\"stackType\":\"auth-Cognito\",\"metadata\":{}}", + "Resources": { + "amplifyAuthUserPool4BA7F805": { + "Type": "AWS::Cognito::UserPool", + "Properties": { + "AccountRecoverySetting": { + "RecoveryMechanisms": [ + { + "Name": "verified_email", + "Priority": 1 + } + ] + }, + "AdminCreateUserConfig": { + "AllowAdminCreateUserOnly": false + }, + "AutoVerifiedAttributes": [ + "email" + ], + "EmailVerificationMessage": "Your verification code is {####}", + "EmailVerificationSubject": "Your verification code", + "LambdaConfig": { + "PreSignUp": "arn:aws:lambda:us-east-1:123456789012:function:fitnesstracker33f5545533f55455PreSignup-gen2-main" + }, + "MfaConfiguration": "OFF", + "Policies": { + "PasswordPolicy": { + "MinimumLength": 8, + "RequireLowercase": false, + "RequireNumbers": false, + "RequireSymbols": false, + "RequireUppercase": false, + "TemporaryPasswordValidityDays": 7 + } + }, + "Schema": [ + { + "Mutable": true, + "Name": "email", + "Required": true + } + ], + "SmsVerificationMessage": "The verification code to your new account is {####}", + "UserAttributeUpdateSettings": { + "AttributesRequireVerificationBeforeUpdate": [ + "email" + ] + }, + "UserPoolTags": { + "amplify:app-id": "fitnesstracker", + "amplify:branch-name": "gen2-main", + "amplify:deployment-type": "branch", + "amplify:friendly-name": "amplifyAuth", + "created-by": "amplify" + }, + "UsernameConfiguration": { + "CaseSensitive": false + }, + "VerificationMessageTemplate": { + "DefaultEmailOption": "CONFIRM_WITH_CODE", + "EmailMessage": "Your verification code is {####}", + "EmailSubject": "Your verification code", + "SmsMessage": "The verification code to your new account is {####}" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete", + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/UserPool/Resource" + } + }, + "amplifyAuthUserPoolPreSignUpCognito55F45D8E": { + "Type": "AWS::Lambda::Permission", + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:fitnesstracker33f5545533f55455PreSignup-gen2-main", + "Principal": "cognito-idp.amazonaws.com", + "SourceArn": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/UserPool/PreSignUpCognito" + } + }, + "amplifyAuthUserPoolNativeAppClient79534448": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "AllowedOAuthFlowsUserPoolClient": false, + "AuthSessionValidity": 3, + "EnablePropagateAdditionalUserContextData": false, + "EnableTokenRevocation": true, + "GenerateSecret": false, + "RefreshTokenValidity": 43200, + "SupportedIdentityProviders": [ + "COGNITO" + ], + "TokenValidityUnits": { + "RefreshToken": "minutes" + }, + "UserPoolId": "us-east-1_KGveHFLxc" + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/UserPool/NativeAppClient/Resource" + } + }, + "amplifyAuthUserPoolAppClient2626C6F8": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "AllowedOAuthFlows": [ + "code" + ], + "AllowedOAuthFlowsUserPoolClient": true, + "AllowedOAuthScopes": [ + "profile", + "phone", + "email", + "openid", + "aws.cognito.signin.user.admin" + ], + "CallbackURLs": [ + "https://example.com" + ], + "ExplicitAuthFlows": [ + "ALLOW_CUSTOM_AUTH", + "ALLOW_USER_SRP_AUTH", + "ALLOW_REFRESH_TOKEN_AUTH" + ], + "PreventUserExistenceErrors": "ENABLED", + "SupportedIdentityProviders": [ + "COGNITO" + ], + "UserPoolId": "us-east-1_KGveHFLxc" + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/UserPoolAppClient/Resource" + } + }, + "amplifyAuthIdentityPool3FDE84CC": { + "Type": "AWS::Cognito::IdentityPool", + "Properties": { + "AllowUnauthenticatedIdentities": false, + "CognitoIdentityProviders": [ + { + "ClientId": "1o40oi80febsgsdamen2i1gnfd", + "ProviderName": { + "Fn::Join": [ + "", + [ + "cognito-idp.", + { + "Ref": "AWS::Region" + }, + ".amazonaws.com/", + "us-east-1_KGveHFLxc" + ] + ] + } + } + ], + "IdentityPoolTags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "amplifyAuth" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ], + "SupportedLoginProviders": {} + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/IdentityPool" + } + }, + "amplifyAuthauthenticatedUserRoleD8DA3689": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringEquals": { + "cognito-identity.amazonaws.com:aud": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3" + }, + "ForAnyValue:StringLike": { + "cognito-identity.amazonaws.com:amr": "authenticated" + } + }, + "Effect": "Allow", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "amplifyAuth" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/authenticatedUserRole/Resource" + } + }, + "amplifyAuthunauthenticatedUserRole2B524D9E": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringEquals": { + "cognito-identity.amazonaws.com:aud": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3" + }, + "ForAnyValue:StringLike": { + "cognito-identity.amazonaws.com:amr": "unauthenticated" + } + }, + "Effect": "Allow", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "amplifyAuth" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/unauthenticatedUserRole/Resource" + } + }, + "amplifyAuthIdentityPoolRoleAttachment045F17C8": { + "Type": "AWS::Cognito::IdentityPoolRoleAttachment", + "Properties": { + "IdentityPoolId": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3", + "RoleMappings": { + "UserPoolWebClientRoleMapping": { + "AmbiguousRoleResolution": "AuthenticatedRole", + "IdentityProvider": { + "Fn::Join": [ + "", + [ + "cognito-idp.", + { + "Ref": "AWS::Region" + }, + ".amazonaws.com/", + "us-east-1_KGveHFLxc", + ":", + "1o40oi80febsgsdamen2i1gnfd" + ] + ] + }, + "Type": "Token" + } + }, + "Roles": { + "unauthenticated": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-ge-amplifyAuthunauthenticate-RtuRf8ygfomA", + "authenticated": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-ge-amplifyAuthauthenticatedU-fF1WwIKcoHtV" + } + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/IdentityPoolRoleAttachment" + } + }, + "amplifyAuthAdminGroupRole766878DC": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringEquals": { + "cognito-identity.amazonaws.com:aud": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3" + }, + "ForAnyValue:StringLike": { + "cognito-identity.amazonaws.com:amr": "authenticated" + } + }, + "Effect": "Allow", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "amplifyAuth" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/AdminGroupRole/Resource" + } + }, + "amplifyAuthAdminGroupCC42FF04": { + "Type": "AWS::Cognito::UserPoolGroup", + "Properties": { + "GroupName": "Admin", + "Precedence": 0, + "RoleArn": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-ge-amplifyAuthAdminGroupRole-jIdkeXSZarK4", + "UserPoolId": "us-east-1_KGveHFLxc" + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/AdminGroup" + } + }, + "fitnesstracker33f5545533f55455PreSignupgen2mainlambdaServiceRole713FCE90": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ], + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "fitnesstracker33f5545533f55455PreSignup-gen2-main" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/fitnesstracker33f5545533f55455PreSignup-gen2-main-lambda/ServiceRole/Resource" + } + }, + "fitnesstracker33f5545533f55455PreSignupgen2mainlambda1F6BAF02": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Architectures": [ + "x86_64" + ], + "Code": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "9f9c01e67674891c2af7783b0075317068ffc260976375cef1a2fb293d54b4f7.zip" + }, + "Environment": { + "Variables": { + "MODULES": "email-filter-allowlist", + "DOMAINALLOWLIST": "amazon.com", + "DOMAINBLACKLIST": "", + "ENV": "gen2-main", + "REGION": "us-east-1", + "AMPLIFY_SSM_ENV_CONFIG": "{}" + } + }, + "EphemeralStorage": { + "Size": 512 + }, + "FunctionName": "fitnesstracker33f5545533f55455PreSignup-gen2-main", + "Handler": "index.handler", + "MemorySize": 128, + "Role": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I/fitnesstracker33f5545533f55455PreSignupgen2mainlambdaServiceRole713FCE90", + "Runtime": "nodejs22.x", + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "fitnesstracker33f5545533f55455PreSignup-gen2-main" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ], + "Timeout": 25 + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/fitnesstracker33f5545533f55455PreSignup-gen2-main-lambda/Resource", + "aws:asset:path": "asset.9f9c01e67674891c2af7783b0075317068ffc260976375cef1a2fb293d54b4f7", + "aws:asset:is-bundled": true, + "aws:asset:property": "Code" + } + }, + "AMPLIFYAUTHUSERPOOLIDParameterCC466CA3": { + "Type": "AWS::SSM::Parameter", + "Properties": { + "Name": "/amplify/resource_reference/fitnesstracker/gen2main-branch-400746baeb/AMPLIFY_AUTH_USERPOOL_ID", + "Tags": { + "amplify:app-id": "fitnesstracker", + "amplify:branch-name": "gen2-main", + "amplify:deployment-type": "branch", + "created-by": "amplify" + }, + "Type": "String", + "Value": "us-east-1_KGveHFLxc" + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/AMPLIFY_AUTH_USERPOOL_IDParameter/Resource" + } + }, + "admingen2mainlambdaServiceRole439B1792": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ], + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "admin-gen2-main" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/admin-gen2-main-lambda/ServiceRole/Resource" + } + }, + "admingen2mainlambdaServiceRoleDefaultPolicy0F640A9C": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "ssm:GetParameters", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":ssm:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":parameter/amplify/resource_reference/fitnesstracker/gen2main-branch-400746baeb/AMPLIFY_AUTH_USERPOOL_ID" + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "admingen2mainlambdaServiceRoleDefaultPolicy0F640A9C", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/admin-gen2-main-lambda/ServiceRole/DefaultPolicy/Resource" + } + }, + "admingen2mainlambdaECF7211C": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Architectures": [ + "x86_64" + ], + "Code": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "b92a661741ad73057aa08e5c49f164a180c0bb1ad1d4be9740e7154f2b916a62.zip" + }, + "Environment": { + "Variables": { + "ENV": "gen2-main", + "REGION": "us-east-1", + "AMPLIFY_SSM_ENV_CONFIG": "{\"AMPLIFY_AUTH_USERPOOL_ID\":{\"path\":\"/amplify/resource_reference/fitnesstracker/gen2main-branch-400746baeb/AMPLIFY_AUTH_USERPOOL_ID\"}}", + "AMPLIFY_AUTH_USERPOOL_ID": "", + "AUTH_FITNESSTRACKER33F5545533F55455_USERPOOLID": "us-east-1_KGveHFLxc" + } + }, + "EphemeralStorage": { + "Size": 512 + }, + "FunctionName": "admin-gen2-main", + "Handler": "index.handler", + "MemorySize": 128, + "Role": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I/admingen2mainlambdaServiceRole439B1792", + "Runtime": "nodejs22.x", + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "fitnesstracker" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "admin-gen2-main" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ], + "Timeout": 25 + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/admin-gen2-main-lambda/Resource", + "aws:asset:path": "asset.b92a661741ad73057aa08e5c49f164a180c0bb1ad1d4be9740e7154f2b916a62", + "aws:asset:is-bundled": true, + "aws:asset:property": "Code" + } + }, + "userpoolAccess13FEE5419": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:AdminGetDevice", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess13FEE5419", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess1/Resource" + } + }, + "userpoolAccess268F187DB": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:AdminGetUser", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess268F187DB", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess2/Resource" + } + }, + "userpoolAccess3956C62F8": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:AdminListDevices", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess3956C62F8", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess3/Resource" + } + }, + "userpoolAccess4A84025C3": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:AdminListGroupsForUser", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess4A84025C3", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess4/Resource" + } + }, + "userpoolAccess585E2FB32": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:ListUsers", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess585E2FB32", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess5/Resource" + } + }, + "userpoolAccess600DA4CB0": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:ListUsersInGroup", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess600DA4CB0", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess6/Resource" + } + }, + "userpoolAccess76F9C91C1": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "cognito-idp:ListGroups", + "Effect": "Allow", + "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_KGveHFLxc" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess76F9C91C1", + "Roles": [ + { + "Ref": "admingen2mainlambdaServiceRole439B1792" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess7/Resource" + } + }, + "CDKMetadata": { + "Type": "AWS::CDK::Metadata", + "Properties": { + "Analytics": "v2:deflate64:H4sIAAAAAAAA/12NzW7CQAyEn4X74tLAoVeI1KoXFBH1HC0bkzrZn2rtFKFV3r3aoLSop5mxPZ8LKHY72Kz0ldemHdaWzpCOyIJtLdoMSl+5SSZ0niRA+mCMVQhWlRf/6xdTWkIvj6u/yXuLXkhuS/kxn4LFvYg2n+5f/y2G8WtSVrtzqyGVF19hdMRMwee719EboeAnRdpByqA8nrUKlswtx7tbMI0PLfYMx1kWguJto5lRGPZZFG/hMJoB5aAZFbODVEsk31U6aoeCcUYvYZrU3KtFd+S7SeUv0PPTd1HA8wtsVj0TrePohRzC6a4/caZnM34BAAA=" + }, + "Metadata": { + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/CDKMetadata/Default" + }, + "Condition": "CDKMetadataAvailable" + } + }, + "Conditions": { + "CDKMetadataAvailable": { + "Fn::Or": [ + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "af-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-3" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-south-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-3" + ] + } + ] + }, + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-4" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ca-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ca-west-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "cn-north-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "cn-northwest-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-central-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-north-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-south-2" + ] + } + ] + }, + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-3" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "il-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "me-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "me-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "sa-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-east-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-west-1" + ] + } + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-west-2" + ] + } + ] + } + }, + "Outputs": { + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthUserPoolBF05A444Ref": { + "Value": "us-east-1_KGveHFLxc" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthUserPoolAppClient1903AFDARef": { + "Value": "1o40oi80febsgsdamen2i1gnfd" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref": { + "Value": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthfitnesstracker33f5545533f55455PreSignupgen2mainlambda2B17C7BARef": { + "Value": "fitnesstracker33f5545533f55455PreSignup-gen2-main" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthadmingen2mainlambda19698385Ref": { + "Value": "admin-gen2-main" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref": { + "Value": "amplify-fitnesstracker-ge-amplifyAuthauthenticatedU-fF1WwIKcoHtV" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef": { + "Value": "amplify-fitnesstracker-ge-amplifyAuthunauthenticate-RtuRf8ygfomA" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthadmingen2mainlambda19698385Arn": { + "Value": "arn:aws:lambda:us-east-1:123456789012:function:admin-gen2-main" + }, + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthAdminGroupRoleC37E0196Ref": { + "Value": "amplify-fitnesstracker-ge-amplifyAuthAdminGroupRole-jIdkeXSZarK4" + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-authfitnesstracker6b0fc1196b0fc119-IU8FJDZI54QH.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/update.amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.parameters.json similarity index 83% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-authfitnesstracker6b0fc1196b0fc119-IU8FJDZI54QH.parameters.json rename to amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/update.amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.parameters.json index 3f1b6943c23..01043034b58 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-authfitnesstracker6b0fc1196b0fc119-IU8FJDZI54QH.parameters.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/update.amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.parameters.json @@ -1,7 +1,7 @@ [ { "ParameterKey": "authRoleArn", - "ParameterValue": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-0683c-authRole" + "ParameterValue": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-a0537-authRole" }, { "ParameterKey": "autoVerifiedAttributes", @@ -37,7 +37,7 @@ }, { "ParameterKey": "sharedId", - "ParameterValue": "6b0fc119" + "ParameterValue": "33f55455" }, { "ParameterKey": "useDefault", @@ -53,7 +53,7 @@ }, { "ParameterKey": "identityPoolName", - "ParameterValue": "fitnesstracker6b0fc119_identitypool_6b0fc119" + "ParameterValue": "fitnesstracker33f55455_identitypool_33f55455" }, { "ParameterKey": "thirdPartyAuth", @@ -75,9 +75,13 @@ "ParameterKey": "permissions", "ParameterValue": "" }, + { + "ParameterKey": "functionfitnesstracker33f5545533f55455PreSignupArn", + "ParameterValue": "functionfitnesstracker33f5545533f55455PreSignupArn" + }, { "ParameterKey": "resourceNameTruncated", - "ParameterValue": "fitnes6b0fc119" + "ParameterValue": "fitnes33f55455" }, { "ParameterKey": "userPoolGroups", @@ -93,7 +97,7 @@ }, { "ParameterKey": "userPoolName", - "ParameterValue": "fitnesstracker6b0fc119_userpool_6b0fc119" + "ParameterValue": "fitnesstracker33f55455_userpool_33f55455" }, { "ParameterKey": "userpoolClientWriteAttributes", @@ -107,21 +111,17 @@ "ParameterKey": "useEnabledMfas", "ParameterValue": "true" }, + { + "ParameterKey": "functionfitnesstracker33f5545533f55455PreSignupName", + "ParameterValue": "functionfitnesstracker33f5545533f55455PreSignupName" + }, { "ParameterKey": "usernameCaseSensitive", "ParameterValue": "false" }, { "ParameterKey": "resourceName", - "ParameterValue": "fitnesstracker6b0fc1196b0fc119" - }, - { - "ParameterKey": "functionfitnesstracker6b0fc1196b0fc119PreSignupArn", - "ParameterValue": "functionfitnesstracker6b0fc1196b0fc119PreSignupArn" - }, - { - "ParameterKey": "functionfitnesstracker6b0fc1196b0fc119PreSignupName", - "ParameterValue": "functionfitnesstracker6b0fc1196b0fc119PreSignupName" + "ParameterValue": "fitnesstracker33f5545533f55455" }, { "ParameterKey": "env", @@ -149,7 +149,7 @@ }, { "ParameterKey": "unauthRoleArn", - "ParameterValue": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-0683c-unauthRole" + "ParameterValue": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-a0537-unauthRole" }, { "ParameterKey": "requiredAttributes", @@ -161,7 +161,7 @@ }, { "ParameterKey": "authTriggerConnections", - "ParameterValue": "{\"triggerType\":\"PreSignUp\",\"lambdaFunctionName\":\"fitnesstracker6b0fc1196b0fc119PreSignup\"}" + "ParameterValue": "{\"triggerType\":\"PreSignUp\",\"lambdaFunctionName\":\"fitnesstracker33f5545533f55455PreSignup\"}" }, { "ParameterKey": "aliasAttributes", @@ -169,7 +169,7 @@ }, { "ParameterKey": "userpoolClientLambdaRole", - "ParameterValue": "fitnes6b0fc119_userpoolclient_lambda_role" + "ParameterValue": "fitnes33f55455_userpoolclient_lambda_role" }, { "ParameterKey": "defaultPasswordPolicy", diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/update.amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/update.amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.template.json new file mode 100644 index 00000000000..cf501295b33 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/update.amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.template.json @@ -0,0 +1,373 @@ +{ + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"auth-Cognito\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "env": { + "Type": "String" + }, + "functionfitnesstracker33f5545533f55455PreSignupArn": { + "Type": "String", + "Default": "functionfitnesstracker33f5545533f55455PreSignupArn" + }, + "functionfitnesstracker33f5545533f55455PreSignupName": { + "Type": "String", + "Default": "functionfitnesstracker33f5545533f55455PreSignupName" + }, + "identityPoolName": { + "Type": "String" + }, + "allowUnauthenticatedIdentities": { + "Type": "String" + }, + "resourceNameTruncated": { + "Type": "String" + }, + "userPoolName": { + "Type": "String" + }, + "autoVerifiedAttributes": { + "Type": "CommaDelimitedList" + }, + "mfaConfiguration": { + "Type": "String" + }, + "mfaTypes": { + "Type": "CommaDelimitedList" + }, + "smsAuthenticationMessage": { + "Type": "String" + }, + "smsVerificationMessage": { + "Type": "String" + }, + "emailVerificationSubject": { + "Type": "String" + }, + "emailVerificationMessage": { + "Type": "String" + }, + "defaultPasswordPolicy": { + "Type": "String" + }, + "passwordPolicyMinLength": { + "Type": "String" + }, + "passwordPolicyCharacters": { + "Type": "CommaDelimitedList" + }, + "requiredAttributes": { + "Type": "CommaDelimitedList" + }, + "aliasAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientGenerateSecret": { + "Type": "String" + }, + "userpoolClientRefreshTokenValidity": { + "Type": "String" + }, + "userpoolClientWriteAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientReadAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientLambdaRole": { + "Type": "String" + }, + "userpoolClientSetAttributes": { + "Type": "String" + }, + "sharedId": { + "Type": "String" + }, + "resourceName": { + "Type": "String" + }, + "authSelections": { + "Type": "String" + }, + "useDefault": { + "Type": "String" + }, + "thirdPartyAuth": { + "Type": "String" + }, + "userPoolGroups": { + "Type": "String" + }, + "adminQueries": { + "Type": "String" + }, + "triggers": { + "Type": "String" + }, + "hostedUI": { + "Type": "String" + }, + "userPoolGroupList": { + "Type": "CommaDelimitedList" + }, + "serviceName": { + "Type": "String" + }, + "usernameCaseSensitive": { + "Type": "String" + }, + "useEnabledMfas": { + "Type": "String" + }, + "authRoleArn": { + "Type": "String" + }, + "unauthRoleArn": { + "Type": "String" + }, + "breakCircularDependency": { + "Type": "String" + }, + "dependsOn": { + "Type": "CommaDelimitedList" + }, + "permissions": { + "Type": "CommaDelimitedList" + }, + "authTriggerConnections": { + "Type": "CommaDelimitedList" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + "main", + "NONE" + ] + } + }, + "Resources": { + "UserPool": { + "Type": "AWS::Cognito::UserPool", + "Properties": { + "AutoVerifiedAttributes": [ + "email" + ], + "EmailVerificationMessage": "Your verification code is {####}", + "EmailVerificationSubject": "Your verification code", + "MfaConfiguration": "OFF", + "Policies": { + "PasswordPolicy": { + "MinimumLength": "8", + "RequireLowercase": false, + "RequireNumbers": false, + "RequireSymbols": false, + "RequireUppercase": false + } + }, + "Schema": [ + { + "Mutable": true, + "Name": "email", + "Required": true + } + ], + "UserAttributeUpdateSettings": { + "AttributesRequireVerificationBeforeUpdate": [ + "email" + ] + }, + "UserPoolName": { + "Fn::Join": [ + "", + [ + "fitnesstracker33f55455_userpool_33f55455", + "-", + "main" + ] + ] + }, + "UsernameConfiguration": { + "CaseSensitive": false + } + } + }, + "UserPoolClientWeb": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "ClientName": "fitnes33f55455_app_clientWeb", + "RefreshTokenValidity": "30", + "TokenValidityUnits": { + "RefreshToken": "days" + }, + "UserPoolId": "us-east-1_iguxCIcMS" + } + }, + "UserPoolClient": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "ClientName": "fitnes33f55455_app_client", + "GenerateSecret": "false", + "RefreshTokenValidity": "30", + "TokenValidityUnits": { + "RefreshToken": "days" + }, + "UserPoolId": "us-east-1_iguxCIcMS" + } + }, + "UserPoolClientRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + }, + "Action": "sts:AssumeRole" + } + ] + }, + "RoleName": { + "Fn::Join": [ + "", + [ + "upClientLambdaRole33f55455", + { + "Fn::Select": [ + 3, + { + "Fn::Split": [ + "-", + "amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508" + ] + } + ] + }, + "-", + "main" + ] + ] + } + } + }, + "IdentityPool": { + "Type": "AWS::Cognito::IdentityPool", + "Properties": { + "AllowUnauthenticatedIdentities": "false", + "CognitoIdentityProviders": [ + { + "ClientId": "3s8jcv7nflisr91emephrr2a9s", + "ProviderName": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "client": "us-east-1_iguxCIcMS" + } + ] + } + }, + { + "ClientId": "29bubgvfbbqkp4k60rl7oaqd8s", + "ProviderName": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "client": "us-east-1_iguxCIcMS" + } + ] + } + } + ], + "IdentityPoolName": { + "Fn::Join": [ + "", + [ + "fitnesstracker33f55455_identitypool_33f55455__", + "main" + ] + ] + } + } + }, + "IdentityPoolRoleMap": { + "Type": "AWS::Cognito::IdentityPoolRoleAttachment", + "Properties": { + "IdentityPoolId": "us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022", + "RoleMappings": { + "UserPoolClientRoleMapping": { + "AmbiguousRoleResolution": "AuthenticatedRole", + "IdentityProvider": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${userPool}:${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "userPool": "us-east-1_iguxCIcMS", + "client": "3s8jcv7nflisr91emephrr2a9s" + } + ] + }, + "Type": "Token" + }, + "UserPoolWebClientRoleMapping": { + "AmbiguousRoleResolution": "AuthenticatedRole", + "IdentityProvider": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${userPool}:${webClient}", + { + "region": { + "Ref": "AWS::Region" + }, + "userPool": "us-east-1_iguxCIcMS", + "webClient": "29bubgvfbbqkp4k60rl7oaqd8s" + } + ] + }, + "Type": "Token" + } + }, + "Roles": { + "unauthenticated": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-a0537-unauthRole", + "authenticated": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-a0537-authRole" + } + } + } + }, + "Outputs": { + "IdentityPoolId": { + "Description": "Id for the identity pool", + "Value": "us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022" + }, + "IdentityPoolName": { + "Value": "fitnesstracker33f55455_identitypool_33f55455__main" + }, + "UserPoolId": { + "Description": "Id for the user pool", + "Value": "us-east-1_iguxCIcMS" + }, + "UserPoolArn": { + "Description": "Arn for the user pool", + "Value": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_iguxCIcMS" + }, + "UserPoolName": { + "Value": "fitnesstracker33f55455_userpool_33f55455" + }, + "AppClientIDWeb": { + "Description": "The user pool app client id for web", + "Value": "29bubgvfbbqkp4k60rl7oaqd8s" + }, + "AppClientID": { + "Description": "The user pool app client id", + "Value": "3s8jcv7nflisr91emephrr2a9s" + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/update.amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/update.amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.parameters.json new file mode 100644 index 00000000000..11a65b7a7e8 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/update.amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.parameters.json @@ -0,0 +1,30 @@ +[ + { + "ParameterKey": "UnauthRoleArn", + "ParameterValue": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-a0537-unauthRole" + }, + { + "ParameterKey": "authfitnesstracker33f5545533f55455IdentityPoolId", + "ParameterValue": "us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022" + }, + { + "ParameterKey": "AuthRoleArn", + "ParameterValue": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-a0537-authRole" + }, + { + "ParameterKey": "authfitnesstracker33f5545533f55455UserPoolId", + "ParameterValue": "us-east-1_iguxCIcMS" + }, + { + "ParameterKey": "env", + "ParameterValue": "main" + }, + { + "ParameterKey": "authfitnesstracker33f5545533f55455AppClientIDWeb", + "ParameterValue": "29bubgvfbbqkp4k60rl7oaqd8s" + }, + { + "ParameterKey": "authfitnesstracker33f5545533f55455AppClientID", + "ParameterValue": "3s8jcv7nflisr91emephrr2a9s" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/update.amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/update.amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.template.json new file mode 100644 index 00000000000..0b1b48d7a2e --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.post.refactor/update.amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.template.json @@ -0,0 +1,91 @@ +{ + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"auth-Cognito-UserPool-Groups\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "env": { + "Type": "String" + }, + "AuthRoleArn": { + "Type": "String" + }, + "UnauthRoleArn": { + "Type": "String" + }, + "authfitnesstracker33f5545533f55455UserPoolId": { + "Type": "String", + "Default": "authfitnesstracker33f5545533f55455UserPoolId" + }, + "authfitnesstracker33f5545533f55455IdentityPoolId": { + "Type": "String", + "Default": "authfitnesstracker33f5545533f55455IdentityPoolId" + }, + "authfitnesstracker33f5545533f55455AppClientID": { + "Type": "String", + "Default": "authfitnesstracker33f5545533f55455AppClientID" + }, + "authfitnesstracker33f5545533f55455AppClientIDWeb": { + "Type": "String", + "Default": "authfitnesstracker33f5545533f55455AppClientIDWeb" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + "main", + "NONE" + ] + } + }, + "Resources": { + "AdminGroup": { + "Type": "AWS::Cognito::UserPoolGroup", + "Properties": { + "Description": "override success", + "GroupName": "Admin", + "Precedence": 1, + "RoleArn": "arn:aws:iam::123456789012:role/us-east-1_iguxCIcMS-AdminGroupRole", + "UserPoolId": "us-east-1_iguxCIcMS" + } + }, + "AdminGroupRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Allow", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + }, + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringEquals": { + "cognito-identity.amazonaws.com:aud": "us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022" + }, + "ForAnyValue:StringLike": { + "cognito-identity.amazonaws.com:amr": "authenticated" + } + } + } + ] + }, + "RoleName": { + "Fn::Join": [ + "", + [ + "us-east-1_iguxCIcMS", + "-AdminGroupRole" + ] + ] + } + } + } + }, + "Outputs": { + "AdminGroupRole": { + "Value": "arn:aws:iam::123456789012:role/us-east-1_iguxCIcMS-AdminGroupRole" + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/amplify-meta.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/amplify-meta.json index 3876e3d5862..8334327a376 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/amplify-meta.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/amplify-meta.json @@ -1,17 +1,17 @@ { "providers": { "awscloudformation": { - "AuthRoleName": "amplify-fitnesstracker-main-0683c-authRole", - "UnauthRoleArn": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-0683c-unauthRole", - "AuthRoleArn": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-0683c-authRole", + "AuthRoleName": "amplify-fitnesstracker-main-a0537-authRole", + "UnauthRoleArn": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-a0537-unauthRole", + "AuthRoleArn": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-a0537-authRole", "Region": "us-east-1", - "DeploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", - "UnauthRoleName": "amplify-fitnesstracker-main-0683c-unauthRole", - "StackName": "amplify-fitnesstracker-main-0683c", - "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/amplify-fitnesstracker-main-0683c/8ef87630-1a5b-11f1-84f6-12153bdc35f9", + "DeploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", + "UnauthRoleName": "amplify-fitnesstracker-main-a0537-unauthRole", + "StackName": "amplify-fitnesstracker-main-a0537", + "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/amplify-fitnesstracker-main-a0537/1749a530-272d-11f1-a465-0e5f0b5f7853", "AmplifyAppId": "fitnesstracker", - "APIGatewayAuthURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/APIGatewayAuthStack.json", - "AuthTriggerTemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/auth/auth-trigger-cloudformation-template.json" + "APIGatewayAuthURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/APIGatewayAuthStack.json", + "AuthTriggerTemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/auth/auth-trigger-cloudformation-template.json" } }, "auth": { @@ -21,7 +21,7 @@ "dependsOn": [ { "category": "auth", - "resourceName": "fitnesstracker6b0fc1196b0fc119", + "resourceName": "fitnesstracker33f5545533f55455", "attributes": [ "UserPoolId", "AppClientIDWeb", @@ -30,23 +30,23 @@ ] } ], - "lastPushTimeStamp": "2026-03-07T19:54:29.563Z", + "lastPushTimeStamp": "2026-03-24T03:10:58.631Z", "providerMetadata": { - "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/auth/userPoolGroups-cloudformation-template.json", + "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/auth/userPoolGroups-cloudformation-template.json", "logicalId": "authuserPoolGroups" }, "output": { - "AdminGroupRole": "arn:aws:iam::123456789012:role/us-east-1_u3DbKJdMj-AdminGroupRole" + "AdminGroupRole": "arn:aws:iam::123456789012:role/us-east-1_iguxCIcMS-AdminGroupRole" }, "lastPushDirHash": "5G4uAlMxN8rsFD1jyeLTya9ahFM=" }, - "fitnesstracker6b0fc1196b0fc119": { + "fitnesstracker33f5545533f55455": { "service": "Cognito", "providerPlugin": "awscloudformation", "dependsOn": [ { "category": "function", - "resourceName": "fitnesstracker6b0fc1196b0fc119PreSignup", + "resourceName": "fitnesstracker33f5545533f55455PreSignup", "triggerProvider": "Cognito", "attributes": [ "Arn", @@ -74,48 +74,48 @@ ] }, "providerMetadata": { - "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/auth/fitnesstracker6b0fc1196b0fc119-cloudformation-template.json", - "logicalId": "authfitnesstracker6b0fc1196b0fc119" + "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/auth/fitnesstracker33f5545533f55455-cloudformation-template.json", + "logicalId": "authfitnesstracker33f5545533f55455" }, - "lastPushTimeStamp": "2026-03-07T19:54:29.563Z", + "lastPushTimeStamp": "2026-03-24T03:10:58.631Z", "output": { - "UserPoolId": "us-east-1_u3DbKJdMj", - "AppClientIDWeb": "7rgr70g6grv2t7e4jstuq5uuqg", - "AppClientID": "7s3vppsutj69af1r91u7tm2a45", - "IdentityPoolId": "us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db", - "UserPoolArn": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_u3DbKJdMj", - "IdentityPoolName": "fitnesstracker6b0fc119_identitypool_6b0fc119__main", - "UserPoolName": "fitnesstracker6b0fc119_userpool_6b0fc119" + "UserPoolId": "us-east-1_iguxCIcMS", + "AppClientIDWeb": "29bubgvfbbqkp4k60rl7oaqd8s", + "AppClientID": "3s8jcv7nflisr91emephrr2a9s", + "IdentityPoolId": "us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022", + "UserPoolArn": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_iguxCIcMS", + "IdentityPoolName": "fitnesstracker33f55455_identitypool_33f55455__main", + "UserPoolName": "fitnesstracker33f55455_userpool_33f55455" }, - "lastPushDirHash": "lc3D5NIx9SNJ9mopBb1jJJ/TKDU=" + "lastPushDirHash": "0UqXAz+SYrchlHkWJtyjmhwNAyw=" } }, "function": { - "fitnesstracker6b0fc1196b0fc119PreSignup": { + "fitnesstracker33f5545533f55455PreSignup": { "build": true, "providerPlugin": "awscloudformation", "service": "Lambda", - "lastBuildTimeStamp": "2026-03-07T19:46:55.655Z", + "lastBuildTimeStamp": "2026-03-24T03:03:03.155Z", "lastBuildType": "PROD", - "lastPackageTimeStamp": "2026-03-07T19:46:55.711Z", - "distZipFilename": "fitnesstracker6b0fc1196b0fc119PreSignup-555a623867446f4a3843-build.zip", + "lastPackageTimeStamp": "2026-03-24T03:03:03.215Z", + "distZipFilename": "fitnesstracker33f5545533f55455PreSignup-68374859444c45627749-build.zip", "s3Bucket": { - "deploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", - "s3Key": "amplify-builds/fitnesstracker6b0fc1196b0fc119PreSignup-555a623867446f4a3843-build.zip" + "deploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", + "s3Key": "amplify-builds/fitnesstracker33f5545533f55455PreSignup-68374859444c45627749-build.zip" }, "providerMetadata": { - "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/function/fitnesstracker6b0fc1196b0fc119PreSignup-cloudformation-template.json", - "logicalId": "functionfitnesstracker6b0fc1196b0fc119PreSignup" + "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/function/fitnesstracker33f5545533f55455PreSignup-cloudformation-template.json", + "logicalId": "functionfitnesstracker33f5545533f55455PreSignup" }, - "lastPushTimeStamp": "2026-03-07T19:54:29.563Z", + "lastPushTimeStamp": "2026-03-24T03:10:58.631Z", "output": { - "LambdaExecutionRoleArn": "arn:aws:iam::123456789012:role/fitnesstracker6b0fc1196b0fc119PreSignup-main", + "LambdaExecutionRoleArn": "arn:aws:iam::123456789012:role/fitnesstracker33f5545533f55455PreSignup-main", "Region": "us-east-1", - "Arn": "arn:aws:lambda:us-east-1:123456789012:function:fitnesstracker6b0fc1196b0fc119PreSignup-main", - "Name": "fitnesstracker6b0fc1196b0fc119PreSignup-main", - "LambdaExecutionRole": "fitnesstracker6b0fc1196b0fc119PreSignup-main" + "Arn": "arn:aws:lambda:us-east-1:123456789012:function:fitnesstracker33f5545533f55455PreSignup-main", + "Name": "fitnesstracker33f5545533f55455PreSignup-main", + "LambdaExecutionRole": "fitnesstracker33f5545533f55455PreSignup-main" }, - "lastPushDirHash": "8SU4c0dfVCbxO0PKaNCo7lKfaoY=" + "lastPushDirHash": "kHZgvjW478Vk1rWRqWN9hZbma+U=" }, "lognutrition": { "build": true, @@ -130,27 +130,27 @@ ] } ], - "lastBuildTimeStamp": "2026-03-07T19:46:57.956Z", + "lastBuildTimeStamp": "2026-03-24T03:03:04.944Z", "lastBuildType": "PROD", - "lastPackageTimeStamp": "2026-03-07T19:46:59.045Z", + "lastPackageTimeStamp": "2026-03-24T03:03:05.883Z", "distZipFilename": "lognutrition-554b5263566866516c6c-build.zip", "s3Bucket": { - "deploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", + "deploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", "s3Key": "amplify-builds/lognutrition-554b5263566866516c6c-build.zip" }, "providerMetadata": { - "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/function/lognutrition-cloudformation-template.json", + "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/function/lognutrition-cloudformation-template.json", "logicalId": "functionlognutrition" }, - "lastPushTimeStamp": "2026-03-07T19:54:29.563Z", + "lastPushTimeStamp": "2026-03-24T03:10:58.631Z", "output": { - "LambdaExecutionRoleArn": "arn:aws:iam::123456789012:role/fitnesstrackerLambdaRolee7dd41c6-main", + "LambdaExecutionRoleArn": "arn:aws:iam::123456789012:role/fitnesstrackerLambdaRole2824d4b4-main", "Region": "us-east-1", "Arn": "arn:aws:lambda:us-east-1:123456789012:function:lognutrition-main", "Name": "lognutrition-main", - "LambdaExecutionRole": "fitnesstrackerLambdaRolee7dd41c6-main" + "LambdaExecutionRole": "fitnesstrackerLambdaRole2824d4b4-main" }, - "lastPushDirHash": "wKTLiPjpIe9DlqZKixAXXp4cLW8=" + "lastPushDirHash": "KAgg7Tg7xQWrkPA+Y7AX2th1kaI=" }, "admin": { "build": true, @@ -159,33 +159,33 @@ "dependsOn": [ { "category": "auth", - "resourceName": "fitnesstracker6b0fc1196b0fc119", + "resourceName": "fitnesstracker33f5545533f55455", "attributes": [ "UserPoolId" ] } ], - "lastBuildTimeStamp": "2026-03-07T19:47:01.559Z", + "lastBuildTimeStamp": "2026-03-24T03:03:08.363Z", "lastBuildType": "PROD", - "lastPackageTimeStamp": "2026-03-07T19:47:07.497Z", - "distZipFilename": "admin-536f797874787247392f-build.zip", + "lastPackageTimeStamp": "2026-03-24T03:03:14.781Z", + "distZipFilename": "admin-7934694b6d366c486d32-build.zip", "s3Bucket": { - "deploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", - "s3Key": "amplify-builds/admin-536f797874787247392f-build.zip" + "deploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", + "s3Key": "amplify-builds/admin-7934694b6d366c486d32-build.zip" }, "providerMetadata": { - "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/function/admin-cloudformation-template.json", + "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/function/admin-cloudformation-template.json", "logicalId": "functionadmin" }, - "lastPushTimeStamp": "2026-03-07T19:54:29.563Z", + "lastPushTimeStamp": "2026-03-24T03:10:58.631Z", "output": { - "LambdaExecutionRoleArn": "arn:aws:iam::123456789012:role/fitnesstrackerLambdaRole8a95290d-main", + "LambdaExecutionRoleArn": "arn:aws:iam::123456789012:role/fitnesstrackerLambdaRole4a08108a-main", "Region": "us-east-1", "Arn": "arn:aws:lambda:us-east-1:123456789012:function:admin-main", "Name": "admin-main", - "LambdaExecutionRole": "fitnesstrackerLambdaRole8a95290d-main" + "LambdaExecutionRole": "fitnesstrackerLambdaRole4a08108a-main" }, - "lastPushDirHash": "cEr9eDcTN7fah2H+l8m6/ULsUCc=" + "lastPushDirHash": "20iOEIOvyMwayeWUC08s9NsJkTA=" } }, "api": { @@ -195,7 +195,7 @@ "dependsOn": [ { "category": "auth", - "resourceName": "fitnesstracker6b0fc1196b0fc119", + "resourceName": "fitnesstracker33f5545533f55455", "attributes": [ "UserPoolId" ] @@ -206,7 +206,7 @@ "defaultAuthentication": { "authenticationType": "AMAZON_COGNITO_USER_POOLS", "userPoolConfig": { - "userPoolId": "authfitnesstracker6b0fc1196b0fc119" + "userPoolId": "authfitnesstracker33f5545533f55455" } }, "additionalAuthenticationProviders": [ @@ -214,22 +214,22 @@ "authenticationType": "API_KEY", "apiKeyConfig": { "apiKeyExpirationDays": 7, - "apiKeyExpirationDate": "2026-03-14T19:43:17.245Z", + "apiKeyExpirationDate": "2026-03-31T02:59:49.009Z", "description": "graphql" } } ] }, - "GraphQLAPIIdOutput": "2aikutabnvbuhlzmh4mvkg3eji", - "GraphQLAPIEndpointOutput": "https://azg6sgrevzehjmrpkcghyncvci.appsync-api.us-east-1.amazonaws.com/graphql", + "GraphQLAPIIdOutput": "jzwb5p2vcbd2ldlnlxokgjcjby", + "GraphQLAPIEndpointOutput": "https://lqftdnws2zb75jcuwdcmx23wdi.appsync-api.us-east-1.amazonaws.com/graphql", "GraphQLAPIKeyOutput": "da2-fakeapikey00000000000000" }, "providerMetadata": { - "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/cloudformation-template.json", + "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/cloudformation-template.json", "logicalId": "apifitnesstracker" }, - "lastPushTimeStamp": "2026-03-07T19:54:29.563Z", - "lastPushDirHash": "qJUjDfyKe7FhQAxzPRH3qHmn3UM=" + "lastPushTimeStamp": "2026-03-24T03:10:58.631Z", + "lastPushDirHash": "RCtlX/RFS23/RTpTpKEuv4XLh08=" }, "nutritionapi": { "service": "API Gateway", @@ -245,7 +245,7 @@ }, { "category": "auth", - "resourceName": "fitnesstracker6b0fc1196b0fc119", + "resourceName": "fitnesstracker33f5545533f55455", "attributes": [ "UserPoolId" ] @@ -259,14 +259,14 @@ } ], "providerMetadata": { - "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/nutritionapi-cloudformation-template.json", + "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/nutritionapi-cloudformation-template.json", "logicalId": "apinutritionapi" }, - "lastPushTimeStamp": "2026-03-07T19:54:29.563Z", + "lastPushTimeStamp": "2026-03-24T03:10:58.631Z", "output": { "ApiName": "nutritionapi", - "RootUrl": "https://6smuxn28tb.execute-api.us-east-1.amazonaws.com/main", - "ApiId": "6smuxn28tb" + "RootUrl": "https://hmydcaubcb.execute-api.us-east-1.amazonaws.com/main", + "ApiId": "hmydcaubcb" }, "lastPushDirHash": "5JwuGoxSHfV3nT5/dIukaklIOKI=" }, @@ -284,7 +284,7 @@ }, { "category": "auth", - "resourceName": "fitnesstracker6b0fc1196b0fc119", + "resourceName": "fitnesstracker33f5545533f55455", "attributes": [ "UserPoolId" ] @@ -298,14 +298,14 @@ } ], "providerMetadata": { - "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/adminapi-cloudformation-template.json", + "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/adminapi-cloudformation-template.json", "logicalId": "apiadminapi" }, - "lastPushTimeStamp": "2026-03-07T19:54:29.563Z", + "lastPushTimeStamp": "2026-03-24T03:10:58.631Z", "output": { "ApiName": "adminapi", - "RootUrl": "https://kh5xa5hayh.execute-api.us-east-1.amazonaws.com/main", - "ApiId": "kh5xa5hayh" + "RootUrl": "https://oxq86r59h6.execute-api.us-east-1.amazonaws.com/main", + "ApiId": "oxq86r59h6" }, "lastPushDirHash": "SI1snudM0j/SqX5HIasSB/7nF3k=" } diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/api/adminapi/build/adminapi-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/api/adminapi/build/adminapi-cloudformation-template.json index 9a9f4cf8794..63a8fcdb155 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/api/adminapi/build/adminapi-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/api/adminapi/build/adminapi-cloudformation-template.json @@ -2,9 +2,9 @@ "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"api-API Gateway\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", "AWSTemplateFormatVersion": "2010-09-09", "Parameters": { - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Default": "authfitnesstracker33f5545533f55455UserPoolId" }, "authuserPoolGroupsAdminGroupRole": { "Type": "String", @@ -104,7 +104,7 @@ "-", [ { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" }, "AdminGroupRole" ] @@ -426,7 +426,7 @@ "Name": "adminapi" } }, - "adminapiDefault4XXResponseb1888203": { + "adminapiDefault4XXResponse0e27c647": { "Type": "AWS::ApiGateway::GatewayResponse", "Properties": { "ResponseParameters": { @@ -441,7 +441,7 @@ } } }, - "adminapiDefault5XXResponseb1888203": { + "adminapiDefault5XXResponse0e27c647": { "Type": "AWS::ApiGateway::GatewayResponse", "Properties": { "ResponseParameters": { @@ -456,7 +456,7 @@ } } }, - "DeploymentAPIGWadminapi62a7fdcd": { + "DeploymentAPIGWadminapiad7711e6": { "Type": "AWS::ApiGateway::Deployment", "Properties": { "Description": "The Development stage deployment of your API.", @@ -474,8 +474,8 @@ } }, "DependsOn": [ - "adminapiDefault4XXResponseb1888203", - "adminapiDefault5XXResponseb1888203" + "adminapiDefault4XXResponse0e27c647", + "adminapiDefault5XXResponse0e27c647" ] } }, diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/api/fitnesstracker/build/cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/api/fitnesstracker/build/cloudformation-template.json index 78e0d8c0c01..cd07bb81a76 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/api/fitnesstracker/build/cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/api/fitnesstracker/build/cloudformation-template.json @@ -129,7 +129,7 @@ ] }, "Description": "graphql", - "Expires": 1773517628 + "Expires": 1774926196 } }, "GraphQLAPINONEDS95A13CF0": { diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/api/fitnesstracker/build/parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/api/fitnesstracker/build/parameters.json index 3cd47253316..42555b61e79 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/api/fitnesstracker/build/parameters.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/api/fitnesstracker/build/parameters.json @@ -4,10 +4,10 @@ "DynamoDBEnableServerSideEncryption": false, "AuthCognitoUserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, - "S3DeploymentBucket": "amplify-fitnesstracker-main-0683c-deployment", - "S3DeploymentRootKey": "amplify-appsync-files/96fdcde6a80859ead18d697e115cb9bd809fa98a" + "S3DeploymentBucket": "amplify-fitnesstracker-main-a0537-deployment", + "S3DeploymentRootKey": "amplify-appsync-files/67310f5f0a68cc163f9cc58da56e1409a2c21b1d" } \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/api/fitnesstracker/cli-inputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/api/fitnesstracker/cli-inputs.json index 3dee4f09639..848a1768ba9 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/api/fitnesstracker/cli-inputs.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/api/fitnesstracker/cli-inputs.json @@ -5,13 +5,13 @@ "serviceName": "AppSync", "defaultAuthType": { "mode": "AMAZON_COGNITO_USER_POOLS", - "cognitoUserPoolId": "authfitnesstracker6b0fc1196b0fc119" + "cognitoUserPoolId": "authfitnesstracker33f5545533f55455" }, "additionalAuthTypes": [ { "mode": "API_KEY", "expirationTime": 7, - "apiKeyExpirationDate": "2026-03-14T19:43:17.245Z", + "apiKeyExpirationDate": "2026-03-31T02:59:49.009Z", "keyDescription": "graphql" } ] diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/api/fitnesstracker/parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/api/fitnesstracker/parameters.json index e0d654b084c..72d6b16ab57 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/api/fitnesstracker/parameters.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/api/fitnesstracker/parameters.json @@ -4,7 +4,7 @@ "DynamoDBEnableServerSideEncryption": false, "AuthCognitoUserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] } diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/api/nutritionapi/build/nutritionapi-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/api/nutritionapi/build/nutritionapi-cloudformation-template.json index ab25d629b86..ba07311cb22 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/api/nutritionapi/build/nutritionapi-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/api/nutritionapi/build/nutritionapi-cloudformation-template.json @@ -2,9 +2,9 @@ "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"api-API Gateway\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", "AWSTemplateFormatVersion": "2010-09-09", "Parameters": { - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Default": "authfitnesstracker33f5545533f55455UserPoolId" }, "authuserPoolGroupsAdminGroupRole": { "Type": "String", @@ -344,7 +344,7 @@ "-", [ { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" }, "AdminGroupRole" ] @@ -666,7 +666,7 @@ "Name": "nutritionapi" } }, - "nutritionapiDefault4XXResponse7a61ed16": { + "nutritionapiDefault4XXResponsef55128fc": { "Type": "AWS::ApiGateway::GatewayResponse", "Properties": { "ResponseParameters": { @@ -681,7 +681,7 @@ } } }, - "nutritionapiDefault5XXResponse7a61ed16": { + "nutritionapiDefault5XXResponsef55128fc": { "Type": "AWS::ApiGateway::GatewayResponse", "Properties": { "ResponseParameters": { @@ -696,7 +696,7 @@ } } }, - "DeploymentAPIGWnutritionapi3a6bc816": { + "DeploymentAPIGWnutritionapi5caf0abc": { "Type": "AWS::ApiGateway::Deployment", "Properties": { "Description": "The Development stage deployment of your API.", @@ -714,8 +714,8 @@ } }, "DependsOn": [ - "nutritionapiDefault4XXResponse7a61ed16", - "nutritionapiDefault5XXResponse7a61ed16" + "nutritionapiDefault4XXResponsef55128fc", + "nutritionapiDefault5XXResponsef55128fc" ] } }, diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/fitnesstracker6b0fc1196b0fc119/build/auth-trigger-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/fitnesstracker33f5545533f55455/build/auth-trigger-cloudformation-template.json similarity index 94% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/fitnesstracker6b0fc1196b0fc119/build/auth-trigger-cloudformation-template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/fitnesstracker33f5545533f55455/build/auth-trigger-cloudformation-template.json index 549c2c6d721..3d97c0ff654 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/fitnesstracker6b0fc1196b0fc119/build/auth-trigger-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/fitnesstracker33f5545533f55455/build/auth-trigger-cloudformation-template.json @@ -11,13 +11,13 @@ "userpoolArn": { "Type": "String" }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupName": { + "functionfitnesstracker33f5545533f55455PreSignupName": { "Type": "String" }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupArn": { + "functionfitnesstracker33f5545533f55455PreSignupArn": { "Type": "String" }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupLambdaExecutionRole": { + "functionfitnesstracker33f5545533f55455PreSignupLambdaExecutionRole": { "Type": "String" } }, @@ -37,7 +37,7 @@ "Properties": { "Action": "lambda:InvokeFunction", "FunctionName": { - "Ref": "functionfitnesstracker6b0fc1196b0fc119PreSignupName" + "Ref": "functionfitnesstracker33f5545533f55455PreSignupName" }, "Principal": "cognito-idp.amazonaws.com", "SourceArn": { @@ -137,13 +137,13 @@ "lambdaConfig": [ { "triggerType": "PreSignUp", - "lambdaFunctionName": "fitnesstracker6b0fc1196b0fc119PreSignup", + "lambdaFunctionName": "fitnesstracker33f5545533f55455PreSignup", "lambdaFunctionArn": { - "Ref": "functionfitnesstracker6b0fc1196b0fc119PreSignupArn" + "Ref": "functionfitnesstracker33f5545533f55455PreSignupArn" } } ], - "nonce": "bd98400d-2d3c-435d-9a07-d071be38ca5f" + "nonce": "ce3e930d-07f8-4cb9-a927-2ce7de23494f" }, "DependsOn": [ "authTriggerFn7FCFA449", diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/auth/fitnesstracker6b0fc1196b0fc119/build/fitnesstracker6b0fc1196b0fc119-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/fitnesstracker33f5545533f55455/build/fitnesstracker33f5545533f55455-cloudformation-template.json similarity index 95% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/auth/fitnesstracker6b0fc1196b0fc119/build/fitnesstracker6b0fc1196b0fc119-cloudformation-template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/fitnesstracker33f5545533f55455/build/fitnesstracker33f5545533f55455-cloudformation-template.json index 6fd7a4879cc..f5ed153a8fe 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/auth/fitnesstracker6b0fc1196b0fc119/build/fitnesstracker6b0fc1196b0fc119-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/fitnesstracker33f5545533f55455/build/fitnesstracker33f5545533f55455-cloudformation-template.json @@ -5,13 +5,13 @@ "env": { "Type": "String" }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupArn": { + "functionfitnesstracker33f5545533f55455PreSignupArn": { "Type": "String", - "Default": "functionfitnesstracker6b0fc1196b0fc119PreSignupArn" + "Default": "functionfitnesstracker33f5545533f55455PreSignupArn" }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupName": { + "functionfitnesstracker33f5545533f55455PreSignupName": { "Type": "String", - "Default": "functionfitnesstracker6b0fc1196b0fc119PreSignupName" + "Default": "functionfitnesstracker33f5545533f55455PreSignupName" }, "identityPoolName": { "Type": "String" @@ -216,7 +216,7 @@ "UserPoolClientWeb": { "Type": "AWS::Cognito::UserPoolClient", "Properties": { - "ClientName": "fitnes6b0fc119_app_clientWeb", + "ClientName": "fitnes33f55455_app_clientWeb", "RefreshTokenValidity": { "Ref": "userpoolClientRefreshTokenValidity" }, @@ -234,7 +234,7 @@ "UserPoolClient": { "Type": "AWS::Cognito::UserPoolClient", "Properties": { - "ClientName": "fitnes6b0fc119_app_client", + "ClientName": "fitnes33f55455_app_client", "GenerateSecret": { "Ref": "userpoolClientGenerateSecret" }, @@ -277,7 +277,7 @@ "Fn::Join": [ "", [ - "upClientLambdaRole6b0fc119", + "upClientLambdaRole33f55455", { "Fn::Select": [ 3, @@ -349,12 +349,12 @@ "IdentityPoolName": { "Fn::If": [ "ShouldNotCreateEnvResources", - "fitnesstracker6b0fc119_identitypool_6b0fc119", + "fitnesstracker33f55455_identitypool_33f55455", { "Fn::Join": [ "", [ - "fitnesstracker6b0fc119_identitypool_6b0fc119__", + "fitnesstracker33f55455_identitypool_33f55455__", { "Ref": "env" } diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/fitnesstracker6b0fc1196b0fc119/build/parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/fitnesstracker33f5545533f55455/build/parameters.json similarity index 77% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/fitnesstracker6b0fc1196b0fc119/build/parameters.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/fitnesstracker33f5545533f55455/build/parameters.json index 95f8a8d6700..41d861ce59c 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/fitnesstracker6b0fc1196b0fc119/build/parameters.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/fitnesstracker33f5545533f55455/build/parameters.json @@ -1,8 +1,8 @@ { - "identityPoolName": "fitnesstracker6b0fc119_identitypool_6b0fc119", + "identityPoolName": "fitnesstracker33f55455_identitypool_33f55455", "allowUnauthenticatedIdentities": false, - "resourceNameTruncated": "fitnes6b0fc119", - "userPoolName": "fitnesstracker6b0fc119_userpool_6b0fc119", + "resourceNameTruncated": "fitnes33f55455", + "userPoolName": "fitnesstracker33f55455_userpool_33f55455", "autoVerifiedAttributes": [ "email" ], @@ -22,17 +22,17 @@ ], "aliasAttributes": [], "userpoolClientGenerateSecret": false, - "userpoolClientRefreshTokenValidity": "30", + "userpoolClientRefreshTokenValidity": 30, "userpoolClientWriteAttributes": [ "email" ], "userpoolClientReadAttributes": [ "email" ], - "userpoolClientLambdaRole": "fitnes6b0fc119_userpoolclient_lambda_role", + "userpoolClientLambdaRole": "fitnes33f55455_userpoolclient_lambda_role", "userpoolClientSetAttributes": false, - "sharedId": "6b0fc119", - "resourceName": "fitnesstracker6b0fc1196b0fc119", + "sharedId": "33f55455", + "resourceName": "fitnesstracker33f5545533f55455", "authSelections": "identityPoolAndUserPool", "useDefault": "manual", "thirdPartyAuth": false, @@ -62,7 +62,7 @@ "dependsOn": [ { "category": "function", - "resourceName": "fitnesstracker6b0fc1196b0fc119PreSignup", + "resourceName": "fitnesstracker33f5545533f55455PreSignup", "triggerProvider": "Cognito", "attributes": [ "Arn", @@ -72,6 +72,6 @@ ], "permissions": [], "authTriggerConnections": [ - "{\"triggerType\":\"PreSignUp\",\"lambdaFunctionName\":\"fitnesstracker6b0fc1196b0fc119PreSignup\"}" + "{\"triggerType\":\"PreSignUp\",\"lambdaFunctionName\":\"fitnesstracker33f5545533f55455PreSignup\"}" ] } \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/fitnesstracker6b0fc1196b0fc119/cli-inputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/fitnesstracker33f5545533f55455/cli-inputs.json similarity index 77% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/fitnesstracker6b0fc1196b0fc119/cli-inputs.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/fitnesstracker33f5545533f55455/cli-inputs.json index 016e071a17a..f8ecf9a776f 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/fitnesstracker6b0fc1196b0fc119/cli-inputs.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/fitnesstracker33f5545533f55455/cli-inputs.json @@ -1,10 +1,10 @@ { "version": "1", "cognitoConfig": { - "identityPoolName": "fitnesstracker6b0fc119_identitypool_6b0fc119", + "identityPoolName": "fitnesstracker33f55455_identitypool_33f55455", "allowUnauthenticatedIdentities": false, - "resourceNameTruncated": "fitnes6b0fc119", - "userPoolName": "fitnesstracker6b0fc119_userpool_6b0fc119", + "resourceNameTruncated": "fitnes33f55455", + "userPoolName": "fitnesstracker33f55455_userpool_33f55455", "autoVerifiedAttributes": [ "email" ], @@ -24,17 +24,17 @@ ], "aliasAttributes": [], "userpoolClientGenerateSecret": false, - "userpoolClientRefreshTokenValidity": "30", + "userpoolClientRefreshTokenValidity": 30, "userpoolClientWriteAttributes": [ "email" ], "userpoolClientReadAttributes": [ "email" ], - "userpoolClientLambdaRole": "fitnes6b0fc119_userpoolclient_lambda_role", + "userpoolClientLambdaRole": "fitnes33f55455_userpoolclient_lambda_role", "userpoolClientSetAttributes": false, - "sharedId": "6b0fc119", - "resourceName": "fitnesstracker6b0fc1196b0fc119", + "sharedId": "33f55455", + "resourceName": "fitnesstracker33f5545533f55455", "authSelections": "identityPoolAndUserPool", "useDefault": "manual", "thirdPartyAuth": false, diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json index 0741b0ac99f..e34b9d7bd14 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json @@ -11,21 +11,21 @@ "UnauthRoleArn": { "Type": "String" }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Default": "authfitnesstracker33f5545533f55455UserPoolId" }, - "authfitnesstracker6b0fc1196b0fc119IdentityPoolId": { + "authfitnesstracker33f5545533f55455IdentityPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119IdentityPoolId" + "Default": "authfitnesstracker33f5545533f55455IdentityPoolId" }, - "authfitnesstracker6b0fc1196b0fc119AppClientID": { + "authfitnesstracker33f5545533f55455AppClientID": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119AppClientID" + "Default": "authfitnesstracker33f5545533f55455AppClientID" }, - "authfitnesstracker6b0fc1196b0fc119AppClientIDWeb": { + "authfitnesstracker33f5545533f55455AppClientIDWeb": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119AppClientIDWeb" + "Default": "authfitnesstracker33f5545533f55455AppClientIDWeb" } }, "Conditions": { @@ -52,7 +52,7 @@ ] }, "UserPoolId": { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" } } }, @@ -72,7 +72,7 @@ "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": { - "Ref": "authfitnesstracker6b0fc1196b0fc119IdentityPoolId" + "Ref": "authfitnesstracker33f5545533f55455IdentityPoolId" } }, "ForAnyValue:StringLike": { @@ -87,7 +87,7 @@ "", [ { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" }, "-AdminGroupRole" ] diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/api/adminapi/build/adminapi-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/api/adminapi/build/adminapi-cloudformation-template.json index 9a9f4cf8794..63a8fcdb155 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/api/adminapi/build/adminapi-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/api/adminapi/build/adminapi-cloudformation-template.json @@ -2,9 +2,9 @@ "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"api-API Gateway\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", "AWSTemplateFormatVersion": "2010-09-09", "Parameters": { - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Default": "authfitnesstracker33f5545533f55455UserPoolId" }, "authuserPoolGroupsAdminGroupRole": { "Type": "String", @@ -104,7 +104,7 @@ "-", [ { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" }, "AdminGroupRole" ] @@ -426,7 +426,7 @@ "Name": "adminapi" } }, - "adminapiDefault4XXResponseb1888203": { + "adminapiDefault4XXResponse0e27c647": { "Type": "AWS::ApiGateway::GatewayResponse", "Properties": { "ResponseParameters": { @@ -441,7 +441,7 @@ } } }, - "adminapiDefault5XXResponseb1888203": { + "adminapiDefault5XXResponse0e27c647": { "Type": "AWS::ApiGateway::GatewayResponse", "Properties": { "ResponseParameters": { @@ -456,7 +456,7 @@ } } }, - "DeploymentAPIGWadminapi62a7fdcd": { + "DeploymentAPIGWadminapiad7711e6": { "Type": "AWS::ApiGateway::Deployment", "Properties": { "Description": "The Development stage deployment of your API.", @@ -474,8 +474,8 @@ } }, "DependsOn": [ - "adminapiDefault4XXResponseb1888203", - "adminapiDefault5XXResponseb1888203" + "adminapiDefault4XXResponse0e27c647", + "adminapiDefault5XXResponse0e27c647" ] } }, diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/api/fitnesstracker/build/cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/api/fitnesstracker/build/cloudformation-template.json index 78e0d8c0c01..cd07bb81a76 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/api/fitnesstracker/build/cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/api/fitnesstracker/build/cloudformation-template.json @@ -129,7 +129,7 @@ ] }, "Description": "graphql", - "Expires": 1773517628 + "Expires": 1774926196 } }, "GraphQLAPINONEDS95A13CF0": { diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/api/nutritionapi/build/nutritionapi-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/api/nutritionapi/build/nutritionapi-cloudformation-template.json index ab25d629b86..ba07311cb22 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/api/nutritionapi/build/nutritionapi-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/api/nutritionapi/build/nutritionapi-cloudformation-template.json @@ -2,9 +2,9 @@ "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"api-API Gateway\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", "AWSTemplateFormatVersion": "2010-09-09", "Parameters": { - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Default": "authfitnesstracker33f5545533f55455UserPoolId" }, "authuserPoolGroupsAdminGroupRole": { "Type": "String", @@ -344,7 +344,7 @@ "-", [ { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" }, "AdminGroupRole" ] @@ -666,7 +666,7 @@ "Name": "nutritionapi" } }, - "nutritionapiDefault4XXResponse7a61ed16": { + "nutritionapiDefault4XXResponsef55128fc": { "Type": "AWS::ApiGateway::GatewayResponse", "Properties": { "ResponseParameters": { @@ -681,7 +681,7 @@ } } }, - "nutritionapiDefault5XXResponse7a61ed16": { + "nutritionapiDefault5XXResponsef55128fc": { "Type": "AWS::ApiGateway::GatewayResponse", "Properties": { "ResponseParameters": { @@ -696,7 +696,7 @@ } } }, - "DeploymentAPIGWnutritionapi3a6bc816": { + "DeploymentAPIGWnutritionapi5caf0abc": { "Type": "AWS::ApiGateway::Deployment", "Properties": { "Description": "The Development stage deployment of your API.", @@ -714,8 +714,8 @@ } }, "DependsOn": [ - "nutritionapiDefault4XXResponse7a61ed16", - "nutritionapiDefault5XXResponse7a61ed16" + "nutritionapiDefault4XXResponsef55128fc", + "nutritionapiDefault5XXResponsef55128fc" ] } }, diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/fitnesstracker6b0fc1196b0fc119/build/fitnesstracker6b0fc1196b0fc119-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/auth/fitnesstracker33f5545533f55455/build/fitnesstracker33f5545533f55455-cloudformation-template.json similarity index 95% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/fitnesstracker6b0fc1196b0fc119/build/fitnesstracker6b0fc1196b0fc119-cloudformation-template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/auth/fitnesstracker33f5545533f55455/build/fitnesstracker33f5545533f55455-cloudformation-template.json index 6fd7a4879cc..f5ed153a8fe 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/fitnesstracker6b0fc1196b0fc119/build/fitnesstracker6b0fc1196b0fc119-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/auth/fitnesstracker33f5545533f55455/build/fitnesstracker33f5545533f55455-cloudformation-template.json @@ -5,13 +5,13 @@ "env": { "Type": "String" }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupArn": { + "functionfitnesstracker33f5545533f55455PreSignupArn": { "Type": "String", - "Default": "functionfitnesstracker6b0fc1196b0fc119PreSignupArn" + "Default": "functionfitnesstracker33f5545533f55455PreSignupArn" }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupName": { + "functionfitnesstracker33f5545533f55455PreSignupName": { "Type": "String", - "Default": "functionfitnesstracker6b0fc1196b0fc119PreSignupName" + "Default": "functionfitnesstracker33f5545533f55455PreSignupName" }, "identityPoolName": { "Type": "String" @@ -216,7 +216,7 @@ "UserPoolClientWeb": { "Type": "AWS::Cognito::UserPoolClient", "Properties": { - "ClientName": "fitnes6b0fc119_app_clientWeb", + "ClientName": "fitnes33f55455_app_clientWeb", "RefreshTokenValidity": { "Ref": "userpoolClientRefreshTokenValidity" }, @@ -234,7 +234,7 @@ "UserPoolClient": { "Type": "AWS::Cognito::UserPoolClient", "Properties": { - "ClientName": "fitnes6b0fc119_app_client", + "ClientName": "fitnes33f55455_app_client", "GenerateSecret": { "Ref": "userpoolClientGenerateSecret" }, @@ -277,7 +277,7 @@ "Fn::Join": [ "", [ - "upClientLambdaRole6b0fc119", + "upClientLambdaRole33f55455", { "Fn::Select": [ 3, @@ -349,12 +349,12 @@ "IdentityPoolName": { "Fn::If": [ "ShouldNotCreateEnvResources", - "fitnesstracker6b0fc119_identitypool_6b0fc119", + "fitnesstracker33f55455_identitypool_33f55455", { "Fn::Join": [ "", [ - "fitnesstracker6b0fc119_identitypool_6b0fc119__", + "fitnesstracker33f55455_identitypool_33f55455__", { "Ref": "env" } diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json index 0741b0ac99f..e34b9d7bd14 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json @@ -11,21 +11,21 @@ "UnauthRoleArn": { "Type": "String" }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Default": "authfitnesstracker33f5545533f55455UserPoolId" }, - "authfitnesstracker6b0fc1196b0fc119IdentityPoolId": { + "authfitnesstracker33f5545533f55455IdentityPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119IdentityPoolId" + "Default": "authfitnesstracker33f5545533f55455IdentityPoolId" }, - "authfitnesstracker6b0fc1196b0fc119AppClientID": { + "authfitnesstracker33f5545533f55455AppClientID": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119AppClientID" + "Default": "authfitnesstracker33f5545533f55455AppClientID" }, - "authfitnesstracker6b0fc1196b0fc119AppClientIDWeb": { + "authfitnesstracker33f5545533f55455AppClientIDWeb": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119AppClientIDWeb" + "Default": "authfitnesstracker33f5545533f55455AppClientIDWeb" } }, "Conditions": { @@ -52,7 +52,7 @@ ] }, "UserPoolId": { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" } } }, @@ -72,7 +72,7 @@ "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": { - "Ref": "authfitnesstracker6b0fc1196b0fc119IdentityPoolId" + "Ref": "authfitnesstracker33f5545533f55455IdentityPoolId" } }, "ForAnyValue:StringLike": { @@ -87,7 +87,7 @@ "", [ { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" }, "-AdminGroupRole" ] diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/awscloudformation/build/root-cloudformation-stack.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/awscloudformation/build/root-cloudformation-stack.json index 7732e28d356..3874b454557 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/awscloudformation/build/root-cloudformation-stack.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/awscloudformation/build/root-cloudformation-stack.json @@ -202,7 +202,7 @@ "APIGatewayAuthStack": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/APIGatewayAuthStack.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/APIGatewayAuthStack.json", "Parameters": { "authRoleName": { "Ref": "AuthRoleName" @@ -229,50 +229,50 @@ "AuthTriggerCustomLambdaStack": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/auth/auth-trigger-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/auth/auth-trigger-cloudformation-template.json", "Parameters": { "env": "main", "userpoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, "userpoolArn": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolArn" ] }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupLambdaExecutionRole": { + "functionfitnesstracker33f5545533f55455PreSignupLambdaExecutionRole": { "Fn::GetAtt": [ - "functionfitnesstracker6b0fc1196b0fc119PreSignup", + "functionfitnesstracker33f5545533f55455PreSignup", "Outputs.LambdaExecutionRoleArn" ] }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupArn": { + "functionfitnesstracker33f5545533f55455PreSignupArn": { "Fn::GetAtt": [ - "functionfitnesstracker6b0fc1196b0fc119PreSignup", + "functionfitnesstracker33f5545533f55455PreSignup", "Outputs.Arn" ] }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupName": { + "functionfitnesstracker33f5545533f55455PreSignupName": { "Fn::GetAtt": [ - "functionfitnesstracker6b0fc1196b0fc119PreSignup", + "functionfitnesstracker33f5545533f55455PreSignup", "Outputs.Name" ] } } }, "DependsOn": [ - "authfitnesstracker6b0fc1196b0fc119", - "functionfitnesstracker6b0fc1196b0fc119PreSignup" + "authfitnesstracker33f5545533f55455", + "functionfitnesstracker33f5545533f55455PreSignup" ] }, "authuserPoolGroups": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/auth/userPoolGroups-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/auth/userPoolGroups-cloudformation-template.json", "Parameters": { "AuthRoleArn": { "Fn::GetAtt": [ @@ -286,27 +286,27 @@ "Arn" ] }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, - "authfitnesstracker6b0fc1196b0fc119AppClientIDWeb": { + "authfitnesstracker33f5545533f55455AppClientIDWeb": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.AppClientIDWeb" ] }, - "authfitnesstracker6b0fc1196b0fc119AppClientID": { + "authfitnesstracker33f5545533f55455AppClientID": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.AppClientID" ] }, - "authfitnesstracker6b0fc1196b0fc119IdentityPoolId": { + "authfitnesstracker33f5545533f55455IdentityPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.IdentityPoolId" ] }, @@ -314,15 +314,15 @@ } } }, - "authfitnesstracker6b0fc1196b0fc119": { + "authfitnesstracker33f5545533f55455": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/auth/fitnesstracker6b0fc1196b0fc119-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/auth/fitnesstracker33f5545533f55455-cloudformation-template.json", "Parameters": { - "identityPoolName": "fitnesstracker6b0fc119_identitypool_6b0fc119", + "identityPoolName": "fitnesstracker33f55455_identitypool_33f55455", "allowUnauthenticatedIdentities": false, - "resourceNameTruncated": "fitnes6b0fc119", - "userPoolName": "fitnesstracker6b0fc119_userpool_6b0fc119", + "resourceNameTruncated": "fitnes33f55455", + "userPoolName": "fitnesstracker33f55455_userpool_33f55455", "autoVerifiedAttributes": "email", "mfaConfiguration": "OFF", "mfaTypes": "SMS Text Message", @@ -336,13 +336,13 @@ "requiredAttributes": "email", "aliasAttributes": "", "userpoolClientGenerateSecret": false, - "userpoolClientRefreshTokenValidity": "30", + "userpoolClientRefreshTokenValidity": 30, "userpoolClientWriteAttributes": "email", "userpoolClientReadAttributes": "email", - "userpoolClientLambdaRole": "fitnes6b0fc119_userpoolclient_lambda_role", + "userpoolClientLambdaRole": "fitnes33f55455_userpoolclient_lambda_role", "userpoolClientSetAttributes": false, - "sharedId": "6b0fc119", - "resourceName": "fitnesstracker6b0fc1196b0fc119", + "sharedId": "33f55455", + "resourceName": "fitnesstracker33f5545533f55455", "authSelections": "identityPoolAndUserPool", "useDefault": "manual", "thirdPartyAuth": false, @@ -369,21 +369,21 @@ "breakCircularDependency": true, "dependsOn": "[object Object]", "permissions": "", - "authTriggerConnections": "{\"triggerType\":\"PreSignUp\",\"lambdaFunctionName\":\"fitnesstracker6b0fc1196b0fc119PreSignup\"}", + "authTriggerConnections": "{\"triggerType\":\"PreSignUp\",\"lambdaFunctionName\":\"fitnesstracker33f5545533f55455PreSignup\"}", "env": "main" } } }, - "functionfitnesstracker6b0fc1196b0fc119PreSignup": { + "functionfitnesstracker33f5545533f55455PreSignup": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/function/fitnesstracker6b0fc1196b0fc119PreSignup-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/function/fitnesstracker33f5545533f55455PreSignup-cloudformation-template.json", "Parameters": { "modules": "email-filter-allowlist", - "resourceName": "fitnesstracker6b0fc1196b0fc119PreSignup", + "resourceName": "fitnesstracker33f5545533f55455PreSignup", "DOMAINALLOWLIST": "amazon.com", - "deploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", - "s3Key": "amplify-builds/fitnesstracker6b0fc1196b0fc119PreSignup-555a623867446f4a3843-build.zip", + "deploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", + "s3Key": "amplify-builds/fitnesstracker33f5545533f55455PreSignup-68374859444c45627749-build.zip", "env": "main" } } @@ -391,9 +391,9 @@ "functionlognutrition": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/function/lognutrition-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/function/lognutrition-cloudformation-template.json", "Parameters": { - "deploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", + "deploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", "s3Key": "amplify-builds/lognutrition-554b5263566866516c6c-build.zip", "apifitnesstrackerGraphQLAPIIdOutput": { "Fn::GetAtt": [ @@ -408,13 +408,13 @@ "functionadmin": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/function/admin-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/function/admin-cloudformation-template.json", "Parameters": { - "deploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", - "s3Key": "amplify-builds/admin-536f797874787247392f-build.zip", - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "deploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", + "s3Key": "amplify-builds/admin-7934694b6d366c486d32-build.zip", + "authfitnesstracker33f5545533f55455UserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, @@ -425,19 +425,19 @@ "apifitnesstracker": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/cloudformation-template.json", "Parameters": { "AppSyncApiName": "fitnesstracker", "DynamoDBBillingMode": "PAY_PER_REQUEST", "DynamoDBEnableServerSideEncryption": false, "AuthCognitoUserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, - "S3DeploymentBucket": "amplify-fitnesstracker-main-0683c-deployment", - "S3DeploymentRootKey": "amplify-appsync-files/96fdcde6a80859ead18d697e115cb9bd809fa98a", + "S3DeploymentBucket": "amplify-fitnesstracker-main-a0537-deployment", + "S3DeploymentRootKey": "amplify-appsync-files/67310f5f0a68cc163f9cc58da56e1409a2c21b1d", "env": "main" } } @@ -445,7 +445,7 @@ "apinutritionapi": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/nutritionapi-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/nutritionapi-cloudformation-template.json", "Parameters": { "functionlognutritionName": { "Fn::GetAtt": [ @@ -459,9 +459,9 @@ "Outputs.Arn" ] }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, @@ -478,7 +478,7 @@ "apiadminapi": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/adminapi-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/adminapi-cloudformation-template.json", "Parameters": { "functionadminName": { "Fn::GetAtt": [ @@ -492,9 +492,9 @@ "Outputs.Arn" ] }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, @@ -512,7 +512,7 @@ "DependsOn": [ "AuthRole", "UnauthRole", - "authfitnesstracker6b0fc1196b0fc119" + "authfitnesstracker33f5545533f55455" ], "Type": "AWS::Lambda::Function", "Properties": { @@ -622,7 +622,7 @@ }, "idpId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.IdentityPoolId" ] }, diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/function/admin/admin-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/function/admin/admin-cloudformation-template.json index 2dbe7e47d6b..57322afb5e3 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/function/admin/admin-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/function/admin/admin-cloudformation-template.json @@ -16,9 +16,9 @@ "s3Key": { "Type": "String" }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Default": "authfitnesstracker33f5545533f55455UserPoolId" } }, "Conditions": { @@ -74,8 +74,8 @@ "REGION": { "Ref": "AWS::Region" }, - "AUTH_FITNESSTRACKER6B0FC1196B0FC119_USERPOOLID": { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "AUTH_FITNESSTRACKER33F5545533F55455_USERPOOLID": { + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" } } }, @@ -96,12 +96,12 @@ "RoleName": { "Fn::If": [ "ShouldNotCreateEnvResources", - "fitnesstrackerLambdaRole8a95290d", + "fitnesstrackerLambdaRole4a08108a", { "Fn::Join": [ "", [ - "fitnesstrackerLambdaRole8a95290d", + "fitnesstrackerLambdaRole4a08108a", "-", { "Ref": "env" @@ -220,7 +220,7 @@ }, ":userpool/", { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" } ] ] diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/function/fitnesstracker6b0fc1196b0fc119PreSignup/fitnesstracker6b0fc1196b0fc119PreSignup-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/function/fitnesstracker33f5545533f55455PreSignup/fitnesstracker33f5545533f55455PreSignup-cloudformation-template.json similarity index 95% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/function/fitnesstracker6b0fc1196b0fc119PreSignup/fitnesstracker6b0fc1196b0fc119PreSignup-cloudformation-template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/function/fitnesstracker33f5545533f55455PreSignup/fitnesstracker33f5545533f55455PreSignup-cloudformation-template.json index c0cf3b931f5..e53fff724cb 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/function/fitnesstracker6b0fc1196b0fc119PreSignup/fitnesstracker6b0fc1196b0fc119PreSignup-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/function/fitnesstracker33f5545533f55455PreSignup/fitnesstracker33f5545533f55455PreSignup-cloudformation-template.json @@ -71,12 +71,12 @@ "FunctionName": { "Fn::If": [ "ShouldNotCreateEnvResources", - "fitnesstracker6b0fc1196b0fc119PreSignup", + "fitnesstracker33f5545533f55455PreSignup", { "Fn::Join": [ "", [ - "fitnesstracker6b0fc1196b0fc119PreSignup", + "fitnesstracker33f5545533f55455PreSignup", "-", { "Ref": "env" @@ -129,12 +129,12 @@ "RoleName": { "Fn::If": [ "ShouldNotCreateEnvResources", - "fitnesstracker6b0fc1196b0fc119PreSignup", + "fitnesstracker33f5545533f55455PreSignup", { "Fn::Join": [ "", [ - "fitnesstracker6b0fc1196b0fc119PreSignup", + "fitnesstracker33f5545533f55455PreSignup", "-", { "Ref": "env" diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/function/lognutrition/lognutrition-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/function/lognutrition/lognutrition-cloudformation-template.json index fd10c7f0ba5..34e97f53ec9 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/function/lognutrition/lognutrition-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/function/lognutrition/lognutrition-cloudformation-template.json @@ -122,12 +122,12 @@ "RoleName": { "Fn::If": [ "ShouldNotCreateEnvResources", - "fitnesstrackerLambdaRolee7dd41c6", + "fitnesstrackerLambdaRole2824d4b4", { "Fn::Join": [ "", [ - "fitnesstrackerLambdaRolee7dd41c6", + "fitnesstrackerLambdaRole2824d4b4", "-", { "Ref": "env" diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/root-cloudformation-stack.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/root-cloudformation-stack.json index 7732e28d356..3874b454557 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/root-cloudformation-stack.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/root-cloudformation-stack.json @@ -202,7 +202,7 @@ "APIGatewayAuthStack": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/APIGatewayAuthStack.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/APIGatewayAuthStack.json", "Parameters": { "authRoleName": { "Ref": "AuthRoleName" @@ -229,50 +229,50 @@ "AuthTriggerCustomLambdaStack": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/auth/auth-trigger-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/auth/auth-trigger-cloudformation-template.json", "Parameters": { "env": "main", "userpoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, "userpoolArn": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolArn" ] }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupLambdaExecutionRole": { + "functionfitnesstracker33f5545533f55455PreSignupLambdaExecutionRole": { "Fn::GetAtt": [ - "functionfitnesstracker6b0fc1196b0fc119PreSignup", + "functionfitnesstracker33f5545533f55455PreSignup", "Outputs.LambdaExecutionRoleArn" ] }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupArn": { + "functionfitnesstracker33f5545533f55455PreSignupArn": { "Fn::GetAtt": [ - "functionfitnesstracker6b0fc1196b0fc119PreSignup", + "functionfitnesstracker33f5545533f55455PreSignup", "Outputs.Arn" ] }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupName": { + "functionfitnesstracker33f5545533f55455PreSignupName": { "Fn::GetAtt": [ - "functionfitnesstracker6b0fc1196b0fc119PreSignup", + "functionfitnesstracker33f5545533f55455PreSignup", "Outputs.Name" ] } } }, "DependsOn": [ - "authfitnesstracker6b0fc1196b0fc119", - "functionfitnesstracker6b0fc1196b0fc119PreSignup" + "authfitnesstracker33f5545533f55455", + "functionfitnesstracker33f5545533f55455PreSignup" ] }, "authuserPoolGroups": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/auth/userPoolGroups-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/auth/userPoolGroups-cloudformation-template.json", "Parameters": { "AuthRoleArn": { "Fn::GetAtt": [ @@ -286,27 +286,27 @@ "Arn" ] }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, - "authfitnesstracker6b0fc1196b0fc119AppClientIDWeb": { + "authfitnesstracker33f5545533f55455AppClientIDWeb": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.AppClientIDWeb" ] }, - "authfitnesstracker6b0fc1196b0fc119AppClientID": { + "authfitnesstracker33f5545533f55455AppClientID": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.AppClientID" ] }, - "authfitnesstracker6b0fc1196b0fc119IdentityPoolId": { + "authfitnesstracker33f5545533f55455IdentityPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.IdentityPoolId" ] }, @@ -314,15 +314,15 @@ } } }, - "authfitnesstracker6b0fc1196b0fc119": { + "authfitnesstracker33f5545533f55455": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/auth/fitnesstracker6b0fc1196b0fc119-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/auth/fitnesstracker33f5545533f55455-cloudformation-template.json", "Parameters": { - "identityPoolName": "fitnesstracker6b0fc119_identitypool_6b0fc119", + "identityPoolName": "fitnesstracker33f55455_identitypool_33f55455", "allowUnauthenticatedIdentities": false, - "resourceNameTruncated": "fitnes6b0fc119", - "userPoolName": "fitnesstracker6b0fc119_userpool_6b0fc119", + "resourceNameTruncated": "fitnes33f55455", + "userPoolName": "fitnesstracker33f55455_userpool_33f55455", "autoVerifiedAttributes": "email", "mfaConfiguration": "OFF", "mfaTypes": "SMS Text Message", @@ -336,13 +336,13 @@ "requiredAttributes": "email", "aliasAttributes": "", "userpoolClientGenerateSecret": false, - "userpoolClientRefreshTokenValidity": "30", + "userpoolClientRefreshTokenValidity": 30, "userpoolClientWriteAttributes": "email", "userpoolClientReadAttributes": "email", - "userpoolClientLambdaRole": "fitnes6b0fc119_userpoolclient_lambda_role", + "userpoolClientLambdaRole": "fitnes33f55455_userpoolclient_lambda_role", "userpoolClientSetAttributes": false, - "sharedId": "6b0fc119", - "resourceName": "fitnesstracker6b0fc1196b0fc119", + "sharedId": "33f55455", + "resourceName": "fitnesstracker33f5545533f55455", "authSelections": "identityPoolAndUserPool", "useDefault": "manual", "thirdPartyAuth": false, @@ -369,21 +369,21 @@ "breakCircularDependency": true, "dependsOn": "[object Object]", "permissions": "", - "authTriggerConnections": "{\"triggerType\":\"PreSignUp\",\"lambdaFunctionName\":\"fitnesstracker6b0fc1196b0fc119PreSignup\"}", + "authTriggerConnections": "{\"triggerType\":\"PreSignUp\",\"lambdaFunctionName\":\"fitnesstracker33f5545533f55455PreSignup\"}", "env": "main" } } }, - "functionfitnesstracker6b0fc1196b0fc119PreSignup": { + "functionfitnesstracker33f5545533f55455PreSignup": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/function/fitnesstracker6b0fc1196b0fc119PreSignup-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/function/fitnesstracker33f5545533f55455PreSignup-cloudformation-template.json", "Parameters": { "modules": "email-filter-allowlist", - "resourceName": "fitnesstracker6b0fc1196b0fc119PreSignup", + "resourceName": "fitnesstracker33f5545533f55455PreSignup", "DOMAINALLOWLIST": "amazon.com", - "deploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", - "s3Key": "amplify-builds/fitnesstracker6b0fc1196b0fc119PreSignup-555a623867446f4a3843-build.zip", + "deploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", + "s3Key": "amplify-builds/fitnesstracker33f5545533f55455PreSignup-68374859444c45627749-build.zip", "env": "main" } } @@ -391,9 +391,9 @@ "functionlognutrition": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/function/lognutrition-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/function/lognutrition-cloudformation-template.json", "Parameters": { - "deploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", + "deploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", "s3Key": "amplify-builds/lognutrition-554b5263566866516c6c-build.zip", "apifitnesstrackerGraphQLAPIIdOutput": { "Fn::GetAtt": [ @@ -408,13 +408,13 @@ "functionadmin": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/function/admin-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/function/admin-cloudformation-template.json", "Parameters": { - "deploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", - "s3Key": "amplify-builds/admin-536f797874787247392f-build.zip", - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "deploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", + "s3Key": "amplify-builds/admin-7934694b6d366c486d32-build.zip", + "authfitnesstracker33f5545533f55455UserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, @@ -425,19 +425,19 @@ "apifitnesstracker": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/cloudformation-template.json", "Parameters": { "AppSyncApiName": "fitnesstracker", "DynamoDBBillingMode": "PAY_PER_REQUEST", "DynamoDBEnableServerSideEncryption": false, "AuthCognitoUserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, - "S3DeploymentBucket": "amplify-fitnesstracker-main-0683c-deployment", - "S3DeploymentRootKey": "amplify-appsync-files/96fdcde6a80859ead18d697e115cb9bd809fa98a", + "S3DeploymentBucket": "amplify-fitnesstracker-main-a0537-deployment", + "S3DeploymentRootKey": "amplify-appsync-files/67310f5f0a68cc163f9cc58da56e1409a2c21b1d", "env": "main" } } @@ -445,7 +445,7 @@ "apinutritionapi": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/nutritionapi-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/nutritionapi-cloudformation-template.json", "Parameters": { "functionlognutritionName": { "Fn::GetAtt": [ @@ -459,9 +459,9 @@ "Outputs.Arn" ] }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, @@ -478,7 +478,7 @@ "apiadminapi": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/adminapi-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/adminapi-cloudformation-template.json", "Parameters": { "functionadminName": { "Fn::GetAtt": [ @@ -492,9 +492,9 @@ "Outputs.Arn" ] }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, @@ -512,7 +512,7 @@ "DependsOn": [ "AuthRole", "UnauthRole", - "authfitnesstracker6b0fc1196b0fc119" + "authfitnesstracker33f5545533f55455" ], "Type": "AWS::Lambda::Function", "Properties": { @@ -622,7 +622,7 @@ }, "idpId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.IdentityPoolId" ] }, diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/backend-config.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/backend-config.json index 4d3f1b5f607..d15b0adea45 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/backend-config.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/backend-config.json @@ -15,7 +15,7 @@ "UserPoolId" ], "category": "auth", - "resourceName": "fitnesstracker6b0fc1196b0fc119" + "resourceName": "fitnesstracker33f5545533f55455" }, { "attributes": [ @@ -35,7 +35,7 @@ "UserPoolId" ], "category": "auth", - "resourceName": "fitnesstracker6b0fc1196b0fc119" + "resourceName": "fitnesstracker33f5545533f55455" } ], "output": { @@ -43,7 +43,7 @@ "additionalAuthenticationProviders": [ { "apiKeyConfig": { - "apiKeyExpirationDate": "2026-03-14T19:43:17.245Z", + "apiKeyExpirationDate": "2026-03-31T02:59:49.009Z", "apiKeyExpirationDays": 7, "description": "graphql" }, @@ -53,7 +53,7 @@ "defaultAuthentication": { "authenticationType": "AMAZON_COGNITO_USER_POOLS", "userPoolConfig": { - "userPoolId": "authfitnesstracker6b0fc1196b0fc119" + "userPoolId": "authfitnesstracker33f5545533f55455" } } } @@ -76,7 +76,7 @@ "UserPoolId" ], "category": "auth", - "resourceName": "fitnesstracker6b0fc1196b0fc119" + "resourceName": "fitnesstracker33f5545533f55455" }, { "attributes": [ @@ -91,7 +91,7 @@ } }, "auth": { - "fitnesstracker6b0fc1196b0fc119": { + "fitnesstracker33f5545533f55455": { "customAuth": false, "dependsOn": [ { @@ -100,7 +100,7 @@ "Name" ], "category": "function", - "resourceName": "fitnesstracker6b0fc1196b0fc119PreSignup", + "resourceName": "fitnesstracker33f5545533f55455PreSignup", "triggerProvider": "Cognito" } ], @@ -135,7 +135,7 @@ "IdentityPoolId" ], "category": "auth", - "resourceName": "fitnesstracker6b0fc1196b0fc119" + "resourceName": "fitnesstracker33f5545533f55455" } ], "providerPlugin": "awscloudformation", @@ -151,13 +151,13 @@ "UserPoolId" ], "category": "auth", - "resourceName": "fitnesstracker6b0fc1196b0fc119" + "resourceName": "fitnesstracker33f5545533f55455" } ], "providerPlugin": "awscloudformation", "service": "Lambda" }, - "fitnesstracker6b0fc1196b0fc119PreSignup": { + "fitnesstracker33f5545533f55455PreSignup": { "build": true, "providerPlugin": "awscloudformation", "service": "Lambda" @@ -194,27 +194,27 @@ } ] }, - "AMPLIFY_function_fitnesstracker6b0fc1196b0fc119PreSignup_DOMAINALLOWLIST": { + "AMPLIFY_function_fitnesstracker33f5545533f55455PreSignup_DOMAINALLOWLIST": { "usedBy": [ { "category": "function", - "resourceName": "fitnesstracker6b0fc1196b0fc119PreSignup" + "resourceName": "fitnesstracker33f5545533f55455PreSignup" } ] }, - "AMPLIFY_function_fitnesstracker6b0fc1196b0fc119PreSignup_deploymentBucketName": { + "AMPLIFY_function_fitnesstracker33f5545533f55455PreSignup_deploymentBucketName": { "usedBy": [ { "category": "function", - "resourceName": "fitnesstracker6b0fc1196b0fc119PreSignup" + "resourceName": "fitnesstracker33f5545533f55455PreSignup" } ] }, - "AMPLIFY_function_fitnesstracker6b0fc1196b0fc119PreSignup_s3Key": { + "AMPLIFY_function_fitnesstracker33f5545533f55455PreSignup_s3Key": { "usedBy": [ { "category": "function", - "resourceName": "fitnesstracker6b0fc1196b0fc119PreSignup" + "resourceName": "fitnesstracker33f5545533f55455PreSignup" } ] }, diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/admin/admin-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/admin/admin-cloudformation-template.json index 2dbe7e47d6b..57322afb5e3 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/admin/admin-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/admin/admin-cloudformation-template.json @@ -16,9 +16,9 @@ "s3Key": { "Type": "String" }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Default": "authfitnesstracker33f5545533f55455UserPoolId" } }, "Conditions": { @@ -74,8 +74,8 @@ "REGION": { "Ref": "AWS::Region" }, - "AUTH_FITNESSTRACKER6B0FC1196B0FC119_USERPOOLID": { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "AUTH_FITNESSTRACKER33F5545533F55455_USERPOOLID": { + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" } } }, @@ -96,12 +96,12 @@ "RoleName": { "Fn::If": [ "ShouldNotCreateEnvResources", - "fitnesstrackerLambdaRole8a95290d", + "fitnesstrackerLambdaRole4a08108a", { "Fn::Join": [ "", [ - "fitnesstrackerLambdaRole8a95290d", + "fitnesstrackerLambdaRole4a08108a", "-", { "Ref": "env" @@ -220,7 +220,7 @@ }, ":userpool/", { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" } ] ] diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/admin/function-parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/admin/function-parameters.json index bbf9b6e174e..f87ac79fa6f 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/admin/function-parameters.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/admin/function-parameters.json @@ -1,7 +1,7 @@ { "permissions": { "auth": { - "fitnesstracker6b0fc1196b0fc119": [ + "fitnesstracker33f5545533f55455": [ "read" ] } diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/amplify.state b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker33f5545533f55455PreSignup/amplify.state similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/amplify.state rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker33f5545533f55455PreSignup/amplify.state diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/custom-policies.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker33f5545533f55455PreSignup/custom-policies.json similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/custom-policies.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker33f5545533f55455PreSignup/custom-policies.json diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/function/fitnesstracker6b0fc1196b0fc119PreSignup/fitnesstracker6b0fc1196b0fc119PreSignup-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker33f5545533f55455PreSignup/fitnesstracker33f5545533f55455PreSignup-cloudformation-template.json similarity index 95% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/function/fitnesstracker6b0fc1196b0fc119PreSignup/fitnesstracker6b0fc1196b0fc119PreSignup-cloudformation-template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker33f5545533f55455PreSignup/fitnesstracker33f5545533f55455PreSignup-cloudformation-template.json index c0cf3b931f5..e53fff724cb 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/function/fitnesstracker6b0fc1196b0fc119PreSignup/fitnesstracker6b0fc1196b0fc119PreSignup-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker33f5545533f55455PreSignup/fitnesstracker33f5545533f55455PreSignup-cloudformation-template.json @@ -71,12 +71,12 @@ "FunctionName": { "Fn::If": [ "ShouldNotCreateEnvResources", - "fitnesstracker6b0fc1196b0fc119PreSignup", + "fitnesstracker33f5545533f55455PreSignup", { "Fn::Join": [ "", [ - "fitnesstracker6b0fc1196b0fc119PreSignup", + "fitnesstracker33f5545533f55455PreSignup", "-", { "Ref": "env" @@ -129,12 +129,12 @@ "RoleName": { "Fn::If": [ "ShouldNotCreateEnvResources", - "fitnesstracker6b0fc1196b0fc119PreSignup", + "fitnesstracker33f5545533f55455PreSignup", { "Fn::Join": [ "", [ - "fitnesstracker6b0fc1196b0fc119PreSignup", + "fitnesstracker33f5545533f55455PreSignup", "-", { "Ref": "env" diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/function-parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker33f5545533f55455PreSignup/function-parameters.json similarity index 61% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/function-parameters.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker33f5545533f55455PreSignup/function-parameters.json index bc563179c95..ddc07525de2 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/function-parameters.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker33f5545533f55455PreSignup/function-parameters.json @@ -3,14 +3,14 @@ "modules": [ "email-filter-allowlist" ], - "parentResource": "fitnesstracker6b0fc1196b0fc119", - "functionName": "fitnesstracker6b0fc1196b0fc119PreSignup", - "resourceName": "fitnesstracker6b0fc1196b0fc119PreSignup", + "parentResource": "fitnesstracker33f5545533f55455", + "functionName": "fitnesstracker33f5545533f55455PreSignup", + "resourceName": "fitnesstracker33f5545533f55455PreSignup", "parentStack": "auth", "triggerEnvs": "[]", "triggerDir": "/snapshot/amplify-cli/build/node_modules/@aws-amplify/amplify-category-auth/provider-utils/awscloudformation/triggers/PreSignup", "triggerTemplate": "PreSignup.json.ejs", "triggerEventPath": "PreSignup.event.json", - "roleName": "fitnesstracker6b0fc1196b0fc119PreSignup", + "roleName": "fitnesstracker33f5545533f55455PreSignup", "skipEdit": true } \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker33f5545533f55455PreSignup/parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker33f5545533f55455PreSignup/parameters.json new file mode 100644 index 00000000000..020628a583f --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker33f5545533f55455PreSignup/parameters.json @@ -0,0 +1,4 @@ +{ + "modules": "email-filter-allowlist", + "resourceName": "fitnesstracker33f5545533f55455PreSignup" +} \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/src/email-filter-allowlist.js b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker33f5545533f55455PreSignup/src/email-filter-allowlist.js similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/src/email-filter-allowlist.js rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker33f5545533f55455PreSignup/src/email-filter-allowlist.js diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/src/event.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker33f5545533f55455PreSignup/src/event.json similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/src/event.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker33f5545533f55455PreSignup/src/event.json diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/src/index.js b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker33f5545533f55455PreSignup/src/index.js similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/src/index.js rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker33f5545533f55455PreSignup/src/index.js diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/src/package.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker33f5545533f55455PreSignup/src/package.json similarity index 78% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/src/package.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker33f5545533f55455PreSignup/src/package.json index 41f579f68ee..9d1790c9a5c 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/src/package.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker33f5545533f55455PreSignup/src/package.json @@ -1,5 +1,5 @@ { - "name": "fitnesstracker6b0fc1196b0fc119PreSignup", + "name": "fitnesstracker33f5545533f55455PreSignup", "version": "2.0.0", "description": "Lambda function generated by Amplify", "main": "index.js", diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/src/yarn.lock b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker33f5545533f55455PreSignup/src/yarn.lock similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/src/yarn.lock rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker33f5545533f55455PreSignup/src/yarn.lock diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/parameters.json deleted file mode 100644 index 0d5ce52faf8..00000000000 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/parameters.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "modules": "email-filter-allowlist", - "resourceName": "fitnesstracker6b0fc1196b0fc119PreSignup" -} \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/lognutrition/lognutrition-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/lognutrition/lognutrition-cloudformation-template.json index fd10c7f0ba5..34e97f53ec9 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/lognutrition/lognutrition-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/lognutrition/lognutrition-cloudformation-template.json @@ -122,12 +122,12 @@ "RoleName": { "Fn::If": [ "ShouldNotCreateEnvResources", - "fitnesstrackerLambdaRolee7dd41c6", + "fitnesstrackerLambdaRole2824d4b4", { "Fn::Join": [ "", [ - "fitnesstrackerLambdaRolee7dd41c6", + "fitnesstrackerLambdaRole2824d4b4", "-", { "Ref": "env" diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/amplify-meta.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/amplify-meta.json index 3876e3d5862..8334327a376 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/amplify-meta.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/amplify-meta.json @@ -1,17 +1,17 @@ { "providers": { "awscloudformation": { - "AuthRoleName": "amplify-fitnesstracker-main-0683c-authRole", - "UnauthRoleArn": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-0683c-unauthRole", - "AuthRoleArn": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-0683c-authRole", + "AuthRoleName": "amplify-fitnesstracker-main-a0537-authRole", + "UnauthRoleArn": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-a0537-unauthRole", + "AuthRoleArn": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-a0537-authRole", "Region": "us-east-1", - "DeploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", - "UnauthRoleName": "amplify-fitnesstracker-main-0683c-unauthRole", - "StackName": "amplify-fitnesstracker-main-0683c", - "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/amplify-fitnesstracker-main-0683c/8ef87630-1a5b-11f1-84f6-12153bdc35f9", + "DeploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", + "UnauthRoleName": "amplify-fitnesstracker-main-a0537-unauthRole", + "StackName": "amplify-fitnesstracker-main-a0537", + "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/amplify-fitnesstracker-main-a0537/1749a530-272d-11f1-a465-0e5f0b5f7853", "AmplifyAppId": "fitnesstracker", - "APIGatewayAuthURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/APIGatewayAuthStack.json", - "AuthTriggerTemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/auth/auth-trigger-cloudformation-template.json" + "APIGatewayAuthURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/APIGatewayAuthStack.json", + "AuthTriggerTemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/auth/auth-trigger-cloudformation-template.json" } }, "auth": { @@ -21,7 +21,7 @@ "dependsOn": [ { "category": "auth", - "resourceName": "fitnesstracker6b0fc1196b0fc119", + "resourceName": "fitnesstracker33f5545533f55455", "attributes": [ "UserPoolId", "AppClientIDWeb", @@ -30,23 +30,23 @@ ] } ], - "lastPushTimeStamp": "2026-03-07T19:54:29.563Z", + "lastPushTimeStamp": "2026-03-24T03:10:58.631Z", "providerMetadata": { - "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/auth/userPoolGroups-cloudformation-template.json", + "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/auth/userPoolGroups-cloudformation-template.json", "logicalId": "authuserPoolGroups" }, "output": { - "AdminGroupRole": "arn:aws:iam::123456789012:role/us-east-1_u3DbKJdMj-AdminGroupRole" + "AdminGroupRole": "arn:aws:iam::123456789012:role/us-east-1_iguxCIcMS-AdminGroupRole" }, "lastPushDirHash": "5G4uAlMxN8rsFD1jyeLTya9ahFM=" }, - "fitnesstracker6b0fc1196b0fc119": { + "fitnesstracker33f5545533f55455": { "service": "Cognito", "providerPlugin": "awscloudformation", "dependsOn": [ { "category": "function", - "resourceName": "fitnesstracker6b0fc1196b0fc119PreSignup", + "resourceName": "fitnesstracker33f5545533f55455PreSignup", "triggerProvider": "Cognito", "attributes": [ "Arn", @@ -74,48 +74,48 @@ ] }, "providerMetadata": { - "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/auth/fitnesstracker6b0fc1196b0fc119-cloudformation-template.json", - "logicalId": "authfitnesstracker6b0fc1196b0fc119" + "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/auth/fitnesstracker33f5545533f55455-cloudformation-template.json", + "logicalId": "authfitnesstracker33f5545533f55455" }, - "lastPushTimeStamp": "2026-03-07T19:54:29.563Z", + "lastPushTimeStamp": "2026-03-24T03:10:58.631Z", "output": { - "UserPoolId": "us-east-1_u3DbKJdMj", - "AppClientIDWeb": "7rgr70g6grv2t7e4jstuq5uuqg", - "AppClientID": "7s3vppsutj69af1r91u7tm2a45", - "IdentityPoolId": "us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db", - "UserPoolArn": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_u3DbKJdMj", - "IdentityPoolName": "fitnesstracker6b0fc119_identitypool_6b0fc119__main", - "UserPoolName": "fitnesstracker6b0fc119_userpool_6b0fc119" + "UserPoolId": "us-east-1_iguxCIcMS", + "AppClientIDWeb": "29bubgvfbbqkp4k60rl7oaqd8s", + "AppClientID": "3s8jcv7nflisr91emephrr2a9s", + "IdentityPoolId": "us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022", + "UserPoolArn": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_iguxCIcMS", + "IdentityPoolName": "fitnesstracker33f55455_identitypool_33f55455__main", + "UserPoolName": "fitnesstracker33f55455_userpool_33f55455" }, - "lastPushDirHash": "lc3D5NIx9SNJ9mopBb1jJJ/TKDU=" + "lastPushDirHash": "0UqXAz+SYrchlHkWJtyjmhwNAyw=" } }, "function": { - "fitnesstracker6b0fc1196b0fc119PreSignup": { + "fitnesstracker33f5545533f55455PreSignup": { "build": true, "providerPlugin": "awscloudformation", "service": "Lambda", - "lastBuildTimeStamp": "2026-03-07T19:46:55.655Z", + "lastBuildTimeStamp": "2026-03-24T03:03:03.155Z", "lastBuildType": "PROD", - "lastPackageTimeStamp": "2026-03-07T19:46:55.711Z", - "distZipFilename": "fitnesstracker6b0fc1196b0fc119PreSignup-555a623867446f4a3843-build.zip", + "lastPackageTimeStamp": "2026-03-24T03:03:03.215Z", + "distZipFilename": "fitnesstracker33f5545533f55455PreSignup-68374859444c45627749-build.zip", "s3Bucket": { - "deploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", - "s3Key": "amplify-builds/fitnesstracker6b0fc1196b0fc119PreSignup-555a623867446f4a3843-build.zip" + "deploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", + "s3Key": "amplify-builds/fitnesstracker33f5545533f55455PreSignup-68374859444c45627749-build.zip" }, "providerMetadata": { - "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/function/fitnesstracker6b0fc1196b0fc119PreSignup-cloudformation-template.json", - "logicalId": "functionfitnesstracker6b0fc1196b0fc119PreSignup" + "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/function/fitnesstracker33f5545533f55455PreSignup-cloudformation-template.json", + "logicalId": "functionfitnesstracker33f5545533f55455PreSignup" }, - "lastPushTimeStamp": "2026-03-07T19:54:29.563Z", + "lastPushTimeStamp": "2026-03-24T03:10:58.631Z", "output": { - "LambdaExecutionRoleArn": "arn:aws:iam::123456789012:role/fitnesstracker6b0fc1196b0fc119PreSignup-main", + "LambdaExecutionRoleArn": "arn:aws:iam::123456789012:role/fitnesstracker33f5545533f55455PreSignup-main", "Region": "us-east-1", - "Arn": "arn:aws:lambda:us-east-1:123456789012:function:fitnesstracker6b0fc1196b0fc119PreSignup-main", - "Name": "fitnesstracker6b0fc1196b0fc119PreSignup-main", - "LambdaExecutionRole": "fitnesstracker6b0fc1196b0fc119PreSignup-main" + "Arn": "arn:aws:lambda:us-east-1:123456789012:function:fitnesstracker33f5545533f55455PreSignup-main", + "Name": "fitnesstracker33f5545533f55455PreSignup-main", + "LambdaExecutionRole": "fitnesstracker33f5545533f55455PreSignup-main" }, - "lastPushDirHash": "8SU4c0dfVCbxO0PKaNCo7lKfaoY=" + "lastPushDirHash": "kHZgvjW478Vk1rWRqWN9hZbma+U=" }, "lognutrition": { "build": true, @@ -130,27 +130,27 @@ ] } ], - "lastBuildTimeStamp": "2026-03-07T19:46:57.956Z", + "lastBuildTimeStamp": "2026-03-24T03:03:04.944Z", "lastBuildType": "PROD", - "lastPackageTimeStamp": "2026-03-07T19:46:59.045Z", + "lastPackageTimeStamp": "2026-03-24T03:03:05.883Z", "distZipFilename": "lognutrition-554b5263566866516c6c-build.zip", "s3Bucket": { - "deploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", + "deploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", "s3Key": "amplify-builds/lognutrition-554b5263566866516c6c-build.zip" }, "providerMetadata": { - "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/function/lognutrition-cloudformation-template.json", + "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/function/lognutrition-cloudformation-template.json", "logicalId": "functionlognutrition" }, - "lastPushTimeStamp": "2026-03-07T19:54:29.563Z", + "lastPushTimeStamp": "2026-03-24T03:10:58.631Z", "output": { - "LambdaExecutionRoleArn": "arn:aws:iam::123456789012:role/fitnesstrackerLambdaRolee7dd41c6-main", + "LambdaExecutionRoleArn": "arn:aws:iam::123456789012:role/fitnesstrackerLambdaRole2824d4b4-main", "Region": "us-east-1", "Arn": "arn:aws:lambda:us-east-1:123456789012:function:lognutrition-main", "Name": "lognutrition-main", - "LambdaExecutionRole": "fitnesstrackerLambdaRolee7dd41c6-main" + "LambdaExecutionRole": "fitnesstrackerLambdaRole2824d4b4-main" }, - "lastPushDirHash": "wKTLiPjpIe9DlqZKixAXXp4cLW8=" + "lastPushDirHash": "KAgg7Tg7xQWrkPA+Y7AX2th1kaI=" }, "admin": { "build": true, @@ -159,33 +159,33 @@ "dependsOn": [ { "category": "auth", - "resourceName": "fitnesstracker6b0fc1196b0fc119", + "resourceName": "fitnesstracker33f5545533f55455", "attributes": [ "UserPoolId" ] } ], - "lastBuildTimeStamp": "2026-03-07T19:47:01.559Z", + "lastBuildTimeStamp": "2026-03-24T03:03:08.363Z", "lastBuildType": "PROD", - "lastPackageTimeStamp": "2026-03-07T19:47:07.497Z", - "distZipFilename": "admin-536f797874787247392f-build.zip", + "lastPackageTimeStamp": "2026-03-24T03:03:14.781Z", + "distZipFilename": "admin-7934694b6d366c486d32-build.zip", "s3Bucket": { - "deploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", - "s3Key": "amplify-builds/admin-536f797874787247392f-build.zip" + "deploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", + "s3Key": "amplify-builds/admin-7934694b6d366c486d32-build.zip" }, "providerMetadata": { - "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/function/admin-cloudformation-template.json", + "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/function/admin-cloudformation-template.json", "logicalId": "functionadmin" }, - "lastPushTimeStamp": "2026-03-07T19:54:29.563Z", + "lastPushTimeStamp": "2026-03-24T03:10:58.631Z", "output": { - "LambdaExecutionRoleArn": "arn:aws:iam::123456789012:role/fitnesstrackerLambdaRole8a95290d-main", + "LambdaExecutionRoleArn": "arn:aws:iam::123456789012:role/fitnesstrackerLambdaRole4a08108a-main", "Region": "us-east-1", "Arn": "arn:aws:lambda:us-east-1:123456789012:function:admin-main", "Name": "admin-main", - "LambdaExecutionRole": "fitnesstrackerLambdaRole8a95290d-main" + "LambdaExecutionRole": "fitnesstrackerLambdaRole4a08108a-main" }, - "lastPushDirHash": "cEr9eDcTN7fah2H+l8m6/ULsUCc=" + "lastPushDirHash": "20iOEIOvyMwayeWUC08s9NsJkTA=" } }, "api": { @@ -195,7 +195,7 @@ "dependsOn": [ { "category": "auth", - "resourceName": "fitnesstracker6b0fc1196b0fc119", + "resourceName": "fitnesstracker33f5545533f55455", "attributes": [ "UserPoolId" ] @@ -206,7 +206,7 @@ "defaultAuthentication": { "authenticationType": "AMAZON_COGNITO_USER_POOLS", "userPoolConfig": { - "userPoolId": "authfitnesstracker6b0fc1196b0fc119" + "userPoolId": "authfitnesstracker33f5545533f55455" } }, "additionalAuthenticationProviders": [ @@ -214,22 +214,22 @@ "authenticationType": "API_KEY", "apiKeyConfig": { "apiKeyExpirationDays": 7, - "apiKeyExpirationDate": "2026-03-14T19:43:17.245Z", + "apiKeyExpirationDate": "2026-03-31T02:59:49.009Z", "description": "graphql" } } ] }, - "GraphQLAPIIdOutput": "2aikutabnvbuhlzmh4mvkg3eji", - "GraphQLAPIEndpointOutput": "https://azg6sgrevzehjmrpkcghyncvci.appsync-api.us-east-1.amazonaws.com/graphql", + "GraphQLAPIIdOutput": "jzwb5p2vcbd2ldlnlxokgjcjby", + "GraphQLAPIEndpointOutput": "https://lqftdnws2zb75jcuwdcmx23wdi.appsync-api.us-east-1.amazonaws.com/graphql", "GraphQLAPIKeyOutput": "da2-fakeapikey00000000000000" }, "providerMetadata": { - "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/cloudformation-template.json", + "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/cloudformation-template.json", "logicalId": "apifitnesstracker" }, - "lastPushTimeStamp": "2026-03-07T19:54:29.563Z", - "lastPushDirHash": "qJUjDfyKe7FhQAxzPRH3qHmn3UM=" + "lastPushTimeStamp": "2026-03-24T03:10:58.631Z", + "lastPushDirHash": "RCtlX/RFS23/RTpTpKEuv4XLh08=" }, "nutritionapi": { "service": "API Gateway", @@ -245,7 +245,7 @@ }, { "category": "auth", - "resourceName": "fitnesstracker6b0fc1196b0fc119", + "resourceName": "fitnesstracker33f5545533f55455", "attributes": [ "UserPoolId" ] @@ -259,14 +259,14 @@ } ], "providerMetadata": { - "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/nutritionapi-cloudformation-template.json", + "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/nutritionapi-cloudformation-template.json", "logicalId": "apinutritionapi" }, - "lastPushTimeStamp": "2026-03-07T19:54:29.563Z", + "lastPushTimeStamp": "2026-03-24T03:10:58.631Z", "output": { "ApiName": "nutritionapi", - "RootUrl": "https://6smuxn28tb.execute-api.us-east-1.amazonaws.com/main", - "ApiId": "6smuxn28tb" + "RootUrl": "https://hmydcaubcb.execute-api.us-east-1.amazonaws.com/main", + "ApiId": "hmydcaubcb" }, "lastPushDirHash": "5JwuGoxSHfV3nT5/dIukaklIOKI=" }, @@ -284,7 +284,7 @@ }, { "category": "auth", - "resourceName": "fitnesstracker6b0fc1196b0fc119", + "resourceName": "fitnesstracker33f5545533f55455", "attributes": [ "UserPoolId" ] @@ -298,14 +298,14 @@ } ], "providerMetadata": { - "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/adminapi-cloudformation-template.json", + "s3TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/adminapi-cloudformation-template.json", "logicalId": "apiadminapi" }, - "lastPushTimeStamp": "2026-03-07T19:54:29.563Z", + "lastPushTimeStamp": "2026-03-24T03:10:58.631Z", "output": { "ApiName": "adminapi", - "RootUrl": "https://kh5xa5hayh.execute-api.us-east-1.amazonaws.com/main", - "ApiId": "kh5xa5hayh" + "RootUrl": "https://oxq86r59h6.execute-api.us-east-1.amazonaws.com/main", + "ApiId": "oxq86r59h6" }, "lastPushDirHash": "SI1snudM0j/SqX5HIasSB/7nF3k=" } diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/api/adminapi/build/adminapi-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/api/adminapi/build/adminapi-cloudformation-template.json index 9a9f4cf8794..63a8fcdb155 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/api/adminapi/build/adminapi-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/api/adminapi/build/adminapi-cloudformation-template.json @@ -2,9 +2,9 @@ "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"api-API Gateway\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", "AWSTemplateFormatVersion": "2010-09-09", "Parameters": { - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Default": "authfitnesstracker33f5545533f55455UserPoolId" }, "authuserPoolGroupsAdminGroupRole": { "Type": "String", @@ -104,7 +104,7 @@ "-", [ { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" }, "AdminGroupRole" ] @@ -426,7 +426,7 @@ "Name": "adminapi" } }, - "adminapiDefault4XXResponseb1888203": { + "adminapiDefault4XXResponse0e27c647": { "Type": "AWS::ApiGateway::GatewayResponse", "Properties": { "ResponseParameters": { @@ -441,7 +441,7 @@ } } }, - "adminapiDefault5XXResponseb1888203": { + "adminapiDefault5XXResponse0e27c647": { "Type": "AWS::ApiGateway::GatewayResponse", "Properties": { "ResponseParameters": { @@ -456,7 +456,7 @@ } } }, - "DeploymentAPIGWadminapi62a7fdcd": { + "DeploymentAPIGWadminapiad7711e6": { "Type": "AWS::ApiGateway::Deployment", "Properties": { "Description": "The Development stage deployment of your API.", @@ -474,8 +474,8 @@ } }, "DependsOn": [ - "adminapiDefault4XXResponseb1888203", - "adminapiDefault5XXResponseb1888203" + "adminapiDefault4XXResponse0e27c647", + "adminapiDefault5XXResponse0e27c647" ] } }, diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/api/fitnesstracker/build/cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/api/fitnesstracker/build/cloudformation-template.json index 78e0d8c0c01..cd07bb81a76 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/api/fitnesstracker/build/cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/api/fitnesstracker/build/cloudformation-template.json @@ -129,7 +129,7 @@ ] }, "Description": "graphql", - "Expires": 1773517628 + "Expires": 1774926196 } }, "GraphQLAPINONEDS95A13CF0": { diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/api/fitnesstracker/build/parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/api/fitnesstracker/build/parameters.json index 3cd47253316..42555b61e79 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/api/fitnesstracker/build/parameters.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/api/fitnesstracker/build/parameters.json @@ -4,10 +4,10 @@ "DynamoDBEnableServerSideEncryption": false, "AuthCognitoUserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, - "S3DeploymentBucket": "amplify-fitnesstracker-main-0683c-deployment", - "S3DeploymentRootKey": "amplify-appsync-files/96fdcde6a80859ead18d697e115cb9bd809fa98a" + "S3DeploymentBucket": "amplify-fitnesstracker-main-a0537-deployment", + "S3DeploymentRootKey": "amplify-appsync-files/67310f5f0a68cc163f9cc58da56e1409a2c21b1d" } \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/api/fitnesstracker/cli-inputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/api/fitnesstracker/cli-inputs.json index 3dee4f09639..848a1768ba9 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/api/fitnesstracker/cli-inputs.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/api/fitnesstracker/cli-inputs.json @@ -5,13 +5,13 @@ "serviceName": "AppSync", "defaultAuthType": { "mode": "AMAZON_COGNITO_USER_POOLS", - "cognitoUserPoolId": "authfitnesstracker6b0fc1196b0fc119" + "cognitoUserPoolId": "authfitnesstracker33f5545533f55455" }, "additionalAuthTypes": [ { "mode": "API_KEY", "expirationTime": 7, - "apiKeyExpirationDate": "2026-03-14T19:43:17.245Z", + "apiKeyExpirationDate": "2026-03-31T02:59:49.009Z", "keyDescription": "graphql" } ] diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/api/fitnesstracker/parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/api/fitnesstracker/parameters.json index e0d654b084c..72d6b16ab57 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/api/fitnesstracker/parameters.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/api/fitnesstracker/parameters.json @@ -4,7 +4,7 @@ "DynamoDBEnableServerSideEncryption": false, "AuthCognitoUserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] } diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/api/nutritionapi/build/nutritionapi-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/api/nutritionapi/build/nutritionapi-cloudformation-template.json index ab25d629b86..ba07311cb22 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/api/nutritionapi/build/nutritionapi-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/api/nutritionapi/build/nutritionapi-cloudformation-template.json @@ -2,9 +2,9 @@ "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"api-API Gateway\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", "AWSTemplateFormatVersion": "2010-09-09", "Parameters": { - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Default": "authfitnesstracker33f5545533f55455UserPoolId" }, "authuserPoolGroupsAdminGroupRole": { "Type": "String", @@ -344,7 +344,7 @@ "-", [ { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" }, "AdminGroupRole" ] @@ -666,7 +666,7 @@ "Name": "nutritionapi" } }, - "nutritionapiDefault4XXResponse7a61ed16": { + "nutritionapiDefault4XXResponsef55128fc": { "Type": "AWS::ApiGateway::GatewayResponse", "Properties": { "ResponseParameters": { @@ -681,7 +681,7 @@ } } }, - "nutritionapiDefault5XXResponse7a61ed16": { + "nutritionapiDefault5XXResponsef55128fc": { "Type": "AWS::ApiGateway::GatewayResponse", "Properties": { "ResponseParameters": { @@ -696,7 +696,7 @@ } } }, - "DeploymentAPIGWnutritionapi3a6bc816": { + "DeploymentAPIGWnutritionapi5caf0abc": { "Type": "AWS::ApiGateway::Deployment", "Properties": { "Description": "The Development stage deployment of your API.", @@ -714,8 +714,8 @@ } }, "DependsOn": [ - "nutritionapiDefault4XXResponse7a61ed16", - "nutritionapiDefault5XXResponse7a61ed16" + "nutritionapiDefault4XXResponsef55128fc", + "nutritionapiDefault5XXResponsef55128fc" ] } }, diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/fitnesstracker6b0fc1196b0fc119/build/auth-trigger-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/fitnesstracker33f5545533f55455/build/auth-trigger-cloudformation-template.json similarity index 94% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/fitnesstracker6b0fc1196b0fc119/build/auth-trigger-cloudformation-template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/fitnesstracker33f5545533f55455/build/auth-trigger-cloudformation-template.json index 549c2c6d721..3d97c0ff654 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/fitnesstracker6b0fc1196b0fc119/build/auth-trigger-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/fitnesstracker33f5545533f55455/build/auth-trigger-cloudformation-template.json @@ -11,13 +11,13 @@ "userpoolArn": { "Type": "String" }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupName": { + "functionfitnesstracker33f5545533f55455PreSignupName": { "Type": "String" }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupArn": { + "functionfitnesstracker33f5545533f55455PreSignupArn": { "Type": "String" }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupLambdaExecutionRole": { + "functionfitnesstracker33f5545533f55455PreSignupLambdaExecutionRole": { "Type": "String" } }, @@ -37,7 +37,7 @@ "Properties": { "Action": "lambda:InvokeFunction", "FunctionName": { - "Ref": "functionfitnesstracker6b0fc1196b0fc119PreSignupName" + "Ref": "functionfitnesstracker33f5545533f55455PreSignupName" }, "Principal": "cognito-idp.amazonaws.com", "SourceArn": { @@ -137,13 +137,13 @@ "lambdaConfig": [ { "triggerType": "PreSignUp", - "lambdaFunctionName": "fitnesstracker6b0fc1196b0fc119PreSignup", + "lambdaFunctionName": "fitnesstracker33f5545533f55455PreSignup", "lambdaFunctionArn": { - "Ref": "functionfitnesstracker6b0fc1196b0fc119PreSignupArn" + "Ref": "functionfitnesstracker33f5545533f55455PreSignupArn" } } ], - "nonce": "bd98400d-2d3c-435d-9a07-d071be38ca5f" + "nonce": "ce3e930d-07f8-4cb9-a927-2ce7de23494f" }, "DependsOn": [ "authTriggerFn7FCFA449", diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/fitnesstracker6b0fc1196b0fc119/build/fitnesstracker6b0fc1196b0fc119-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/fitnesstracker33f5545533f55455/build/fitnesstracker33f5545533f55455-cloudformation-template.json similarity index 95% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/fitnesstracker6b0fc1196b0fc119/build/fitnesstracker6b0fc1196b0fc119-cloudformation-template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/fitnesstracker33f5545533f55455/build/fitnesstracker33f5545533f55455-cloudformation-template.json index 6fd7a4879cc..f5ed153a8fe 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/fitnesstracker6b0fc1196b0fc119/build/fitnesstracker6b0fc1196b0fc119-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/fitnesstracker33f5545533f55455/build/fitnesstracker33f5545533f55455-cloudformation-template.json @@ -5,13 +5,13 @@ "env": { "Type": "String" }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupArn": { + "functionfitnesstracker33f5545533f55455PreSignupArn": { "Type": "String", - "Default": "functionfitnesstracker6b0fc1196b0fc119PreSignupArn" + "Default": "functionfitnesstracker33f5545533f55455PreSignupArn" }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupName": { + "functionfitnesstracker33f5545533f55455PreSignupName": { "Type": "String", - "Default": "functionfitnesstracker6b0fc1196b0fc119PreSignupName" + "Default": "functionfitnesstracker33f5545533f55455PreSignupName" }, "identityPoolName": { "Type": "String" @@ -216,7 +216,7 @@ "UserPoolClientWeb": { "Type": "AWS::Cognito::UserPoolClient", "Properties": { - "ClientName": "fitnes6b0fc119_app_clientWeb", + "ClientName": "fitnes33f55455_app_clientWeb", "RefreshTokenValidity": { "Ref": "userpoolClientRefreshTokenValidity" }, @@ -234,7 +234,7 @@ "UserPoolClient": { "Type": "AWS::Cognito::UserPoolClient", "Properties": { - "ClientName": "fitnes6b0fc119_app_client", + "ClientName": "fitnes33f55455_app_client", "GenerateSecret": { "Ref": "userpoolClientGenerateSecret" }, @@ -277,7 +277,7 @@ "Fn::Join": [ "", [ - "upClientLambdaRole6b0fc119", + "upClientLambdaRole33f55455", { "Fn::Select": [ 3, @@ -349,12 +349,12 @@ "IdentityPoolName": { "Fn::If": [ "ShouldNotCreateEnvResources", - "fitnesstracker6b0fc119_identitypool_6b0fc119", + "fitnesstracker33f55455_identitypool_33f55455", { "Fn::Join": [ "", [ - "fitnesstracker6b0fc119_identitypool_6b0fc119__", + "fitnesstracker33f55455_identitypool_33f55455__", { "Ref": "env" } diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/fitnesstracker6b0fc1196b0fc119/build/parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/fitnesstracker33f5545533f55455/build/parameters.json similarity index 77% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/fitnesstracker6b0fc1196b0fc119/build/parameters.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/fitnesstracker33f5545533f55455/build/parameters.json index 95f8a8d6700..41d861ce59c 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/fitnesstracker6b0fc1196b0fc119/build/parameters.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/fitnesstracker33f5545533f55455/build/parameters.json @@ -1,8 +1,8 @@ { - "identityPoolName": "fitnesstracker6b0fc119_identitypool_6b0fc119", + "identityPoolName": "fitnesstracker33f55455_identitypool_33f55455", "allowUnauthenticatedIdentities": false, - "resourceNameTruncated": "fitnes6b0fc119", - "userPoolName": "fitnesstracker6b0fc119_userpool_6b0fc119", + "resourceNameTruncated": "fitnes33f55455", + "userPoolName": "fitnesstracker33f55455_userpool_33f55455", "autoVerifiedAttributes": [ "email" ], @@ -22,17 +22,17 @@ ], "aliasAttributes": [], "userpoolClientGenerateSecret": false, - "userpoolClientRefreshTokenValidity": "30", + "userpoolClientRefreshTokenValidity": 30, "userpoolClientWriteAttributes": [ "email" ], "userpoolClientReadAttributes": [ "email" ], - "userpoolClientLambdaRole": "fitnes6b0fc119_userpoolclient_lambda_role", + "userpoolClientLambdaRole": "fitnes33f55455_userpoolclient_lambda_role", "userpoolClientSetAttributes": false, - "sharedId": "6b0fc119", - "resourceName": "fitnesstracker6b0fc1196b0fc119", + "sharedId": "33f55455", + "resourceName": "fitnesstracker33f5545533f55455", "authSelections": "identityPoolAndUserPool", "useDefault": "manual", "thirdPartyAuth": false, @@ -62,7 +62,7 @@ "dependsOn": [ { "category": "function", - "resourceName": "fitnesstracker6b0fc1196b0fc119PreSignup", + "resourceName": "fitnesstracker33f5545533f55455PreSignup", "triggerProvider": "Cognito", "attributes": [ "Arn", @@ -72,6 +72,6 @@ ], "permissions": [], "authTriggerConnections": [ - "{\"triggerType\":\"PreSignUp\",\"lambdaFunctionName\":\"fitnesstracker6b0fc1196b0fc119PreSignup\"}" + "{\"triggerType\":\"PreSignUp\",\"lambdaFunctionName\":\"fitnesstracker33f5545533f55455PreSignup\"}" ] } \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/fitnesstracker6b0fc1196b0fc119/cli-inputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/fitnesstracker33f5545533f55455/cli-inputs.json similarity index 77% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/fitnesstracker6b0fc1196b0fc119/cli-inputs.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/fitnesstracker33f5545533f55455/cli-inputs.json index 016e071a17a..f8ecf9a776f 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/fitnesstracker6b0fc1196b0fc119/cli-inputs.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/fitnesstracker33f5545533f55455/cli-inputs.json @@ -1,10 +1,10 @@ { "version": "1", "cognitoConfig": { - "identityPoolName": "fitnesstracker6b0fc119_identitypool_6b0fc119", + "identityPoolName": "fitnesstracker33f55455_identitypool_33f55455", "allowUnauthenticatedIdentities": false, - "resourceNameTruncated": "fitnes6b0fc119", - "userPoolName": "fitnesstracker6b0fc119_userpool_6b0fc119", + "resourceNameTruncated": "fitnes33f55455", + "userPoolName": "fitnesstracker33f55455_userpool_33f55455", "autoVerifiedAttributes": [ "email" ], @@ -24,17 +24,17 @@ ], "aliasAttributes": [], "userpoolClientGenerateSecret": false, - "userpoolClientRefreshTokenValidity": "30", + "userpoolClientRefreshTokenValidity": 30, "userpoolClientWriteAttributes": [ "email" ], "userpoolClientReadAttributes": [ "email" ], - "userpoolClientLambdaRole": "fitnes6b0fc119_userpoolclient_lambda_role", + "userpoolClientLambdaRole": "fitnes33f55455_userpoolclient_lambda_role", "userpoolClientSetAttributes": false, - "sharedId": "6b0fc119", - "resourceName": "fitnesstracker6b0fc1196b0fc119", + "sharedId": "33f55455", + "resourceName": "fitnesstracker33f5545533f55455", "authSelections": "identityPoolAndUserPool", "useDefault": "manual", "thirdPartyAuth": false, diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json index 0741b0ac99f..e34b9d7bd14 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json @@ -11,21 +11,21 @@ "UnauthRoleArn": { "Type": "String" }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Default": "authfitnesstracker33f5545533f55455UserPoolId" }, - "authfitnesstracker6b0fc1196b0fc119IdentityPoolId": { + "authfitnesstracker33f5545533f55455IdentityPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119IdentityPoolId" + "Default": "authfitnesstracker33f5545533f55455IdentityPoolId" }, - "authfitnesstracker6b0fc1196b0fc119AppClientID": { + "authfitnesstracker33f5545533f55455AppClientID": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119AppClientID" + "Default": "authfitnesstracker33f5545533f55455AppClientID" }, - "authfitnesstracker6b0fc1196b0fc119AppClientIDWeb": { + "authfitnesstracker33f5545533f55455AppClientIDWeb": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119AppClientIDWeb" + "Default": "authfitnesstracker33f5545533f55455AppClientIDWeb" } }, "Conditions": { @@ -52,7 +52,7 @@ ] }, "UserPoolId": { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" } } }, @@ -72,7 +72,7 @@ "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": { - "Ref": "authfitnesstracker6b0fc1196b0fc119IdentityPoolId" + "Ref": "authfitnesstracker33f5545533f55455IdentityPoolId" } }, "ForAnyValue:StringLike": { @@ -87,7 +87,7 @@ "", [ { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" }, "-AdminGroupRole" ] diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/api/adminapi/build/adminapi-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/api/adminapi/build/adminapi-cloudformation-template.json index 9a9f4cf8794..63a8fcdb155 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/api/adminapi/build/adminapi-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/api/adminapi/build/adminapi-cloudformation-template.json @@ -2,9 +2,9 @@ "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"api-API Gateway\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", "AWSTemplateFormatVersion": "2010-09-09", "Parameters": { - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Default": "authfitnesstracker33f5545533f55455UserPoolId" }, "authuserPoolGroupsAdminGroupRole": { "Type": "String", @@ -104,7 +104,7 @@ "-", [ { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" }, "AdminGroupRole" ] @@ -426,7 +426,7 @@ "Name": "adminapi" } }, - "adminapiDefault4XXResponseb1888203": { + "adminapiDefault4XXResponse0e27c647": { "Type": "AWS::ApiGateway::GatewayResponse", "Properties": { "ResponseParameters": { @@ -441,7 +441,7 @@ } } }, - "adminapiDefault5XXResponseb1888203": { + "adminapiDefault5XXResponse0e27c647": { "Type": "AWS::ApiGateway::GatewayResponse", "Properties": { "ResponseParameters": { @@ -456,7 +456,7 @@ } } }, - "DeploymentAPIGWadminapi62a7fdcd": { + "DeploymentAPIGWadminapiad7711e6": { "Type": "AWS::ApiGateway::Deployment", "Properties": { "Description": "The Development stage deployment of your API.", @@ -474,8 +474,8 @@ } }, "DependsOn": [ - "adminapiDefault4XXResponseb1888203", - "adminapiDefault5XXResponseb1888203" + "adminapiDefault4XXResponse0e27c647", + "adminapiDefault5XXResponse0e27c647" ] } }, diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/api/fitnesstracker/build/cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/api/fitnesstracker/build/cloudformation-template.json index 78e0d8c0c01..cd07bb81a76 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/api/fitnesstracker/build/cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/api/fitnesstracker/build/cloudformation-template.json @@ -129,7 +129,7 @@ ] }, "Description": "graphql", - "Expires": 1773517628 + "Expires": 1774926196 } }, "GraphQLAPINONEDS95A13CF0": { diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/api/nutritionapi/build/nutritionapi-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/api/nutritionapi/build/nutritionapi-cloudformation-template.json index ab25d629b86..ba07311cb22 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/api/nutritionapi/build/nutritionapi-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/api/nutritionapi/build/nutritionapi-cloudformation-template.json @@ -2,9 +2,9 @@ "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"api-API Gateway\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", "AWSTemplateFormatVersion": "2010-09-09", "Parameters": { - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Default": "authfitnesstracker33f5545533f55455UserPoolId" }, "authuserPoolGroupsAdminGroupRole": { "Type": "String", @@ -344,7 +344,7 @@ "-", [ { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" }, "AdminGroupRole" ] @@ -666,7 +666,7 @@ "Name": "nutritionapi" } }, - "nutritionapiDefault4XXResponse7a61ed16": { + "nutritionapiDefault4XXResponsef55128fc": { "Type": "AWS::ApiGateway::GatewayResponse", "Properties": { "ResponseParameters": { @@ -681,7 +681,7 @@ } } }, - "nutritionapiDefault5XXResponse7a61ed16": { + "nutritionapiDefault5XXResponsef55128fc": { "Type": "AWS::ApiGateway::GatewayResponse", "Properties": { "ResponseParameters": { @@ -696,7 +696,7 @@ } } }, - "DeploymentAPIGWnutritionapi3a6bc816": { + "DeploymentAPIGWnutritionapi5caf0abc": { "Type": "AWS::ApiGateway::Deployment", "Properties": { "Description": "The Development stage deployment of your API.", @@ -714,8 +714,8 @@ } }, "DependsOn": [ - "nutritionapiDefault4XXResponse7a61ed16", - "nutritionapiDefault5XXResponse7a61ed16" + "nutritionapiDefault4XXResponsef55128fc", + "nutritionapiDefault5XXResponsef55128fc" ] } }, diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/auth/fitnesstracker6b0fc1196b0fc119/build/fitnesstracker6b0fc1196b0fc119-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/auth/fitnesstracker33f5545533f55455/build/fitnesstracker33f5545533f55455-cloudformation-template.json similarity index 95% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/auth/fitnesstracker6b0fc1196b0fc119/build/fitnesstracker6b0fc1196b0fc119-cloudformation-template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/auth/fitnesstracker33f5545533f55455/build/fitnesstracker33f5545533f55455-cloudformation-template.json index 6fd7a4879cc..f5ed153a8fe 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/auth/fitnesstracker6b0fc1196b0fc119/build/fitnesstracker6b0fc1196b0fc119-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/auth/fitnesstracker33f5545533f55455/build/fitnesstracker33f5545533f55455-cloudformation-template.json @@ -5,13 +5,13 @@ "env": { "Type": "String" }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupArn": { + "functionfitnesstracker33f5545533f55455PreSignupArn": { "Type": "String", - "Default": "functionfitnesstracker6b0fc1196b0fc119PreSignupArn" + "Default": "functionfitnesstracker33f5545533f55455PreSignupArn" }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupName": { + "functionfitnesstracker33f5545533f55455PreSignupName": { "Type": "String", - "Default": "functionfitnesstracker6b0fc1196b0fc119PreSignupName" + "Default": "functionfitnesstracker33f5545533f55455PreSignupName" }, "identityPoolName": { "Type": "String" @@ -216,7 +216,7 @@ "UserPoolClientWeb": { "Type": "AWS::Cognito::UserPoolClient", "Properties": { - "ClientName": "fitnes6b0fc119_app_clientWeb", + "ClientName": "fitnes33f55455_app_clientWeb", "RefreshTokenValidity": { "Ref": "userpoolClientRefreshTokenValidity" }, @@ -234,7 +234,7 @@ "UserPoolClient": { "Type": "AWS::Cognito::UserPoolClient", "Properties": { - "ClientName": "fitnes6b0fc119_app_client", + "ClientName": "fitnes33f55455_app_client", "GenerateSecret": { "Ref": "userpoolClientGenerateSecret" }, @@ -277,7 +277,7 @@ "Fn::Join": [ "", [ - "upClientLambdaRole6b0fc119", + "upClientLambdaRole33f55455", { "Fn::Select": [ 3, @@ -349,12 +349,12 @@ "IdentityPoolName": { "Fn::If": [ "ShouldNotCreateEnvResources", - "fitnesstracker6b0fc119_identitypool_6b0fc119", + "fitnesstracker33f55455_identitypool_33f55455", { "Fn::Join": [ "", [ - "fitnesstracker6b0fc119_identitypool_6b0fc119__", + "fitnesstracker33f55455_identitypool_33f55455__", { "Ref": "env" } diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json index 0741b0ac99f..e34b9d7bd14 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json @@ -11,21 +11,21 @@ "UnauthRoleArn": { "Type": "String" }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Default": "authfitnesstracker33f5545533f55455UserPoolId" }, - "authfitnesstracker6b0fc1196b0fc119IdentityPoolId": { + "authfitnesstracker33f5545533f55455IdentityPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119IdentityPoolId" + "Default": "authfitnesstracker33f5545533f55455IdentityPoolId" }, - "authfitnesstracker6b0fc1196b0fc119AppClientID": { + "authfitnesstracker33f5545533f55455AppClientID": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119AppClientID" + "Default": "authfitnesstracker33f5545533f55455AppClientID" }, - "authfitnesstracker6b0fc1196b0fc119AppClientIDWeb": { + "authfitnesstracker33f5545533f55455AppClientIDWeb": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119AppClientIDWeb" + "Default": "authfitnesstracker33f5545533f55455AppClientIDWeb" } }, "Conditions": { @@ -52,7 +52,7 @@ ] }, "UserPoolId": { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" } } }, @@ -72,7 +72,7 @@ "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": { - "Ref": "authfitnesstracker6b0fc1196b0fc119IdentityPoolId" + "Ref": "authfitnesstracker33f5545533f55455IdentityPoolId" } }, "ForAnyValue:StringLike": { @@ -87,7 +87,7 @@ "", [ { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" }, "-AdminGroupRole" ] diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/awscloudformation/build/root-cloudformation-stack.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/awscloudformation/build/root-cloudformation-stack.json index 7732e28d356..3874b454557 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/awscloudformation/build/root-cloudformation-stack.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/awscloudformation/build/root-cloudformation-stack.json @@ -202,7 +202,7 @@ "APIGatewayAuthStack": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/APIGatewayAuthStack.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/APIGatewayAuthStack.json", "Parameters": { "authRoleName": { "Ref": "AuthRoleName" @@ -229,50 +229,50 @@ "AuthTriggerCustomLambdaStack": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/auth/auth-trigger-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/auth/auth-trigger-cloudformation-template.json", "Parameters": { "env": "main", "userpoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, "userpoolArn": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolArn" ] }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupLambdaExecutionRole": { + "functionfitnesstracker33f5545533f55455PreSignupLambdaExecutionRole": { "Fn::GetAtt": [ - "functionfitnesstracker6b0fc1196b0fc119PreSignup", + "functionfitnesstracker33f5545533f55455PreSignup", "Outputs.LambdaExecutionRoleArn" ] }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupArn": { + "functionfitnesstracker33f5545533f55455PreSignupArn": { "Fn::GetAtt": [ - "functionfitnesstracker6b0fc1196b0fc119PreSignup", + "functionfitnesstracker33f5545533f55455PreSignup", "Outputs.Arn" ] }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupName": { + "functionfitnesstracker33f5545533f55455PreSignupName": { "Fn::GetAtt": [ - "functionfitnesstracker6b0fc1196b0fc119PreSignup", + "functionfitnesstracker33f5545533f55455PreSignup", "Outputs.Name" ] } } }, "DependsOn": [ - "authfitnesstracker6b0fc1196b0fc119", - "functionfitnesstracker6b0fc1196b0fc119PreSignup" + "authfitnesstracker33f5545533f55455", + "functionfitnesstracker33f5545533f55455PreSignup" ] }, "authuserPoolGroups": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/auth/userPoolGroups-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/auth/userPoolGroups-cloudformation-template.json", "Parameters": { "AuthRoleArn": { "Fn::GetAtt": [ @@ -286,27 +286,27 @@ "Arn" ] }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, - "authfitnesstracker6b0fc1196b0fc119AppClientIDWeb": { + "authfitnesstracker33f5545533f55455AppClientIDWeb": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.AppClientIDWeb" ] }, - "authfitnesstracker6b0fc1196b0fc119AppClientID": { + "authfitnesstracker33f5545533f55455AppClientID": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.AppClientID" ] }, - "authfitnesstracker6b0fc1196b0fc119IdentityPoolId": { + "authfitnesstracker33f5545533f55455IdentityPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.IdentityPoolId" ] }, @@ -314,15 +314,15 @@ } } }, - "authfitnesstracker6b0fc1196b0fc119": { + "authfitnesstracker33f5545533f55455": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/auth/fitnesstracker6b0fc1196b0fc119-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/auth/fitnesstracker33f5545533f55455-cloudformation-template.json", "Parameters": { - "identityPoolName": "fitnesstracker6b0fc119_identitypool_6b0fc119", + "identityPoolName": "fitnesstracker33f55455_identitypool_33f55455", "allowUnauthenticatedIdentities": false, - "resourceNameTruncated": "fitnes6b0fc119", - "userPoolName": "fitnesstracker6b0fc119_userpool_6b0fc119", + "resourceNameTruncated": "fitnes33f55455", + "userPoolName": "fitnesstracker33f55455_userpool_33f55455", "autoVerifiedAttributes": "email", "mfaConfiguration": "OFF", "mfaTypes": "SMS Text Message", @@ -336,13 +336,13 @@ "requiredAttributes": "email", "aliasAttributes": "", "userpoolClientGenerateSecret": false, - "userpoolClientRefreshTokenValidity": "30", + "userpoolClientRefreshTokenValidity": 30, "userpoolClientWriteAttributes": "email", "userpoolClientReadAttributes": "email", - "userpoolClientLambdaRole": "fitnes6b0fc119_userpoolclient_lambda_role", + "userpoolClientLambdaRole": "fitnes33f55455_userpoolclient_lambda_role", "userpoolClientSetAttributes": false, - "sharedId": "6b0fc119", - "resourceName": "fitnesstracker6b0fc1196b0fc119", + "sharedId": "33f55455", + "resourceName": "fitnesstracker33f5545533f55455", "authSelections": "identityPoolAndUserPool", "useDefault": "manual", "thirdPartyAuth": false, @@ -369,21 +369,21 @@ "breakCircularDependency": true, "dependsOn": "[object Object]", "permissions": "", - "authTriggerConnections": "{\"triggerType\":\"PreSignUp\",\"lambdaFunctionName\":\"fitnesstracker6b0fc1196b0fc119PreSignup\"}", + "authTriggerConnections": "{\"triggerType\":\"PreSignUp\",\"lambdaFunctionName\":\"fitnesstracker33f5545533f55455PreSignup\"}", "env": "main" } } }, - "functionfitnesstracker6b0fc1196b0fc119PreSignup": { + "functionfitnesstracker33f5545533f55455PreSignup": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/function/fitnesstracker6b0fc1196b0fc119PreSignup-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/function/fitnesstracker33f5545533f55455PreSignup-cloudformation-template.json", "Parameters": { "modules": "email-filter-allowlist", - "resourceName": "fitnesstracker6b0fc1196b0fc119PreSignup", + "resourceName": "fitnesstracker33f5545533f55455PreSignup", "DOMAINALLOWLIST": "amazon.com", - "deploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", - "s3Key": "amplify-builds/fitnesstracker6b0fc1196b0fc119PreSignup-555a623867446f4a3843-build.zip", + "deploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", + "s3Key": "amplify-builds/fitnesstracker33f5545533f55455PreSignup-68374859444c45627749-build.zip", "env": "main" } } @@ -391,9 +391,9 @@ "functionlognutrition": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/function/lognutrition-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/function/lognutrition-cloudformation-template.json", "Parameters": { - "deploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", + "deploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", "s3Key": "amplify-builds/lognutrition-554b5263566866516c6c-build.zip", "apifitnesstrackerGraphQLAPIIdOutput": { "Fn::GetAtt": [ @@ -408,13 +408,13 @@ "functionadmin": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/function/admin-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/function/admin-cloudformation-template.json", "Parameters": { - "deploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", - "s3Key": "amplify-builds/admin-536f797874787247392f-build.zip", - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "deploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", + "s3Key": "amplify-builds/admin-7934694b6d366c486d32-build.zip", + "authfitnesstracker33f5545533f55455UserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, @@ -425,19 +425,19 @@ "apifitnesstracker": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/cloudformation-template.json", "Parameters": { "AppSyncApiName": "fitnesstracker", "DynamoDBBillingMode": "PAY_PER_REQUEST", "DynamoDBEnableServerSideEncryption": false, "AuthCognitoUserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, - "S3DeploymentBucket": "amplify-fitnesstracker-main-0683c-deployment", - "S3DeploymentRootKey": "amplify-appsync-files/96fdcde6a80859ead18d697e115cb9bd809fa98a", + "S3DeploymentBucket": "amplify-fitnesstracker-main-a0537-deployment", + "S3DeploymentRootKey": "amplify-appsync-files/67310f5f0a68cc163f9cc58da56e1409a2c21b1d", "env": "main" } } @@ -445,7 +445,7 @@ "apinutritionapi": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/nutritionapi-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/nutritionapi-cloudformation-template.json", "Parameters": { "functionlognutritionName": { "Fn::GetAtt": [ @@ -459,9 +459,9 @@ "Outputs.Arn" ] }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, @@ -478,7 +478,7 @@ "apiadminapi": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/adminapi-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/adminapi-cloudformation-template.json", "Parameters": { "functionadminName": { "Fn::GetAtt": [ @@ -492,9 +492,9 @@ "Outputs.Arn" ] }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, @@ -512,7 +512,7 @@ "DependsOn": [ "AuthRole", "UnauthRole", - "authfitnesstracker6b0fc1196b0fc119" + "authfitnesstracker33f5545533f55455" ], "Type": "AWS::Lambda::Function", "Properties": { @@ -622,7 +622,7 @@ }, "idpId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.IdentityPoolId" ] }, diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/function/admin/admin-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/function/admin/admin-cloudformation-template.json index 2dbe7e47d6b..57322afb5e3 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/function/admin/admin-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/function/admin/admin-cloudformation-template.json @@ -16,9 +16,9 @@ "s3Key": { "Type": "String" }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Default": "authfitnesstracker33f5545533f55455UserPoolId" } }, "Conditions": { @@ -74,8 +74,8 @@ "REGION": { "Ref": "AWS::Region" }, - "AUTH_FITNESSTRACKER6B0FC1196B0FC119_USERPOOLID": { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "AUTH_FITNESSTRACKER33F5545533F55455_USERPOOLID": { + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" } } }, @@ -96,12 +96,12 @@ "RoleName": { "Fn::If": [ "ShouldNotCreateEnvResources", - "fitnesstrackerLambdaRole8a95290d", + "fitnesstrackerLambdaRole4a08108a", { "Fn::Join": [ "", [ - "fitnesstrackerLambdaRole8a95290d", + "fitnesstrackerLambdaRole4a08108a", "-", { "Ref": "env" @@ -220,7 +220,7 @@ }, ":userpool/", { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" } ] ] diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/fitnesstracker6b0fc1196b0fc119PreSignup-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/function/fitnesstracker33f5545533f55455PreSignup/fitnesstracker33f5545533f55455PreSignup-cloudformation-template.json similarity index 95% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/fitnesstracker6b0fc1196b0fc119PreSignup-cloudformation-template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/function/fitnesstracker33f5545533f55455PreSignup/fitnesstracker33f5545533f55455PreSignup-cloudformation-template.json index c0cf3b931f5..e53fff724cb 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/#current-cloud-backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/fitnesstracker6b0fc1196b0fc119PreSignup-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/function/fitnesstracker33f5545533f55455PreSignup/fitnesstracker33f5545533f55455PreSignup-cloudformation-template.json @@ -71,12 +71,12 @@ "FunctionName": { "Fn::If": [ "ShouldNotCreateEnvResources", - "fitnesstracker6b0fc1196b0fc119PreSignup", + "fitnesstracker33f5545533f55455PreSignup", { "Fn::Join": [ "", [ - "fitnesstracker6b0fc1196b0fc119PreSignup", + "fitnesstracker33f5545533f55455PreSignup", "-", { "Ref": "env" @@ -129,12 +129,12 @@ "RoleName": { "Fn::If": [ "ShouldNotCreateEnvResources", - "fitnesstracker6b0fc1196b0fc119PreSignup", + "fitnesstracker33f5545533f55455PreSignup", { "Fn::Join": [ "", [ - "fitnesstracker6b0fc1196b0fc119PreSignup", + "fitnesstracker33f5545533f55455PreSignup", "-", { "Ref": "env" diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/function/lognutrition/lognutrition-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/function/lognutrition/lognutrition-cloudformation-template.json index fd10c7f0ba5..34e97f53ec9 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/function/lognutrition/lognutrition-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/function/lognutrition/lognutrition-cloudformation-template.json @@ -122,12 +122,12 @@ "RoleName": { "Fn::If": [ "ShouldNotCreateEnvResources", - "fitnesstrackerLambdaRolee7dd41c6", + "fitnesstrackerLambdaRole2824d4b4", { "Fn::Join": [ "", [ - "fitnesstrackerLambdaRolee7dd41c6", + "fitnesstrackerLambdaRole2824d4b4", "-", { "Ref": "env" diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/root-cloudformation-stack.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/root-cloudformation-stack.json index 7732e28d356..3874b454557 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/root-cloudformation-stack.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/awscloudformation/build/root-cloudformation-stack.json @@ -202,7 +202,7 @@ "APIGatewayAuthStack": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/APIGatewayAuthStack.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/APIGatewayAuthStack.json", "Parameters": { "authRoleName": { "Ref": "AuthRoleName" @@ -229,50 +229,50 @@ "AuthTriggerCustomLambdaStack": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/auth/auth-trigger-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/auth/auth-trigger-cloudformation-template.json", "Parameters": { "env": "main", "userpoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, "userpoolArn": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolArn" ] }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupLambdaExecutionRole": { + "functionfitnesstracker33f5545533f55455PreSignupLambdaExecutionRole": { "Fn::GetAtt": [ - "functionfitnesstracker6b0fc1196b0fc119PreSignup", + "functionfitnesstracker33f5545533f55455PreSignup", "Outputs.LambdaExecutionRoleArn" ] }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupArn": { + "functionfitnesstracker33f5545533f55455PreSignupArn": { "Fn::GetAtt": [ - "functionfitnesstracker6b0fc1196b0fc119PreSignup", + "functionfitnesstracker33f5545533f55455PreSignup", "Outputs.Arn" ] }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupName": { + "functionfitnesstracker33f5545533f55455PreSignupName": { "Fn::GetAtt": [ - "functionfitnesstracker6b0fc1196b0fc119PreSignup", + "functionfitnesstracker33f5545533f55455PreSignup", "Outputs.Name" ] } } }, "DependsOn": [ - "authfitnesstracker6b0fc1196b0fc119", - "functionfitnesstracker6b0fc1196b0fc119PreSignup" + "authfitnesstracker33f5545533f55455", + "functionfitnesstracker33f5545533f55455PreSignup" ] }, "authuserPoolGroups": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/auth/userPoolGroups-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/auth/userPoolGroups-cloudformation-template.json", "Parameters": { "AuthRoleArn": { "Fn::GetAtt": [ @@ -286,27 +286,27 @@ "Arn" ] }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, - "authfitnesstracker6b0fc1196b0fc119AppClientIDWeb": { + "authfitnesstracker33f5545533f55455AppClientIDWeb": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.AppClientIDWeb" ] }, - "authfitnesstracker6b0fc1196b0fc119AppClientID": { + "authfitnesstracker33f5545533f55455AppClientID": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.AppClientID" ] }, - "authfitnesstracker6b0fc1196b0fc119IdentityPoolId": { + "authfitnesstracker33f5545533f55455IdentityPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.IdentityPoolId" ] }, @@ -314,15 +314,15 @@ } } }, - "authfitnesstracker6b0fc1196b0fc119": { + "authfitnesstracker33f5545533f55455": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/auth/fitnesstracker6b0fc1196b0fc119-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/auth/fitnesstracker33f5545533f55455-cloudformation-template.json", "Parameters": { - "identityPoolName": "fitnesstracker6b0fc119_identitypool_6b0fc119", + "identityPoolName": "fitnesstracker33f55455_identitypool_33f55455", "allowUnauthenticatedIdentities": false, - "resourceNameTruncated": "fitnes6b0fc119", - "userPoolName": "fitnesstracker6b0fc119_userpool_6b0fc119", + "resourceNameTruncated": "fitnes33f55455", + "userPoolName": "fitnesstracker33f55455_userpool_33f55455", "autoVerifiedAttributes": "email", "mfaConfiguration": "OFF", "mfaTypes": "SMS Text Message", @@ -336,13 +336,13 @@ "requiredAttributes": "email", "aliasAttributes": "", "userpoolClientGenerateSecret": false, - "userpoolClientRefreshTokenValidity": "30", + "userpoolClientRefreshTokenValidity": 30, "userpoolClientWriteAttributes": "email", "userpoolClientReadAttributes": "email", - "userpoolClientLambdaRole": "fitnes6b0fc119_userpoolclient_lambda_role", + "userpoolClientLambdaRole": "fitnes33f55455_userpoolclient_lambda_role", "userpoolClientSetAttributes": false, - "sharedId": "6b0fc119", - "resourceName": "fitnesstracker6b0fc1196b0fc119", + "sharedId": "33f55455", + "resourceName": "fitnesstracker33f5545533f55455", "authSelections": "identityPoolAndUserPool", "useDefault": "manual", "thirdPartyAuth": false, @@ -369,21 +369,21 @@ "breakCircularDependency": true, "dependsOn": "[object Object]", "permissions": "", - "authTriggerConnections": "{\"triggerType\":\"PreSignUp\",\"lambdaFunctionName\":\"fitnesstracker6b0fc1196b0fc119PreSignup\"}", + "authTriggerConnections": "{\"triggerType\":\"PreSignUp\",\"lambdaFunctionName\":\"fitnesstracker33f5545533f55455PreSignup\"}", "env": "main" } } }, - "functionfitnesstracker6b0fc1196b0fc119PreSignup": { + "functionfitnesstracker33f5545533f55455PreSignup": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/function/fitnesstracker6b0fc1196b0fc119PreSignup-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/function/fitnesstracker33f5545533f55455PreSignup-cloudformation-template.json", "Parameters": { "modules": "email-filter-allowlist", - "resourceName": "fitnesstracker6b0fc1196b0fc119PreSignup", + "resourceName": "fitnesstracker33f5545533f55455PreSignup", "DOMAINALLOWLIST": "amazon.com", - "deploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", - "s3Key": "amplify-builds/fitnesstracker6b0fc1196b0fc119PreSignup-555a623867446f4a3843-build.zip", + "deploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", + "s3Key": "amplify-builds/fitnesstracker33f5545533f55455PreSignup-68374859444c45627749-build.zip", "env": "main" } } @@ -391,9 +391,9 @@ "functionlognutrition": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/function/lognutrition-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/function/lognutrition-cloudformation-template.json", "Parameters": { - "deploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", + "deploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", "s3Key": "amplify-builds/lognutrition-554b5263566866516c6c-build.zip", "apifitnesstrackerGraphQLAPIIdOutput": { "Fn::GetAtt": [ @@ -408,13 +408,13 @@ "functionadmin": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/function/admin-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/function/admin-cloudformation-template.json", "Parameters": { - "deploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", - "s3Key": "amplify-builds/admin-536f797874787247392f-build.zip", - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "deploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", + "s3Key": "amplify-builds/admin-7934694b6d366c486d32-build.zip", + "authfitnesstracker33f5545533f55455UserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, @@ -425,19 +425,19 @@ "apifitnesstracker": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/cloudformation-template.json", "Parameters": { "AppSyncApiName": "fitnesstracker", "DynamoDBBillingMode": "PAY_PER_REQUEST", "DynamoDBEnableServerSideEncryption": false, "AuthCognitoUserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, - "S3DeploymentBucket": "amplify-fitnesstracker-main-0683c-deployment", - "S3DeploymentRootKey": "amplify-appsync-files/96fdcde6a80859ead18d697e115cb9bd809fa98a", + "S3DeploymentBucket": "amplify-fitnesstracker-main-a0537-deployment", + "S3DeploymentRootKey": "amplify-appsync-files/67310f5f0a68cc163f9cc58da56e1409a2c21b1d", "env": "main" } } @@ -445,7 +445,7 @@ "apinutritionapi": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/nutritionapi-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/nutritionapi-cloudformation-template.json", "Parameters": { "functionlognutritionName": { "Fn::GetAtt": [ @@ -459,9 +459,9 @@ "Outputs.Arn" ] }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, @@ -478,7 +478,7 @@ "apiadminapi": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/adminapi-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/adminapi-cloudformation-template.json", "Parameters": { "functionadminName": { "Fn::GetAtt": [ @@ -492,9 +492,9 @@ "Outputs.Arn" ] }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, @@ -512,7 +512,7 @@ "DependsOn": [ "AuthRole", "UnauthRole", - "authfitnesstracker6b0fc1196b0fc119" + "authfitnesstracker33f5545533f55455" ], "Type": "AWS::Lambda::Function", "Properties": { @@ -622,7 +622,7 @@ }, "idpId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.IdentityPoolId" ] }, diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/backend-config.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/backend-config.json index 4d3f1b5f607..d15b0adea45 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/backend-config.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/backend-config.json @@ -15,7 +15,7 @@ "UserPoolId" ], "category": "auth", - "resourceName": "fitnesstracker6b0fc1196b0fc119" + "resourceName": "fitnesstracker33f5545533f55455" }, { "attributes": [ @@ -35,7 +35,7 @@ "UserPoolId" ], "category": "auth", - "resourceName": "fitnesstracker6b0fc1196b0fc119" + "resourceName": "fitnesstracker33f5545533f55455" } ], "output": { @@ -43,7 +43,7 @@ "additionalAuthenticationProviders": [ { "apiKeyConfig": { - "apiKeyExpirationDate": "2026-03-14T19:43:17.245Z", + "apiKeyExpirationDate": "2026-03-31T02:59:49.009Z", "apiKeyExpirationDays": 7, "description": "graphql" }, @@ -53,7 +53,7 @@ "defaultAuthentication": { "authenticationType": "AMAZON_COGNITO_USER_POOLS", "userPoolConfig": { - "userPoolId": "authfitnesstracker6b0fc1196b0fc119" + "userPoolId": "authfitnesstracker33f5545533f55455" } } } @@ -76,7 +76,7 @@ "UserPoolId" ], "category": "auth", - "resourceName": "fitnesstracker6b0fc1196b0fc119" + "resourceName": "fitnesstracker33f5545533f55455" }, { "attributes": [ @@ -91,7 +91,7 @@ } }, "auth": { - "fitnesstracker6b0fc1196b0fc119": { + "fitnesstracker33f5545533f55455": { "customAuth": false, "dependsOn": [ { @@ -100,7 +100,7 @@ "Name" ], "category": "function", - "resourceName": "fitnesstracker6b0fc1196b0fc119PreSignup", + "resourceName": "fitnesstracker33f5545533f55455PreSignup", "triggerProvider": "Cognito" } ], @@ -135,7 +135,7 @@ "IdentityPoolId" ], "category": "auth", - "resourceName": "fitnesstracker6b0fc1196b0fc119" + "resourceName": "fitnesstracker33f5545533f55455" } ], "providerPlugin": "awscloudformation", @@ -151,13 +151,13 @@ "UserPoolId" ], "category": "auth", - "resourceName": "fitnesstracker6b0fc1196b0fc119" + "resourceName": "fitnesstracker33f5545533f55455" } ], "providerPlugin": "awscloudformation", "service": "Lambda" }, - "fitnesstracker6b0fc1196b0fc119PreSignup": { + "fitnesstracker33f5545533f55455PreSignup": { "build": true, "providerPlugin": "awscloudformation", "service": "Lambda" @@ -194,27 +194,27 @@ } ] }, - "AMPLIFY_function_fitnesstracker6b0fc1196b0fc119PreSignup_DOMAINALLOWLIST": { + "AMPLIFY_function_fitnesstracker33f5545533f55455PreSignup_DOMAINALLOWLIST": { "usedBy": [ { "category": "function", - "resourceName": "fitnesstracker6b0fc1196b0fc119PreSignup" + "resourceName": "fitnesstracker33f5545533f55455PreSignup" } ] }, - "AMPLIFY_function_fitnesstracker6b0fc1196b0fc119PreSignup_deploymentBucketName": { + "AMPLIFY_function_fitnesstracker33f5545533f55455PreSignup_deploymentBucketName": { "usedBy": [ { "category": "function", - "resourceName": "fitnesstracker6b0fc1196b0fc119PreSignup" + "resourceName": "fitnesstracker33f5545533f55455PreSignup" } ] }, - "AMPLIFY_function_fitnesstracker6b0fc1196b0fc119PreSignup_s3Key": { + "AMPLIFY_function_fitnesstracker33f5545533f55455PreSignup_s3Key": { "usedBy": [ { "category": "function", - "resourceName": "fitnesstracker6b0fc1196b0fc119PreSignup" + "resourceName": "fitnesstracker33f5545533f55455PreSignup" } ] }, diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/admin/admin-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/admin/admin-cloudformation-template.json index 2dbe7e47d6b..57322afb5e3 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/admin/admin-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/admin/admin-cloudformation-template.json @@ -16,9 +16,9 @@ "s3Key": { "Type": "String" }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Default": "authfitnesstracker33f5545533f55455UserPoolId" } }, "Conditions": { @@ -74,8 +74,8 @@ "REGION": { "Ref": "AWS::Region" }, - "AUTH_FITNESSTRACKER6B0FC1196B0FC119_USERPOOLID": { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "AUTH_FITNESSTRACKER33F5545533F55455_USERPOOLID": { + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" } } }, @@ -96,12 +96,12 @@ "RoleName": { "Fn::If": [ "ShouldNotCreateEnvResources", - "fitnesstrackerLambdaRole8a95290d", + "fitnesstrackerLambdaRole4a08108a", { "Fn::Join": [ "", [ - "fitnesstrackerLambdaRole8a95290d", + "fitnesstrackerLambdaRole4a08108a", "-", { "Ref": "env" @@ -220,7 +220,7 @@ }, ":userpool/", { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" } ] ] diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/admin/function-parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/admin/function-parameters.json index bbf9b6e174e..f87ac79fa6f 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/admin/function-parameters.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/admin/function-parameters.json @@ -1,7 +1,7 @@ { "permissions": { "auth": { - "fitnesstracker6b0fc1196b0fc119": [ + "fitnesstracker33f5545533f55455": [ "read" ] } diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/amplify.state b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker33f5545533f55455PreSignup/amplify.state similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/amplify.state rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker33f5545533f55455PreSignup/amplify.state diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/custom-policies.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker33f5545533f55455PreSignup/custom-policies.json similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/custom-policies.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker33f5545533f55455PreSignup/custom-policies.json diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/fitnesstracker6b0fc1196b0fc119PreSignup-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker33f5545533f55455PreSignup/fitnesstracker33f5545533f55455PreSignup-cloudformation-template.json similarity index 95% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/fitnesstracker6b0fc1196b0fc119PreSignup-cloudformation-template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker33f5545533f55455PreSignup/fitnesstracker33f5545533f55455PreSignup-cloudformation-template.json index c0cf3b931f5..e53fff724cb 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/fitnesstracker6b0fc1196b0fc119PreSignup-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker33f5545533f55455PreSignup/fitnesstracker33f5545533f55455PreSignup-cloudformation-template.json @@ -71,12 +71,12 @@ "FunctionName": { "Fn::If": [ "ShouldNotCreateEnvResources", - "fitnesstracker6b0fc1196b0fc119PreSignup", + "fitnesstracker33f5545533f55455PreSignup", { "Fn::Join": [ "", [ - "fitnesstracker6b0fc1196b0fc119PreSignup", + "fitnesstracker33f5545533f55455PreSignup", "-", { "Ref": "env" @@ -129,12 +129,12 @@ "RoleName": { "Fn::If": [ "ShouldNotCreateEnvResources", - "fitnesstracker6b0fc1196b0fc119PreSignup", + "fitnesstracker33f5545533f55455PreSignup", { "Fn::Join": [ "", [ - "fitnesstracker6b0fc1196b0fc119PreSignup", + "fitnesstracker33f5545533f55455PreSignup", "-", { "Ref": "env" diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/function-parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker33f5545533f55455PreSignup/function-parameters.json similarity index 61% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/function-parameters.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker33f5545533f55455PreSignup/function-parameters.json index bc563179c95..ddc07525de2 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/function-parameters.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker33f5545533f55455PreSignup/function-parameters.json @@ -3,14 +3,14 @@ "modules": [ "email-filter-allowlist" ], - "parentResource": "fitnesstracker6b0fc1196b0fc119", - "functionName": "fitnesstracker6b0fc1196b0fc119PreSignup", - "resourceName": "fitnesstracker6b0fc1196b0fc119PreSignup", + "parentResource": "fitnesstracker33f5545533f55455", + "functionName": "fitnesstracker33f5545533f55455PreSignup", + "resourceName": "fitnesstracker33f5545533f55455PreSignup", "parentStack": "auth", "triggerEnvs": "[]", "triggerDir": "/snapshot/amplify-cli/build/node_modules/@aws-amplify/amplify-category-auth/provider-utils/awscloudformation/triggers/PreSignup", "triggerTemplate": "PreSignup.json.ejs", "triggerEventPath": "PreSignup.event.json", - "roleName": "fitnesstracker6b0fc1196b0fc119PreSignup", + "roleName": "fitnesstracker33f5545533f55455PreSignup", "skipEdit": true } \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker33f5545533f55455PreSignup/parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker33f5545533f55455PreSignup/parameters.json new file mode 100644 index 00000000000..020628a583f --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker33f5545533f55455PreSignup/parameters.json @@ -0,0 +1,4 @@ +{ + "modules": "email-filter-allowlist", + "resourceName": "fitnesstracker33f5545533f55455PreSignup" +} \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/src/email-filter-allowlist.js b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker33f5545533f55455PreSignup/src/email-filter-allowlist.js similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/src/email-filter-allowlist.js rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker33f5545533f55455PreSignup/src/email-filter-allowlist.js diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/src/event.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker33f5545533f55455PreSignup/src/event.json similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/src/event.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker33f5545533f55455PreSignup/src/event.json diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/src/index.js b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker33f5545533f55455PreSignup/src/index.js similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/src/index.js rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker33f5545533f55455PreSignup/src/index.js diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/src/package.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker33f5545533f55455PreSignup/src/package.json similarity index 78% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/src/package.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker33f5545533f55455PreSignup/src/package.json index 41f579f68ee..9d1790c9a5c 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/src/package.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker33f5545533f55455PreSignup/src/package.json @@ -1,5 +1,5 @@ { - "name": "fitnesstracker6b0fc1196b0fc119PreSignup", + "name": "fitnesstracker33f5545533f55455PreSignup", "version": "2.0.0", "description": "Lambda function generated by Amplify", "main": "index.js", diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/src/yarn.lock b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker33f5545533f55455PreSignup/src/yarn.lock similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/src/yarn.lock rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker33f5545533f55455PreSignup/src/yarn.lock diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/parameters.json deleted file mode 100644 index 0d5ce52faf8..00000000000 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/fitnesstracker6b0fc1196b0fc119PreSignup/parameters.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "modules": "email-filter-allowlist", - "resourceName": "fitnesstracker6b0fc1196b0fc119PreSignup" -} \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/lognutrition/lognutrition-cloudformation-template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/lognutrition/lognutrition-cloudformation-template.json index fd10c7f0ba5..34e97f53ec9 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/lognutrition/lognutrition-cloudformation-template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/function/lognutrition/lognutrition-cloudformation-template.json @@ -122,12 +122,12 @@ "RoleName": { "Fn::If": [ "ShouldNotCreateEnvResources", - "fitnesstrackerLambdaRolee7dd41c6", + "fitnesstrackerLambdaRole2824d4b4", { "Fn::Join": [ "", [ - "fitnesstrackerLambdaRolee7dd41c6", + "fitnesstrackerLambdaRole2824d4b4", "-", { "Ref": "env" diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/types/amplify-dependent-resources-ref.d.ts b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/types/amplify-dependent-resources-ref.d.ts index 6f55222ff36..f717052117c 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/types/amplify-dependent-resources-ref.d.ts +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/backend/types/amplify-dependent-resources-ref.d.ts @@ -17,7 +17,7 @@ export type AmplifyDependentResourcesAttributes = { } }, "auth": { - "fitnesstracker6b0fc1196b0fc119": { + "fitnesstracker33f5545533f55455": { "AppClientID": "string", "AppClientIDWeb": "string", "IdentityPoolId": "string", @@ -38,7 +38,7 @@ export type AmplifyDependentResourcesAttributes = { "Name": "string", "Region": "string" }, - "fitnesstracker6b0fc1196b0fc119PreSignup": { + "fitnesstracker33f5545533f55455PreSignup": { "Arn": "string", "LambdaExecutionRole": "string", "LambdaExecutionRoleArn": "string", diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/team-provider-info.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/team-provider-info.json index 93402c3697a..23d20a11c3f 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/team-provider-info.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.generate/amplify/team-provider-info.json @@ -1,36 +1,36 @@ { "main": { "awscloudformation": { - "AuthRoleName": "amplify-fitnesstracker-main-0683c-authRole", - "UnauthRoleArn": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-0683c-unauthRole", - "AuthRoleArn": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-0683c-authRole", + "AuthRoleName": "amplify-fitnesstracker-main-a0537-authRole", + "UnauthRoleArn": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-a0537-unauthRole", + "AuthRoleArn": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-a0537-authRole", "Region": "us-east-1", - "DeploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", - "UnauthRoleName": "amplify-fitnesstracker-main-0683c-unauthRole", - "StackName": "amplify-fitnesstracker-main-0683c", - "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/amplify-fitnesstracker-main-0683c/8ef87630-1a5b-11f1-84f6-12153bdc35f9", + "DeploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", + "UnauthRoleName": "amplify-fitnesstracker-main-a0537-unauthRole", + "StackName": "amplify-fitnesstracker-main-a0537", + "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/amplify-fitnesstracker-main-a0537/1749a530-272d-11f1-a465-0e5f0b5f7853", "AmplifyAppId": "fitnesstracker", - "APIGatewayAuthURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/APIGatewayAuthStack.json", - "AuthTriggerTemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/auth/auth-trigger-cloudformation-template.json" + "APIGatewayAuthURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/APIGatewayAuthStack.json", + "AuthTriggerTemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/auth/auth-trigger-cloudformation-template.json" }, "categories": { "auth": { - "fitnesstracker6b0fc1196b0fc119": {}, + "fitnesstracker33f5545533f55455": {}, "userPoolGroups": {} }, "function": { - "fitnesstracker6b0fc1196b0fc119PreSignup": { + "fitnesstracker33f5545533f55455PreSignup": { "DOMAINALLOWLIST": "amazon.com", - "deploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", - "s3Key": "amplify-builds/fitnesstracker6b0fc1196b0fc119PreSignup-555a623867446f4a3843-build.zip" + "deploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", + "s3Key": "amplify-builds/fitnesstracker33f5545533f55455PreSignup-68374859444c45627749-build.zip" }, "lognutrition": { - "deploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", + "deploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", "s3Key": "amplify-builds/lognutrition-554b5263566866516c6c-build.zip" }, "admin": { - "deploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", - "s3Key": "amplify-builds/admin-536f797874787247392f-build.zip" + "deploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", + "s3Key": "amplify-builds/admin-7934694b6d366c486d32-build.zip" } }, "api": { diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataAmplifyTableManagerNestedStackA-1A2OIOGDUJDM8.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataAmplifyTableManagerNestedStackA-75CKIPDMA8E7.description.txt similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataAmplifyTableManagerNestedStackA-1A2OIOGDUJDM8.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataAmplifyTableManagerNestedStackA-75CKIPDMA8E7.description.txt diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataAmplifyTableManagerNestedStackA-75CKIPDMA8E7.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataAmplifyTableManagerNestedStackA-75CKIPDMA8E7.outputs.json new file mode 100644 index 00000000000..247a6aabec3 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataAmplifyTableManagerNestedStackA-75CKIPDMA8E7.outputs.json @@ -0,0 +1,6 @@ +[ + { + "OutputKey": "amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerTableManagerCustomProviderframeworkonEvent4D2D0CF9Arn", + "OutputValue": "arn:aws:lambda:us-east-1:123456789012:function:amplify-fitnesstracker-ge-TableManagerCustomProvid-tD7nAluDQILS" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataAmplifyTableManagerNestedStackA-75CKIPDMA8E7.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataAmplifyTableManagerNestedStackA-75CKIPDMA8E7.parameters.json new file mode 100644 index 00000000000..6d3d672c6ad --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataAmplifyTableManagerNestedStackA-75CKIPDMA8E7.parameters.json @@ -0,0 +1,6 @@ +[ + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId", + "ParameterValue": "jrmmxaml4ndpxmx4pmyk3bgv7u" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataAmplifyTableManagerNestedStackA-1A2OIOGDUJDM8.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataAmplifyTableManagerNestedStackA-75CKIPDMA8E7.template.json similarity index 92% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataAmplifyTableManagerNestedStackA-1A2OIOGDUJDM8.template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataAmplifyTableManagerNestedStackA-75CKIPDMA8E7.template.json index 674975d4a97..5cab0a1cea5 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataAmplifyTableManagerNestedStackA-1A2OIOGDUJDM8.template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataAmplifyTableManagerNestedStackA-75CKIPDMA8E7.template.json @@ -54,7 +54,7 @@ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/*-${apiId}-${envName}", { "apiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "envName": "NONE" } @@ -64,7 +64,7 @@ "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tableName}", { - "tableName": "WorkoutProgram-2aikutabnvbuhlzmh4mvkg3eji-main" + "tableName": "WorkoutProgram-jzwb5p2vcbd2ldlnlxokgjcjby-main" } ] }, @@ -72,7 +72,7 @@ "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tableName}", { - "tableName": "Exercise-2aikutabnvbuhlzmh4mvkg3eji-main" + "tableName": "Exercise-jzwb5p2vcbd2ldlnlxokgjcjby-main" } ] }, @@ -80,7 +80,7 @@ "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tableName}", { - "tableName": "Meal-2aikutabnvbuhlzmh4mvkg3eji-main" + "tableName": "Meal-jzwb5p2vcbd2ldlnlxokgjcjby-main" } ] } @@ -126,7 +126,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/AmplifyTableManager/AmplifyManagedTableIsCompleteRole/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/AmplifyTableManager/AmplifyManagedTableIsCompleteRole/Resource" } }, "AmplifyManagedTableOnEventRoleB4E71DEA": { @@ -183,7 +183,7 @@ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/*-${apiId}-${envName}", { "apiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "envName": "NONE" } @@ -193,7 +193,7 @@ "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tableName}", { - "tableName": "WorkoutProgram-2aikutabnvbuhlzmh4mvkg3eji-main" + "tableName": "WorkoutProgram-jzwb5p2vcbd2ldlnlxokgjcjby-main" } ] }, @@ -201,7 +201,7 @@ "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tableName}", { - "tableName": "Exercise-2aikutabnvbuhlzmh4mvkg3eji-main" + "tableName": "Exercise-jzwb5p2vcbd2ldlnlxokgjcjby-main" } ] }, @@ -209,7 +209,7 @@ "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tableName}", { - "tableName": "Meal-2aikutabnvbuhlzmh4mvkg3eji-main" + "tableName": "Meal-jzwb5p2vcbd2ldlnlxokgjcjby-main" } ] } @@ -255,7 +255,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/AmplifyTableManager/AmplifyManagedTableOnEventRole/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/AmplifyTableManager/AmplifyManagedTableOnEventRole/Resource" } }, "AmplifyManagedTableOnEventRoleDefaultPolicyF6DABCB6": { @@ -281,7 +281,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/AmplifyTableManager/AmplifyManagedTableOnEventRole/DefaultPolicy/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/AmplifyTableManager/AmplifyManagedTableOnEventRole/DefaultPolicy/Resource" } }, "TableManagerCustomProviderframeworkonEvent1DFC2ECC": { @@ -293,7 +293,7 @@ }, "S3Key": "f2c5bec0e463cae18d0bf683be5923ae6bd676a06af1a994bdfa076a66ac07d6.zip" }, - "Description": "AmplifyManagedTable - onEvent (amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/AmplifyTableManager/TableManagerCustomProvider)", + "Description": "AmplifyManagedTable - onEvent (amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/AmplifyTableManager/TableManagerCustomProvider)", "Environment": { "Variables": { "WAITER_STATE_MACHINE_ARN": { @@ -338,7 +338,7 @@ "AmplifyManagedTableOnEventRoleB4E71DEA" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/AmplifyTableManager/TableManagerCustomProvider/framework-onEvent/Resource", + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/AmplifyTableManager/TableManagerCustomProvider/framework-onEvent/Resource", "aws:asset:path": "asset.f2c5bec0e463cae18d0bf683be5923ae6bd676a06af1a994bdfa076a66ac07d6", "aws:asset:is-bundled": false, "aws:asset:property": "Code" @@ -353,7 +353,7 @@ }, "S3Key": "f2c5bec0e463cae18d0bf683be5923ae6bd676a06af1a994bdfa076a66ac07d6.zip" }, - "Description": "AmplifyManagedTable - isComplete (amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/AmplifyTableManager/TableManagerCustomProvider)", + "Description": "AmplifyManagedTable - isComplete (amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/AmplifyTableManager/TableManagerCustomProvider)", "Handler": "amplify-table-manager-handler.isComplete", "Role": { "Fn::GetAtt": [ @@ -390,7 +390,7 @@ "AmplifyManagedTableIsCompleteRoleF825222C" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/AmplifyTableManager/TableManagerCustomProvider/framework-isComplete/Resource", + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/AmplifyTableManager/TableManagerCustomProvider/framework-isComplete/Resource", "aws:asset:path": "asset.f2c5bec0e463cae18d0bf683be5923ae6bd676a06af1a994bdfa076a66ac07d6", "aws:asset:is-bundled": false, "aws:asset:property": "Code" @@ -435,7 +435,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/AmplifyTableManager/AmplifyTableWaiterStateMachine/Role/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/AmplifyTableManager/AmplifyTableWaiterStateMachine/Role/Resource" } }, "AmplifyTableWaiterStateMachineRoleDefaultPolicy89F3836A": { @@ -480,7 +480,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/AmplifyTableManager/AmplifyTableWaiterStateMachine/Role/DefaultPolicy/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/AmplifyTableManager/AmplifyTableWaiterStateMachine/Role/DefaultPolicy/Resource" } }, "AmplifyTableWaiterStateMachine060600BC": { @@ -513,16 +513,16 @@ "AmplifyTableWaiterStateMachineRole470BE899" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/AmplifyTableManager/AmplifyTableWaiterStateMachine/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/AmplifyTableManager/AmplifyTableWaiterStateMachine/Resource" } }, "CDKMetadata": { "Type": "AWS::CDK::Metadata", "Properties": { - "Analytics": "v2:deflate64:H4sIAAAAAAAA/zWNyw6CMBBFv4V9GXm4cCsmLo2BDyBDGclAaROmSEzDvxtAV+fcnMXNIDunkES4SKzbITbcQHiQeGorj3pQuEgdGEcIpTOkbi+78+kM6882D1uVwbFpEcJ9ttqzs1v7+6okr1GEvMB1g5IcilkP5AsUWlVJ4uZJk9pr5bFj2+1nv7Aq61qCXk7vLIP0AknUC3M8zdbzSFAe/ALgt1g4zwAAAA==" + "Analytics": "v2:deflate64:H4sIAAAAAAAA/zWNQQ6CMBBFz8K+jAgs3IqJS2PgAGRoR1IobcIUiWl6dwPo6r2ft/g55GUJWYIrp1KNqdEdhAexJ9V4lKPAldugcYJQO0Pi9rI7n85o+dnmYVEYnDqFEO6LlV47u7W/R8FFi8zkGa4bBBdQLXIkXyFTFDWxW2ZJYq+Nx17bfj/7hSisUwQDn955DucLZMnAWqfzYr2eCOqDX96JKODPAAAA" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/AmplifyTableManager/CDKMetadata/Default" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/AmplifyTableManager/CDKMetadata/Default" }, "Condition": "CDKMetadataAvailable" } @@ -794,12 +794,12 @@ } }, "Parameters": { - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId": { "Type": "String" } }, "Outputs": { - "amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerTableManagerCustomProviderframeworkonEvent6EDC1D70Arn": { + "amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerTableManagerCustomProviderframeworkonEvent4D2D0CF9Arn": { "Value": { "Fn::GetAtt": [ "TableManagerCustomProviderframeworkonEvent1DFC2ECC", diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataConnectionStackNestedStackConne-1PZTW5BMDQ740.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataConnectionStackNestedStackConne-WNK2ROR3OZN0.description.txt similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataConnectionStackNestedStackConne-1PZTW5BMDQ740.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataConnectionStackNestedStackConne-WNK2ROR3OZN0.description.txt diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-auth179371D7-T5KTLQB5RTR1.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataConnectionStackNestedStackConne-WNK2ROR3OZN0.outputs.json similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-auth179371D7-T5KTLQB5RTR1.parameters.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataConnectionStackNestedStackConne-WNK2ROR3OZN0.outputs.json diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataConnectionStackNestedStackConne-WNK2ROR3OZN0.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataConnectionStackNestedStackConne-WNK2ROR3OZN0.parameters.json new file mode 100644 index 00000000000..ed214a6fa9b --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataConnectionStackNestedStackConne-WNK2ROR3OZN0.parameters.json @@ -0,0 +1,30 @@ +[ + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataExerciseNestedStackExerciseNestedStackResourceA766B8C6Outputsamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataExerciseExerciseTableA7BD0631TableArn", + "ParameterValue": "arn:aws:dynamodb:us-east-1:123456789012:table/Exercise-jzwb5p2vcbd2ldlnlxokgjcjby-main" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef", + "ParameterValue": "amplify-fitnesstracker-ge-amplifyAuthunauthenticate-RtuRf8ygfomA" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref", + "ParameterValue": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId", + "ParameterValue": "jrmmxaml4ndpxmx4pmyk3bgv7u" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataExerciseNestedStackExerciseNestedStackResourceA766B8C6Outputsamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataExerciseExerciseDataSourceA366FC05Name", + "ParameterValue": "ExerciseTable" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref", + "ParameterValue": "amplify-fitnesstracker-ge-amplifyAuthauthenticatedU-fF1WwIKcoHtV" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name", + "ParameterValue": "NONE_DS" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataConnectionStackNestedStackConne-1PZTW5BMDQ740.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataConnectionStackNestedStackConne-WNK2ROR3OZN0.template.json similarity index 80% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataConnectionStackNestedStackConne-1PZTW5BMDQ740.template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataConnectionStackNestedStackConne-WNK2ROR3OZN0.template.json index 84e6e9fc44e..3bf2b06531b 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataConnectionStackNestedStackConne-1PZTW5BMDQ740.template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataConnectionStackNestedStackConne-WNK2ROR3OZN0.template.json @@ -4,10 +4,10 @@ "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "WorkoutProgramexercisesauth0Function", @@ -17,17 +17,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/ConnectionStack/WorkoutProgramexercisesauth0Function/WorkoutProgramexercisesauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/ConnectionStack/WorkoutProgramexercisesauth0Function/WorkoutProgramexercisesauth0Function.AppSyncFunction" } }, "WorkoutProgramExercisesDataResolverFnWorkoutProgramExercisesDataResolverFnAppSyncFunctionA9FFE7A3": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataExerciseNestedStackExerciseNestedStackResource558D738COutputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataExerciseExerciseDataSource6949CF09Name" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataExerciseNestedStackExerciseNestedStackResourceA766B8C6Outputsamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataExerciseExerciseDataSourceA366FC05Name" }, "FunctionVersion": "2018-05-29", "Name": "WorkoutProgramExercisesDataResolverFn", @@ -39,14 +39,14 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/ConnectionStack/WorkoutProgramExercisesDataResolverFn/WorkoutProgramExercisesDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/ConnectionStack/WorkoutProgramExercisesDataResolverFn/WorkoutProgramExercisesDataResolverFn.AppSyncFunction" } }, "WorkoutProgramexercisesResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "exercises", "Kind": "PIPELINE", @@ -72,7 +72,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"WorkoutProgram\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"exercises\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"AMAZON_DYNAMODB\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n$util.qr($ctx.stash.put(\"tableName\", \"", { @@ -88,7 +88,7 @@ "Fn::Split": [ ":", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataExerciseNestedStackExerciseNestedStackResource558D738COutputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataExerciseExerciseTable318B1DEBTableArn" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataExerciseNestedStackExerciseNestedStackResourceA766B8C6Outputsamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataExerciseExerciseTableA7BD0631TableArn" } ] } @@ -108,7 +108,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -120,11 +120,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -134,16 +134,16 @@ "TypeName": "WorkoutProgram" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/ConnectionStack/workoutProgramExercisesResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/ConnectionStack/workoutProgramExercisesResolver" } }, "CDKMetadata": { "Type": "AWS::CDK::Metadata", "Properties": { - "Analytics": "v2:deflate64:H4sIAAAAAAAA/yXMsQ6CMBCA4WdhLycUB1chcXSAByBnOUgBr6TXQgzh3Q06ffmXX4O+5pAluElquimd7Qv2J0mgrgloJoWbtLsULYpQELifKCmgjGaiUKKQwmWRDxvYq54fkU2wjivHvR2ixzNU1XNN4uaV/HGo36MJOFgeDsWuIxjlsmoN+Q2yZBRrUx852DdB/fcLM5uzFKcAAAA=" + "Analytics": "v2:deflate64:H4sIAAAAAAAA/yXMsQ6CMBCA4WdhLycWBlchcXSAByBnOUgBr6TXQgzh3Q06ffmXX4MuCsgS3CQ13ZTO9gX7kyRQ1wQ0k8JN2l3yFkUoCNxPlORQRjNRKFFI4bLIhw3sVc+PyCZYx5Xj3g7R4xmq6rkmcfNK/jjU79EEHCwPh2LXEYxyWbWG6w2yZBRrUx852DdB/fcLf5ddvqcAAAA=" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/ConnectionStack/CDKMetadata/Default" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/ConnectionStack/CDKMetadata/Default" }, "Condition": "CDKMetadataAvailable" } @@ -415,25 +415,25 @@ } }, "Parameters": { - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataExerciseNestedStackExerciseNestedStackResource558D738COutputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataExerciseExerciseDataSource6949CF09Name": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataExerciseNestedStackExerciseNestedStackResourceA766B8C6Outputsamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataExerciseExerciseDataSourceA366FC05Name": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataExerciseNestedStackExerciseNestedStackResource558D738COutputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataExerciseExerciseTable318B1DEBTableArn": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataExerciseNestedStackExerciseNestedStackResourceA766B8C6Outputsamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataExerciseExerciseTableA7BD0631TableArn": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref": { "Type": "String" } } diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataExerciseNestedStackExerciseNest-GSLDGK4G6DEO.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataExerciseNestedStackExerciseNest-1P5371DGLAVUG.description.txt similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataExerciseNestedStackExerciseNest-GSLDGK4G6DEO.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataExerciseNestedStackExerciseNest-1P5371DGLAVUG.description.txt diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataExerciseNestedStackExerciseNest-1P5371DGLAVUG.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataExerciseNestedStackExerciseNest-1P5371DGLAVUG.outputs.json new file mode 100644 index 00000000000..b0c8e37470e --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataExerciseNestedStackExerciseNest-1P5371DGLAVUG.outputs.json @@ -0,0 +1,22 @@ +[ + { + "OutputKey": "GetAttExerciseTableName", + "OutputValue": "Exercise-jzwb5p2vcbd2ldlnlxokgjcjby-main", + "Description": "Your DynamoDB table name.", + "ExportName": "jrmmxaml4ndpxmx4pmyk3bgv7u:GetAtt:ExerciseTable:Name" + }, + { + "OutputKey": "GetAttExerciseTableStreamArn", + "OutputValue": "arn:aws:dynamodb:us-east-1:123456789012:table/Exercise-jzwb5p2vcbd2ldlnlxokgjcjby-main/stream/2026-03-24T03:05:11.212", + "Description": "Your DynamoDB table StreamArn.", + "ExportName": "jrmmxaml4ndpxmx4pmyk3bgv7u:GetAtt:ExerciseTable:StreamArn" + }, + { + "OutputKey": "amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataExerciseExerciseTableA7BD0631TableArn", + "OutputValue": "arn:aws:dynamodb:us-east-1:123456789012:table/Exercise-jzwb5p2vcbd2ldlnlxokgjcjby-main" + }, + { + "OutputKey": "amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataExerciseExerciseDataSourceA366FC05Name", + "OutputValue": "ExerciseTable" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataExerciseNestedStackExerciseNest-1P5371DGLAVUG.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataExerciseNestedStackExerciseNest-1P5371DGLAVUG.parameters.json new file mode 100644 index 00000000000..96d6ac2b889 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataExerciseNestedStackExerciseNest-1P5371DGLAVUG.parameters.json @@ -0,0 +1,46 @@ +[ + { + "ParameterKey": "DynamoDBModelTableReadIOPS", + "ParameterValue": "5" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef", + "ParameterValue": "amplify-fitnesstracker-ge-amplifyAuthunauthenticate-RtuRf8ygfomA" + }, + { + "ParameterKey": "DynamoDBEnableServerSideEncryption", + "ParameterValue": "true" + }, + { + "ParameterKey": "DynamoDBEnablePointInTimeRecovery", + "ParameterValue": "false" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref", + "ParameterValue": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3" + }, + { + "ParameterKey": "DynamoDBBillingMode", + "ParameterValue": "PAY_PER_REQUEST" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResourceE84470E2Outputsamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerTableMaE24831DE", + "ParameterValue": "arn:aws:lambda:us-east-1:123456789012:function:amplify-fitnesstracker-ge-TableManagerCustomProvid-tD7nAluDQILS" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId", + "ParameterValue": "jrmmxaml4ndpxmx4pmyk3bgv7u" + }, + { + "ParameterKey": "DynamoDBModelTableWriteIOPS", + "ParameterValue": "5" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref", + "ParameterValue": "amplify-fitnesstracker-ge-amplifyAuthauthenticatedU-fF1WwIKcoHtV" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name", + "ParameterValue": "NONE_DS" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataExerciseNestedStackExerciseNest-GSLDGK4G6DEO.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataExerciseNestedStackExerciseNest-1P5371DGLAVUG.template.json similarity index 85% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataExerciseNestedStackExerciseNest-GSLDGK4G6DEO.template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataExerciseNestedStackExerciseNest-1P5371DGLAVUG.template.json index 37c0c5366f5..fa010d191e5 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataExerciseNestedStackExerciseNest-GSLDGK4G6DEO.template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataExerciseNestedStackExerciseNest-1P5371DGLAVUG.template.json @@ -37,22 +37,22 @@ ], "Description": "Enable server side encryption powered by KMS." }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResource9E5C3FE8Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerTableMana3F678B61": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResourceE84470E2Outputsamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerTableMaE24831DE": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref": { "Type": "String" } }, @@ -353,9 +353,9 @@ "Type": "Custom::ImportedAmplifyDynamoDBTable", "Properties": { "ServiceToken": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResource9E5C3FE8Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerTableMana3F678B61" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResourceE84470E2Outputsamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerTableMaE24831DE" }, - "tableName": "Exercise-2aikutabnvbuhlzmh4mvkg3eji-main", + "tableName": "Exercise-jzwb5p2vcbd2ldlnlxokgjcjby-main", "attributeDefinitions": [ { "attributeName": "id", @@ -444,7 +444,7 @@ "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/ExerciseTable/Default/Default" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/ExerciseTable/Default/Default" } }, "ExerciseIAMRole28D09384": { @@ -487,7 +487,7 @@ "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tablename}", { - "tablename": "Exercise-2aikutabnvbuhlzmh4mvkg3eji-main" + "tablename": "Exercise-jzwb5p2vcbd2ldlnlxokgjcjby-main" } ] }, @@ -495,7 +495,7 @@ "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tablename}/*", { - "tablename": "Exercise-2aikutabnvbuhlzmh4mvkg3eji-main" + "tablename": "Exercise-jzwb5p2vcbd2ldlnlxokgjcjby-main" } ] } @@ -513,7 +513,7 @@ [ "ExerciseIAMRoled0d0e6-", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "-NONE" ] @@ -543,14 +543,14 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/ExerciseIAMRole/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/ExerciseIAMRole/Resource" } }, "ExerciseDataSource": { "Type": "AWS::AppSync::DataSource", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DynamoDBConfig": { "AwsRegion": { @@ -596,17 +596,17 @@ "ExerciseIAMRole28D09384" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/ExerciseDataSource/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/ExerciseDataSource/Resource" } }, "QuerygetExerciseauth0FunctionQuerygetExerciseauth0FunctionAppSyncFunction0AC70BDB": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "QuerygetExerciseauth0Function", @@ -616,17 +616,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/QuerygetExerciseauth0Function/QuerygetExerciseauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/QuerygetExerciseauth0Function/QuerygetExerciseauth0Function.AppSyncFunction" } }, "QuerygetExercisepostAuth0FunctionQuerygetExercisepostAuth0FunctionAppSyncFunction6287EBF7": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "QuerygetExercisepostAuth0Function", @@ -636,14 +636,14 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/QuerygetExercisepostAuth0Function/QuerygetExercisepostAuth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/QuerygetExercisepostAuth0Function/QuerygetExercisepostAuth0Function.AppSyncFunction" } }, "QueryGetExerciseDataResolverFnQueryGetExerciseDataResolverFnAppSyncFunction73149704": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { "Fn::GetAtt": [ @@ -664,14 +664,14 @@ "ExerciseDataSource" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/QueryGetExerciseDataResolverFn/QueryGetExerciseDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/QueryGetExerciseDataResolverFn/QueryGetExerciseDataResolverFn.AppSyncFunction" } }, "GetExerciseResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "getExercise", "Kind": "PIPELINE", @@ -703,7 +703,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Query\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"getExercise\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"AMAZON_DYNAMODB\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n$util.qr($ctx.stash.put(\"tableName\", \"", { @@ -742,7 +742,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -754,11 +754,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -768,17 +768,17 @@ "TypeName": "Query" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/queryGetExerciseResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/queryGetExerciseResolver" } }, "QuerylistExercisesauth0FunctionQuerylistExercisesauth0FunctionAppSyncFunction51A6AD03": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "QuerylistExercisesauth0Function", @@ -788,17 +788,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/QuerylistExercisesauth0Function/QuerylistExercisesauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/QuerylistExercisesauth0Function/QuerylistExercisesauth0Function.AppSyncFunction" } }, "QuerylistExercisespostAuth0FunctionQuerylistExercisespostAuth0FunctionAppSyncFunction0E7A24F2": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "QuerylistExercisespostAuth0Function", @@ -808,14 +808,14 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/QuerylistExercisespostAuth0Function/QuerylistExercisespostAuth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/QuerylistExercisespostAuth0Function/QuerylistExercisespostAuth0Function.AppSyncFunction" } }, "QueryListExercisesDataResolverFnQueryListExercisesDataResolverFnAppSyncFunction0818DDCE": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { "Fn::GetAtt": [ @@ -836,14 +836,14 @@ "ExerciseDataSource" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/QueryListExercisesDataResolverFn/QueryListExercisesDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/QueryListExercisesDataResolverFn/QueryListExercisesDataResolverFn.AppSyncFunction" } }, "ListExerciseResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "listExercises", "Kind": "PIPELINE", @@ -875,7 +875,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Query\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"listExercises\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"AMAZON_DYNAMODB\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n$util.qr($ctx.stash.put(\"tableName\", \"", { @@ -914,7 +914,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -926,11 +926,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -940,17 +940,17 @@ "TypeName": "Query" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/queryListExercisesResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/queryListExercisesResolver" } }, "MutationcreateExerciseinit0FunctionMutationcreateExerciseinit0FunctionAppSyncFunction007007C2": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "MutationcreateExerciseinit0Function", @@ -960,17 +960,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/MutationcreateExerciseinit0Function/MutationcreateExerciseinit0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/MutationcreateExerciseinit0Function/MutationcreateExerciseinit0Function.AppSyncFunction" } }, "MutationcreateExerciseauth0FunctionMutationcreateExerciseauth0FunctionAppSyncFunction06E6FB6C": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "MutationcreateExerciseauth0Function", @@ -980,17 +980,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/MutationcreateExerciseauth0Function/MutationcreateExerciseauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/MutationcreateExerciseauth0Function/MutationcreateExerciseauth0Function.AppSyncFunction" } }, "MutationcreateExercisepostAuth0FunctionMutationcreateExercisepostAuth0FunctionAppSyncFunctionFAC86A10": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "MutationcreateExercisepostAuth0Function", @@ -1000,14 +1000,14 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/MutationcreateExercisepostAuth0Function/MutationcreateExercisepostAuth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/MutationcreateExercisepostAuth0Function/MutationcreateExercisepostAuth0Function.AppSyncFunction" } }, "MutationCreateExerciseDataResolverFnMutationCreateExerciseDataResolverFnAppSyncFunction9F8EC7E0": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { "Fn::GetAtt": [ @@ -1028,14 +1028,14 @@ "ExerciseDataSource" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/MutationCreateExerciseDataResolverFn/MutationCreateExerciseDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/MutationCreateExerciseDataResolverFn/MutationCreateExerciseDataResolverFn.AppSyncFunction" } }, "CreateExerciseResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "createExercise", "Kind": "PIPELINE", @@ -1073,7 +1073,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Mutation\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"createExercise\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"AMAZON_DYNAMODB\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n$util.qr($ctx.stash.put(\"tableName\", \"", { @@ -1112,7 +1112,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -1124,11 +1124,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -1138,17 +1138,17 @@ "TypeName": "Mutation" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/mutationCreateExerciseResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/mutationCreateExerciseResolver" } }, "MutationupdateExerciseinit0FunctionMutationupdateExerciseinit0FunctionAppSyncFunction2DE5E607": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "MutationupdateExerciseinit0Function", @@ -1158,14 +1158,14 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/MutationupdateExerciseinit0Function/MutationupdateExerciseinit0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/MutationupdateExerciseinit0Function/MutationupdateExerciseinit0Function.AppSyncFunction" } }, "MutationupdateExerciseauth0FunctionMutationupdateExerciseauth0FunctionAppSyncFunction2CE5BE66": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { "Fn::GetAtt": [ @@ -1186,17 +1186,17 @@ "ExerciseDataSource" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/MutationupdateExerciseauth0Function/MutationupdateExerciseauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/MutationupdateExerciseauth0Function/MutationupdateExerciseauth0Function.AppSyncFunction" } }, "MutationupdateExercisepostAuth0FunctionMutationupdateExercisepostAuth0FunctionAppSyncFunction25628A67": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "MutationupdateExercisepostAuth0Function", @@ -1206,14 +1206,14 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/MutationupdateExercisepostAuth0Function/MutationupdateExercisepostAuth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/MutationupdateExercisepostAuth0Function/MutationupdateExercisepostAuth0Function.AppSyncFunction" } }, "MutationUpdateExerciseDataResolverFnMutationUpdateExerciseDataResolverFnAppSyncFunctionD0CB335C": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { "Fn::GetAtt": [ @@ -1234,14 +1234,14 @@ "ExerciseDataSource" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/MutationUpdateExerciseDataResolverFn/MutationUpdateExerciseDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/MutationUpdateExerciseDataResolverFn/MutationUpdateExerciseDataResolverFn.AppSyncFunction" } }, "UpdateExerciseResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "updateExercise", "Kind": "PIPELINE", @@ -1279,7 +1279,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Mutation\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"updateExercise\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"AMAZON_DYNAMODB\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n$util.qr($ctx.stash.put(\"tableName\", \"", { @@ -1318,7 +1318,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -1330,11 +1330,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -1344,14 +1344,14 @@ "TypeName": "Mutation" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/mutationUpdateExerciseResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/mutationUpdateExerciseResolver" } }, "MutationdeleteExerciseauth0FunctionMutationdeleteExerciseauth0FunctionAppSyncFunctionC2D9DFF8": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { "Fn::GetAtt": [ @@ -1372,17 +1372,17 @@ "ExerciseDataSource" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/MutationdeleteExerciseauth0Function/MutationdeleteExerciseauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/MutationdeleteExerciseauth0Function/MutationdeleteExerciseauth0Function.AppSyncFunction" } }, "MutationdeleteExercisepostAuth0FunctionMutationdeleteExercisepostAuth0FunctionAppSyncFunction990C3B7B": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "MutationdeleteExercisepostAuth0Function", @@ -1392,14 +1392,14 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/MutationdeleteExercisepostAuth0Function/MutationdeleteExercisepostAuth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/MutationdeleteExercisepostAuth0Function/MutationdeleteExercisepostAuth0Function.AppSyncFunction" } }, "MutationDeleteExerciseDataResolverFnMutationDeleteExerciseDataResolverFnAppSyncFunction91D88DD6": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { "Fn::GetAtt": [ @@ -1420,14 +1420,14 @@ "ExerciseDataSource" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/MutationDeleteExerciseDataResolverFn/MutationDeleteExerciseDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/MutationDeleteExerciseDataResolverFn/MutationDeleteExerciseDataResolverFn.AppSyncFunction" } }, "DeleteExerciseResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "deleteExercise", "Kind": "PIPELINE", @@ -1459,7 +1459,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Mutation\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"deleteExercise\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"AMAZON_DYNAMODB\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n$util.qr($ctx.stash.put(\"tableName\", \"", { @@ -1498,7 +1498,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -1510,11 +1510,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -1524,17 +1524,17 @@ "TypeName": "Mutation" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/mutationDeleteExerciseResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/mutationDeleteExerciseResolver" } }, "SubscriptiononCreateExerciseauth0FunctionSubscriptiononCreateExerciseauth0FunctionAppSyncFunctionC50A81C7": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptiononCreateExerciseauth0Function", @@ -1544,17 +1544,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/SubscriptiononCreateExerciseauth0Function/SubscriptiononCreateExerciseauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/SubscriptiononCreateExerciseauth0Function/SubscriptiononCreateExerciseauth0Function.AppSyncFunction" } }, "SubscriptiononCreateExercisepostAuth0FunctionSubscriptiononCreateExercisepostAuth0FunctionAppSyncFunction5A196A51": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptiononCreateExercisepostAuth0Function", @@ -1564,17 +1564,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/SubscriptiononCreateExercisepostAuth0Function/SubscriptiononCreateExercisepostAuth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/SubscriptiononCreateExercisepostAuth0Function/SubscriptiononCreateExercisepostAuth0Function.AppSyncFunction" } }, "SubscriptionOnCreateExerciseDataResolverFnSubscriptionOnCreateExerciseDataResolverFnAppSyncFunctionAB5DF306": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptionOnCreateExerciseDataResolverFn", @@ -1586,14 +1586,14 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/SubscriptionOnCreateExerciseDataResolverFn/SubscriptionOnCreateExerciseDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/SubscriptionOnCreateExerciseDataResolverFn/SubscriptionOnCreateExerciseDataResolverFn.AppSyncFunction" } }, "SubscriptiononCreateExerciseResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "onCreateExercise", "Kind": "PIPELINE", @@ -1625,7 +1625,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Subscription\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"onCreateExercise\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"NONE\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"authRole\", \"arn:", { @@ -1637,7 +1637,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -1649,11 +1649,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -1663,17 +1663,17 @@ "TypeName": "Subscription" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/subscriptionOnCreateExerciseResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/subscriptionOnCreateExerciseResolver" } }, "SubscriptiononUpdateExerciseauth0FunctionSubscriptiononUpdateExerciseauth0FunctionAppSyncFunction9193D2A0": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptiononUpdateExerciseauth0Function", @@ -1683,17 +1683,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/SubscriptiononUpdateExerciseauth0Function/SubscriptiononUpdateExerciseauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/SubscriptiononUpdateExerciseauth0Function/SubscriptiononUpdateExerciseauth0Function.AppSyncFunction" } }, "SubscriptiononUpdateExercisepostAuth0FunctionSubscriptiononUpdateExercisepostAuth0FunctionAppSyncFunctionDE028CEA": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptiononUpdateExercisepostAuth0Function", @@ -1703,17 +1703,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/SubscriptiononUpdateExercisepostAuth0Function/SubscriptiononUpdateExercisepostAuth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/SubscriptiononUpdateExercisepostAuth0Function/SubscriptiononUpdateExercisepostAuth0Function.AppSyncFunction" } }, "SubscriptionOnUpdateExerciseDataResolverFnSubscriptionOnUpdateExerciseDataResolverFnAppSyncFunctionA7AA88CA": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptionOnUpdateExerciseDataResolverFn", @@ -1725,14 +1725,14 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/SubscriptionOnUpdateExerciseDataResolverFn/SubscriptionOnUpdateExerciseDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/SubscriptionOnUpdateExerciseDataResolverFn/SubscriptionOnUpdateExerciseDataResolverFn.AppSyncFunction" } }, "SubscriptiononUpdateExerciseResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "onUpdateExercise", "Kind": "PIPELINE", @@ -1764,7 +1764,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Subscription\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"onUpdateExercise\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"NONE\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"authRole\", \"arn:", { @@ -1776,7 +1776,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -1788,11 +1788,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -1802,17 +1802,17 @@ "TypeName": "Subscription" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/subscriptionOnUpdateExerciseResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/subscriptionOnUpdateExerciseResolver" } }, "SubscriptiononDeleteExerciseauth0FunctionSubscriptiononDeleteExerciseauth0FunctionAppSyncFunction54DF160B": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptiononDeleteExerciseauth0Function", @@ -1822,17 +1822,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/SubscriptiononDeleteExerciseauth0Function/SubscriptiononDeleteExerciseauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/SubscriptiononDeleteExerciseauth0Function/SubscriptiononDeleteExerciseauth0Function.AppSyncFunction" } }, "SubscriptiononDeleteExercisepostAuth0FunctionSubscriptiononDeleteExercisepostAuth0FunctionAppSyncFunctionAF03921E": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptiononDeleteExercisepostAuth0Function", @@ -1842,17 +1842,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/SubscriptiononDeleteExercisepostAuth0Function/SubscriptiononDeleteExercisepostAuth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/SubscriptiononDeleteExercisepostAuth0Function/SubscriptiononDeleteExercisepostAuth0Function.AppSyncFunction" } }, "SubscriptionOnDeleteExerciseDataResolverFnSubscriptionOnDeleteExerciseDataResolverFnAppSyncFunctionA2A2A8C9": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptionOnDeleteExerciseDataResolverFn", @@ -1864,14 +1864,14 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/SubscriptionOnDeleteExerciseDataResolverFn/SubscriptionOnDeleteExerciseDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/SubscriptionOnDeleteExerciseDataResolverFn/SubscriptionOnDeleteExerciseDataResolverFn.AppSyncFunction" } }, "SubscriptiononDeleteExerciseResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "onDeleteExercise", "Kind": "PIPELINE", @@ -1903,7 +1903,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Subscription\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"onDeleteExercise\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"NONE\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"authRole\", \"arn:", { @@ -1915,7 +1915,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -1927,11 +1927,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -1941,17 +1941,17 @@ "TypeName": "Subscription" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/subscriptionOnDeleteExerciseResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/subscriptionOnDeleteExerciseResolver" } }, "ExerciseOwnerDataResolverFnExerciseOwnerDataResolverFnAppSyncFunction8652EC02": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "ExerciseOwnerDataResolverFn", @@ -1963,14 +1963,14 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/ExerciseOwnerDataResolverFn/ExerciseOwnerDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/ExerciseOwnerDataResolverFn/ExerciseOwnerDataResolverFn.AppSyncFunction" } }, "ExerciseownerResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "owner", "Kind": "PIPELINE", @@ -1990,7 +1990,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Exercise\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"owner\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"NONE\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"authRole\", \"arn:", { @@ -2002,7 +2002,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -2014,11 +2014,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -2028,16 +2028,16 @@ "TypeName": "Exercise" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/exerciseOwnerResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/exerciseOwnerResolver" } }, "CDKMetadata": { "Type": "AWS::CDK::Metadata", "Properties": { - "Analytics": "v2:deflate64:H4sIAAAAAAAA/1WOwW6DMAyGn6X34LV0h11Xqh63CXavTGJQCjgodlpViHefoFOnnX5/8if7zyF/3cF2gzfJrOuy3tcwfZAouUrRdqZo+AsjDqQUFygCO68+sClJQoqWTJFEw/CHDT9nvMl5cnfGIbgavrHu6YBCxuMAUxn6hx16mg2Oo9zZwnRc9WN9RMXqefI/nRLbpUQRuPFtirg2+v3cXynORvZnFCEVeF/CyB4OyXakS4F5cT+TjknNuq4UW8/tbDg4gou8XPMcdm+w3VzE+ywmVj8QlI/8AXh83Gc2AQAA" + "Analytics": "v2:deflate64:H4sIAAAAAAAA/1WOwW6DMAyGn6X31OtoD7uuoB63CXavTGJQCjgodlpViHefoFOnnX5/8if7zyA7HGC3wZtsreu2va9h+iBRcpWi7Uze8BdGHEgpLpAHdl59YFOShBQtmTyJhuEPG37OeJPz5O6MQ3A1fGPd0xGFjMcBpjL0Dzv0NBscR7mzhalY9aIuULF6nvxPp8R2KZEHbnybIq6Nfj/3V4qzkf0ZRUgF3pcwsodjsh3pUmBe3M+kY1KzrivF1nM7Gw6O4CIv1yyD1zfYbS7i/TYmVj8QlI/8AVayTVs2AQAA" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise/CDKMetadata/Default" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise/CDKMetadata/Default" }, "Condition": "CDKMetadataAvailable" } @@ -2057,7 +2057,7 @@ ":", [ { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "GetAtt:ExerciseTable:StreamArn" ] @@ -2067,14 +2067,14 @@ }, "GetAttExerciseTableName": { "Description": "Your DynamoDB table name.", - "Value": "Exercise-2aikutabnvbuhlzmh4mvkg3eji-main", + "Value": "Exercise-jzwb5p2vcbd2ldlnlxokgjcjby-main", "Export": { "Name": { "Fn::Join": [ ":", [ { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "GetAtt:ExerciseTable:Name" ] @@ -2082,7 +2082,7 @@ } } }, - "amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataExerciseExerciseDataSource6949CF09Name": { + "amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataExerciseExerciseDataSourceA366FC05Name": { "Value": { "Fn::GetAtt": [ "ExerciseDataSource", @@ -2090,7 +2090,7 @@ ] } }, - "amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataExerciseExerciseTable318B1DEBTableArn": { + "amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataExerciseExerciseTableA7BD0631TableArn": { "Value": { "Fn::GetAtt": [ "ExerciseTable", diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataMealNestedStackMealNestedStackR-8W0VUDLMFHA1.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataMealNestedStackMealNestedStackR-A8J8VTBF4SWH.description.txt similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataMealNestedStackMealNestedStackR-8W0VUDLMFHA1.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataMealNestedStackMealNestedStackR-A8J8VTBF4SWH.description.txt diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataMealNestedStackMealNestedStackR-A8J8VTBF4SWH.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataMealNestedStackMealNestedStackR-A8J8VTBF4SWH.outputs.json new file mode 100644 index 00000000000..bc276ddef47 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataMealNestedStackMealNestedStackR-A8J8VTBF4SWH.outputs.json @@ -0,0 +1,18 @@ +[ + { + "OutputKey": "GetAttMealTableName", + "OutputValue": "Meal-jzwb5p2vcbd2ldlnlxokgjcjby-main", + "Description": "Your DynamoDB table name.", + "ExportName": "jrmmxaml4ndpxmx4pmyk3bgv7u:GetAtt:MealTable:Name" + }, + { + "OutputKey": "amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataMealMealTable5D540888TableArn", + "OutputValue": "arn:aws:dynamodb:us-east-1:123456789012:table/Meal-jzwb5p2vcbd2ldlnlxokgjcjby-main" + }, + { + "OutputKey": "GetAttMealTableStreamArn", + "OutputValue": "arn:aws:dynamodb:us-east-1:123456789012:table/Meal-jzwb5p2vcbd2ldlnlxokgjcjby-main/stream/2026-03-24T03:05:11.935", + "Description": "Your DynamoDB table StreamArn.", + "ExportName": "jrmmxaml4ndpxmx4pmyk3bgv7u:GetAtt:MealTable:StreamArn" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataMealNestedStackMealNestedStackR-A8J8VTBF4SWH.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataMealNestedStackMealNestedStackR-A8J8VTBF4SWH.parameters.json new file mode 100644 index 00000000000..96d6ac2b889 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataMealNestedStackMealNestedStackR-A8J8VTBF4SWH.parameters.json @@ -0,0 +1,46 @@ +[ + { + "ParameterKey": "DynamoDBModelTableReadIOPS", + "ParameterValue": "5" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef", + "ParameterValue": "amplify-fitnesstracker-ge-amplifyAuthunauthenticate-RtuRf8ygfomA" + }, + { + "ParameterKey": "DynamoDBEnableServerSideEncryption", + "ParameterValue": "true" + }, + { + "ParameterKey": "DynamoDBEnablePointInTimeRecovery", + "ParameterValue": "false" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref", + "ParameterValue": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3" + }, + { + "ParameterKey": "DynamoDBBillingMode", + "ParameterValue": "PAY_PER_REQUEST" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResourceE84470E2Outputsamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerTableMaE24831DE", + "ParameterValue": "arn:aws:lambda:us-east-1:123456789012:function:amplify-fitnesstracker-ge-TableManagerCustomProvid-tD7nAluDQILS" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId", + "ParameterValue": "jrmmxaml4ndpxmx4pmyk3bgv7u" + }, + { + "ParameterKey": "DynamoDBModelTableWriteIOPS", + "ParameterValue": "5" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref", + "ParameterValue": "amplify-fitnesstracker-ge-amplifyAuthauthenticatedU-fF1WwIKcoHtV" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name", + "ParameterValue": "NONE_DS" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataMealNestedStackMealNestedStackR-8W0VUDLMFHA1.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataMealNestedStackMealNestedStackR-A8J8VTBF4SWH.template.json similarity index 85% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataMealNestedStackMealNestedStackR-8W0VUDLMFHA1.template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataMealNestedStackMealNestedStackR-A8J8VTBF4SWH.template.json index 1d01befbf84..b05d293abf6 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataMealNestedStackMealNestedStackR-8W0VUDLMFHA1.template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataMealNestedStackMealNestedStackR-A8J8VTBF4SWH.template.json @@ -37,22 +37,22 @@ ], "Description": "Enable server side encryption powered by KMS." }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResource9E5C3FE8Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerTableMana3F678B61": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResourceE84470E2Outputsamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerTableMaE24831DE": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref": { "Type": "String" } }, @@ -353,9 +353,9 @@ "Type": "Custom::ImportedAmplifyDynamoDBTable", "Properties": { "ServiceToken": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResource9E5C3FE8Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerTableMana3F678B61" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResourceE84470E2Outputsamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerTableMaE24831DE" }, - "tableName": "Meal-2aikutabnvbuhlzmh4mvkg3eji-main", + "tableName": "Meal-jzwb5p2vcbd2ldlnlxokgjcjby-main", "attributeDefinitions": [ { "attributeName": "id", @@ -418,7 +418,7 @@ "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/MealTable/Default/Default" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/MealTable/Default/Default" } }, "MealIAMRoleEDE19E15": { @@ -461,7 +461,7 @@ "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tablename}", { - "tablename": "Meal-2aikutabnvbuhlzmh4mvkg3eji-main" + "tablename": "Meal-jzwb5p2vcbd2ldlnlxokgjcjby-main" } ] }, @@ -469,7 +469,7 @@ "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tablename}/*", { - "tablename": "Meal-2aikutabnvbuhlzmh4mvkg3eji-main" + "tablename": "Meal-jzwb5p2vcbd2ldlnlxokgjcjby-main" } ] } @@ -487,7 +487,7 @@ [ "MealIAMRole54b7fd-", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "-NONE" ] @@ -517,14 +517,14 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/MealIAMRole/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/MealIAMRole/Resource" } }, "MealDataSource": { "Type": "AWS::AppSync::DataSource", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DynamoDBConfig": { "AwsRegion": { @@ -570,17 +570,17 @@ "MealIAMRoleEDE19E15" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/MealDataSource/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/MealDataSource/Resource" } }, "QuerygetMealauth0FunctionQuerygetMealauth0FunctionAppSyncFunction3EC25F21": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "QuerygetMealauth0Function", @@ -590,17 +590,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/QuerygetMealauth0Function/QuerygetMealauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/QuerygetMealauth0Function/QuerygetMealauth0Function.AppSyncFunction" } }, "QuerygetMealpostAuth0FunctionQuerygetMealpostAuth0FunctionAppSyncFunction9E0F196D": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "QuerygetMealpostAuth0Function", @@ -610,14 +610,14 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/QuerygetMealpostAuth0Function/QuerygetMealpostAuth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/QuerygetMealpostAuth0Function/QuerygetMealpostAuth0Function.AppSyncFunction" } }, "QueryGetMealDataResolverFnQueryGetMealDataResolverFnAppSyncFunction8B80E67B": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { "Fn::GetAtt": [ @@ -638,14 +638,14 @@ "MealDataSource" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/QueryGetMealDataResolverFn/QueryGetMealDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/QueryGetMealDataResolverFn/QueryGetMealDataResolverFn.AppSyncFunction" } }, "GetMealResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "getMeal", "Kind": "PIPELINE", @@ -677,7 +677,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Query\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"getMeal\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"AMAZON_DYNAMODB\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n$util.qr($ctx.stash.put(\"tableName\", \"", { @@ -716,7 +716,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -728,11 +728,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -742,17 +742,17 @@ "TypeName": "Query" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/queryGetMealResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/queryGetMealResolver" } }, "QuerylistMealsauth0FunctionQuerylistMealsauth0FunctionAppSyncFunctionB47607B5": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "QuerylistMealsauth0Function", @@ -762,17 +762,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/QuerylistMealsauth0Function/QuerylistMealsauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/QuerylistMealsauth0Function/QuerylistMealsauth0Function.AppSyncFunction" } }, "QuerylistMealspostAuth0FunctionQuerylistMealspostAuth0FunctionAppSyncFunction15CC850C": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "QuerylistMealspostAuth0Function", @@ -782,14 +782,14 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/QuerylistMealspostAuth0Function/QuerylistMealspostAuth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/QuerylistMealspostAuth0Function/QuerylistMealspostAuth0Function.AppSyncFunction" } }, "QueryListMealsDataResolverFnQueryListMealsDataResolverFnAppSyncFunction3EE87F58": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { "Fn::GetAtt": [ @@ -810,14 +810,14 @@ "MealDataSource" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/QueryListMealsDataResolverFn/QueryListMealsDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/QueryListMealsDataResolverFn/QueryListMealsDataResolverFn.AppSyncFunction" } }, "ListMealResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "listMeals", "Kind": "PIPELINE", @@ -849,7 +849,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Query\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"listMeals\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"AMAZON_DYNAMODB\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n$util.qr($ctx.stash.put(\"tableName\", \"", { @@ -888,7 +888,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -900,11 +900,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -914,17 +914,17 @@ "TypeName": "Query" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/queryListMealsResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/queryListMealsResolver" } }, "MutationcreateMealinit0FunctionMutationcreateMealinit0FunctionAppSyncFunctionC8456643": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "MutationcreateMealinit0Function", @@ -934,17 +934,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/MutationcreateMealinit0Function/MutationcreateMealinit0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/MutationcreateMealinit0Function/MutationcreateMealinit0Function.AppSyncFunction" } }, "MutationcreateMealauth0FunctionMutationcreateMealauth0FunctionAppSyncFunction746792DB": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "MutationcreateMealauth0Function", @@ -954,17 +954,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/MutationcreateMealauth0Function/MutationcreateMealauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/MutationcreateMealauth0Function/MutationcreateMealauth0Function.AppSyncFunction" } }, "MutationcreateMealpostAuth0FunctionMutationcreateMealpostAuth0FunctionAppSyncFunctionF0FDFBD0": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "MutationcreateMealpostAuth0Function", @@ -974,14 +974,14 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/MutationcreateMealpostAuth0Function/MutationcreateMealpostAuth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/MutationcreateMealpostAuth0Function/MutationcreateMealpostAuth0Function.AppSyncFunction" } }, "MutationCreateMealDataResolverFnMutationCreateMealDataResolverFnAppSyncFunction3A7E3265": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { "Fn::GetAtt": [ @@ -1002,14 +1002,14 @@ "MealDataSource" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/MutationCreateMealDataResolverFn/MutationCreateMealDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/MutationCreateMealDataResolverFn/MutationCreateMealDataResolverFn.AppSyncFunction" } }, "CreateMealResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "createMeal", "Kind": "PIPELINE", @@ -1047,7 +1047,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Mutation\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"createMeal\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"AMAZON_DYNAMODB\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n$util.qr($ctx.stash.put(\"tableName\", \"", { @@ -1086,7 +1086,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -1098,11 +1098,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -1112,17 +1112,17 @@ "TypeName": "Mutation" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/mutationCreateMealResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/mutationCreateMealResolver" } }, "MutationupdateMealinit0FunctionMutationupdateMealinit0FunctionAppSyncFunction80065D7F": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "MutationupdateMealinit0Function", @@ -1132,14 +1132,14 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/MutationupdateMealinit0Function/MutationupdateMealinit0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/MutationupdateMealinit0Function/MutationupdateMealinit0Function.AppSyncFunction" } }, "MutationupdateMealauth0FunctionMutationupdateMealauth0FunctionAppSyncFunctionEFC9C205": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { "Fn::GetAtt": [ @@ -1160,17 +1160,17 @@ "MealDataSource" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/MutationupdateMealauth0Function/MutationupdateMealauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/MutationupdateMealauth0Function/MutationupdateMealauth0Function.AppSyncFunction" } }, "MutationupdateMealpostAuth0FunctionMutationupdateMealpostAuth0FunctionAppSyncFunction5B29DBED": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "MutationupdateMealpostAuth0Function", @@ -1180,14 +1180,14 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/MutationupdateMealpostAuth0Function/MutationupdateMealpostAuth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/MutationupdateMealpostAuth0Function/MutationupdateMealpostAuth0Function.AppSyncFunction" } }, "MutationUpdateMealDataResolverFnMutationUpdateMealDataResolverFnAppSyncFunction7CE88037": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { "Fn::GetAtt": [ @@ -1208,14 +1208,14 @@ "MealDataSource" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/MutationUpdateMealDataResolverFn/MutationUpdateMealDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/MutationUpdateMealDataResolverFn/MutationUpdateMealDataResolverFn.AppSyncFunction" } }, "UpdateMealResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "updateMeal", "Kind": "PIPELINE", @@ -1253,7 +1253,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Mutation\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"updateMeal\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"AMAZON_DYNAMODB\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n$util.qr($ctx.stash.put(\"tableName\", \"", { @@ -1292,7 +1292,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -1304,11 +1304,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -1318,14 +1318,14 @@ "TypeName": "Mutation" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/mutationUpdateMealResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/mutationUpdateMealResolver" } }, "MutationdeleteMealauth0FunctionMutationdeleteMealauth0FunctionAppSyncFunction5A3C8FCE": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { "Fn::GetAtt": [ @@ -1346,17 +1346,17 @@ "MealDataSource" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/MutationdeleteMealauth0Function/MutationdeleteMealauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/MutationdeleteMealauth0Function/MutationdeleteMealauth0Function.AppSyncFunction" } }, "MutationdeleteMealpostAuth0FunctionMutationdeleteMealpostAuth0FunctionAppSyncFunctionC9BB36B8": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "MutationdeleteMealpostAuth0Function", @@ -1366,14 +1366,14 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/MutationdeleteMealpostAuth0Function/MutationdeleteMealpostAuth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/MutationdeleteMealpostAuth0Function/MutationdeleteMealpostAuth0Function.AppSyncFunction" } }, "MutationDeleteMealDataResolverFnMutationDeleteMealDataResolverFnAppSyncFunctionB6415754": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { "Fn::GetAtt": [ @@ -1394,14 +1394,14 @@ "MealDataSource" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/MutationDeleteMealDataResolverFn/MutationDeleteMealDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/MutationDeleteMealDataResolverFn/MutationDeleteMealDataResolverFn.AppSyncFunction" } }, "DeleteMealResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "deleteMeal", "Kind": "PIPELINE", @@ -1433,7 +1433,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Mutation\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"deleteMeal\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"AMAZON_DYNAMODB\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n$util.qr($ctx.stash.put(\"tableName\", \"", { @@ -1472,7 +1472,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -1484,11 +1484,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -1498,17 +1498,17 @@ "TypeName": "Mutation" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/mutationDeleteMealResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/mutationDeleteMealResolver" } }, "SubscriptiononCreateMealauth0FunctionSubscriptiononCreateMealauth0FunctionAppSyncFunction8AF26F94": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptiononCreateMealauth0Function", @@ -1518,17 +1518,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/SubscriptiononCreateMealauth0Function/SubscriptiononCreateMealauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/SubscriptiononCreateMealauth0Function/SubscriptiononCreateMealauth0Function.AppSyncFunction" } }, "SubscriptiononCreateMealpostAuth0FunctionSubscriptiononCreateMealpostAuth0FunctionAppSyncFunction820A2BD2": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptiononCreateMealpostAuth0Function", @@ -1538,17 +1538,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/SubscriptiononCreateMealpostAuth0Function/SubscriptiononCreateMealpostAuth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/SubscriptiononCreateMealpostAuth0Function/SubscriptiononCreateMealpostAuth0Function.AppSyncFunction" } }, "SubscriptionOnCreateMealDataResolverFnSubscriptionOnCreateMealDataResolverFnAppSyncFunctionF1334F8F": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptionOnCreateMealDataResolverFn", @@ -1560,14 +1560,14 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/SubscriptionOnCreateMealDataResolverFn/SubscriptionOnCreateMealDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/SubscriptionOnCreateMealDataResolverFn/SubscriptionOnCreateMealDataResolverFn.AppSyncFunction" } }, "SubscriptiononCreateMealResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "onCreateMeal", "Kind": "PIPELINE", @@ -1599,7 +1599,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Subscription\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"onCreateMeal\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"NONE\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"authRole\", \"arn:", { @@ -1611,7 +1611,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -1623,11 +1623,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -1637,17 +1637,17 @@ "TypeName": "Subscription" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/subscriptionOnCreateMealResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/subscriptionOnCreateMealResolver" } }, "SubscriptiononUpdateMealauth0FunctionSubscriptiononUpdateMealauth0FunctionAppSyncFunction2DF3B7A1": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptiononUpdateMealauth0Function", @@ -1657,17 +1657,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/SubscriptiononUpdateMealauth0Function/SubscriptiononUpdateMealauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/SubscriptiononUpdateMealauth0Function/SubscriptiononUpdateMealauth0Function.AppSyncFunction" } }, "SubscriptiononUpdateMealpostAuth0FunctionSubscriptiononUpdateMealpostAuth0FunctionAppSyncFunction6DDD0917": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptiononUpdateMealpostAuth0Function", @@ -1677,17 +1677,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/SubscriptiononUpdateMealpostAuth0Function/SubscriptiononUpdateMealpostAuth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/SubscriptiononUpdateMealpostAuth0Function/SubscriptiononUpdateMealpostAuth0Function.AppSyncFunction" } }, "SubscriptionOnUpdateMealDataResolverFnSubscriptionOnUpdateMealDataResolverFnAppSyncFunction7E09A153": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptionOnUpdateMealDataResolverFn", @@ -1699,14 +1699,14 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/SubscriptionOnUpdateMealDataResolverFn/SubscriptionOnUpdateMealDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/SubscriptionOnUpdateMealDataResolverFn/SubscriptionOnUpdateMealDataResolverFn.AppSyncFunction" } }, "SubscriptiononUpdateMealResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "onUpdateMeal", "Kind": "PIPELINE", @@ -1738,7 +1738,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Subscription\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"onUpdateMeal\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"NONE\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"authRole\", \"arn:", { @@ -1750,7 +1750,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -1762,11 +1762,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -1776,17 +1776,17 @@ "TypeName": "Subscription" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/subscriptionOnUpdateMealResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/subscriptionOnUpdateMealResolver" } }, "SubscriptiononDeleteMealauth0FunctionSubscriptiononDeleteMealauth0FunctionAppSyncFunctionE50EF48C": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptiononDeleteMealauth0Function", @@ -1796,17 +1796,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/SubscriptiononDeleteMealauth0Function/SubscriptiononDeleteMealauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/SubscriptiononDeleteMealauth0Function/SubscriptiononDeleteMealauth0Function.AppSyncFunction" } }, "SubscriptiononDeleteMealpostAuth0FunctionSubscriptiononDeleteMealpostAuth0FunctionAppSyncFunction6FA10C5F": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptiononDeleteMealpostAuth0Function", @@ -1816,17 +1816,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/SubscriptiononDeleteMealpostAuth0Function/SubscriptiononDeleteMealpostAuth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/SubscriptiononDeleteMealpostAuth0Function/SubscriptiononDeleteMealpostAuth0Function.AppSyncFunction" } }, "SubscriptionOnDeleteMealDataResolverFnSubscriptionOnDeleteMealDataResolverFnAppSyncFunction0A2F61AD": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptionOnDeleteMealDataResolverFn", @@ -1838,14 +1838,14 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/SubscriptionOnDeleteMealDataResolverFn/SubscriptionOnDeleteMealDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/SubscriptionOnDeleteMealDataResolverFn/SubscriptionOnDeleteMealDataResolverFn.AppSyncFunction" } }, "SubscriptiononDeleteMealResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "onDeleteMeal", "Kind": "PIPELINE", @@ -1877,7 +1877,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Subscription\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"onDeleteMeal\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"NONE\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"authRole\", \"arn:", { @@ -1889,7 +1889,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -1901,11 +1901,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -1915,16 +1915,16 @@ "TypeName": "Subscription" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/subscriptionOnDeleteMealResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/subscriptionOnDeleteMealResolver" } }, "CDKMetadata": { "Type": "AWS::CDK::Metadata", "Properties": { - "Analytics": "v2:deflate64:H4sIAAAAAAAA/1WOwW6DMAyGn6X34LV0h11Xqh63CXavTGJQCjgodlpViHefoFOnnX5/8if7zyF/3cF2gzfJrOuy3tcwfZAouUrRdqZo+AsjDqQUFygCO68+sClJQoqWTJFEw/CHDT9nvMl5cnfGIbgavrHu6YBCxuMAUxn6hx16mg2Oo9zZwnRc9WN9RMXqefI/nRLbpUQRuPFtirg2+v3cXynORvZnFCEVeF/CyB4OyXakS4F5cT+TjknNuq4UW8/tbDg4gou8XPMcdm+w3VzE+ywmVj8QlI/8AXh83Gc2AQAA" + "Analytics": "v2:deflate64:H4sIAAAAAAAA/1WOwW6DMAyGn6X31OtoD7uuoB63CXavTGJQCjgodlpViHefoFOnnX5/8if7zyA7HGC3wZtsreu2va9h+iBRcpWi7Uze8BdGHEgpLpAHdl59YFOShBQtmTyJhuEPG37OeJPz5O6MQ3A1fGPd0xGFjMcBpjL0Dzv0NBscR7mzhalY9aIuULF6nvxPp8R2KZEHbnybIq6Nfj/3V4qzkf0ZRUgF3pcwsodjsh3pUmBe3M+kY1KzrivF1nM7Gw6O4CIv1yyD1zfYbS7i/TYmVj8QlI/8AVayTVs2AQAA" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal/CDKMetadata/Default" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal/CDKMetadata/Default" }, "Condition": "CDKMetadataAvailable" } @@ -1944,7 +1944,7 @@ ":", [ { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "GetAtt:MealTable:StreamArn" ] @@ -1954,14 +1954,14 @@ }, "GetAttMealTableName": { "Description": "Your DynamoDB table name.", - "Value": "Meal-2aikutabnvbuhlzmh4mvkg3eji-main", + "Value": "Meal-jzwb5p2vcbd2ldlnlxokgjcjby-main", "Export": { "Name": { "Fn::Join": [ ":", [ { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "GetAtt:MealTable:Name" ] @@ -1969,7 +1969,7 @@ } } }, - "amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataMealMealTableFB0A2E92TableArn": { + "amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataMealMealTable5D540888TableArn": { "Value": { "Fn::GetAtt": [ "MealTable", diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataWorkoutProgramNestedStackWorkou-1KL1EWK5B27DM.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataWorkoutProgramNestedStackWorkou-162Z9OPH7DXYW.description.txt similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataWorkoutProgramNestedStackWorkou-1KL1EWK5B27DM.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataWorkoutProgramNestedStackWorkou-162Z9OPH7DXYW.description.txt diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataWorkoutProgramNestedStackWorkou-1KL1EWK5B27DM.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataWorkoutProgramNestedStackWorkou-162Z9OPH7DXYW.outputs.json similarity index 54% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataWorkoutProgramNestedStackWorkou-1KL1EWK5B27DM.outputs.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataWorkoutProgramNestedStackWorkou-162Z9OPH7DXYW.outputs.json index eb6fbe78fd0..c750785a346 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataWorkoutProgramNestedStackWorkou-1KL1EWK5B27DM.outputs.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataWorkoutProgramNestedStackWorkou-162Z9OPH7DXYW.outputs.json @@ -1,14 +1,14 @@ [ { "OutputKey": "GetAttWorkoutProgramTableStreamArn", - "OutputValue": "arn:aws:dynamodb:us-east-1:123456789012:table/WorkoutProgram-2aikutabnvbuhlzmh4mvkg3eji-main/stream/2026-03-07T19:48:24.327", + "OutputValue": "arn:aws:dynamodb:us-east-1:123456789012:table/WorkoutProgram-jzwb5p2vcbd2ldlnlxokgjcjby-main/stream/2026-03-24T03:04:23.623", "Description": "Your DynamoDB table StreamArn.", - "ExportName": "aolmivry45bvbmfywwm6tb542u:GetAtt:WorkoutProgramTable:StreamArn" + "ExportName": "jrmmxaml4ndpxmx4pmyk3bgv7u:GetAtt:WorkoutProgramTable:StreamArn" }, { "OutputKey": "GetAttWorkoutProgramTableName", - "OutputValue": "WorkoutProgram-2aikutabnvbuhlzmh4mvkg3eji-main", + "OutputValue": "WorkoutProgram-jzwb5p2vcbd2ldlnlxokgjcjby-main", "Description": "Your DynamoDB table name.", - "ExportName": "aolmivry45bvbmfywwm6tb542u:GetAtt:WorkoutProgramTable:Name" + "ExportName": "jrmmxaml4ndpxmx4pmyk3bgv7u:GetAtt:WorkoutProgramTable:Name" } ] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataWorkoutProgramNestedStackWorkou-162Z9OPH7DXYW.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataWorkoutProgramNestedStackWorkou-162Z9OPH7DXYW.parameters.json new file mode 100644 index 00000000000..96d6ac2b889 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataWorkoutProgramNestedStackWorkou-162Z9OPH7DXYW.parameters.json @@ -0,0 +1,46 @@ +[ + { + "ParameterKey": "DynamoDBModelTableReadIOPS", + "ParameterValue": "5" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef", + "ParameterValue": "amplify-fitnesstracker-ge-amplifyAuthunauthenticate-RtuRf8ygfomA" + }, + { + "ParameterKey": "DynamoDBEnableServerSideEncryption", + "ParameterValue": "true" + }, + { + "ParameterKey": "DynamoDBEnablePointInTimeRecovery", + "ParameterValue": "false" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref", + "ParameterValue": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3" + }, + { + "ParameterKey": "DynamoDBBillingMode", + "ParameterValue": "PAY_PER_REQUEST" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResourceE84470E2Outputsamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerTableMaE24831DE", + "ParameterValue": "arn:aws:lambda:us-east-1:123456789012:function:amplify-fitnesstracker-ge-TableManagerCustomProvid-tD7nAluDQILS" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId", + "ParameterValue": "jrmmxaml4ndpxmx4pmyk3bgv7u" + }, + { + "ParameterKey": "DynamoDBModelTableWriteIOPS", + "ParameterValue": "5" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref", + "ParameterValue": "amplify-fitnesstracker-ge-amplifyAuthauthenticatedU-fF1WwIKcoHtV" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name", + "ParameterValue": "NONE_DS" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataWorkoutProgramNestedStackWorkou-1KL1EWK5B27DM.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataWorkoutProgramNestedStackWorkou-162Z9OPH7DXYW.template.json similarity index 85% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataWorkoutProgramNestedStackWorkou-1KL1EWK5B27DM.template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataWorkoutProgramNestedStackWorkou-162Z9OPH7DXYW.template.json index c00ea2d0428..185f385ee91 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataWorkoutProgramNestedStackWorkou-1KL1EWK5B27DM.template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-4007-amplifyDataWorkoutProgramNestedStackWorkou-162Z9OPH7DXYW.template.json @@ -37,22 +37,22 @@ ], "Description": "Enable server side encryption powered by KMS." }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResource9E5C3FE8Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerTableMana3F678B61": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResourceE84470E2Outputsamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerTableMaE24831DE": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref": { "Type": "String" } }, @@ -353,9 +353,9 @@ "Type": "Custom::ImportedAmplifyDynamoDBTable", "Properties": { "ServiceToken": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResource9E5C3FE8Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerTableMana3F678B61" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResourceE84470E2Outputsamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerTableMaE24831DE" }, - "tableName": "WorkoutProgram-2aikutabnvbuhlzmh4mvkg3eji-main", + "tableName": "WorkoutProgram-jzwb5p2vcbd2ldlnlxokgjcjby-main", "attributeDefinitions": [ { "attributeName": "id", @@ -418,7 +418,7 @@ "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/WorkoutProgramTable/Default/Default" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/WorkoutProgramTable/Default/Default" } }, "WorkoutProgramIAMRoleB75B98D5": { @@ -461,7 +461,7 @@ "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tablename}", { - "tablename": "WorkoutProgram-2aikutabnvbuhlzmh4mvkg3eji-main" + "tablename": "WorkoutProgram-jzwb5p2vcbd2ldlnlxokgjcjby-main" } ] }, @@ -469,7 +469,7 @@ "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tablename}/*", { - "tablename": "WorkoutProgram-2aikutabnvbuhlzmh4mvkg3eji-main" + "tablename": "WorkoutProgram-jzwb5p2vcbd2ldlnlxokgjcjby-main" } ] } @@ -487,7 +487,7 @@ [ "WorkoutProgramIAMRol516c57-", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "-NONE" ] @@ -517,14 +517,14 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/WorkoutProgramIAMRole/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/WorkoutProgramIAMRole/Resource" } }, "WorkoutProgramDataSource": { "Type": "AWS::AppSync::DataSource", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DynamoDBConfig": { "AwsRegion": { @@ -570,17 +570,17 @@ "WorkoutProgramIAMRoleB75B98D5" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/WorkoutProgramDataSource/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/WorkoutProgramDataSource/Resource" } }, "QuerygetWorkoutProgramauth0FunctionQuerygetWorkoutProgramauth0FunctionAppSyncFunctionF61649FE": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "QuerygetWorkoutProgramauth0Function", @@ -590,17 +590,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/QuerygetWorkoutProgramauth0Function/QuerygetWorkoutProgramauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/QuerygetWorkoutProgramauth0Function/QuerygetWorkoutProgramauth0Function.AppSyncFunction" } }, "QuerygetWorkoutProgrampostAuth0FunctionQuerygetWorkoutProgrampostAuth0FunctionAppSyncFunction3557039E": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "QuerygetWorkoutProgrampostAuth0Function", @@ -610,14 +610,14 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/QuerygetWorkoutProgrampostAuth0Function/QuerygetWorkoutProgrampostAuth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/QuerygetWorkoutProgrampostAuth0Function/QuerygetWorkoutProgrampostAuth0Function.AppSyncFunction" } }, "QueryGetWorkoutProgramDataResolverFnQueryGetWorkoutProgramDataResolverFnAppSyncFunctionDFD5C9FA": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { "Fn::GetAtt": [ @@ -638,14 +638,14 @@ "WorkoutProgramDataSource" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/QueryGetWorkoutProgramDataResolverFn/QueryGetWorkoutProgramDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/QueryGetWorkoutProgramDataResolverFn/QueryGetWorkoutProgramDataResolverFn.AppSyncFunction" } }, "GetWorkoutProgramResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "getWorkoutProgram", "Kind": "PIPELINE", @@ -677,7 +677,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Query\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"getWorkoutProgram\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"AMAZON_DYNAMODB\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n$util.qr($ctx.stash.put(\"tableName\", \"", { @@ -716,7 +716,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -728,11 +728,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -742,17 +742,17 @@ "TypeName": "Query" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/queryGetWorkoutProgramResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/queryGetWorkoutProgramResolver" } }, "QuerylistWorkoutProgramsauth0FunctionQuerylistWorkoutProgramsauth0FunctionAppSyncFunctionEDC95461": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "QuerylistWorkoutProgramsauth0Function", @@ -762,17 +762,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/QuerylistWorkoutProgramsauth0Function/QuerylistWorkoutProgramsauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/QuerylistWorkoutProgramsauth0Function/QuerylistWorkoutProgramsauth0Function.AppSyncFunction" } }, "QuerylistWorkoutProgramspostAuth0FunctionQuerylistWorkoutProgramspostAuth0FunctionAppSyncFunction784BDD23": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "QuerylistWorkoutProgramspostAuth0Function", @@ -782,14 +782,14 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/QuerylistWorkoutProgramspostAuth0Function/QuerylistWorkoutProgramspostAuth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/QuerylistWorkoutProgramspostAuth0Function/QuerylistWorkoutProgramspostAuth0Function.AppSyncFunction" } }, "QueryListWorkoutProgramsDataResolverFnQueryListWorkoutProgramsDataResolverFnAppSyncFunctionC43C9A14": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { "Fn::GetAtt": [ @@ -810,14 +810,14 @@ "WorkoutProgramDataSource" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/QueryListWorkoutProgramsDataResolverFn/QueryListWorkoutProgramsDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/QueryListWorkoutProgramsDataResolverFn/QueryListWorkoutProgramsDataResolverFn.AppSyncFunction" } }, "ListWorkoutProgramResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "listWorkoutPrograms", "Kind": "PIPELINE", @@ -849,7 +849,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Query\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"listWorkoutPrograms\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"AMAZON_DYNAMODB\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n$util.qr($ctx.stash.put(\"tableName\", \"", { @@ -888,7 +888,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -900,11 +900,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -914,17 +914,17 @@ "TypeName": "Query" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/queryListWorkoutProgramsResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/queryListWorkoutProgramsResolver" } }, "MutationcreateWorkoutPrograminit0FunctionMutationcreateWorkoutPrograminit0FunctionAppSyncFunctionD050B3C1": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "MutationcreateWorkoutPrograminit0Function", @@ -934,17 +934,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/MutationcreateWorkoutPrograminit0Function/MutationcreateWorkoutPrograminit0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/MutationcreateWorkoutPrograminit0Function/MutationcreateWorkoutPrograminit0Function.AppSyncFunction" } }, "MutationcreateWorkoutProgramauth0FunctionMutationcreateWorkoutProgramauth0FunctionAppSyncFunction6165E2A5": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "MutationcreateWorkoutProgramauth0Function", @@ -954,17 +954,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/MutationcreateWorkoutProgramauth0Function/MutationcreateWorkoutProgramauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/MutationcreateWorkoutProgramauth0Function/MutationcreateWorkoutProgramauth0Function.AppSyncFunction" } }, "MutationcreateWorkoutProgrampostAuth0FunctionMutationcreateWorkoutProgrampostAuth0FunctionAppSyncFunctionC1F2C501": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "MutationcreateWorkoutProgrampostAuth0Function", @@ -974,14 +974,14 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/MutationcreateWorkoutProgrampostAuth0Function/MutationcreateWorkoutProgrampostAuth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/MutationcreateWorkoutProgrampostAuth0Function/MutationcreateWorkoutProgrampostAuth0Function.AppSyncFunction" } }, "MutationCreateWorkoutProgramDataResolverFnMutationCreateWorkoutProgramDataResolverFnAppSyncFunction20E77E8E": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { "Fn::GetAtt": [ @@ -1002,14 +1002,14 @@ "WorkoutProgramDataSource" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/MutationCreateWorkoutProgramDataResolverFn/MutationCreateWorkoutProgramDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/MutationCreateWorkoutProgramDataResolverFn/MutationCreateWorkoutProgramDataResolverFn.AppSyncFunction" } }, "CreateWorkoutProgramResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "createWorkoutProgram", "Kind": "PIPELINE", @@ -1047,7 +1047,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Mutation\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"createWorkoutProgram\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"AMAZON_DYNAMODB\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n$util.qr($ctx.stash.put(\"tableName\", \"", { @@ -1086,7 +1086,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -1098,11 +1098,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -1112,17 +1112,17 @@ "TypeName": "Mutation" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/mutationCreateWorkoutProgramResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/mutationCreateWorkoutProgramResolver" } }, "MutationupdateWorkoutPrograminit0FunctionMutationupdateWorkoutPrograminit0FunctionAppSyncFunctionDF7D6DB3": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "MutationupdateWorkoutPrograminit0Function", @@ -1132,14 +1132,14 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/MutationupdateWorkoutPrograminit0Function/MutationupdateWorkoutPrograminit0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/MutationupdateWorkoutPrograminit0Function/MutationupdateWorkoutPrograminit0Function.AppSyncFunction" } }, "MutationupdateWorkoutProgramauth0FunctionMutationupdateWorkoutProgramauth0FunctionAppSyncFunction5B1F99AE": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { "Fn::GetAtt": [ @@ -1160,17 +1160,17 @@ "WorkoutProgramDataSource" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/MutationupdateWorkoutProgramauth0Function/MutationupdateWorkoutProgramauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/MutationupdateWorkoutProgramauth0Function/MutationupdateWorkoutProgramauth0Function.AppSyncFunction" } }, "MutationupdateWorkoutProgrampostAuth0FunctionMutationupdateWorkoutProgrampostAuth0FunctionAppSyncFunction848486DA": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "MutationupdateWorkoutProgrampostAuth0Function", @@ -1180,14 +1180,14 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/MutationupdateWorkoutProgrampostAuth0Function/MutationupdateWorkoutProgrampostAuth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/MutationupdateWorkoutProgrampostAuth0Function/MutationupdateWorkoutProgrampostAuth0Function.AppSyncFunction" } }, "MutationUpdateWorkoutProgramDataResolverFnMutationUpdateWorkoutProgramDataResolverFnAppSyncFunctionC239D12F": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { "Fn::GetAtt": [ @@ -1208,14 +1208,14 @@ "WorkoutProgramDataSource" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/MutationUpdateWorkoutProgramDataResolverFn/MutationUpdateWorkoutProgramDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/MutationUpdateWorkoutProgramDataResolverFn/MutationUpdateWorkoutProgramDataResolverFn.AppSyncFunction" } }, "UpdateWorkoutProgramResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "updateWorkoutProgram", "Kind": "PIPELINE", @@ -1253,7 +1253,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Mutation\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"updateWorkoutProgram\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"AMAZON_DYNAMODB\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n$util.qr($ctx.stash.put(\"tableName\", \"", { @@ -1292,7 +1292,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -1304,11 +1304,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -1318,14 +1318,14 @@ "TypeName": "Mutation" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/mutationUpdateWorkoutProgramResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/mutationUpdateWorkoutProgramResolver" } }, "MutationdeleteWorkoutProgramauth0FunctionMutationdeleteWorkoutProgramauth0FunctionAppSyncFunctionCF8FDD99": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { "Fn::GetAtt": [ @@ -1346,17 +1346,17 @@ "WorkoutProgramDataSource" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/MutationdeleteWorkoutProgramauth0Function/MutationdeleteWorkoutProgramauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/MutationdeleteWorkoutProgramauth0Function/MutationdeleteWorkoutProgramauth0Function.AppSyncFunction" } }, "MutationdeleteWorkoutProgrampostAuth0FunctionMutationdeleteWorkoutProgrampostAuth0FunctionAppSyncFunction1A56FB4E": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "MutationdeleteWorkoutProgrampostAuth0Function", @@ -1366,14 +1366,14 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/MutationdeleteWorkoutProgrampostAuth0Function/MutationdeleteWorkoutProgrampostAuth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/MutationdeleteWorkoutProgrampostAuth0Function/MutationdeleteWorkoutProgrampostAuth0Function.AppSyncFunction" } }, "MutationDeleteWorkoutProgramDataResolverFnMutationDeleteWorkoutProgramDataResolverFnAppSyncFunction57D3FA26": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { "Fn::GetAtt": [ @@ -1394,14 +1394,14 @@ "WorkoutProgramDataSource" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/MutationDeleteWorkoutProgramDataResolverFn/MutationDeleteWorkoutProgramDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/MutationDeleteWorkoutProgramDataResolverFn/MutationDeleteWorkoutProgramDataResolverFn.AppSyncFunction" } }, "DeleteWorkoutProgramResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "deleteWorkoutProgram", "Kind": "PIPELINE", @@ -1433,7 +1433,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Mutation\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"deleteWorkoutProgram\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"AMAZON_DYNAMODB\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n$util.qr($ctx.stash.put(\"tableName\", \"", { @@ -1472,7 +1472,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -1484,11 +1484,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -1498,17 +1498,17 @@ "TypeName": "Mutation" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/mutationDeleteWorkoutProgramResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/mutationDeleteWorkoutProgramResolver" } }, "SubscriptiononCreateWorkoutProgramauth0FunctionSubscriptiononCreateWorkoutProgramauth0FunctionAppSyncFunctionBA1C0577": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptiononCreateWorkoutProgramauth0Function", @@ -1518,17 +1518,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/SubscriptiononCreateWorkoutProgramauth0Function/SubscriptiononCreateWorkoutProgramauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/SubscriptiononCreateWorkoutProgramauth0Function/SubscriptiononCreateWorkoutProgramauth0Function.AppSyncFunction" } }, "SubscriptiononCreateWorkoutProgrampostAuth0FunctionSubscriptiononCreateWorkoutProgrampostAuth0FunctionAppSyncFunction1FBC8B34": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptiononCreateWorkoutProgrampostAuth0Function", @@ -1538,17 +1538,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/SubscriptiononCreateWorkoutProgrampostAuth0Function/SubscriptiononCreateWorkoutProgrampostAuth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/SubscriptiononCreateWorkoutProgrampostAuth0Function/SubscriptiononCreateWorkoutProgrampostAuth0Function.AppSyncFunction" } }, "SubscriptionOnCreateWorkoutProgramDataResolverFnSubscriptionOnCreateWorkoutProgramDataResolverFnAppSyncFunction4E344723": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptionOnCreateWorkoutProgramDataResolverFn", @@ -1560,14 +1560,14 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/SubscriptionOnCreateWorkoutProgramDataResolverFn/SubscriptionOnCreateWorkoutProgramDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/SubscriptionOnCreateWorkoutProgramDataResolverFn/SubscriptionOnCreateWorkoutProgramDataResolverFn.AppSyncFunction" } }, "SubscriptiononCreateWorkoutProgramResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "onCreateWorkoutProgram", "Kind": "PIPELINE", @@ -1599,7 +1599,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Subscription\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"onCreateWorkoutProgram\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"NONE\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"authRole\", \"arn:", { @@ -1611,7 +1611,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -1623,11 +1623,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -1637,17 +1637,17 @@ "TypeName": "Subscription" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/subscriptionOnCreateWorkoutProgramResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/subscriptionOnCreateWorkoutProgramResolver" } }, "SubscriptiononUpdateWorkoutProgramauth0FunctionSubscriptiononUpdateWorkoutProgramauth0FunctionAppSyncFunctionEC33DFA9": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptiononUpdateWorkoutProgramauth0Function", @@ -1657,17 +1657,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/SubscriptiononUpdateWorkoutProgramauth0Function/SubscriptiononUpdateWorkoutProgramauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/SubscriptiononUpdateWorkoutProgramauth0Function/SubscriptiononUpdateWorkoutProgramauth0Function.AppSyncFunction" } }, "SubscriptiononUpdateWorkoutProgrampostAuth0FunctionSubscriptiononUpdateWorkoutProgrampostAuth0FunctionAppSyncFunctionB64D3021": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptiononUpdateWorkoutProgrampostAuth0Function", @@ -1677,17 +1677,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/SubscriptiononUpdateWorkoutProgrampostAuth0Function/SubscriptiononUpdateWorkoutProgrampostAuth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/SubscriptiononUpdateWorkoutProgrampostAuth0Function/SubscriptiononUpdateWorkoutProgrampostAuth0Function.AppSyncFunction" } }, "SubscriptionOnUpdateWorkoutProgramDataResolverFnSubscriptionOnUpdateWorkoutProgramDataResolverFnAppSyncFunction09BC3352": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptionOnUpdateWorkoutProgramDataResolverFn", @@ -1699,14 +1699,14 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/SubscriptionOnUpdateWorkoutProgramDataResolverFn/SubscriptionOnUpdateWorkoutProgramDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/SubscriptionOnUpdateWorkoutProgramDataResolverFn/SubscriptionOnUpdateWorkoutProgramDataResolverFn.AppSyncFunction" } }, "SubscriptiononUpdateWorkoutProgramResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "onUpdateWorkoutProgram", "Kind": "PIPELINE", @@ -1738,7 +1738,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Subscription\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"onUpdateWorkoutProgram\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"NONE\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"authRole\", \"arn:", { @@ -1750,7 +1750,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -1762,11 +1762,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -1776,17 +1776,17 @@ "TypeName": "Subscription" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/subscriptionOnUpdateWorkoutProgramResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/subscriptionOnUpdateWorkoutProgramResolver" } }, "SubscriptiononDeleteWorkoutProgramauth0FunctionSubscriptiononDeleteWorkoutProgramauth0FunctionAppSyncFunction798D646D": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptiononDeleteWorkoutProgramauth0Function", @@ -1796,17 +1796,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/SubscriptiononDeleteWorkoutProgramauth0Function/SubscriptiononDeleteWorkoutProgramauth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/SubscriptiononDeleteWorkoutProgramauth0Function/SubscriptiononDeleteWorkoutProgramauth0Function.AppSyncFunction" } }, "SubscriptiononDeleteWorkoutProgrampostAuth0FunctionSubscriptiononDeleteWorkoutProgrampostAuth0FunctionAppSyncFunctionF1F4A2FC": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptiononDeleteWorkoutProgrampostAuth0Function", @@ -1816,17 +1816,17 @@ "ResponseMappingTemplate": "$util.toJson({})" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/SubscriptiononDeleteWorkoutProgrampostAuth0Function/SubscriptiononDeleteWorkoutProgrampostAuth0Function.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/SubscriptiononDeleteWorkoutProgrampostAuth0Function/SubscriptiononDeleteWorkoutProgrampostAuth0Function.AppSyncFunction" } }, "SubscriptionOnDeleteWorkoutProgramDataResolverFnSubscriptionOnDeleteWorkoutProgramDataResolverFnAppSyncFunction7AE965FB": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "SubscriptionOnDeleteWorkoutProgramDataResolverFn", @@ -1838,14 +1838,14 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/SubscriptionOnDeleteWorkoutProgramDataResolverFn/SubscriptionOnDeleteWorkoutProgramDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/SubscriptionOnDeleteWorkoutProgramDataResolverFn/SubscriptionOnDeleteWorkoutProgramDataResolverFn.AppSyncFunction" } }, "SubscriptiononDeleteWorkoutProgramResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "onDeleteWorkoutProgram", "Kind": "PIPELINE", @@ -1877,7 +1877,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"Subscription\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"onDeleteWorkoutProgram\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"NONE\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"authRole\", \"arn:", { @@ -1889,7 +1889,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -1901,11 +1901,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -1915,17 +1915,17 @@ "TypeName": "Subscription" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/subscriptionOnDeleteWorkoutProgramResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/subscriptionOnDeleteWorkoutProgramResolver" } }, "WorkoutProgramOwnerDataResolverFnWorkoutProgramOwnerDataResolverFnAppSyncFunction6C8EE914": { "Type": "AWS::AppSync::FunctionConfiguration", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "DataSourceName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name" }, "FunctionVersion": "2018-05-29", "Name": "WorkoutProgramOwnerDataResolverFn", @@ -1937,14 +1937,14 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/WorkoutProgramOwnerDataResolverFn/WorkoutProgramOwnerDataResolverFn.AppSyncFunction" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/WorkoutProgramOwnerDataResolverFn/WorkoutProgramOwnerDataResolverFn.AppSyncFunction" } }, "WorkoutProgramownerResolver": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "FieldName": "owner", "Kind": "PIPELINE", @@ -1964,7 +1964,7 @@ [ "$util.qr($ctx.stash.put(\"typeName\", \"WorkoutProgram\"))\n$util.qr($ctx.stash.put(\"fieldName\", \"owner\"))\n$util.qr($ctx.stash.put(\"conditions\", []))\n$util.qr($ctx.stash.put(\"metadata\", {}))\n$util.qr($ctx.stash.metadata.put(\"dataSourceType\", \"NONE\"))\n$util.qr($ctx.stash.metadata.put(\"apiId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"authRole\", \"arn:", { @@ -1976,7 +1976,7 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"unauthRole\", \"arn:", { @@ -1988,11 +1988,11 @@ }, ":assumed-role/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, "/CognitoIdentityCredentials\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" }, "\"))\n$util.qr($ctx.stash.put(\"adminRoles\", []))\n$util.toJson({})" ] @@ -2002,16 +2002,16 @@ "TypeName": "WorkoutProgram" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/workoutProgramOwnerResolver" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/workoutProgramOwnerResolver" } }, "CDKMetadata": { "Type": "AWS::CDK::Metadata", "Properties": { - "Analytics": "v2:deflate64:H4sIAAAAAAAA/1WOwW6DMAyGn6X34LV0h11Xqh63CXavTGJQCjgodlpViHefoFOnnX5/8if7zyF/3cF2gzfJrOuy3tcwfZAouUrRdqZo+AsjDqQUFygCO68+sClJQoqWTJFEw/CHDT9nvMl5cnfGIbgavrHu6YBCxuMAUxn6hx16mg2Oo9zZwnRc9WN9RMXqefI/nRLbpUQRuPFtirg2+v3cXynORvZnFCEVeF/CyB4OyXakS4F5cT+TjknNuq4UW8/tbDg4gou8XPMcdm+w3VzE+ywmVj8QlI/8AXh83Gc2AQAA" + "Analytics": "v2:deflate64:H4sIAAAAAAAA/1WOwW6DMAyGn6X31OtoD7uuoB63CXavTGJQCjgodlpViHefoFOnnX5/8if7zyA7HGC3wZtsreu2va9h+iBRcpWi7Uze8BdGHEgpLpAHdl59YFOShBQtmTyJhuEPG37OeJPz5O6MQ3A1fGPd0xGFjMcBpjL0Dzv0NBscR7mzhalY9aIuULF6nvxPp8R2KZEHbnybIq6Nfj/3V4qzkf0ZRUgF3pcwsodjsh3pUmBe3M+kY1KzrivF1nM7Gw6O4CIv1yyD1zfYbS7i/TYmVj8QlI/8AVayTVs2AQAA" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram/CDKMetadata/Default" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram/CDKMetadata/Default" }, "Condition": "CDKMetadataAvailable" } @@ -2031,7 +2031,7 @@ ":", [ { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "GetAtt:WorkoutProgramTable:StreamArn" ] @@ -2041,14 +2041,14 @@ }, "GetAttWorkoutProgramTableName": { "Description": "Your DynamoDB table name.", - "Value": "WorkoutProgram-2aikutabnvbuhlzmh4mvkg3eji-main", + "Value": "WorkoutProgram-jzwb5p2vcbd2ldlnlxokgjcjby-main", "Export": { "Name": { "Fn::Join": [ ":", [ { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" }, "GetAtt:WorkoutProgramTable:Name" ] diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-auth179371D7-T5KTLQB5RTR1.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.description.txt similarity index 52% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-auth179371D7-T5KTLQB5RTR1.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.description.txt index 813452072ac..72751282334 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-auth179371D7-T5KTLQB5RTR1.description.txt +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.description.txt @@ -1 +1 @@ -{"createdOn":"Linux","createdBy":"AmplifyPipelineDeploy","createdWith":"1.11.1","stackType":"auth-Cognito","metadata":{}} \ No newline at end of file +{"createdOn":"Linux","createdBy":"AmplifyPipelineDeploy","createdWith":"1.11.2","stackType":"auth-Cognito","metadata":{}} \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.outputs.json new file mode 100644 index 00000000000..6ce6d9f7248 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.outputs.json @@ -0,0 +1,38 @@ +[ + { + "OutputKey": "amplifyfitnesstrackergen2mainbranch400746baebauthadmingen2mainlambda19698385Arn", + "OutputValue": "arn:aws:lambda:us-east-1:123456789012:function:admin-gen2-main" + }, + { + "OutputKey": "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthUserPoolBF05A444Ref", + "OutputValue": "us-east-1_KGveHFLxc" + }, + { + "OutputKey": "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthAdminGroupRoleC37E0196Ref", + "OutputValue": "amplify-fitnesstracker-ge-amplifyAuthAdminGroupRole-jIdkeXSZarK4" + }, + { + "OutputKey": "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref", + "OutputValue": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3" + }, + { + "OutputKey": "amplifyfitnesstrackergen2mainbranch400746baebauthadmingen2mainlambda19698385Ref", + "OutputValue": "admin-gen2-main" + }, + { + "OutputKey": "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef", + "OutputValue": "amplify-fitnesstracker-ge-amplifyAuthunauthenticate-RtuRf8ygfomA" + }, + { + "OutputKey": "amplifyfitnesstrackergen2mainbranch400746baebauthfitnesstracker33f5545533f55455PreSignupgen2mainlambda2B17C7BARef", + "OutputValue": "fitnesstracker33f5545533f55455PreSignup-gen2-main" + }, + { + "OutputKey": "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthUserPoolAppClient1903AFDARef", + "OutputValue": "1o40oi80febsgsdamen2i1gnfd" + }, + { + "OutputKey": "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref", + "OutputValue": "amplify-fitnesstracker-ge-amplifyAuthauthenticatedU-fF1WwIKcoHtV" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-APIGatewayAuthStack-2YRT3JXB74ES.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.parameters.json similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-APIGatewayAuthStack-2YRT3JXB74ES.outputs.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.parameters.json diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-auth179371D7-T5KTLQB5RTR1.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.template.json similarity index 89% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-auth179371D7-T5KTLQB5RTR1.template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.template.json index 1b25badf7c6..b2a19c89b11 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-auth179371D7-T5KTLQB5RTR1.template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-auth179371D7-19RM9R3LOXG8I.template.json @@ -1,5 +1,5 @@ { - "Description": "{\"createdOn\":\"Linux\",\"createdBy\":\"AmplifyPipelineDeploy\",\"createdWith\":\"1.11.1\",\"stackType\":\"auth-Cognito\",\"metadata\":{}}", + "Description": "{\"createdOn\":\"Linux\",\"createdBy\":\"AmplifyPipelineDeploy\",\"createdWith\":\"1.11.2\",\"stackType\":\"auth-Cognito\",\"metadata\":{}}", "Resources": { "amplifyAuthUserPool4BA7F805": { "Type": "AWS::Cognito::UserPool", @@ -23,7 +23,7 @@ "LambdaConfig": { "PreSignUp": { "Fn::GetAtt": [ - "fitnesstracker6b0fc1196b0fc119PreSignupgen2mainlambda552B59F7", + "fitnesstracker33f5545533f55455PreSignupgen2mainlambda1F6BAF02", "Arn" ] } @@ -72,7 +72,7 @@ "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth/amplifyAuth/UserPool/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/UserPool/Resource" } }, "amplifyAuthUserPoolPreSignUpCognito55F45D8E": { @@ -81,7 +81,7 @@ "Action": "lambda:InvokeFunction", "FunctionName": { "Fn::GetAtt": [ - "fitnesstracker6b0fc1196b0fc119PreSignupgen2mainlambda552B59F7", + "fitnesstracker33f5545533f55455PreSignupgen2mainlambda1F6BAF02", "Arn" ] }, @@ -94,7 +94,7 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth/amplifyAuth/UserPool/PreSignUpCognito" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/UserPool/PreSignUpCognito" } }, "amplifyAuthUserPoolNativeAppClient79534448": { @@ -117,7 +117,7 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth/amplifyAuth/UserPool/NativeAppClient/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/UserPool/NativeAppClient/Resource" } }, "amplifyAuthUserPoolAppClient2626C6F8": { @@ -151,7 +151,7 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth/amplifyAuth/UserPoolAppClient/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/UserPoolAppClient/Resource" } }, "amplifyAuthIdentityPool3FDE84CC": { @@ -205,7 +205,7 @@ "SupportedLoginProviders": {} }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth/amplifyAuth/IdentityPool" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/IdentityPool" } }, "amplifyAuthauthenticatedUserRoleD8DA3689": { @@ -257,7 +257,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth/amplifyAuth/authenticatedUserRole/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/authenticatedUserRole/Resource" } }, "amplifyAuthunauthenticatedUserRole2B524D9E": { @@ -309,7 +309,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth/amplifyAuth/unauthenticatedUserRole/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/unauthenticatedUserRole/Resource" } }, "amplifyAuthIdentityPoolRoleAttachment045F17C8": { @@ -363,7 +363,7 @@ "amplifyAuthUserPoolAppClient2626C6F8" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth/amplifyAuth/IdentityPoolRoleAttachment" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/IdentityPoolRoleAttachment" } }, "amplifyAuthAdminGroupRole766878DC": { @@ -415,7 +415,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth/amplifyAuth/AdminGroupRole/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/AdminGroupRole/Resource" } }, "amplifyAuthAdminGroupCC42FF04": { @@ -434,10 +434,10 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth/amplifyAuth/AdminGroup" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/amplifyAuth/AdminGroup" } }, - "fitnesstracker6b0fc1196b0fc119PreSignupgen2mainlambdaServiceRole4099EE40": { + "fitnesstracker33f5545533f55455PreSignupgen2mainlambdaServiceRole713FCE90": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { @@ -481,7 +481,7 @@ }, { "Key": "amplify:friendly-name", - "Value": "fitnesstracker6b0fc1196b0fc119PreSignup-gen2-main" + "Value": "fitnesstracker33f5545533f55455PreSignup-gen2-main" }, { "Key": "created-by", @@ -490,10 +490,10 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth/fitnesstracker6b0fc1196b0fc119PreSignup-gen2-main-lambda/ServiceRole/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/fitnesstracker33f5545533f55455PreSignup-gen2-main-lambda/ServiceRole/Resource" } }, - "fitnesstracker6b0fc1196b0fc119PreSignupgen2mainlambda552B59F7": { + "fitnesstracker33f5545533f55455PreSignupgen2mainlambda1F6BAF02": { "Type": "AWS::Lambda::Function", "Properties": { "Architectures": [ @@ -503,7 +503,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "6a32c10425f870bd089bcc5e1fa62637d7ec836e4ff6843940c7c0ca1b22e010.zip" + "S3Key": "9f9c01e67674891c2af7783b0075317068ffc260976375cef1a2fb293d54b4f7.zip" }, "Environment": { "Variables": { @@ -518,12 +518,12 @@ "EphemeralStorage": { "Size": 512 }, - "FunctionName": "fitnesstracker6b0fc1196b0fc119PreSignup-gen2-main", + "FunctionName": "fitnesstracker33f5545533f55455PreSignup-gen2-main", "Handler": "index.handler", "MemorySize": 128, "Role": { "Fn::GetAtt": [ - "fitnesstracker6b0fc1196b0fc119PreSignupgen2mainlambdaServiceRole4099EE40", + "fitnesstracker33f5545533f55455PreSignupgen2mainlambdaServiceRole713FCE90", "Arn" ] }, @@ -543,7 +543,7 @@ }, { "Key": "amplify:friendly-name", - "Value": "fitnesstracker6b0fc1196b0fc119PreSignup-gen2-main" + "Value": "fitnesstracker33f5545533f55455PreSignup-gen2-main" }, { "Key": "created-by", @@ -553,11 +553,11 @@ "Timeout": 25 }, "DependsOn": [ - "fitnesstracker6b0fc1196b0fc119PreSignupgen2mainlambdaServiceRole4099EE40" + "fitnesstracker33f5545533f55455PreSignupgen2mainlambdaServiceRole713FCE90" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth/fitnesstracker6b0fc1196b0fc119PreSignup-gen2-main-lambda/Resource", - "aws:asset:path": "asset.6a32c10425f870bd089bcc5e1fa62637d7ec836e4ff6843940c7c0ca1b22e010", + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/fitnesstracker33f5545533f55455PreSignup-gen2-main-lambda/Resource", + "aws:asset:path": "asset.9f9c01e67674891c2af7783b0075317068ffc260976375cef1a2fb293d54b4f7", "aws:asset:is-bundled": true, "aws:asset:property": "Code" } @@ -565,7 +565,7 @@ "AMPLIFYAUTHUSERPOOLIDParameterCC466CA3": { "Type": "AWS::SSM::Parameter", "Properties": { - "Name": "/amplify/resource_reference/fitnesstracker/gen2main-branch-f6c5a5beb3/AMPLIFY_AUTH_USERPOOL_ID", + "Name": "/amplify/resource_reference/fitnesstracker/gen2main-branch-400746baeb/AMPLIFY_AUTH_USERPOOL_ID", "Tags": { "amplify:app-id": "fitnesstracker", "amplify:branch-name": "gen2-main", @@ -578,7 +578,7 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth/AMPLIFY_AUTH_USERPOOL_IDParameter/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/AMPLIFY_AUTH_USERPOOL_IDParameter/Resource" } }, "admingen2mainlambdaServiceRole439B1792": { @@ -634,7 +634,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth/admin-gen2-main-lambda/ServiceRole/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/admin-gen2-main-lambda/ServiceRole/Resource" } }, "admingen2mainlambdaServiceRoleDefaultPolicy0F640A9C": { @@ -661,7 +661,7 @@ { "Ref": "AWS::AccountId" }, - ":parameter/amplify/resource_reference/fitnesstracker/gen2main-branch-f6c5a5beb3/AMPLIFY_AUTH_USERPOOL_ID" + ":parameter/amplify/resource_reference/fitnesstracker/gen2main-branch-400746baeb/AMPLIFY_AUTH_USERPOOL_ID" ] ] } @@ -677,7 +677,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth/admin-gen2-main-lambda/ServiceRole/DefaultPolicy/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/admin-gen2-main-lambda/ServiceRole/DefaultPolicy/Resource" } }, "admingen2mainlambdaECF7211C": { @@ -690,15 +690,15 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "f45cbae1f6bc1783cca1ba23dbdd65d02718c1e52af14f40058b0e620d368ca9.zip" + "S3Key": "b92a661741ad73057aa08e5c49f164a180c0bb1ad1d4be9740e7154f2b916a62.zip" }, "Environment": { "Variables": { "ENV": "gen2-main", "REGION": "us-east-1", - "AMPLIFY_SSM_ENV_CONFIG": "{\"AMPLIFY_AUTH_USERPOOL_ID\":{\"path\":\"/amplify/resource_reference/fitnesstracker/gen2main-branch-f6c5a5beb3/AMPLIFY_AUTH_USERPOOL_ID\"}}", + "AMPLIFY_SSM_ENV_CONFIG": "{\"AMPLIFY_AUTH_USERPOOL_ID\":{\"path\":\"/amplify/resource_reference/fitnesstracker/gen2main-branch-400746baeb/AMPLIFY_AUTH_USERPOOL_ID\"}}", "AMPLIFY_AUTH_USERPOOL_ID": "", - "AUTH_FITNESSTRACKER6B0FC1196B0FC119_USERPOOLID": { + "AUTH_FITNESSTRACKER33F5545533F55455_USERPOOLID": { "Ref": "amplifyAuthUserPool4BA7F805" } } @@ -744,8 +744,8 @@ "admingen2mainlambdaServiceRole439B1792" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth/admin-gen2-main-lambda/Resource", - "aws:asset:path": "asset.f45cbae1f6bc1783cca1ba23dbdd65d02718c1e52af14f40058b0e620d368ca9", + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/admin-gen2-main-lambda/Resource", + "aws:asset:path": "asset.b92a661741ad73057aa08e5c49f164a180c0bb1ad1d4be9740e7154f2b916a62", "aws:asset:is-bundled": true, "aws:asset:property": "Code" } @@ -776,7 +776,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth/userpoolAccess1/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess1/Resource" } }, "userpoolAccess268F187DB": { @@ -805,7 +805,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth/userpoolAccess2/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess2/Resource" } }, "userpoolAccess3956C62F8": { @@ -834,7 +834,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth/userpoolAccess3/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess3/Resource" } }, "userpoolAccess4A84025C3": { @@ -863,7 +863,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth/userpoolAccess4/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess4/Resource" } }, "userpoolAccess585E2FB32": { @@ -892,7 +892,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth/userpoolAccess5/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess5/Resource" } }, "userpoolAccess600DA4CB0": { @@ -921,7 +921,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth/userpoolAccess6/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess6/Resource" } }, "userpoolAccess76F9C91C1": { @@ -950,16 +950,16 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth/userpoolAccess7/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/userpoolAccess7/Resource" } }, "CDKMetadata": { "Type": "AWS::CDK::Metadata", "Properties": { - "Analytics": "v2:deflate64:H4sIAAAAAAAA/12NzW7CQAyEn4X74kLooVeI1KoXFBH1HC0bkzrZn2rtFKFV3r3aoLSop5mxPZ8LKJ63sFnpK69NO6wtnSEdkQXbWrQZlL5yk0zoPEmA9MEYqxCsKi/+1y+mtIReHld/k/cWvZDclvJjPgWLexFtPt2//lsM49ekrHbnVkMqL77C6IiZgs93r6M3QsFPirSDlEF5PGsVLJlbjne3YBofWuwZjrMsBMW7RjOjMOyzKN7BYTQDykEzKmYHqZZIvqt01A4F44xewjSpuVeL7sh3k8pfoOen76KA7QtsVj0TrePohRzC6a4/ExlBjn4BAAA=" + "Analytics": "v2:deflate64:H4sIAAAAAAAA/12NzW7CQAyEn4X74tLAoVeI1KoXFBH1HC0bkzrZn2rtFKFV3r3aoLSop5mxPZ8LKHY72Kz0ldemHdaWzpCOyIJtLdoMSl+5SSZ0niRA+mCMVQhWlRf/6xdTWkIvj6u/yXuLXkhuS/kxn4LFvYg2n+5f/y2G8WtSVrtzqyGVF19hdMRMwee719EboeAnRdpByqA8nrUKlswtx7tbMI0PLfYMx1kWguJto5lRGPZZFG/hMJoB5aAZFbODVEsk31U6aoeCcUYvYZrU3KtFd+S7SeUv0PPTd1HA8wtsVj0TrePohRzC6a4/caZnM34BAAA=" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth/CDKMetadata/Default" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth/CDKMetadata/Default" }, "Condition": "CDKMetadataAvailable" } @@ -1231,42 +1231,42 @@ } }, "Outputs": { - "amplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthUserPool82133007Ref": { + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthUserPoolBF05A444Ref": { "Value": { "Ref": "amplifyAuthUserPool4BA7F805" } }, - "amplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthUserPoolAppClient1C98798ERef": { + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthUserPoolAppClient1903AFDARef": { "Value": { "Ref": "amplifyAuthUserPoolAppClient2626C6F8" } }, - "amplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef": { + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref": { "Value": { "Ref": "amplifyAuthIdentityPool3FDE84CC" } }, - "amplifyfitnesstrackergen2mainbranchf6c5a5beb3authfitnesstracker6b0fc1196b0fc119PreSignupgen2mainlambda8F8CF17DRef": { + "amplifyfitnesstrackergen2mainbranch400746baebauthfitnesstracker33f5545533f55455PreSignupgen2mainlambda2B17C7BARef": { "Value": { - "Ref": "fitnesstracker6b0fc1196b0fc119PreSignupgen2mainlambda552B59F7" + "Ref": "fitnesstracker33f5545533f55455PreSignupgen2mainlambda1F6BAF02" } }, - "amplifyfitnesstrackergen2mainbranchf6c5a5beb3authadmingen2mainlambda2E47DE6ARef": { + "amplifyfitnesstrackergen2mainbranch400746baebauthadmingen2mainlambda19698385Ref": { "Value": { "Ref": "admingen2mainlambdaECF7211C" } }, - "amplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref": { + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref": { "Value": { "Ref": "amplifyAuthauthenticatedUserRoleD8DA3689" } }, - "amplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref": { + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef": { "Value": { "Ref": "amplifyAuthunauthenticatedUserRole2B524D9E" } }, - "amplifyfitnesstrackergen2mainbranchf6c5a5beb3authadmingen2mainlambda2E47DE6AArn": { + "amplifyfitnesstrackergen2mainbranch400746baebauthadmingen2mainlambda19698385Arn": { "Value": { "Fn::GetAtt": [ "admingen2mainlambdaECF7211C", @@ -1274,7 +1274,7 @@ ] } }, - "amplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthAdminGroupRole5A967615Ref": { + "amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthAdminGroupRoleC37E0196Ref": { "Value": { "Ref": "amplifyAuthAdminGroupRole766878DC" } diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-data7552DF31-FY14PTEHE5GQ.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-data7552DF31-1601DAFBL31V0.description.txt similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-data7552DF31-FY14PTEHE5GQ.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-data7552DF31-1601DAFBL31V0.description.txt diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-data7552DF31-1601DAFBL31V0.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-data7552DF31-1601DAFBL31V0.outputs.json new file mode 100644 index 00000000000..3083780a1d2 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-data7552DF31-1601DAFBL31V0.outputs.json @@ -0,0 +1,26 @@ +[ + { + "OutputKey": "amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId", + "OutputValue": "jrmmxaml4ndpxmx4pmyk3bgv7u" + }, + { + "OutputKey": "amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIDefaultApiKey7DAA10FCApiKey", + "OutputValue": "da2-s7g7rnzffjfsvp6a5as4utznce" + }, + { + "OutputKey": "amplifyfitnesstrackergen2mainbranch400746baebdatalognutritiongen2mainlambda08A76FE8Arn", + "OutputValue": "arn:aws:lambda:us-east-1:123456789012:function:lognutrition-gen2-main" + }, + { + "OutputKey": "amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BGraphQLUrl", + "OutputValue": "https://lpsucva2qjdofmkpzenwokjsue.appsync-api.us-east-1.amazonaws.com/graphql" + }, + { + "OutputKey": "amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyCodegenAssetsAmplifyCodegenAssetsDeploymentCustomResource1536MiB0917740FDestinationBucketArn", + "OutputValue": "arn:aws:s3:::amplify-fitnesstracker-ge-amplifydataamplifycodege-qcmnmg6hhy5m" + }, + { + "OutputKey": "amplifyfitnesstrackergen2mainbranch400746baebdatalognutritiongen2mainlambda08A76FE8Ref", + "OutputValue": "lognutrition-gen2-main" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-data7552DF31-1601DAFBL31V0.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-data7552DF31-1601DAFBL31V0.parameters.json new file mode 100644 index 00000000000..6ecdf1c9579 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-data7552DF31-1601DAFBL31V0.parameters.json @@ -0,0 +1,38 @@ +[ + { + "ParameterKey": "DynamoDBModelTableReadIOPS", + "ParameterValue": "5" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef", + "ParameterValue": "amplify-fitnesstracker-ge-amplifyAuthunauthenticate-RtuRf8ygfomA" + }, + { + "ParameterKey": "DynamoDBEnableServerSideEncryption", + "ParameterValue": "true" + }, + { + "ParameterKey": "DynamoDBEnablePointInTimeRecovery", + "ParameterValue": "false" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref", + "ParameterValue": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3" + }, + { + "ParameterKey": "DynamoDBBillingMode", + "ParameterValue": "PAY_PER_REQUEST" + }, + { + "ParameterKey": "DynamoDBModelTableWriteIOPS", + "ParameterValue": "5" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthUserPoolBF05A444Ref", + "ParameterValue": "us-east-1_KGveHFLxc" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref", + "ParameterValue": "amplify-fitnesstracker-ge-amplifyAuthauthenticatedU-fF1WwIKcoHtV" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-data7552DF31-FY14PTEHE5GQ.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-data7552DF31-1601DAFBL31V0.template.json similarity index 79% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-data7552DF31-FY14PTEHE5GQ.template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-data7552DF31-1601DAFBL31V0.template.json index 39c737dc172..ac561915d3d 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-data7552DF31-FY14PTEHE5GQ.template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-data7552DF31-1601DAFBL31V0.template.json @@ -39,12 +39,12 @@ }, "DefaultAction": "ALLOW", "UserPoolId": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthUserPool82133007Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthUserPoolBF05A444Ref" } } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/GraphQLAPI/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/GraphQLAPI/Resource" } }, "amplifyDataGraphQLAPITransformerSchemaFF50A789": { @@ -61,7 +61,7 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/GraphQLAPI/TransformerSchema" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/GraphQLAPI/TransformerSchema" } }, "amplifyDataGraphQLAPIDefaultApiKey1C8ED374": { @@ -74,10 +74,10 @@ ] }, "Description": "graphql", - "Expires": 1773522369 + "Expires": 1774928171 }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/GraphQLAPI/DefaultApiKey" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/GraphQLAPI/DefaultApiKey" } }, "amplifyDataGraphQLAPINONEDS684BF699": { @@ -94,14 +94,14 @@ "Type": "NONE" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/GraphQLAPI/NONE_DS/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/GraphQLAPI/NONE_DS/Resource" } }, "amplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResource86290833": { "Type": "AWS::CloudFormation::Stack", "Properties": { "Parameters": { - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId": { "Fn::GetAtt": [ "amplifyDataGraphQLAPI42A6FA33", "ApiId" @@ -146,7 +146,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "/51e1b566c1eddfef856b0c956bcc5b30aa4b16208f076a0ff02bff63a3ee4809.json" + "/f37420166f9ac08186a3cdad4004870869529236abd5f4fbf5ce02519bd0d2d9.json" ] ] } @@ -154,8 +154,8 @@ "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/AmplifyTableManager.NestedStack/AmplifyTableManager.NestedStackResource", - "aws:asset:path": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManager431A2250.nested.template.json", + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/AmplifyTableManager.NestedStack/AmplifyTableManager.NestedStackResource", + "aws:asset:path": "amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManager8867D646.nested.template.json", "aws:asset:property": "TemplateURL" } }, @@ -178,32 +178,32 @@ "DynamoDBEnableServerSideEncryption": { "Ref": "DynamoDBEnableServerSideEncryption" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResource9E5C3FE8Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerTableMana3F678B61": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResourceE84470E2Outputsamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerTableMaE24831DE": { "Fn::GetAtt": [ "amplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResource86290833", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerTableManagerCustomProviderframeworkonEvent6EDC1D70Arn" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerTableManagerCustomProviderframeworkonEvent4D2D0CF9Arn" ] }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId": { "Fn::GetAtt": [ "amplifyDataGraphQLAPI42A6FA33", "ApiId" ] }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name": { "Fn::GetAtt": [ "amplifyDataGraphQLAPINONEDS684BF699", "Name" ] }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref": { + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef": { + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref": { + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" } }, "Tags": [ @@ -244,7 +244,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "/c45168ea7376178271bfb19561c5170ad2de6c10b71a705e86603c77aa1bbae6.json" + "/f49170eb7c9d78b1e4c6b9e7c434a75f6cb5412d1ebd22ebf34ddfdb7a0b1763.json" ] ] } @@ -255,8 +255,8 @@ "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/WorkoutProgram.NestedStack/WorkoutProgram.NestedStackResource", - "aws:asset:path": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataWorkoutProgramC83B24CA.nested.template.json", + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/WorkoutProgram.NestedStack/WorkoutProgram.NestedStackResource", + "aws:asset:path": "amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataWorkoutProgramDF6E3FC5.nested.template.json", "aws:asset:property": "TemplateURL" } }, @@ -279,32 +279,32 @@ "DynamoDBEnableServerSideEncryption": { "Ref": "DynamoDBEnableServerSideEncryption" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResource9E5C3FE8Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerTableMana3F678B61": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResourceE84470E2Outputsamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerTableMaE24831DE": { "Fn::GetAtt": [ "amplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResource86290833", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerTableManagerCustomProviderframeworkonEvent6EDC1D70Arn" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerTableManagerCustomProviderframeworkonEvent4D2D0CF9Arn" ] }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId": { "Fn::GetAtt": [ "amplifyDataGraphQLAPI42A6FA33", "ApiId" ] }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name": { "Fn::GetAtt": [ "amplifyDataGraphQLAPINONEDS684BF699", "Name" ] }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref": { + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef": { + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref": { + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" } }, "Tags": [ @@ -345,7 +345,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "/a53b312213fbb1827508ffd012a27dc746f1b05e1d3b1bedafecaabdd669ab3b.json" + "/654e5882a5d4df0c80b2afc1f525ea4f0b5f32771060945aead2e22641a51060.json" ] ] } @@ -356,8 +356,8 @@ "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Exercise.NestedStack/Exercise.NestedStackResource", - "aws:asset:path": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataExercise19714B23.nested.template.json", + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Exercise.NestedStack/Exercise.NestedStackResource", + "aws:asset:path": "amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataExercise2AF6D082.nested.template.json", "aws:asset:property": "TemplateURL" } }, @@ -380,32 +380,32 @@ "DynamoDBEnableServerSideEncryption": { "Ref": "DynamoDBEnableServerSideEncryption" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResource9E5C3FE8Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerTableMana3F678B61": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResourceE84470E2Outputsamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerTableMaE24831DE": { "Fn::GetAtt": [ "amplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResource86290833", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerTableManagerCustomProviderframeworkonEvent6EDC1D70Arn" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyTableManagerTableManagerCustomProviderframeworkonEvent4D2D0CF9Arn" ] }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId": { "Fn::GetAtt": [ "amplifyDataGraphQLAPI42A6FA33", "ApiId" ] }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name": { "Fn::GetAtt": [ "amplifyDataGraphQLAPINONEDS684BF699", "Name" ] }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref": { + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef": { + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref": { + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" } }, "Tags": [ @@ -446,7 +446,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "/ef31568ac34d85a733913a1b8a780b8db342e33302334dc9e3409b797c66550c.json" + "/90bc7c76efd60f7749effd654020bce258df5515192150cb2cffb73afb4b121a.json" ] ] } @@ -457,8 +457,8 @@ "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/Meal.NestedStack/Meal.NestedStackResource", - "aws:asset:path": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataMealB9714D72.nested.template.json", + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/Meal.NestedStack/Meal.NestedStackResource", + "aws:asset:path": "amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataMeal183E05A4.nested.template.json", "aws:asset:property": "TemplateURL" } }, @@ -466,38 +466,38 @@ "Type": "AWS::CloudFormation::Stack", "Properties": { "Parameters": { - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId": { "Fn::GetAtt": [ "amplifyDataGraphQLAPI42A6FA33", "ApiId" ] }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPINONEDSD2CC3624Name": { "Fn::GetAtt": [ "amplifyDataGraphQLAPINONEDS684BF699", "Name" ] }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataExerciseNestedStackExerciseNestedStackResource558D738COutputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataExerciseExerciseDataSource6949CF09Name": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataExerciseNestedStackExerciseNestedStackResourceA766B8C6Outputsamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataExerciseExerciseDataSourceA366FC05Name": { "Fn::GetAtt": [ "amplifyDataExerciseNestedStackExerciseNestedStackResource73533B79", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataExerciseExerciseDataSource6949CF09Name" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataExerciseExerciseDataSourceA366FC05Name" ] }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataExerciseNestedStackExerciseNestedStackResource558D738COutputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataExerciseExerciseTable318B1DEBTableArn": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataExerciseNestedStackExerciseNestedStackResourceA766B8C6Outputsamplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataExerciseExerciseTableA7BD0631TableArn": { "Fn::GetAtt": [ "amplifyDataExerciseNestedStackExerciseNestedStackResource73533B79", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataExerciseExerciseTable318B1DEBTableArn" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataExerciseExerciseTableA7BD0631TableArn" ] }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref": { + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef": { + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref": { + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" } }, "Tags": [ @@ -538,7 +538,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "/ae3c588bb7e63507d1e7939f5593ec23500867f74096f6bddc37548350d47191.json" + "/453d993ef8245185b0fdbb2c736c1d61b4ab7885cfa293984e7c652e2006f0d4.json" ] ] } @@ -550,8 +550,8 @@ "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/ConnectionStack.NestedStack/ConnectionStack.NestedStackResource", - "aws:asset:path": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataConnectionStack40486637.nested.template.json", + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/ConnectionStack.NestedStack/ConnectionStack.NestedStackResource", + "aws:asset:path": "amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataConnectionStackBA42D0E4.nested.template.json", "aws:asset:property": "TemplateURL" } }, @@ -607,7 +607,7 @@ "Value": "true" }, { - "Key": "aws-cdk:cr-owned:8b89f787", + "Key": "aws-cdk:cr-owned:85b13048", "Value": "true" }, { @@ -619,7 +619,7 @@ "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/AmplifyCodegenAssets/AmplifyCodegenAssetsBucket/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/AmplifyCodegenAssets/AmplifyCodegenAssetsBucket/Resource" } }, "amplifyDataAmplifyCodegenAssetsAmplifyCodegenAssetsBucketPolicyF1C1C548": { @@ -674,7 +674,7 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/AmplifyCodegenAssets/AmplifyCodegenAssetsBucket/Policy/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/AmplifyCodegenAssets/AmplifyCodegenAssetsBucket/Policy/Resource" } }, "amplifyDataAmplifyCodegenAssetsAmplifyCodegenAssetsBucketAutoDeleteObjectsCustomResource437F26F5": { @@ -696,7 +696,7 @@ "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/AmplifyCodegenAssets/AmplifyCodegenAssetsBucket/AutoDeleteObjectsCustomResource/Default" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/AmplifyCodegenAssets/AmplifyCodegenAssetsBucket/AutoDeleteObjectsCustomResource/Default" } }, "amplifyDataAmplifyCodegenAssetsAmplifyCodegenAssetsDeploymentAwsCliLayerE322F905": { @@ -711,7 +711,7 @@ "Description": "/opt/awscli/aws" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/AmplifyCodegenAssets/AmplifyCodegenAssetsDeployment/AwsCliLayer/Resource", + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/AmplifyCodegenAssets/AmplifyCodegenAssetsDeployment/AwsCliLayer/Resource", "aws:asset:path": "asset.0cfdecad2260a3a84ad0c2d08a77e03c9d25e26c7b52f26b1e1faf97aef92f18.zip", "aws:asset:is-bundled": false, "aws:asset:property": "Content" @@ -753,7 +753,7 @@ "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/amplifyData/AmplifyCodegenAssets/AmplifyCodegenAssetsDeployment/CustomResource-1536MiB/Default" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/amplifyData/AmplifyCodegenAssets/AmplifyCodegenAssetsDeployment/CustomResource-1536MiB/Default" } }, "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092": { @@ -778,7 +778,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role" } }, "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F": { @@ -817,7 +817,7 @@ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler", + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler", "aws:asset:path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", "aws:asset:property": "Code" } @@ -871,7 +871,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/Custom::CDKBucketDeployment8693BB64968944B69AAFB0CC9EB8756C1536MiB/ServiceRole/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/Custom::CDKBucketDeployment8693BB64968944B69AAFB0CC9EB8756C1536MiB/ServiceRole/Resource" } }, "CustomCDKBucketDeployment8693BB64968944B69AAFB0CC9EB8756C1536MiBServiceRoleDefaultPolicyFF1C635B": { @@ -1005,7 +1005,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/Custom::CDKBucketDeployment8693BB64968944B69AAFB0CC9EB8756C1536MiB/ServiceRole/DefaultPolicy/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/Custom::CDKBucketDeployment8693BB64968944B69AAFB0CC9EB8756C1536MiB/ServiceRole/DefaultPolicy/Resource" } }, "CustomCDKBucketDeployment8693BB64968944B69AAFB0CC9EB8756C1536MiBC5D8AB21": { @@ -1061,7 +1061,7 @@ "CustomCDKBucketDeployment8693BB64968944B69AAFB0CC9EB8756C1536MiBServiceRoleA41FC8C2" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/Custom::CDKBucketDeployment8693BB64968944B69AAFB0CC9EB8756C1536MiB/Resource", + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/Custom::CDKBucketDeployment8693BB64968944B69AAFB0CC9EB8756C1536MiB/Resource", "aws:asset:path": "asset.3423a042b818e31c1e34a19d6689ab2e5f9b70fcbe9e71df66f241b20a200bd9", "aws:asset:is-bundled": false, "aws:asset:property": "Code" @@ -1088,7 +1088,7 @@ "Value": "true" }, { - "Key": "aws-cdk:cr-owned:5e69a07d", + "Key": "aws-cdk:cr-owned:eadf0ce8", "Value": "true" }, { @@ -1100,7 +1100,7 @@ "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/modelIntrospectionSchemaBucket/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/modelIntrospectionSchemaBucket/Resource" } }, "modelIntrospectionSchemaBucketPolicy4DAB0D15": { @@ -1189,7 +1189,7 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/modelIntrospectionSchemaBucket/Policy/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/modelIntrospectionSchemaBucket/Policy/Resource" } }, "modelIntrospectionSchemaBucketAutoDeleteObjectsCustomResourceFE57309F": { @@ -1211,7 +1211,7 @@ "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/modelIntrospectionSchemaBucket/AutoDeleteObjectsCustomResource/Default" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/modelIntrospectionSchemaBucket/AutoDeleteObjectsCustomResource/Default" } }, "modelIntrospectionSchemaBucketDeploymentAwsCliLayer13C432F7": { @@ -1226,7 +1226,7 @@ "Description": "/opt/awscli/aws" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/modelIntrospectionSchemaBucketDeployment/AwsCliLayer/Resource", + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/modelIntrospectionSchemaBucketDeployment/AwsCliLayer/Resource", "aws:asset:path": "asset.0cfdecad2260a3a84ad0c2d08a77e03c9d25e26c7b52f26b1e1faf97aef92f18.zip", "aws:asset:is-bundled": false, "aws:asset:property": "Content" @@ -1262,13 +1262,13 @@ "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/modelIntrospectionSchemaBucketDeployment/CustomResource-1536MiB/Default" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/modelIntrospectionSchemaBucketDeployment/CustomResource-1536MiB/Default" } }, "AMPLIFYDATAGRAPHQLENDPOINTParameter1C2CBB16": { "Type": "AWS::SSM::Parameter", "Properties": { - "Name": "/amplify/resource_reference/fitnesstracker/gen2main-branch-f6c5a5beb3/AMPLIFY_DATA_GRAPHQL_ENDPOINT", + "Name": "/amplify/resource_reference/fitnesstracker/gen2main-branch-400746baeb/AMPLIFY_DATA_GRAPHQL_ENDPOINT", "Tags": { "amplify:app-id": "fitnesstracker", "amplify:branch-name": "gen2-main", @@ -1284,13 +1284,13 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/AMPLIFY_DATA_GRAPHQL_ENDPOINTParameter/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/AMPLIFY_DATA_GRAPHQL_ENDPOINTParameter/Resource" } }, "AMPLIFYDATAMODELINTROSPECTIONSCHEMABUCKETNAMEParameter47BF4F44": { "Type": "AWS::SSM::Parameter", "Properties": { - "Name": "/amplify/resource_reference/fitnesstracker/gen2main-branch-f6c5a5beb3/AMPLIFY_DATA_MODEL_INTROSPECTION_SCHEMA_BUCKET_NAME", + "Name": "/amplify/resource_reference/fitnesstracker/gen2main-branch-400746baeb/AMPLIFY_DATA_MODEL_INTROSPECTION_SCHEMA_BUCKET_NAME", "Tags": { "amplify:app-id": "fitnesstracker", "amplify:branch-name": "gen2-main", @@ -1303,13 +1303,13 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/AMPLIFY_DATA_MODEL_INTROSPECTION_SCHEMA_BUCKET_NAMEParameter/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/AMPLIFY_DATA_MODEL_INTROSPECTION_SCHEMA_BUCKET_NAMEParameter/Resource" } }, "AMPLIFYDATAMODELINTROSPECTIONSCHEMAKEYParameterB6AEAE8A": { "Type": "AWS::SSM::Parameter", "Properties": { - "Name": "/amplify/resource_reference/fitnesstracker/gen2main-branch-f6c5a5beb3/AMPLIFY_DATA_MODEL_INTROSPECTION_SCHEMA_KEY", + "Name": "/amplify/resource_reference/fitnesstracker/gen2main-branch-400746baeb/AMPLIFY_DATA_MODEL_INTROSPECTION_SCHEMA_KEY", "Tags": { "amplify:app-id": "fitnesstracker", "amplify:branch-name": "gen2-main", @@ -1320,13 +1320,13 @@ "Value": "modelIntrospectionSchema.json" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/AMPLIFY_DATA_MODEL_INTROSPECTION_SCHEMA_KEYParameter/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/AMPLIFY_DATA_MODEL_INTROSPECTION_SCHEMA_KEYParameter/Resource" } }, "AMPLIFYDATADEFAULTNAMEParameterE7C23CC4": { "Type": "AWS::SSM::Parameter", "Properties": { - "Name": "/amplify/resource_reference/fitnesstracker/gen2main-branch-f6c5a5beb3/AMPLIFY_DATA_DEFAULT_NAME", + "Name": "/amplify/resource_reference/fitnesstracker/gen2main-branch-400746baeb/AMPLIFY_DATA_DEFAULT_NAME", "Tags": { "amplify:app-id": "fitnesstracker", "amplify:branch-name": "gen2-main", @@ -1337,7 +1337,7 @@ "Value": "amplifyData" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/AMPLIFY_DATA_DEFAULT_NAMEParameter/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/AMPLIFY_DATA_DEFAULT_NAMEParameter/Resource" } }, "lognutritiongen2mainlambdaServiceRoleEF64897B": { @@ -1393,7 +1393,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/lognutrition-gen2-main-lambda/ServiceRole/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/lognutrition-gen2-main-lambda/ServiceRole/Resource" } }, "lognutritiongen2mainlambdaServiceRoleDefaultPolicy710D0C37": { @@ -1421,12 +1421,14 @@ "dynamodb:PartiQLDelete" ], "Effect": "Allow", - "Resource": { - "Fn::GetAtt": [ - "amplifyDataMealNestedStackMealNestedStackResourceDA3F2B9A", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataMealMealTableFB0A2E92TableArn" - ] - } + "Resource": [ + { + "Fn::GetAtt": [ + "amplifyDataMealNestedStackMealNestedStackResourceDA3F2B9A", + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataMealMealTable5D540888TableArn" + ] + } + ] } ], "Version": "2012-10-17" @@ -1439,7 +1441,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/lognutrition-gen2-main-lambda/ServiceRole/DefaultPolicy/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/lognutrition-gen2-main-lambda/ServiceRole/DefaultPolicy/Resource" } }, "lognutritiongen2mainlambda9BD8C969": { @@ -1452,7 +1454,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "91d03de9e89259cdf1c49e12563840635aabe14d176a5bbbae382bf753f0f415.zip" + "S3Key": "2bcd86cf1eee34f16acb031224a530896ecfe84b4004ec66912a8281b73f0356.zip" }, "Environment": { "Variables": { @@ -1468,7 +1470,7 @@ "API_FITNESSTRACKER_MEALTABLE_ARN": { "Fn::GetAtt": [ "amplifyDataMealNestedStackMealNestedStackResourceDA3F2B9A", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataMealMealTableFB0A2E92TableArn" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataMealMealTable5D540888TableArn" ] }, "API_FITNESSTRACKER_MEALTABLE_NAME": { @@ -1486,7 +1488,7 @@ { "Fn::GetAtt": [ "amplifyDataMealNestedStackMealNestedStackResourceDA3F2B9A", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataMealMealTableFB0A2E92TableArn" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataMealMealTable5D540888TableArn" ] } ] @@ -1541,8 +1543,8 @@ "lognutritiongen2mainlambdaServiceRoleEF64897B" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/lognutrition-gen2-main-lambda/Resource", - "aws:asset:path": "asset.91d03de9e89259cdf1c49e12563840635aabe14d176a5bbbae382bf753f0f415", + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/lognutrition-gen2-main-lambda/Resource", + "aws:asset:path": "asset.2bcd86cf1eee34f16acb031224a530896ecfe84b4004ec66912a8281b73f0356", "aws:asset:is-bundled": true, "aws:asset:property": "Code" } @@ -1550,10 +1552,10 @@ "CDKMetadata": { "Type": "AWS::CDK::Metadata", "Properties": { - "Analytics": "v2:deflate64:H4sIAAAAAAAA/11RS2+DMAz+Lb2nWct22JVSbYdVVVekXZEbDE2bB4tDEUL89ynQwrbT97Bi+4sjHr2s+WoBDS1Ffl0qeeLdHsljnnoQV3ZEsrUTyKChrIOqotYI3r07qM7fKq7kBghZUpjB+dzFlfylUnFGDcGIK/mBLdtbg1vwkI5Nk8LMqmf0zLtNLa7oQ+XORjhYJUU723c9irBDeJ11OVbKthqN52NpOxkMiNATjwP0TIE+5cC7pDA7aNF9oSNpDUulKRV6a95qI3xwJpIUk9kzCZp3R6uGEAPOK46sZ0Sad6l30pQHcKDRoxvqD/FYIzM2xwvx/QDzkKQw4xmSmrzV0zHCyAe/d1AhRAYNCSV53FCi5JCLDXlTD6U05Z/h/5oenL3JHN34mWEhfqGnWxTx9StfLS4k5dLVxkuN/DjiD79VxsM+AgAA" + "Analytics": "v2:deflate64:H4sIAAAAAAAA/6VSTW/bMAz9Lc1ZUdu0h6E318F6aJFlMbDLMASMTKdM9OGJcjND8H8fZDVJ156KnUi+J5KPFGdydnsrry7gwFNV76eaNjIukAPWVQC1Fytk13mFAg68jtC23Fsl44OH9vm3Llq6B0ZRNnZEvj8VLb2JKvWMBhJQtPSIvVg4i3MIUOWiZWPP0SD4Rsb7Tu0xJCZ7P+PE0B+yk7vJW5FJDt/IkWKZnxZdcHPUGPDbZocq8GQQ/5X9S2Rq6TSp/qwpx59QlhOqAAEN2k8K+5h81JV2n7a2jjW22vWJfk2anwABzBhYFskMQoPZ1CBj2dgn6NH/QM/krKjIbjUGZ792VoWEnJyyOYGDIDAyrpweP2+05+1kbxDMRsYqeLLbJXgwGNCP/DE4ylhbV+OO5WI05yZlY/P5lR0HZ05HmFoe/dcKOg2xhgMrTbI4cKlpnEuM81YBtmS3/zR/V3Tp3QvV6PMykyC548uX2Uxef5FXFzsmmvrOBjIoV9n+BdBFrHc2AwAA" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data/CDKMetadata/Default" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data/CDKMetadata/Default" }, "Condition": "CDKMetadataAvailable" } @@ -1596,16 +1598,16 @@ ], "Description": "Enable server side encryption powered by KMS." }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthUserPool82133007Ref": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthUserPoolBF05A444Ref": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref": { "Type": "String" } }, @@ -1876,12 +1878,12 @@ } }, "Outputs": { - "amplifyfitnesstrackergen2mainbranchf6c5a5beb3datalognutritiongen2mainlambdaB5F1A17DRef": { + "amplifyfitnesstrackergen2mainbranch400746baebdatalognutritiongen2mainlambda08A76FE8Ref": { "Value": { "Ref": "lognutritiongen2mainlambda9BD8C969" } }, - "amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId": { + "amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId": { "Value": { "Fn::GetAtt": [ "amplifyDataGraphQLAPI42A6FA33", @@ -1889,7 +1891,7 @@ ] } }, - "amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3GraphQLUrl": { + "amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BGraphQLUrl": { "Value": { "Fn::GetAtt": [ "amplifyDataGraphQLAPI42A6FA33", @@ -1897,7 +1899,7 @@ ] } }, - "amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyCodegenAssetsAmplifyCodegenAssetsDeploymentCustomResource1536MiB31EBB484DestinationBucketArn": { + "amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyCodegenAssetsAmplifyCodegenAssetsDeploymentCustomResource1536MiB0917740FDestinationBucketArn": { "Value": { "Fn::GetAtt": [ "amplifyDataAmplifyCodegenAssetsAmplifyCodegenAssetsDeploymentCustomResource1536MiB21775929", @@ -1905,7 +1907,7 @@ ] } }, - "amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPIDefaultApiKeyDA026B5BApiKey": { + "amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIDefaultApiKey7DAA10FCApiKey": { "Value": { "Fn::GetAtt": [ "amplifyDataGraphQLAPIDefaultApiKey1C8ED374", @@ -1913,7 +1915,7 @@ ] } }, - "amplifyfitnesstrackergen2mainbranchf6c5a5beb3datalognutritiongen2mainlambdaB5F1A17DArn": { + "amplifyfitnesstrackergen2mainbranch400746baebdatalognutritiongen2mainlambda08A76FE8Arn": { "Value": { "Fn::GetAtt": [ "lognutritiongen2mainlambda9BD8C969", diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-restapistackadminapi43EA27F6-1G3WMFGGD1GX.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-restapistackadminapi43EA27F6-156QTXWFLKBBU.description.txt similarity index 55% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-restapistackadminapi43EA27F6-1G3WMFGGD1GX.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-restapistackadminapi43EA27F6-156QTXWFLKBBU.description.txt index 7cc23c581cc..1e3215c63d9 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-restapistackadminapi43EA27F6-1G3WMFGGD1GX.description.txt +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-restapistackadminapi43EA27F6-156QTXWFLKBBU.description.txt @@ -1 +1 @@ -{"createdOn":"Linux","createdBy":"AmplifyPipelineDeploy","createdWith":"1.21.0","stackType":"custom","metadata":{}} \ No newline at end of file +{"createdOn":"Linux","createdBy":"AmplifyPipelineDeploy","createdWith":"1.21.1","stackType":"custom","metadata":{}} \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-restapistackadminapi43EA27F6-156QTXWFLKBBU.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-restapistackadminapi43EA27F6-156QTXWFLKBBU.outputs.json new file mode 100644 index 00000000000..bbfcb44ca35 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-restapistackadminapi43EA27F6-156QTXWFLKBBU.outputs.json @@ -0,0 +1,14 @@ +[ + { + "OutputKey": "amplifyfitnesstrackergen2mainbranch400746baebrestapistackadminapiRestApi15E05C08Ref", + "OutputValue": "3tygfqh1kh" + }, + { + "OutputKey": "RestApiEndpoint0551178A", + "OutputValue": "https://3tygfqh1kh.execute-api.us-east-1.amazonaws.com/prod/" + }, + { + "OutputKey": "amplifyfitnesstrackergen2mainbranch400746baebrestapistackadminapiRestApiDeploymentStageprodB49BA490Ref", + "OutputValue": "prod" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-restapistackadminapi43EA27F6-156QTXWFLKBBU.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-restapistackadminapi43EA27F6-156QTXWFLKBBU.parameters.json new file mode 100644 index 00000000000..b6b8c1039a9 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-restapistackadminapi43EA27F6-156QTXWFLKBBU.parameters.json @@ -0,0 +1,14 @@ +[ + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthAdminGroupRoleC37E0196Ref", + "ParameterValue": "amplify-fitnesstracker-ge-amplifyAuthAdminGroupRole-jIdkeXSZarK4" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthadmingen2mainlambda19698385Arn", + "ParameterValue": "arn:aws:lambda:us-east-1:123456789012:function:admin-gen2-main" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref", + "ParameterValue": "amplify-fitnesstracker-ge-amplifyAuthauthenticatedU-fF1WwIKcoHtV" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-restapistackadminapi43EA27F6-1G3WMFGGD1GX.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-restapistackadminapi43EA27F6-156QTXWFLKBBU.template.json similarity index 84% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-restapistackadminapi43EA27F6-1G3WMFGGD1GX.template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-restapistackadminapi43EA27F6-156QTXWFLKBBU.template.json index ca5da1112a3..cfafb176428 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-restapistackadminapi43EA27F6-1G3WMFGGD1GX.template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-restapistackadminapi43EA27F6-156QTXWFLKBBU.template.json @@ -1,5 +1,5 @@ { - "Description": "{\"createdOn\":\"Linux\",\"createdBy\":\"AmplifyPipelineDeploy\",\"createdWith\":\"1.21.0\",\"stackType\":\"custom\",\"metadata\":{}}", + "Description": "{\"createdOn\":\"Linux\",\"createdBy\":\"AmplifyPipelineDeploy\",\"createdWith\":\"1.21.1\",\"stackType\":\"custom\",\"metadata\":{}}", "Resources": { "RestApi0C43BF4B": { "Type": "AWS::ApiGateway::RestApi", @@ -25,7 +25,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-adminapi/RestApi/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-adminapi/RestApi/Resource" } }, "RestApiCloudWatchRoleE3ED6605": { @@ -79,7 +79,7 @@ "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-adminapi/RestApi/CloudWatchRole/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-adminapi/RestApi/CloudWatchRole/Resource" } }, "RestApiAccount7C83CF5A": { @@ -98,10 +98,10 @@ "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-adminapi/RestApi/Account" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-adminapi/RestApi/Account" } }, - "RestApiDeployment180EC503f08cc8dc32d322e8ee0491887bc17f7c": { + "RestApiDeployment180EC5035a234307e06871ce9f41d5b69075e5fe": { "Type": "AWS::ApiGateway::Deployment", "Properties": { "Description": "Automatically created by the RestApi construct", @@ -120,7 +120,7 @@ "RestApiDefault5XXD8CFC37C" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-adminapi/RestApi/Deployment/Resource", + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-adminapi/RestApi/Deployment/Resource", "aws:cdk:do-not-refactor": true } }, @@ -128,7 +128,7 @@ "Type": "AWS::ApiGateway::Stage", "Properties": { "DeploymentId": { - "Ref": "RestApiDeployment180EC503f08cc8dc32d322e8ee0491887bc17f7c" + "Ref": "RestApiDeployment180EC5035a234307e06871ce9f41d5b69075e5fe" }, "RestApiId": { "Ref": "RestApi0C43BF4B" @@ -157,7 +157,7 @@ "RestApiAccount7C83CF5A" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-adminapi/RestApi/DeploymentStage.prod/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-adminapi/RestApi/DeploymentStage.prod/Resource" } }, "RestApiadmin6E2AFAD8": { @@ -175,7 +175,7 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-adminapi/RestApi/Default/admin/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-adminapi/RestApi/Default/admin/Resource" } }, "RestApiadminOPTIONS9579A88D": { @@ -218,15 +218,15 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-adminapi/RestApi/Default/admin/OPTIONS/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-adminapi/RestApi/Default/admin/OPTIONS/Resource" } }, - "RestApiadminANYApiPermissionamplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistackadminapiRestApi69C11D3EANYadmin44C7AD40": { + "RestApiadminANYApiPermissionamplifyfitnesstrackergen2mainbranch400746baebrestapistackadminapiRestApi93F88D79ANYadmin6E3EDE44": { "Type": "AWS::Lambda::Permission", "Properties": { "Action": "lambda:InvokeFunction", "FunctionName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authadmingen2mainlambda2E47DE6AArn" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthadmingen2mainlambda19698385Arn" }, "Principal": "apigateway.amazonaws.com", "SourceArn": { @@ -259,15 +259,15 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-adminapi/RestApi/Default/admin/ANY/ApiPermission.amplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistackadminapiRestApi69C11D3E.ANY..admin" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-adminapi/RestApi/Default/admin/ANY/ApiPermission.amplifyfitnesstrackergen2mainbranch400746baebrestapistackadminapiRestApi93F88D79.ANY..admin" } }, - "RestApiadminANYApiPermissionTestamplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistackadminapiRestApi69C11D3EANYadminA60A94A3": { + "RestApiadminANYApiPermissionTestamplifyfitnesstrackergen2mainbranch400746baebrestapistackadminapiRestApi93F88D79ANYadmin68E49803": { "Type": "AWS::Lambda::Permission", "Properties": { "Action": "lambda:InvokeFunction", "FunctionName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authadmingen2mainlambda2E47DE6AArn" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthadmingen2mainlambda19698385Arn" }, "Principal": "apigateway.amazonaws.com", "SourceArn": { @@ -296,7 +296,7 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-adminapi/RestApi/Default/admin/ANY/ApiPermission.Test.amplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistackadminapiRestApi69C11D3E.ANY..admin" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-adminapi/RestApi/Default/admin/ANY/ApiPermission.Test.amplifyfitnesstrackergen2mainbranch400746baebrestapistackadminapiRestApi93F88D79.ANY..admin" } }, "RestApiadminANY959B010C": { @@ -321,7 +321,7 @@ }, ":lambda:path/2015-03-31/functions/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authadmingen2mainlambda2E47DE6AArn" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthadmingen2mainlambda19698385Arn" }, "/invocations" ] @@ -336,7 +336,7 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-adminapi/RestApi/Default/admin/ANY/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-adminapi/RestApi/Default/admin/ANY/Resource" } }, "RestApiadminproxy34EEEF46": { @@ -351,7 +351,7 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-adminapi/RestApi/Default/admin/{proxy+}/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-adminapi/RestApi/Default/admin/{proxy+}/Resource" } }, "RestApiadminproxyOPTIONS0428B0AB": { @@ -394,15 +394,15 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-adminapi/RestApi/Default/admin/{proxy+}/OPTIONS/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-adminapi/RestApi/Default/admin/{proxy+}/OPTIONS/Resource" } }, - "RestApiadminproxyANYApiPermissionamplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistackadminapiRestApi69C11D3EANYadminproxyDF28059D": { + "RestApiadminproxyANYApiPermissionamplifyfitnesstrackergen2mainbranch400746baebrestapistackadminapiRestApi93F88D79ANYadminproxyE1CD8302": { "Type": "AWS::Lambda::Permission", "Properties": { "Action": "lambda:InvokeFunction", "FunctionName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authadmingen2mainlambda2E47DE6AArn" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthadmingen2mainlambda19698385Arn" }, "Principal": "apigateway.amazonaws.com", "SourceArn": { @@ -435,15 +435,15 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-adminapi/RestApi/Default/admin/{proxy+}/ANY/ApiPermission.amplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistackadminapiRestApi69C11D3E.ANY..admin.{proxy+}" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-adminapi/RestApi/Default/admin/{proxy+}/ANY/ApiPermission.amplifyfitnesstrackergen2mainbranch400746baebrestapistackadminapiRestApi93F88D79.ANY..admin.{proxy+}" } }, - "RestApiadminproxyANYApiPermissionTestamplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistackadminapiRestApi69C11D3EANYadminproxy4FB2BF17": { + "RestApiadminproxyANYApiPermissionTestamplifyfitnesstrackergen2mainbranch400746baebrestapistackadminapiRestApi93F88D79ANYadminproxyE5AA6688": { "Type": "AWS::Lambda::Permission", "Properties": { "Action": "lambda:InvokeFunction", "FunctionName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authadmingen2mainlambda2E47DE6AArn" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthadmingen2mainlambda19698385Arn" }, "Principal": "apigateway.amazonaws.com", "SourceArn": { @@ -472,7 +472,7 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-adminapi/RestApi/Default/admin/{proxy+}/ANY/ApiPermission.Test.amplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistackadminapiRestApi69C11D3E.ANY..admin.{proxy+}" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-adminapi/RestApi/Default/admin/{proxy+}/ANY/ApiPermission.Test.amplifyfitnesstrackergen2mainbranch400746baebrestapistackadminapiRestApi93F88D79.ANY..admin.{proxy+}" } }, "RestApiadminproxyANYAD871D2E": { @@ -497,7 +497,7 @@ }, ":lambda:path/2015-03-31/functions/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authadmingen2mainlambda2E47DE6AArn" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthadmingen2mainlambda19698385Arn" }, "/invocations" ] @@ -512,7 +512,7 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-adminapi/RestApi/Default/admin/{proxy+}/ANY/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-adminapi/RestApi/Default/admin/{proxy+}/ANY/Resource" } }, "RestApiDefault4XX291F46B7": { @@ -530,7 +530,7 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-adminapi/RestApi/Default4XX/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-adminapi/RestApi/Default4XX/Resource" } }, "RestApiDefault5XXD8CFC37C": { @@ -548,7 +548,7 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-adminapi/RestApi/Default5XX/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-adminapi/RestApi/Default5XX/Resource" } }, "Gen1adminapiPolicy55C22DB4": { @@ -575,7 +575,7 @@ { "Ref": "AWS::AccountId" }, - ":kh5xa5hayh/*/GET/*" + ":oxq86r59h6/*/GET/*" ] ] } @@ -586,12 +586,12 @@ "PolicyName": "Gen1adminapiPolicy55C22DB4", "Roles": [ { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" } ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-adminapi/Gen1adminapiPolicy/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-adminapi/Gen1adminapiPolicy/Resource" } }, "adminAdminPolicyED58DCB3": { @@ -659,21 +659,21 @@ "PolicyName": "adminAdminPolicyED58DCB3", "Roles": [ { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthAdminGroupRole5A967615Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthAdminGroupRoleC37E0196Ref" } ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-adminapi/adminAdminPolicy/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-adminapi/adminAdminPolicy/Resource" } }, "CDKMetadata": { "Type": "AWS::CDK::Metadata", "Properties": { - "Analytics": "v2:deflate64:H4sIAAAAAAAA/12Oz07DMAyHn2X31GwVh10HSJyAKXsA5CVmZMs/1e5KVfXdUUgFEyd/vy927Bba+w2sVzhwY+yl8e4I0yuxkD0ImovCgd8nzO6EQgOOMGli2WWnHj/iDe6MSX0U9UTZpzFQlGJv0kHwRMVV0MSp7ww9IP+F5c/KLySfyRa10L5LX+Pv83O9RxPnFPln9L9azisrZuUwwKSTr0tK3SfvzFhipVl5DEeLUAx1wTG7FOfS8NZL7mVWMVmCM99d2xY2W1ivzuxc0/VRXCDQtX4DFZnJJlMBAAA=" + "Analytics": "v2:deflate64:H4sIAAAAAAAA/12Oz07DMAyHn2X3NIxqh10HSJyAKXsA5CVmeMs/1S5dVfXdUUgFEyd/vy927Fa3m41er2DgxrpL4+mop1dkQXcQsBcFA79PkOkEggOMejLIssukHj/iDe6sTX0U9YTZpzFglGJv0kHghMVVMMip7yw+AP+F5c/KLyifyRW10L5L1/H3+bneY5Bzivwz+l8t55UVsyIIejLJ1yWl7pMnO5ZYaVYewtGBLga7QMyU4lwa3nrJvcwqJof6zHdfbavvt3q9OjNR0/VRKKA2tX4D1w/yhFMBAAA=" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-adminapi/CDKMetadata/Default" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-adminapi/CDKMetadata/Default" }, "Condition": "CDKMetadataAvailable" } @@ -705,12 +705,12 @@ ] } }, - "amplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistackadminapiRestApi9C3E9536Ref": { + "amplifyfitnesstrackergen2mainbranch400746baebrestapistackadminapiRestApi15E05C08Ref": { "Value": { "Ref": "RestApi0C43BF4B" } }, - "amplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistackadminapiRestApiDeploymentStageprodEE0CE72ARef": { + "amplifyfitnesstrackergen2mainbranch400746baebrestapistackadminapiRestApiDeploymentStageprodB49BA490Ref": { "Value": { "Ref": "RestApiDeploymentStageprod3855DE66" } @@ -983,13 +983,13 @@ } }, "Parameters": { - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authadmingen2mainlambda2E47DE6AArn": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthadmingen2mainlambda19698385Arn": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthAdminGroupRole5A967615Ref": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthAdminGroupRoleC37E0196Ref": { "Type": "String" } } diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-restapistacknutritionapi72914ECD-UEOCVVQH4SZ3.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-restapistacknutritionapi72914ECD-13FDREQON6AQG.description.txt similarity index 55% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-restapistacknutritionapi72914ECD-UEOCVVQH4SZ3.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-restapistacknutritionapi72914ECD-13FDREQON6AQG.description.txt index 7cc23c581cc..1e3215c63d9 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-restapistacknutritionapi72914ECD-UEOCVVQH4SZ3.description.txt +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-restapistacknutritionapi72914ECD-13FDREQON6AQG.description.txt @@ -1 +1 @@ -{"createdOn":"Linux","createdBy":"AmplifyPipelineDeploy","createdWith":"1.21.0","stackType":"custom","metadata":{}} \ No newline at end of file +{"createdOn":"Linux","createdBy":"AmplifyPipelineDeploy","createdWith":"1.21.1","stackType":"custom","metadata":{}} \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-restapistacknutritionapi72914ECD-13FDREQON6AQG.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-restapistacknutritionapi72914ECD-13FDREQON6AQG.outputs.json new file mode 100644 index 00000000000..a721256f026 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-restapistacknutritionapi72914ECD-13FDREQON6AQG.outputs.json @@ -0,0 +1,14 @@ +[ + { + "OutputKey": "amplifyfitnesstrackergen2mainbranch400746baebrestapistacknutritionapiRestApiEC7FBBC7Ref", + "OutputValue": "klqsuoycl8" + }, + { + "OutputKey": "RestApiEndpoint0551178A", + "OutputValue": "https://klqsuoycl8.execute-api.us-east-1.amazonaws.com/prod/" + }, + { + "OutputKey": "amplifyfitnesstrackergen2mainbranch400746baebrestapistacknutritionapiRestApiDeploymentStageprod41F1D9FFRef", + "OutputValue": "prod" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-restapistacknutritionapi72914ECD-13FDREQON6AQG.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-restapistacknutritionapi72914ECD-13FDREQON6AQG.parameters.json new file mode 100644 index 00000000000..b14479fe049 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-restapistacknutritionapi72914ECD-13FDREQON6AQG.parameters.json @@ -0,0 +1,14 @@ +[ + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthAdminGroupRoleC37E0196Ref", + "ParameterValue": "amplify-fitnesstracker-ge-amplifyAuthAdminGroupRole-jIdkeXSZarK4" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataNestedStackdataNestedStackResource2B549F52Outputsamplifyfitnesstrackergen2mainbranch400746baebdatalognutritiongen2mainlambda08A76FE8Arn", + "ParameterValue": "arn:aws:lambda:us-east-1:123456789012:function:lognutrition-gen2-main" + }, + { + "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref", + "ParameterValue": "amplify-fitnesstracker-ge-amplifyAuthauthenticatedU-fF1WwIKcoHtV" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-restapistacknutritionapi72914ECD-UEOCVVQH4SZ3.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-restapistacknutritionapi72914ECD-13FDREQON6AQG.template.json similarity index 88% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-restapistacknutritionapi72914ECD-UEOCVVQH4SZ3.template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-restapistacknutritionapi72914ECD-13FDREQON6AQG.template.json index e42063e577c..c0e5129c687 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-restapistacknutritionapi72914ECD-UEOCVVQH4SZ3.template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb-restapistacknutritionapi72914ECD-13FDREQON6AQG.template.json @@ -1,5 +1,5 @@ { - "Description": "{\"createdOn\":\"Linux\",\"createdBy\":\"AmplifyPipelineDeploy\",\"createdWith\":\"1.21.0\",\"stackType\":\"custom\",\"metadata\":{}}", + "Description": "{\"createdOn\":\"Linux\",\"createdBy\":\"AmplifyPipelineDeploy\",\"createdWith\":\"1.21.1\",\"stackType\":\"custom\",\"metadata\":{}}", "Resources": { "RestApi0C43BF4B": { "Type": "AWS::ApiGateway::RestApi", @@ -25,7 +25,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-nutritionapi/RestApi/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-nutritionapi/RestApi/Resource" } }, "RestApiCloudWatchRoleE3ED6605": { @@ -79,7 +79,7 @@ "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-nutritionapi/RestApi/CloudWatchRole/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-nutritionapi/RestApi/CloudWatchRole/Resource" } }, "RestApiAccount7C83CF5A": { @@ -98,10 +98,10 @@ "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-nutritionapi/RestApi/Account" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-nutritionapi/RestApi/Account" } }, - "RestApiDeployment180EC50348ad1ceaa83769d36410f648a7ea8c9b": { + "RestApiDeployment180EC50372b8910fb447646fe0ec851ddd88eb80": { "Type": "AWS::ApiGateway::Deployment", "Properties": { "Description": "Automatically created by the RestApi construct", @@ -121,7 +121,7 @@ "RestApiDefault5XXD8CFC37C" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-nutritionapi/RestApi/Deployment/Resource", + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-nutritionapi/RestApi/Deployment/Resource", "aws:cdk:do-not-refactor": true } }, @@ -129,7 +129,7 @@ "Type": "AWS::ApiGateway::Stage", "Properties": { "DeploymentId": { - "Ref": "RestApiDeployment180EC50348ad1ceaa83769d36410f648a7ea8c9b" + "Ref": "RestApiDeployment180EC50372b8910fb447646fe0ec851ddd88eb80" }, "RestApiId": { "Ref": "RestApi0C43BF4B" @@ -158,7 +158,7 @@ "RestApiAccount7C83CF5A" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-nutritionapi/RestApi/DeploymentStage.prod/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-nutritionapi/RestApi/DeploymentStage.prod/Resource" } }, "RestApinutrition3942DEFC": { @@ -176,7 +176,7 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-nutritionapi/RestApi/Default/nutrition/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-nutritionapi/RestApi/Default/nutrition/Resource" } }, "RestApinutritionlog525763DE": { @@ -191,7 +191,7 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-nutritionapi/RestApi/Default/nutrition/log/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-nutritionapi/RestApi/Default/nutrition/log/Resource" } }, "RestApinutritionlogOPTIONS0916370A": { @@ -234,15 +234,15 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-nutritionapi/RestApi/Default/nutrition/log/OPTIONS/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-nutritionapi/RestApi/Default/nutrition/log/OPTIONS/Resource" } }, - "RestApinutritionlogANYApiPermissionamplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistacknutritionapiRestApi5CE4D05DANYnutritionlogB9582A16": { + "RestApinutritionlogANYApiPermissionamplifyfitnesstrackergen2mainbranch400746baebrestapistacknutritionapiRestApi56F22D17ANYnutritionlog0E7B0360": { "Type": "AWS::Lambda::Permission", "Properties": { "Action": "lambda:InvokeFunction", "FunctionName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataNestedStackdataNestedStackResource1172CA08Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3datalognutritiongen2mainlambdaB5F1A17DArn" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataNestedStackdataNestedStackResource2B549F52Outputsamplifyfitnesstrackergen2mainbranch400746baebdatalognutritiongen2mainlambda08A76FE8Arn" }, "Principal": "apigateway.amazonaws.com", "SourceArn": { @@ -275,15 +275,15 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-nutritionapi/RestApi/Default/nutrition/log/ANY/ApiPermission.amplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistacknutritionapiRestApi5CE4D05D.ANY..nutrition.log" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-nutritionapi/RestApi/Default/nutrition/log/ANY/ApiPermission.amplifyfitnesstrackergen2mainbranch400746baebrestapistacknutritionapiRestApi56F22D17.ANY..nutrition.log" } }, - "RestApinutritionlogANYApiPermissionTestamplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistacknutritionapiRestApi5CE4D05DANYnutritionlog4B62744A": { + "RestApinutritionlogANYApiPermissionTestamplifyfitnesstrackergen2mainbranch400746baebrestapistacknutritionapiRestApi56F22D17ANYnutritionlogC943788E": { "Type": "AWS::Lambda::Permission", "Properties": { "Action": "lambda:InvokeFunction", "FunctionName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataNestedStackdataNestedStackResource1172CA08Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3datalognutritiongen2mainlambdaB5F1A17DArn" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataNestedStackdataNestedStackResource2B549F52Outputsamplifyfitnesstrackergen2mainbranch400746baebdatalognutritiongen2mainlambda08A76FE8Arn" }, "Principal": "apigateway.amazonaws.com", "SourceArn": { @@ -312,7 +312,7 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-nutritionapi/RestApi/Default/nutrition/log/ANY/ApiPermission.Test.amplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistacknutritionapiRestApi5CE4D05D.ANY..nutrition.log" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-nutritionapi/RestApi/Default/nutrition/log/ANY/ApiPermission.Test.amplifyfitnesstrackergen2mainbranch400746baebrestapistacknutritionapiRestApi56F22D17.ANY..nutrition.log" } }, "RestApinutritionlogANY08C15E55": { @@ -337,7 +337,7 @@ }, ":lambda:path/2015-03-31/functions/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataNestedStackdataNestedStackResource1172CA08Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3datalognutritiongen2mainlambdaB5F1A17DArn" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataNestedStackdataNestedStackResource2B549F52Outputsamplifyfitnesstrackergen2mainbranch400746baebdatalognutritiongen2mainlambda08A76FE8Arn" }, "/invocations" ] @@ -352,7 +352,7 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-nutritionapi/RestApi/Default/nutrition/log/ANY/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-nutritionapi/RestApi/Default/nutrition/log/ANY/Resource" } }, "RestApinutritionlogproxyA0E81954": { @@ -367,7 +367,7 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-nutritionapi/RestApi/Default/nutrition/log/{proxy+}/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-nutritionapi/RestApi/Default/nutrition/log/{proxy+}/Resource" } }, "RestApinutritionlogproxyOPTIONS695D781E": { @@ -410,15 +410,15 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-nutritionapi/RestApi/Default/nutrition/log/{proxy+}/OPTIONS/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-nutritionapi/RestApi/Default/nutrition/log/{proxy+}/OPTIONS/Resource" } }, - "RestApinutritionlogproxyANYApiPermissionamplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistacknutritionapiRestApi5CE4D05DANYnutritionlogproxyB2113086": { + "RestApinutritionlogproxyANYApiPermissionamplifyfitnesstrackergen2mainbranch400746baebrestapistacknutritionapiRestApi56F22D17ANYnutritionlogproxy30B465F0": { "Type": "AWS::Lambda::Permission", "Properties": { "Action": "lambda:InvokeFunction", "FunctionName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataNestedStackdataNestedStackResource1172CA08Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3datalognutritiongen2mainlambdaB5F1A17DArn" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataNestedStackdataNestedStackResource2B549F52Outputsamplifyfitnesstrackergen2mainbranch400746baebdatalognutritiongen2mainlambda08A76FE8Arn" }, "Principal": "apigateway.amazonaws.com", "SourceArn": { @@ -451,15 +451,15 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-nutritionapi/RestApi/Default/nutrition/log/{proxy+}/ANY/ApiPermission.amplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistacknutritionapiRestApi5CE4D05D.ANY..nutrition.log.{proxy+}" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-nutritionapi/RestApi/Default/nutrition/log/{proxy+}/ANY/ApiPermission.amplifyfitnesstrackergen2mainbranch400746baebrestapistacknutritionapiRestApi56F22D17.ANY..nutrition.log.{proxy+}" } }, - "RestApinutritionlogproxyANYApiPermissionTestamplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistacknutritionapiRestApi5CE4D05DANYnutritionlogproxy05563614": { + "RestApinutritionlogproxyANYApiPermissionTestamplifyfitnesstrackergen2mainbranch400746baebrestapistacknutritionapiRestApi56F22D17ANYnutritionlogproxy7276060A": { "Type": "AWS::Lambda::Permission", "Properties": { "Action": "lambda:InvokeFunction", "FunctionName": { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataNestedStackdataNestedStackResource1172CA08Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3datalognutritiongen2mainlambdaB5F1A17DArn" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataNestedStackdataNestedStackResource2B549F52Outputsamplifyfitnesstrackergen2mainbranch400746baebdatalognutritiongen2mainlambda08A76FE8Arn" }, "Principal": "apigateway.amazonaws.com", "SourceArn": { @@ -488,7 +488,7 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-nutritionapi/RestApi/Default/nutrition/log/{proxy+}/ANY/ApiPermission.Test.amplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistacknutritionapiRestApi5CE4D05D.ANY..nutrition.log.{proxy+}" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-nutritionapi/RestApi/Default/nutrition/log/{proxy+}/ANY/ApiPermission.Test.amplifyfitnesstrackergen2mainbranch400746baebrestapistacknutritionapiRestApi56F22D17.ANY..nutrition.log.{proxy+}" } }, "RestApinutritionlogproxyANY89358520": { @@ -513,7 +513,7 @@ }, ":lambda:path/2015-03-31/functions/", { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataNestedStackdataNestedStackResource1172CA08Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3datalognutritiongen2mainlambdaB5F1A17DArn" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataNestedStackdataNestedStackResource2B549F52Outputsamplifyfitnesstrackergen2mainbranch400746baebdatalognutritiongen2mainlambda08A76FE8Arn" }, "/invocations" ] @@ -528,7 +528,7 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-nutritionapi/RestApi/Default/nutrition/log/{proxy+}/ANY/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-nutritionapi/RestApi/Default/nutrition/log/{proxy+}/ANY/Resource" } }, "RestApiDefault4XX291F46B7": { @@ -546,7 +546,7 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-nutritionapi/RestApi/Default4XX/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-nutritionapi/RestApi/Default4XX/Resource" } }, "RestApiDefault5XXD8CFC37C": { @@ -564,7 +564,7 @@ } }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-nutritionapi/RestApi/Default5XX/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-nutritionapi/RestApi/Default5XX/Resource" } }, "Gen1nutritionapiPolicyAC846721": { @@ -592,7 +592,7 @@ { "Ref": "AWS::AccountId" }, - ":6smuxn28tb/*/POST/*" + ":hmydcaubcb/*/POST/*" ] ] }, @@ -612,7 +612,7 @@ { "Ref": "AWS::AccountId" }, - ":6smuxn28tb/*/GET/*" + ":hmydcaubcb/*/GET/*" ] ] }, @@ -632,7 +632,7 @@ { "Ref": "AWS::AccountId" }, - ":6smuxn28tb/*/PUT/*" + ":hmydcaubcb/*/PUT/*" ] ] }, @@ -652,7 +652,7 @@ { "Ref": "AWS::AccountId" }, - ":6smuxn28tb/*/DELETE/*" + ":hmydcaubcb/*/DELETE/*" ] ] } @@ -664,12 +664,12 @@ "PolicyName": "Gen1nutritionapiPolicyAC846721", "Roles": [ { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" } ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-nutritionapi/Gen1nutritionapiPolicy/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-nutritionapi/Gen1nutritionapiPolicy/Resource" } }, "nutritionlogAuthPolicyF60C3901": { @@ -881,12 +881,12 @@ "PolicyName": "nutritionlogAuthPolicyF60C3901", "Roles": [ { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" } ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-nutritionapi/nutritionlogAuthPolicy/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-nutritionapi/nutritionlogAuthPolicy/Resource" } }, "nutritionlogAdminPolicy5FCB013F": { @@ -1098,21 +1098,21 @@ "PolicyName": "nutritionlogAdminPolicy5FCB013F", "Roles": [ { - "Ref": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthAdminGroupRole5A967615Ref" + "Ref": "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthAdminGroupRoleC37E0196Ref" } ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-nutritionapi/nutritionlogAdminPolicy/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-nutritionapi/nutritionlogAdminPolicy/Resource" } }, "CDKMetadata": { "Type": "AWS::CDK::Metadata", "Properties": { - "Analytics": "v2:deflate64:H4sIAAAAAAAA/12Oz07DMAyHn2X31GwVh10HSJyAKXsA5CVmZMs/1e5KVfXdUUgFEyd/vy927Bba+w2sVzhwY+yl8e4I0yuxkD0ImovCgd8nzO6EQgOOMGli2WWnHj/iDe6MSX0U9UTZpzFQlGJv0kHwRMVV0MSp7ww9IP+F5c/KLySfyRa10L5LX+Pv83O9RxPnFPln9L9azisrZuUwwKSTr0tK3SfvzFhipVl5DEeLUAx1wTG7FOfS8NZL7mVWMVmCM99d2xY2W1ivzuxc0/VRXCDQtX4DFZnJJlMBAAA=" + "Analytics": "v2:deflate64:H4sIAAAAAAAA/12Oz07DMAyHn2X3NIxqh10HSJyAKXsA5CVmeMs/1S5dVfXdUUgFEyd/vy927Fa3m41er2DgxrpL4+mop1dkQXcQsBcFA79PkOkEggOMejLIssukHj/iDe6sTX0U9YTZpzFglGJv0kHghMVVMMip7yw+AP+F5c/KLyifyRW10L5L1/H3+bneY5Bzivwz+l8t55UVsyIIejLJ1yWl7pMnO5ZYaVYewtGBLga7QMyU4lwa3nrJvcwqJof6zHdfbavvt3q9OjNR0/VRKKA2tX4D1w/yhFMBAAA=" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-nutritionapi/CDKMetadata/Default" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-nutritionapi/CDKMetadata/Default" }, "Condition": "CDKMetadataAvailable" } @@ -1144,12 +1144,12 @@ ] } }, - "amplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistacknutritionapiRestApi33E7E7D9Ref": { + "amplifyfitnesstrackergen2mainbranch400746baebrestapistacknutritionapiRestApiEC7FBBC7Ref": { "Value": { "Ref": "RestApi0C43BF4B" } }, - "amplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistacknutritionapiRestApiDeploymentStageprod4B62A983Ref": { + "amplifyfitnesstrackergen2mainbranch400746baebrestapistacknutritionapiRestApiDeploymentStageprod41F1D9FFRef": { "Value": { "Ref": "RestApiDeploymentStageprod3855DE66" } @@ -1422,13 +1422,13 @@ } }, "Parameters": { - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataNestedStackdataNestedStackResource1172CA08Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3datalognutritiongen2mainlambdaB5F1A17DArn": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataNestedStackdataNestedStackResource2B549F52Outputsamplifyfitnesstrackergen2mainbranch400746baebdatalognutritiongen2mainlambda08A76FE8Arn": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref": { "Type": "String" }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthAdminGroupRole5A967615Ref": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthAdminGroupRoleC37E0196Ref": { "Type": "String" } } diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb.description.txt similarity index 56% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb.description.txt index b40731368ef..afc6ec23957 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3.description.txt +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb.description.txt @@ -1 +1 @@ -{"createdOn":"Linux","createdBy":"AmplifyPipelineDeploy","createdWith":"1.21.0","stackType":"root","metadata":{}} \ No newline at end of file +{"createdOn":"Linux","createdBy":"AmplifyPipelineDeploy","createdWith":"1.21.1","stackType":"root","metadata":{}} \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb.outputs.json similarity index 77% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3.outputs.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb.outputs.json index 00773074c3f..c449c2cb961 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3.outputs.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb.outputs.json @@ -1,7 +1,7 @@ [ { "OutputKey": "webClientId", - "OutputValue": "2mph5n4c194d3ogp33evjku9cg" + "OutputValue": "1o40oi80febsgsdamen2i1gnfd" }, { "OutputKey": "socialProviders", @@ -17,7 +17,7 @@ }, { "OutputKey": "oauthClientId", - "OutputValue": "2mph5n4c194d3ogp33evjku9cg" + "OutputValue": "1o40oi80febsgsdamen2i1gnfd" }, { "OutputKey": "allowUnauthenticatedIdentities", @@ -53,7 +53,7 @@ }, { "OutputKey": "awsAppsyncApiKey", - "OutputValue": "da2-ebjsxuyj6nccppdwuy2ozljcla" + "OutputValue": "da2-s7g7rnzffjfsvp6a5as4utznce" }, { "OutputKey": "awsAppsyncAuthenticationType", @@ -61,7 +61,7 @@ }, { "OutputKey": "customOutputs", - "OutputValue": "{\"custom\":{\"API\":{\"adminapi-gen2-main\":{\"endpoint\":\"https://42m7vp2bob.execute-api.us-east-1.amazonaws.com/prod\",\"region\":\"us-east-1\",\"apiName\":\"adminapi-gen2-main\"},\"nutritionapi-gen2-main\":{\"endpoint\":\"https://nimt9s6hi5.execute-api.us-east-1.amazonaws.com/prod\",\"region\":\"us-east-1\",\"apiName\":\"nutritionapi-gen2-main\"}}},\"version\":\"1.4\"}" + "OutputValue": "{\"custom\":{\"API\":{\"adminapi-gen2-main\":{\"endpoint\":\"https://3tygfqh1kh.execute-api.us-east-1.amazonaws.com/prod\",\"region\":\"us-east-1\",\"apiName\":\"adminapi-gen2-main\"},\"nutritionapi-gen2-main\":{\"endpoint\":\"https://klqsuoycl8.execute-api.us-east-1.amazonaws.com/prod\",\"region\":\"us-east-1\",\"apiName\":\"nutritionapi-gen2-main\"}}},\"version\":\"1.4\"}" }, { "OutputKey": "oauthRedirectSignIn", @@ -73,11 +73,11 @@ }, { "OutputKey": "awsAppsyncApiEndpoint", - "OutputValue": "https://77wvqbitijagpavjez3eammdna.appsync-api.us-east-1.amazonaws.com/graphql" + "OutputValue": "https://lpsucva2qjdofmkpzenwokjsue.appsync-api.us-east-1.amazonaws.com/graphql" }, { "OutputKey": "awsAppsyncApiId", - "OutputValue": "aolmivry45bvbmfywwm6tb542u" + "OutputValue": "jrmmxaml4ndpxmx4pmyk3bgv7u" }, { "OutputKey": "authRegion", @@ -85,7 +85,7 @@ }, { "OutputKey": "amplifyApiModelSchemaS3Uri", - "OutputValue": "s3://amplify-fitnesstracker-gen-amplifydataamplifycodege-cm7x3zuy98og/model-schema.graphql" + "OutputValue": "s3://amplify-fitnesstracker-ge-amplifydataamplifycodege-qcmnmg6hhy5m/model-schema.graphql" }, { "OutputKey": "groups", @@ -93,7 +93,7 @@ }, { "OutputKey": "definedFunctions", - "OutputValue": "[\"fitnesstracker6b0fc1196b0fc119PreSignup-gen2-main\",\"admin-gen2-main\",\"lognutrition-gen2-main\"]" + "OutputValue": "[\"fitnesstracker33f5545533f55455PreSignup-gen2-main\",\"admin-gen2-main\",\"lognutrition-gen2-main\"]" }, { "OutputKey": "passwordlessOptions", @@ -117,11 +117,11 @@ }, { "OutputKey": "userPoolId", - "OutputValue": "us-east-1_MZOGAx4cE" + "OutputValue": "us-east-1_KGveHFLxc" }, { "OutputKey": "identityPoolId", - "OutputValue": "us-east-1:6528409f-13ea-46fb-987a-ad861eedaad6" + "OutputValue": "us-east-1:b0685620-d814-422e-830f-b0f30f6900f3" }, { "OutputKey": "verificationMechanisms", diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb.parameters.json similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3.parameters.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb.parameters.json diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb.template.json similarity index 80% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3.template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb.template.json index 816410eaeec..052eaffe513 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3.template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-400746baeb.template.json @@ -1,5 +1,5 @@ { - "Description": "{\"createdOn\":\"Linux\",\"createdBy\":\"AmplifyPipelineDeploy\",\"createdWith\":\"1.21.0\",\"stackType\":\"root\",\"metadata\":{}}", + "Description": "{\"createdOn\":\"Linux\",\"createdBy\":\"AmplifyPipelineDeploy\",\"createdWith\":\"1.21.1\",\"stackType\":\"root\",\"metadata\":{}}", "Metadata": { "AWS::Amplify::Platform": { "version": "1", @@ -72,7 +72,7 @@ "Value": { "Fn::GetAtt": [ "auth179371D7", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthUserPool82133007Ref" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthUserPoolBF05A444Ref" ] } }, @@ -80,7 +80,7 @@ "Value": { "Fn::GetAtt": [ "auth179371D7", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthUserPoolAppClient1C98798ERef" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthUserPoolAppClient1903AFDARef" ] } }, @@ -88,7 +88,7 @@ "Value": { "Fn::GetAtt": [ "auth179371D7", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" ] } }, @@ -146,7 +146,7 @@ "Value": { "Fn::GetAtt": [ "auth179371D7", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthUserPoolAppClient1C98798ERef" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthUserPoolAppClient1903AFDARef" ] } }, @@ -162,21 +162,21 @@ { "Fn::GetAtt": [ "auth179371D7", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3authfitnesstracker6b0fc1196b0fc119PreSignupgen2mainlambda8F8CF17DRef" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebauthfitnesstracker33f5545533f55455PreSignupgen2mainlambda2B17C7BARef" ] }, "\",\"", { "Fn::GetAtt": [ "auth179371D7", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3authadmingen2mainlambda2E47DE6ARef" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebauthadmingen2mainlambda19698385Ref" ] }, "\",\"", { "Fn::GetAtt": [ "data7552DF31", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3datalognutritiongen2mainlambdaB5F1A17DRef" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebdatalognutritiongen2mainlambda08A76FE8Ref" ] }, "\"]" @@ -188,7 +188,7 @@ "Value": { "Fn::GetAtt": [ "data7552DF31", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BApiId" ] } }, @@ -196,7 +196,7 @@ "Value": { "Fn::GetAtt": [ "data7552DF31", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3GraphQLUrl" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIEBB08D7BGraphQLUrl" ] } }, @@ -229,7 +229,7 @@ { "Fn::GetAtt": [ "data7552DF31", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyCodegenAssetsAmplifyCodegenAssetsDeploymentCustomResource1536MiB31EBB484DestinationBucketArn" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataAmplifyCodegenAssetsAmplifyCodegenAssetsDeploymentCustomResource1536MiB0917740FDestinationBucketArn" ] } ] @@ -249,7 +249,7 @@ "Value": { "Fn::GetAtt": [ "data7552DF31", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPIDefaultApiKeyDA026B5BApiKey" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebdataamplifyDataGraphQLAPIDefaultApiKey7DAA10FCApiKey" ] } }, @@ -265,7 +265,7 @@ { "Fn::GetAtt": [ "restapistackadminapi43EA27F6", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistackadminapiRestApi9C3E9536Ref" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebrestapistackadminapiRestApi15E05C08Ref" ] }, ".execute-api.", @@ -280,7 +280,7 @@ { "Fn::GetAtt": [ "restapistackadminapi43EA27F6", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistackadminapiRestApiDeploymentStageprodEE0CE72ARef" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebrestapistackadminapiRestApiDeploymentStageprodB49BA490Ref" ] }, "\",\"region\":\"", @@ -291,7 +291,7 @@ { "Fn::GetAtt": [ "restapistacknutritionapi72914ECD", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistacknutritionapiRestApi33E7E7D9Ref" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebrestapistacknutritionapiRestApiEC7FBBC7Ref" ] }, ".execute-api.", @@ -306,7 +306,7 @@ { "Fn::GetAtt": [ "restapistacknutritionapi72914ECD", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistacknutritionapiRestApiDeploymentStageprod4B62A983Ref" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebrestapistacknutritionapiRestApiDeploymentStageprod41F1D9FFRef" ] }, "\",\"region\":\"", @@ -369,7 +369,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/AmplifyBranchLinker/CustomResourceLambda/ServiceRole/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/AmplifyBranchLinker/CustomResourceLambda/ServiceRole/Resource" } }, "AmplifyBranchLinkerCustomResourceLambdaServiceRoleDefaultPolicy86099CA1": { @@ -396,7 +396,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/AmplifyBranchLinker/CustomResourceLambda/ServiceRole/DefaultPolicy/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/AmplifyBranchLinker/CustomResourceLambda/ServiceRole/DefaultPolicy/Resource" } }, "AmplifyBranchLinkerCustomResourceLambda582AC093": { @@ -406,7 +406,7 @@ "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "S3Key": "1a757fd2e48bffd6245369585c61b0ce615ce78053da4f4387a9c069127512c0.zip" + "S3Key": "577f96ca22e59dc05e8bc39fd45b966f0ad8e25629b3b9b29d444de63fb17b12.zip" }, "Handler": "index.handler", "Role": { @@ -441,8 +441,8 @@ "AmplifyBranchLinkerCustomResourceLambdaServiceRole3DDCBC03" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/AmplifyBranchLinker/CustomResourceLambda/Resource", - "aws:asset:path": "asset.1a757fd2e48bffd6245369585c61b0ce615ce78053da4f4387a9c069127512c0", + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/AmplifyBranchLinker/CustomResourceLambda/Resource", + "aws:asset:path": "asset.577f96ca22e59dc05e8bc39fd45b966f0ad8e25629b3b9b29d444de63fb17b12", "aws:asset:is-bundled": true, "aws:asset:property": "Code" } @@ -496,7 +496,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/AmplifyBranchLinker/CustomResourceProvider/framework-onEvent/ServiceRole/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/AmplifyBranchLinker/CustomResourceProvider/framework-onEvent/ServiceRole/Resource" } }, "AmplifyBranchLinkerCustomResourceProviderframeworkonEventServiceRoleDefaultPolicy38AAE412": { @@ -551,7 +551,7 @@ ] }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/AmplifyBranchLinker/CustomResourceProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/AmplifyBranchLinker/CustomResourceProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource" } }, "AmplifyBranchLinkerCustomResourceProviderframeworkonEvent3B23F900": { @@ -563,7 +563,7 @@ }, "S3Key": "07a90cc3efdfc34da22208dcd9d211f06f5b0e01b21e778edc7c3966b1f61d57.zip" }, - "Description": "AWS CDK resource provider framework - onEvent (amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/AmplifyBranchLinker/CustomResourceProvider)", + "Description": "AWS CDK resource provider framework - onEvent (amplify-fitnesstracker-gen2main-branch-400746baeb/AmplifyBranchLinker/CustomResourceProvider)", "Environment": { "Variables": { "USER_ON_EVENT_FUNCTION_ARN": { @@ -611,7 +611,7 @@ "AmplifyBranchLinkerCustomResourceProviderframeworkonEventServiceRole92A035EB" ], "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/AmplifyBranchLinker/CustomResourceProvider/framework-onEvent/Resource", + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/AmplifyBranchLinker/CustomResourceProvider/framework-onEvent/Resource", "aws:asset:path": "asset.07a90cc3efdfc34da22208dcd9d211f06f5b0e01b21e778edc7c3966b1f61d57", "aws:asset:is-bundled": false, "aws:asset:property": "Code" @@ -632,7 +632,7 @@ "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/AmplifyBranchLinker/CustomResource/Default" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/AmplifyBranchLinker/CustomResource/Default" } }, "auth179371D7": { @@ -672,7 +672,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "/e52c9bb6ad548fe086a3001e50d8a3a36a62877d32be522ac8a5e1690c00a794.json" + "/cf42b4b21cde117f111d5c596f26c0d0d33834a6fcf5c3ca7ec443ab7b961ca6.json" ] ] } @@ -680,8 +680,8 @@ "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/auth.NestedStack/auth.NestedStackResource", - "aws:asset:path": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3auth14C5D305.nested.template.json", + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/auth.NestedStack/auth.NestedStackResource", + "aws:asset:path": "amplifyfitnesstrackergen2mainbranch400746baebauthA2EE5AF1.nested.template.json", "aws:asset:property": "TemplateURL" } }, @@ -689,28 +689,28 @@ "Type": "AWS::CloudFormation::Stack", "Properties": { "Parameters": { - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthUserPool82133007Ref": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthUserPoolBF05A444Ref": { "Fn::GetAtt": [ "auth179371D7", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthUserPool82133007Ref" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthUserPoolBF05A444Ref" ] }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref": { "Fn::GetAtt": [ "auth179371D7", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" ] }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef": { "Fn::GetAtt": [ "auth179371D7", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthunauthenticatedUserRole444B7AFERef" ] }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref": { "Fn::GetAtt": [ "auth179371D7", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthIdentityPoolFB6D4845Ref" ] } }, @@ -748,7 +748,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "/17bdd06ff46b5c99217013edb3cdb2e284f6a5942f7bc36239c10f6b1da19592.json" + "/2fca8ecbae58008f1b1aded02efbc20cd87689de55be452c699f6a28a85af107.json" ] ] } @@ -756,8 +756,8 @@ "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/data.NestedStack/data.NestedStackResource", - "aws:asset:path": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataED3487CD.nested.template.json", + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/data.NestedStack/data.NestedStackResource", + "aws:asset:path": "amplifyfitnesstrackergen2mainbranch400746baebdata8B7F9287.nested.template.json", "aws:asset:property": "TemplateURL" } }, @@ -765,22 +765,22 @@ "Type": "AWS::CloudFormation::Stack", "Properties": { "Parameters": { - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authadmingen2mainlambda2E47DE6AArn": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthadmingen2mainlambda19698385Arn": { "Fn::GetAtt": [ "auth179371D7", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3authadmingen2mainlambda2E47DE6AArn" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebauthadmingen2mainlambda19698385Arn" ] }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref": { "Fn::GetAtt": [ "auth179371D7", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" ] }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthAdminGroupRole5A967615Ref": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthAdminGroupRoleC37E0196Ref": { "Fn::GetAtt": [ "auth179371D7", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthAdminGroupRole5A967615Ref" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthAdminGroupRoleC37E0196Ref" ] } }, @@ -818,7 +818,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "/e439aa95599da7840f4d3dbd426f708cb124815fc9e644487d1aa70d17adc94a.json" + "/8b7a6079311343b27ad9c9f2567281b7b85489b503537696f832d8af79a699eb.json" ] ] } @@ -826,8 +826,8 @@ "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-adminapi.NestedStack/rest-api-stack-adminapi.NestedStackResource", - "aws:asset:path": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistackadminapi3404F2D5.nested.template.json", + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-adminapi.NestedStack/rest-api-stack-adminapi.NestedStackResource", + "aws:asset:path": "amplifyfitnesstrackergen2mainbranch400746baebrestapistackadminapi4B6BAEAB.nested.template.json", "aws:asset:property": "TemplateURL" } }, @@ -835,22 +835,22 @@ "Type": "AWS::CloudFormation::Stack", "Properties": { "Parameters": { - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataNestedStackdataNestedStackResource1172CA08Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3datalognutritiongen2mainlambdaB5F1A17DArn": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebdataNestedStackdataNestedStackResource2B549F52Outputsamplifyfitnesstrackergen2mainbranch400746baebdatalognutritiongen2mainlambda08A76FE8Arn": { "Fn::GetAtt": [ "data7552DF31", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3datalognutritiongen2mainlambdaB5F1A17DArn" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebdatalognutritiongen2mainlambda08A76FE8Arn" ] }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref": { "Fn::GetAtt": [ "auth179371D7", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthauthenticatedUserRole924DCF20Ref" ] }, - "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthAdminGroupRole5A967615Ref": { + "referencetoamplifyfitnesstrackergen2mainbranch400746baebauthNestedStackauthNestedStackResource5078865DOutputsamplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthAdminGroupRoleC37E0196Ref": { "Fn::GetAtt": [ "auth179371D7", - "Outputs.amplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthAdminGroupRole5A967615Ref" + "Outputs.amplifyfitnesstrackergen2mainbranch400746baebauthamplifyAuthAdminGroupRoleC37E0196Ref" ] } }, @@ -888,7 +888,7 @@ { "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" }, - "/3fa005c13e160860bca05bdd866cc7bad1f73d84083432328d2f8dd258bddf0f.json" + "/9a84370ad847765ed4eb615e833384812e6b681a28efa0db729a14d1282b6310.json" ] ] } @@ -896,18 +896,18 @@ "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/rest-api-stack-nutritionapi.NestedStack/rest-api-stack-nutritionapi.NestedStackResource", - "aws:asset:path": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistacknutritionapiE9E77A9E.nested.template.json", + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/rest-api-stack-nutritionapi.NestedStack/rest-api-stack-nutritionapi.NestedStackResource", + "aws:asset:path": "amplifyfitnesstrackergen2mainbranch400746baebrestapistacknutritionapi29813263.nested.template.json", "aws:asset:property": "TemplateURL" } }, "CDKMetadata": { "Type": "AWS::CDK::Metadata", "Properties": { - "Analytics": "v2:deflate64:H4sIAAAAAAAA/02PzWrDQAyEnyV3WU2cHHptDD22wXkAo6yVIP/slpU2oRi/e/C6LT19I4YZNCWWhx1uN/TQwrV9McgFp7OR66G6+s9kX8mAHtpMA42XlhofWu4UPzLek3cmwYPQiFMdBl5SmacwiPtezlXNoPuGVNkU3xaA7vGYXM92JGVY63Gqrv6v9VfMM+TI2egm/gYuqYWxiawhRceKpxju0nKEKjv1j5Gf+afzrhmWCdjpy70scfeK202nIkVM3mRkrFc+AUTtSG0ZAQAA" + "Analytics": "v2:deflate64:H4sIAAAAAAAA/02PzWrDQAyEnyV3WU2dHHJtDD22wXkAo6yVIP/slpU2oRi/e/C6LT19I4YZNCWW+z1uN/TQwrV9McgFp7OR66G6+s9kX8mAHtpMA42XlhofWu4UPzLek3cmwYPQiFMdBl5SmacwiPtezlXNoLuGVNkU3xaA7vCYXM92JGVY63Gqrv6v9VfMM+TI2egm/gYuqYWxiawhRceKpxju0nKEKjv1j5Gf+afzrhmWCdjpy70s8fWA202nIkVM3mRkrFc+AXlCmgwZAQAA" }, "Metadata": { - "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-f6c5a5beb3/CDKMetadata/Default" + "aws:cdk:path": "amplify-fitnesstracker-gen2main-branch-400746baeb/CDKMetadata/Default" }, "Condition": "CDKMetadataAvailable" } diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataAmplifyTableManagerNestedStackA-1A2OIOGDUJDM8.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataAmplifyTableManagerNestedStackA-1A2OIOGDUJDM8.outputs.json deleted file mode 100644 index 8b5776bb764..00000000000 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataAmplifyTableManagerNestedStackA-1A2OIOGDUJDM8.outputs.json +++ /dev/null @@ -1,6 +0,0 @@ -[ - { - "OutputKey": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerTableManagerCustomProviderframeworkonEvent6EDC1D70Arn", - "OutputValue": "arn:aws:lambda:us-east-1:123456789012:function:amplify-fitnesstracker-gen-TableManagerCustomProvid-jfKSxmnonqJ5" - } -] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataAmplifyTableManagerNestedStackA-1A2OIOGDUJDM8.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataAmplifyTableManagerNestedStackA-1A2OIOGDUJDM8.parameters.json deleted file mode 100644 index 89c4b9427ca..00000000000 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataAmplifyTableManagerNestedStackA-1A2OIOGDUJDM8.parameters.json +++ /dev/null @@ -1,6 +0,0 @@ -[ - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId", - "ParameterValue": "aolmivry45bvbmfywwm6tb542u" - } -] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataConnectionStackNestedStackConne-1PZTW5BMDQ740.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataConnectionStackNestedStackConne-1PZTW5BMDQ740.parameters.json deleted file mode 100644 index 0195dc97253..00000000000 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataConnectionStackNestedStackConne-1PZTW5BMDQ740.parameters.json +++ /dev/null @@ -1,30 +0,0 @@ -[ - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName", - "ParameterValue": "NONE_DS" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref", - "ParameterValue": "amplify-fitnesstracker-gen-amplifyAuthauthenticatedU-ROG8INaCaQWH" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref", - "ParameterValue": "amplify-fitnesstracker-gen-amplifyAuthunauthenticate-xt24LpqBVS1s" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId", - "ParameterValue": "aolmivry45bvbmfywwm6tb542u" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataExerciseNestedStackExerciseNestedStackResource558D738COutputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataExerciseExerciseDataSource6949CF09Name", - "ParameterValue": "ExerciseTable" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataExerciseNestedStackExerciseNestedStackResource558D738COutputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataExerciseExerciseTable318B1DEBTableArn", - "ParameterValue": "arn:aws:dynamodb:us-east-1:123456789012:table/Exercise-2aikutabnvbuhlzmh4mvkg3eji-main" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef", - "ParameterValue": "us-east-1:6528409f-13ea-46fb-987a-ad861eedaad6" - } -] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataExerciseNestedStackExerciseNest-GSLDGK4G6DEO.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataExerciseNestedStackExerciseNest-GSLDGK4G6DEO.outputs.json deleted file mode 100644 index b505b6a1e85..00000000000 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataExerciseNestedStackExerciseNest-GSLDGK4G6DEO.outputs.json +++ /dev/null @@ -1,22 +0,0 @@ -[ - { - "OutputKey": "GetAttExerciseTableName", - "OutputValue": "Exercise-2aikutabnvbuhlzmh4mvkg3eji-main", - "Description": "Your DynamoDB table name.", - "ExportName": "aolmivry45bvbmfywwm6tb542u:GetAtt:ExerciseTable:Name" - }, - { - "OutputKey": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataExerciseExerciseTable318B1DEBTableArn", - "OutputValue": "arn:aws:dynamodb:us-east-1:123456789012:table/Exercise-2aikutabnvbuhlzmh4mvkg3eji-main" - }, - { - "OutputKey": "GetAttExerciseTableStreamArn", - "OutputValue": "arn:aws:dynamodb:us-east-1:123456789012:table/Exercise-2aikutabnvbuhlzmh4mvkg3eji-main/stream/2026-03-07T19:49:12.813", - "Description": "Your DynamoDB table StreamArn.", - "ExportName": "aolmivry45bvbmfywwm6tb542u:GetAtt:ExerciseTable:StreamArn" - }, - { - "OutputKey": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataExerciseExerciseDataSource6949CF09Name", - "OutputValue": "ExerciseTable" - } -] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataExerciseNestedStackExerciseNest-GSLDGK4G6DEO.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataExerciseNestedStackExerciseNest-GSLDGK4G6DEO.parameters.json deleted file mode 100644 index d6dedca64c5..00000000000 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataExerciseNestedStackExerciseNest-GSLDGK4G6DEO.parameters.json +++ /dev/null @@ -1,46 +0,0 @@ -[ - { - "ParameterKey": "DynamoDBModelTableReadIOPS", - "ParameterValue": "5" - }, - { - "ParameterKey": "DynamoDBEnableServerSideEncryption", - "ParameterValue": "true" - }, - { - "ParameterKey": "DynamoDBEnablePointInTimeRecovery", - "ParameterValue": "false" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName", - "ParameterValue": "NONE_DS" - }, - { - "ParameterKey": "DynamoDBBillingMode", - "ParameterValue": "PAY_PER_REQUEST" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref", - "ParameterValue": "amplify-fitnesstracker-gen-amplifyAuthauthenticatedU-ROG8INaCaQWH" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref", - "ParameterValue": "amplify-fitnesstracker-gen-amplifyAuthunauthenticate-xt24LpqBVS1s" - }, - { - "ParameterKey": "DynamoDBModelTableWriteIOPS", - "ParameterValue": "5" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId", - "ParameterValue": "aolmivry45bvbmfywwm6tb542u" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResource9E5C3FE8Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerTableMana3F678B61", - "ParameterValue": "arn:aws:lambda:us-east-1:123456789012:function:amplify-fitnesstracker-gen-TableManagerCustomProvid-jfKSxmnonqJ5" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef", - "ParameterValue": "us-east-1:6528409f-13ea-46fb-987a-ad861eedaad6" - } -] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataMealNestedStackMealNestedStackR-8W0VUDLMFHA1.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataMealNestedStackMealNestedStackR-8W0VUDLMFHA1.outputs.json deleted file mode 100644 index f1b98ddb27f..00000000000 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataMealNestedStackMealNestedStackR-8W0VUDLMFHA1.outputs.json +++ /dev/null @@ -1,18 +0,0 @@ -[ - { - "OutputKey": "GetAttMealTableName", - "OutputValue": "Meal-2aikutabnvbuhlzmh4mvkg3eji-main", - "Description": "Your DynamoDB table name.", - "ExportName": "aolmivry45bvbmfywwm6tb542u:GetAtt:MealTable:Name" - }, - { - "OutputKey": "GetAttMealTableStreamArn", - "OutputValue": "arn:aws:dynamodb:us-east-1:123456789012:table/Meal-2aikutabnvbuhlzmh4mvkg3eji-main/stream/2026-03-07T19:49:12.348", - "Description": "Your DynamoDB table StreamArn.", - "ExportName": "aolmivry45bvbmfywwm6tb542u:GetAtt:MealTable:StreamArn" - }, - { - "OutputKey": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataMealMealTableFB0A2E92TableArn", - "OutputValue": "arn:aws:dynamodb:us-east-1:123456789012:table/Meal-2aikutabnvbuhlzmh4mvkg3eji-main" - } -] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataMealNestedStackMealNestedStackR-8W0VUDLMFHA1.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataMealNestedStackMealNestedStackR-8W0VUDLMFHA1.parameters.json deleted file mode 100644 index d6dedca64c5..00000000000 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataMealNestedStackMealNestedStackR-8W0VUDLMFHA1.parameters.json +++ /dev/null @@ -1,46 +0,0 @@ -[ - { - "ParameterKey": "DynamoDBModelTableReadIOPS", - "ParameterValue": "5" - }, - { - "ParameterKey": "DynamoDBEnableServerSideEncryption", - "ParameterValue": "true" - }, - { - "ParameterKey": "DynamoDBEnablePointInTimeRecovery", - "ParameterValue": "false" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName", - "ParameterValue": "NONE_DS" - }, - { - "ParameterKey": "DynamoDBBillingMode", - "ParameterValue": "PAY_PER_REQUEST" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref", - "ParameterValue": "amplify-fitnesstracker-gen-amplifyAuthauthenticatedU-ROG8INaCaQWH" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref", - "ParameterValue": "amplify-fitnesstracker-gen-amplifyAuthunauthenticate-xt24LpqBVS1s" - }, - { - "ParameterKey": "DynamoDBModelTableWriteIOPS", - "ParameterValue": "5" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId", - "ParameterValue": "aolmivry45bvbmfywwm6tb542u" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResource9E5C3FE8Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerTableMana3F678B61", - "ParameterValue": "arn:aws:lambda:us-east-1:123456789012:function:amplify-fitnesstracker-gen-TableManagerCustomProvid-jfKSxmnonqJ5" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef", - "ParameterValue": "us-east-1:6528409f-13ea-46fb-987a-ad861eedaad6" - } -] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataWorkoutProgramNestedStackWorkou-1KL1EWK5B27DM.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataWorkoutProgramNestedStackWorkou-1KL1EWK5B27DM.parameters.json deleted file mode 100644 index d6dedca64c5..00000000000 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a-amplifyDataWorkoutProgramNestedStackWorkou-1KL1EWK5B27DM.parameters.json +++ /dev/null @@ -1,46 +0,0 @@ -[ - { - "ParameterKey": "DynamoDBModelTableReadIOPS", - "ParameterValue": "5" - }, - { - "ParameterKey": "DynamoDBEnableServerSideEncryption", - "ParameterValue": "true" - }, - { - "ParameterKey": "DynamoDBEnablePointInTimeRecovery", - "ParameterValue": "false" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPINONEDSBA892CCCName", - "ParameterValue": "NONE_DS" - }, - { - "ParameterKey": "DynamoDBBillingMode", - "ParameterValue": "PAY_PER_REQUEST" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref", - "ParameterValue": "amplify-fitnesstracker-gen-amplifyAuthauthenticatedU-ROG8INaCaQWH" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref", - "ParameterValue": "amplify-fitnesstracker-gen-amplifyAuthunauthenticate-xt24LpqBVS1s" - }, - { - "ParameterKey": "DynamoDBModelTableWriteIOPS", - "ParameterValue": "5" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId", - "ParameterValue": "aolmivry45bvbmfywwm6tb542u" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerNestedStackAmplifyTableManagerNestedStackResource9E5C3FE8Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyTableManagerTableMana3F678B61", - "ParameterValue": "arn:aws:lambda:us-east-1:123456789012:function:amplify-fitnesstracker-gen-TableManagerCustomProvid-jfKSxmnonqJ5" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef", - "ParameterValue": "us-east-1:6528409f-13ea-46fb-987a-ad861eedaad6" - } -] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-auth179371D7-T5KTLQB5RTR1.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-auth179371D7-T5KTLQB5RTR1.outputs.json deleted file mode 100644 index 3385d925170..00000000000 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-auth179371D7-T5KTLQB5RTR1.outputs.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "OutputKey": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref", - "OutputValue": "amplify-fitnesstracker-gen-amplifyAuthunauthenticate-xt24LpqBVS1s" - }, - { - "OutputKey": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3authfitnesstracker6b0fc1196b0fc119PreSignupgen2mainlambda8F8CF17DRef", - "OutputValue": "fitnesstracker6b0fc1196b0fc119PreSignup-gen2-main" - }, - { - "OutputKey": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef", - "OutputValue": "us-east-1:6528409f-13ea-46fb-987a-ad861eedaad6" - }, - { - "OutputKey": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3authadmingen2mainlambda2E47DE6ARef", - "OutputValue": "admin-gen2-main" - }, - { - "OutputKey": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref", - "OutputValue": "amplify-fitnesstracker-gen-amplifyAuthauthenticatedU-ROG8INaCaQWH" - }, - { - "OutputKey": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthUserPoolAppClient1C98798ERef", - "OutputValue": "2mph5n4c194d3ogp33evjku9cg" - }, - { - "OutputKey": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthUserPool82133007Ref", - "OutputValue": "us-east-1_MZOGAx4cE" - }, - { - "OutputKey": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthAdminGroupRole5A967615Ref", - "OutputValue": "amplify-fitnesstracker-gen-amplifyAuthAdminGroupRole-Xedsy5EWmRnv" - }, - { - "OutputKey": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3authadmingen2mainlambda2E47DE6AArn", - "OutputValue": "arn:aws:lambda:us-east-1:123456789012:function:admin-gen2-main" - } -] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-data7552DF31-FY14PTEHE5GQ.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-data7552DF31-FY14PTEHE5GQ.outputs.json deleted file mode 100644 index 325fbbcc212..00000000000 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-data7552DF31-FY14PTEHE5GQ.outputs.json +++ /dev/null @@ -1,26 +0,0 @@ -[ - { - "OutputKey": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3datalognutritiongen2mainlambdaB5F1A17DRef", - "OutputValue": "lognutrition-gen2-main" - }, - { - "OutputKey": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3GraphQLUrl", - "OutputValue": "https://77wvqbitijagpavjez3eammdna.appsync-api.us-east-1.amazonaws.com/graphql" - }, - { - "OutputKey": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPI530714E3ApiId", - "OutputValue": "aolmivry45bvbmfywwm6tb542u" - }, - { - "OutputKey": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataAmplifyCodegenAssetsAmplifyCodegenAssetsDeploymentCustomResource1536MiB31EBB484DestinationBucketArn", - "OutputValue": "arn:aws:s3:::amplify-fitnesstracker-gen-amplifydataamplifycodege-cm7x3zuy98og" - }, - { - "OutputKey": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3datalognutritiongen2mainlambdaB5F1A17DArn", - "OutputValue": "arn:aws:lambda:us-east-1:123456789012:function:lognutrition-gen2-main" - }, - { - "OutputKey": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3dataamplifyDataGraphQLAPIDefaultApiKeyDA026B5BApiKey", - "OutputValue": "da2-ebjsxuyj6nccppdwuy2ozljcla" - } -] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-data7552DF31-FY14PTEHE5GQ.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-data7552DF31-FY14PTEHE5GQ.parameters.json deleted file mode 100644 index 415648b03ad..00000000000 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-data7552DF31-FY14PTEHE5GQ.parameters.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "ParameterKey": "DynamoDBModelTableReadIOPS", - "ParameterValue": "5" - }, - { - "ParameterKey": "DynamoDBEnableServerSideEncryption", - "ParameterValue": "true" - }, - { - "ParameterKey": "DynamoDBEnablePointInTimeRecovery", - "ParameterValue": "false" - }, - { - "ParameterKey": "DynamoDBBillingMode", - "ParameterValue": "PAY_PER_REQUEST" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthUserPool82133007Ref", - "ParameterValue": "us-east-1_MZOGAx4cE" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref", - "ParameterValue": "amplify-fitnesstracker-gen-amplifyAuthauthenticatedU-ROG8INaCaQWH" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthunauthenticatedUserRole0595D315Ref", - "ParameterValue": "amplify-fitnesstracker-gen-amplifyAuthunauthenticate-xt24LpqBVS1s" - }, - { - "ParameterKey": "DynamoDBModelTableWriteIOPS", - "ParameterValue": "5" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthIdentityPoolE5B9CC1CRef", - "ParameterValue": "us-east-1:6528409f-13ea-46fb-987a-ad861eedaad6" - } -] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-restapistackadminapi43EA27F6-1G3WMFGGD1GX.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-restapistackadminapi43EA27F6-1G3WMFGGD1GX.outputs.json deleted file mode 100644 index 6cbc04ee262..00000000000 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-restapistackadminapi43EA27F6-1G3WMFGGD1GX.outputs.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - { - "OutputKey": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistackadminapiRestApiDeploymentStageprodEE0CE72ARef", - "OutputValue": "prod" - }, - { - "OutputKey": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistackadminapiRestApi9C3E9536Ref", - "OutputValue": "42m7vp2bob" - }, - { - "OutputKey": "RestApiEndpoint0551178A", - "OutputValue": "https://42m7vp2bob.execute-api.us-east-1.amazonaws.com/prod/" - } -] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-restapistackadminapi43EA27F6-1G3WMFGGD1GX.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-restapistackadminapi43EA27F6-1G3WMFGGD1GX.parameters.json deleted file mode 100644 index 215aaea3bae..00000000000 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-restapistackadminapi43EA27F6-1G3WMFGGD1GX.parameters.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref", - "ParameterValue": "amplify-fitnesstracker-gen-amplifyAuthauthenticatedU-ROG8INaCaQWH" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authadmingen2mainlambda2E47DE6AArn", - "ParameterValue": "arn:aws:lambda:us-east-1:123456789012:function:admin-gen2-main" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthAdminGroupRole5A967615Ref", - "ParameterValue": "amplify-fitnesstracker-gen-amplifyAuthAdminGroupRole-Xedsy5EWmRnv" - } -] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-restapistacknutritionapi72914ECD-UEOCVVQH4SZ3.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-restapistacknutritionapi72914ECD-UEOCVVQH4SZ3.outputs.json deleted file mode 100644 index 023c38fdbac..00000000000 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-restapistacknutritionapi72914ECD-UEOCVVQH4SZ3.outputs.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - { - "OutputKey": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistacknutritionapiRestApiDeploymentStageprod4B62A983Ref", - "OutputValue": "prod" - }, - { - "OutputKey": "RestApiEndpoint0551178A", - "OutputValue": "https://nimt9s6hi5.execute-api.us-east-1.amazonaws.com/prod/" - }, - { - "OutputKey": "amplifyfitnesstrackergen2mainbranchf6c5a5beb3restapistacknutritionapiRestApi33E7E7D9Ref", - "OutputValue": "nimt9s6hi5" - } -] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-restapistacknutritionapi72914ECD-UEOCVVQH4SZ3.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-restapistacknutritionapi72914ECD-UEOCVVQH4SZ3.parameters.json deleted file mode 100644 index daeda5987b9..00000000000 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-gen2main-branch-f6c5a5beb3-restapistacknutritionapi72914ECD-UEOCVVQH4SZ3.parameters.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3dataNestedStackdataNestedStackResource1172CA08Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3datalognutritiongen2mainlambdaB5F1A17DArn", - "ParameterValue": "arn:aws:lambda:us-east-1:123456789012:function:lognutrition-gen2-main" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthauthenticatedUserRoleB67A2B52Ref", - "ParameterValue": "amplify-fitnesstracker-gen-amplifyAuthauthenticatedU-ROG8INaCaQWH" - }, - { - "ParameterKey": "referencetoamplifyfitnesstrackergen2mainbranchf6c5a5beb3authNestedStackauthNestedStackResourceC6E94DB9Outputsamplifyfitnesstrackergen2mainbranchf6c5a5beb3authamplifyAuthAdminGroupRole5A967615Ref", - "ParameterValue": "amplify-fitnesstracker-gen-amplifyAuthAdminGroupRole-Xedsy5EWmRnv" - } -] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS.outputs.json deleted file mode 100644 index 92f4a2d5ae6..00000000000 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS.outputs.json +++ /dev/null @@ -1,20 +0,0 @@ -[ - { - "OutputKey": "GraphQLAPIIdOutput", - "OutputValue": "2aikutabnvbuhlzmh4mvkg3eji", - "Description": "Your GraphQL API ID.", - "ExportName": "amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS:GraphQLApiId" - }, - { - "OutputKey": "GraphQLAPIEndpointOutput", - "OutputValue": "https://azg6sgrevzehjmrpkcghyncvci.appsync-api.us-east-1.amazonaws.com/graphql", - "Description": "Your GraphQL API endpoint.", - "ExportName": "amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS:GraphQLApiEndpoint" - }, - { - "OutputKey": "GraphQLAPIKeyOutput", - "OutputValue": "da2-fakeapikey00000000000000", - "Description": "Your GraphQL API ID.", - "ExportName": "amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS:GraphQLApiKey" - } -] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-authfitnesstracker6b0fc1196b0fc119-IU8FJDZI54QH.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-authfitnesstracker6b0fc1196b0fc119-IU8FJDZI54QH.template.json deleted file mode 100644 index 6fd7a4879cc..00000000000 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-authfitnesstracker6b0fc1196b0fc119-IU8FJDZI54QH.template.json +++ /dev/null @@ -1,480 +0,0 @@ -{ - "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"auth-Cognito\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", - "AWSTemplateFormatVersion": "2010-09-09", - "Parameters": { - "env": { - "Type": "String" - }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupArn": { - "Type": "String", - "Default": "functionfitnesstracker6b0fc1196b0fc119PreSignupArn" - }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupName": { - "Type": "String", - "Default": "functionfitnesstracker6b0fc1196b0fc119PreSignupName" - }, - "identityPoolName": { - "Type": "String" - }, - "allowUnauthenticatedIdentities": { - "Type": "String" - }, - "resourceNameTruncated": { - "Type": "String" - }, - "userPoolName": { - "Type": "String" - }, - "autoVerifiedAttributes": { - "Type": "CommaDelimitedList" - }, - "mfaConfiguration": { - "Type": "String" - }, - "mfaTypes": { - "Type": "CommaDelimitedList" - }, - "smsAuthenticationMessage": { - "Type": "String" - }, - "smsVerificationMessage": { - "Type": "String" - }, - "emailVerificationSubject": { - "Type": "String" - }, - "emailVerificationMessage": { - "Type": "String" - }, - "defaultPasswordPolicy": { - "Type": "String" - }, - "passwordPolicyMinLength": { - "Type": "String" - }, - "passwordPolicyCharacters": { - "Type": "CommaDelimitedList" - }, - "requiredAttributes": { - "Type": "CommaDelimitedList" - }, - "aliasAttributes": { - "Type": "CommaDelimitedList" - }, - "userpoolClientGenerateSecret": { - "Type": "String" - }, - "userpoolClientRefreshTokenValidity": { - "Type": "String" - }, - "userpoolClientWriteAttributes": { - "Type": "CommaDelimitedList" - }, - "userpoolClientReadAttributes": { - "Type": "CommaDelimitedList" - }, - "userpoolClientLambdaRole": { - "Type": "String" - }, - "userpoolClientSetAttributes": { - "Type": "String" - }, - "sharedId": { - "Type": "String" - }, - "resourceName": { - "Type": "String" - }, - "authSelections": { - "Type": "String" - }, - "useDefault": { - "Type": "String" - }, - "thirdPartyAuth": { - "Type": "String" - }, - "userPoolGroups": { - "Type": "String" - }, - "adminQueries": { - "Type": "String" - }, - "triggers": { - "Type": "String" - }, - "hostedUI": { - "Type": "String" - }, - "userPoolGroupList": { - "Type": "CommaDelimitedList" - }, - "serviceName": { - "Type": "String" - }, - "usernameCaseSensitive": { - "Type": "String" - }, - "useEnabledMfas": { - "Type": "String" - }, - "authRoleArn": { - "Type": "String" - }, - "unauthRoleArn": { - "Type": "String" - }, - "breakCircularDependency": { - "Type": "String" - }, - "dependsOn": { - "Type": "CommaDelimitedList" - }, - "permissions": { - "Type": "CommaDelimitedList" - }, - "authTriggerConnections": { - "Type": "CommaDelimitedList" - } - }, - "Conditions": { - "ShouldNotCreateEnvResources": { - "Fn::Equals": [ - { - "Ref": "env" - }, - "NONE" - ] - } - }, - "Resources": { - "UserPool": { - "Type": "AWS::Cognito::UserPool", - "Properties": { - "AutoVerifiedAttributes": [ - "email" - ], - "EmailVerificationMessage": { - "Ref": "emailVerificationMessage" - }, - "EmailVerificationSubject": { - "Ref": "emailVerificationSubject" - }, - "MfaConfiguration": { - "Ref": "mfaConfiguration" - }, - "Policies": { - "PasswordPolicy": { - "MinimumLength": { - "Ref": "passwordPolicyMinLength" - }, - "RequireLowercase": false, - "RequireNumbers": false, - "RequireSymbols": false, - "RequireUppercase": false - } - }, - "Schema": [ - { - "Mutable": true, - "Name": "email", - "Required": true - } - ], - "UserAttributeUpdateSettings": { - "AttributesRequireVerificationBeforeUpdate": [ - "email" - ] - }, - "UserPoolName": { - "Fn::If": [ - "ShouldNotCreateEnvResources", - { - "Ref": "userPoolName" - }, - { - "Fn::Join": [ - "", - [ - { - "Ref": "userPoolName" - }, - "-", - { - "Ref": "env" - } - ] - ] - } - ] - }, - "UsernameConfiguration": { - "CaseSensitive": false - } - } - }, - "UserPoolClientWeb": { - "Type": "AWS::Cognito::UserPoolClient", - "Properties": { - "ClientName": "fitnes6b0fc119_app_clientWeb", - "RefreshTokenValidity": { - "Ref": "userpoolClientRefreshTokenValidity" - }, - "TokenValidityUnits": { - "RefreshToken": "days" - }, - "UserPoolId": { - "Ref": "UserPool" - } - }, - "DependsOn": [ - "UserPool" - ] - }, - "UserPoolClient": { - "Type": "AWS::Cognito::UserPoolClient", - "Properties": { - "ClientName": "fitnes6b0fc119_app_client", - "GenerateSecret": { - "Ref": "userpoolClientGenerateSecret" - }, - "RefreshTokenValidity": { - "Ref": "userpoolClientRefreshTokenValidity" - }, - "TokenValidityUnits": { - "RefreshToken": "days" - }, - "UserPoolId": { - "Ref": "UserPool" - } - }, - "DependsOn": [ - "UserPool" - ] - }, - "UserPoolClientRole": { - "Type": "AWS::IAM::Role", - "Properties": { - "AssumeRolePolicyDocument": { - "Version": "2012-10-17", - "Statement": [ - { - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - }, - "Action": "sts:AssumeRole" - } - ] - }, - "RoleName": { - "Fn::If": [ - "ShouldNotCreateEnvResources", - { - "Ref": "userpoolClientLambdaRole" - }, - { - "Fn::Join": [ - "", - [ - "upClientLambdaRole6b0fc119", - { - "Fn::Select": [ - 3, - { - "Fn::Split": [ - "-", - { - "Ref": "AWS::StackName" - } - ] - } - ] - }, - "-", - { - "Ref": "env" - } - ] - ] - } - ] - } - } - }, - "IdentityPool": { - "Type": "AWS::Cognito::IdentityPool", - "Properties": { - "AllowUnauthenticatedIdentities": { - "Ref": "allowUnauthenticatedIdentities" - }, - "CognitoIdentityProviders": [ - { - "ClientId": { - "Ref": "UserPoolClient" - }, - "ProviderName": { - "Fn::Sub": [ - "cognito-idp.${region}.amazonaws.com/${client}", - { - "region": { - "Ref": "AWS::Region" - }, - "client": { - "Ref": "UserPool" - } - } - ] - } - }, - { - "ClientId": { - "Ref": "UserPoolClientWeb" - }, - "ProviderName": { - "Fn::Sub": [ - "cognito-idp.${region}.amazonaws.com/${client}", - { - "region": { - "Ref": "AWS::Region" - }, - "client": { - "Ref": "UserPool" - } - } - ] - } - } - ], - "IdentityPoolName": { - "Fn::If": [ - "ShouldNotCreateEnvResources", - "fitnesstracker6b0fc119_identitypool_6b0fc119", - { - "Fn::Join": [ - "", - [ - "fitnesstracker6b0fc119_identitypool_6b0fc119__", - { - "Ref": "env" - } - ] - ] - } - ] - } - } - }, - "IdentityPoolRoleMap": { - "Type": "AWS::Cognito::IdentityPoolRoleAttachment", - "Properties": { - "IdentityPoolId": { - "Ref": "IdentityPool" - }, - "RoleMappings": { - "UserPoolClientRoleMapping": { - "AmbiguousRoleResolution": "AuthenticatedRole", - "IdentityProvider": { - "Fn::Sub": [ - "cognito-idp.${region}.amazonaws.com/${userPool}:${client}", - { - "region": { - "Ref": "AWS::Region" - }, - "userPool": { - "Ref": "UserPool" - }, - "client": { - "Ref": "UserPoolClient" - } - } - ] - }, - "Type": "Token" - }, - "UserPoolWebClientRoleMapping": { - "AmbiguousRoleResolution": "AuthenticatedRole", - "IdentityProvider": { - "Fn::Sub": [ - "cognito-idp.${region}.amazonaws.com/${userPool}:${webClient}", - { - "region": { - "Ref": "AWS::Region" - }, - "userPool": { - "Ref": "UserPool" - }, - "webClient": { - "Ref": "UserPoolClientWeb" - } - } - ] - }, - "Type": "Token" - } - }, - "Roles": { - "unauthenticated": { - "Ref": "unauthRoleArn" - }, - "authenticated": { - "Ref": "authRoleArn" - } - } - }, - "DependsOn": [ - "IdentityPool", - "UserPoolClient", - "UserPoolClientWeb" - ] - } - }, - "Outputs": { - "IdentityPoolId": { - "Description": "Id for the identity pool", - "Value": { - "Ref": "IdentityPool" - } - }, - "IdentityPoolName": { - "Value": { - "Fn::GetAtt": [ - "IdentityPool", - "Name" - ] - } - }, - "UserPoolId": { - "Description": "Id for the user pool", - "Value": { - "Ref": "UserPool" - } - }, - "UserPoolArn": { - "Description": "Arn for the user pool", - "Value": { - "Fn::GetAtt": [ - "UserPool", - "Arn" - ] - } - }, - "UserPoolName": { - "Value": { - "Ref": "userPoolName" - } - }, - "AppClientIDWeb": { - "Description": "The user pool app client id for web", - "Value": { - "Ref": "UserPoolClientWeb" - } - }, - "AppClientID": { - "Description": "The user pool app client id", - "Value": { - "Ref": "UserPoolClient" - } - } - } -} \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-authuserPoolGroups-1RDWF2H8163RP.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-authuserPoolGroups-1RDWF2H8163RP.outputs.json deleted file mode 100644 index 65c2f629405..00000000000 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-authuserPoolGroups-1RDWF2H8163RP.outputs.json +++ /dev/null @@ -1,6 +0,0 @@ -[ - { - "OutputKey": "AdminGroupRole", - "OutputValue": "arn:aws:iam::123456789012:role/us-east-1_u3DbKJdMj-AdminGroupRole" - } -] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-authuserPoolGroups-1RDWF2H8163RP.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-authuserPoolGroups-1RDWF2H8163RP.parameters.json deleted file mode 100644 index 008b590398b..00000000000 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-authuserPoolGroups-1RDWF2H8163RP.parameters.json +++ /dev/null @@ -1,30 +0,0 @@ -[ - { - "ParameterKey": "authfitnesstracker6b0fc1196b0fc119AppClientIDWeb", - "ParameterValue": "7rgr70g6grv2t7e4jstuq5uuqg" - }, - { - "ParameterKey": "UnauthRoleArn", - "ParameterValue": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-0683c-unauthRole" - }, - { - "ParameterKey": "authfitnesstracker6b0fc1196b0fc119UserPoolId", - "ParameterValue": "us-east-1_u3DbKJdMj" - }, - { - "ParameterKey": "authfitnesstracker6b0fc1196b0fc119AppClientID", - "ParameterValue": "7s3vppsutj69af1r91u7tm2a45" - }, - { - "ParameterKey": "AuthRoleArn", - "ParameterValue": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-0683c-authRole" - }, - { - "ParameterKey": "authfitnesstracker6b0fc1196b0fc119IdentityPoolId", - "ParameterValue": "us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db" - }, - { - "ParameterKey": "env", - "ParameterValue": "main" - } -] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionfitnesstracker6b0fc1196b0fc119PreSignup-IQSLCEZIETI0.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionfitnesstracker6b0fc1196b0fc119PreSignup-IQSLCEZIETI0.template.json deleted file mode 100644 index c0cf3b931f5..00000000000 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionfitnesstracker6b0fc1196b0fc119PreSignup-IQSLCEZIETI0.template.json +++ /dev/null @@ -1,242 +0,0 @@ -{ - "AWSTemplateFormatVersion": "2010-09-09", - "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"function-Lambda\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", - "Parameters": { - "DOMAINBLACKLIST": { - "Type": "String", - "Default": "" - }, - "DOMAINALLOWLIST": { - "Type": "String", - "Default": "" - }, - "modules": { - "Type": "String", - "Default": "", - "Description": "Comma-delimited list of modules to be executed by a lambda trigger. Sent to resource as an env variable." - }, - "resourceName": { - "Type": "String", - "Default": "" - }, - "trigger": { - "Type": "String", - "Default": "true" - }, - "functionName": { - "Type": "String", - "Default": "" - }, - "roleName": { - "Type": "String", - "Default": "" - }, - "parentResource": { - "Type": "String", - "Default": "" - }, - "parentStack": { - "Type": "String", - "Default": "" - }, - "env": { - "Type": "String" - }, - "deploymentBucketName": { - "Type": "String" - }, - "s3Key": { - "Type": "String" - } - }, - "Conditions": { - "ShouldNotCreateEnvResources": { - "Fn::Equals": [ - { - "Ref": "env" - }, - "NONE" - ] - } - }, - "Resources": { - "LambdaFunction": { - "Type": "AWS::Lambda::Function", - "Metadata": { - "aws:asset:path": "./src", - "aws:asset:property": "Code" - }, - "Properties": { - "Handler": "index.handler", - "FunctionName": { - "Fn::If": [ - "ShouldNotCreateEnvResources", - "fitnesstracker6b0fc1196b0fc119PreSignup", - { - "Fn::Join": [ - "", - [ - "fitnesstracker6b0fc1196b0fc119PreSignup", - "-", - { - "Ref": "env" - } - ] - ] - } - ] - }, - "Environment": { - "Variables": { - "ENV": { - "Ref": "env" - }, - "MODULES": { - "Ref": "modules" - }, - "REGION": { - "Ref": "AWS::Region" - }, - "DOMAINALLOWLIST": { - "Ref": "DOMAINALLOWLIST" - }, - "DOMAINBLACKLIST": { - "Ref": "DOMAINBLACKLIST" - } - } - }, - "Role": { - "Fn::GetAtt": [ - "LambdaExecutionRole", - "Arn" - ] - }, - "Runtime": "nodejs22.x", - "Timeout": 25, - "Code": { - "S3Bucket": { - "Ref": "deploymentBucketName" - }, - "S3Key": { - "Ref": "s3Key" - } - } - } - }, - "LambdaExecutionRole": { - "Type": "AWS::IAM::Role", - "Properties": { - "RoleName": { - "Fn::If": [ - "ShouldNotCreateEnvResources", - "fitnesstracker6b0fc1196b0fc119PreSignup", - { - "Fn::Join": [ - "", - [ - "fitnesstracker6b0fc1196b0fc119PreSignup", - "-", - { - "Ref": "env" - } - ] - ] - } - ] - }, - "AssumeRolePolicyDocument": { - "Version": "2012-10-17", - "Statement": [ - { - "Effect": "Allow", - "Principal": { - "Service": [ - "lambda.amazonaws.com" - ] - }, - "Action": [ - "sts:AssumeRole" - ] - } - ] - } - } - }, - "lambdaexecutionpolicy": { - "DependsOn": [ - "LambdaExecutionRole" - ], - "Type": "AWS::IAM::Policy", - "Properties": { - "PolicyName": "lambda-execution-policy", - "Roles": [ - { - "Ref": "LambdaExecutionRole" - } - ], - "PolicyDocument": { - "Version": "2012-10-17", - "Statement": [ - { - "Effect": "Allow", - "Action": [ - "logs:CreateLogGroup", - "logs:CreateLogStream", - "logs:PutLogEvents" - ], - "Resource": { - "Fn::Sub": [ - "arn:aws:logs:${region}:${account}:log-group:/aws/lambda/${lambda}:log-stream:*", - { - "region": { - "Ref": "AWS::Region" - }, - "account": { - "Ref": "AWS::AccountId" - }, - "lambda": { - "Ref": "LambdaFunction" - } - } - ] - } - } - ] - } - } - } - }, - "Outputs": { - "Name": { - "Value": { - "Ref": "LambdaFunction" - } - }, - "Arn": { - "Value": { - "Fn::GetAtt": [ - "LambdaFunction", - "Arn" - ] - } - }, - "LambdaExecutionRole": { - "Value": { - "Ref": "LambdaExecutionRole" - } - }, - "LambdaExecutionRoleArn": { - "Value": { - "Fn::GetAtt": [ - "LambdaExecutionRole", - "Arn" - ] - } - }, - "Region": { - "Value": { - "Ref": "AWS::Region" - } - } - } -} \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c.parameters.json deleted file mode 100644 index e4f2f4d49c0..00000000000 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c.parameters.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - { - "ParameterKey": "AuthRoleName", - "ParameterValue": "amplify-fitnesstracker-main-0683c-authRole" - }, - { - "ParameterKey": "DeploymentBucketName", - "ParameterValue": "amplify-fitnesstracker-main-0683c-deployment" - }, - { - "ParameterKey": "UnauthRoleName", - "ParameterValue": "amplify-fitnesstracker-main-0683c-unauthRole" - } -] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-APIGatewayAuthStack-2YRT3JXB74ES.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-APIGatewayAuthStack-1PX292PE83STS.description.txt similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-APIGatewayAuthStack-2YRT3JXB74ES.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-APIGatewayAuthStack-1PX292PE83STS.description.txt diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-AuthTriggerCustomLambdaStack-ME2HIO3WXG9U.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-APIGatewayAuthStack-1PX292PE83STS.outputs.json similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-AuthTriggerCustomLambdaStack-ME2HIO3WXG9U.outputs.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-APIGatewayAuthStack-1PX292PE83STS.outputs.json diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-APIGatewayAuthStack-2YRT3JXB74ES.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-APIGatewayAuthStack-1PX292PE83STS.parameters.json similarity index 56% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-APIGatewayAuthStack-2YRT3JXB74ES.parameters.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-APIGatewayAuthStack-1PX292PE83STS.parameters.json index 7a9296e421a..f12a02b2c3a 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-APIGatewayAuthStack-2YRT3JXB74ES.parameters.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-APIGatewayAuthStack-1PX292PE83STS.parameters.json @@ -1,19 +1,19 @@ [ { "ParameterKey": "authRoleName", - "ParameterValue": "amplify-fitnesstracker-main-0683c-authRole" + "ParameterValue": "amplify-fitnesstracker-main-a0537-authRole" }, { "ParameterKey": "nutritionapi", - "ParameterValue": "6smuxn28tb" + "ParameterValue": "hmydcaubcb" }, { "ParameterKey": "unauthRoleName", - "ParameterValue": "amplify-fitnesstracker-main-0683c-unauthRole" + "ParameterValue": "amplify-fitnesstracker-main-a0537-unauthRole" }, { "ParameterKey": "adminapi", - "ParameterValue": "kh5xa5hayh" + "ParameterValue": "oxq86r59h6" }, { "ParameterKey": "env", diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-APIGatewayAuthStack-2YRT3JXB74ES.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-APIGatewayAuthStack-1PX292PE83STS.template.json similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-APIGatewayAuthStack-2YRT3JXB74ES.template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-APIGatewayAuthStack-1PX292PE83STS.template.json diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-AuthTriggerCustomLambdaStack-ME2HIO3WXG9U.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-AuthTriggerCustomLambdaStack-TT7MSI2O15CI.description.txt similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-AuthTriggerCustomLambdaStack-ME2HIO3WXG9U.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-AuthTriggerCustomLambdaStack-TT7MSI2O15CI.description.txt diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-ConnectionStack-MFCAEX2L0CKC.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-AuthTriggerCustomLambdaStack-TT7MSI2O15CI.outputs.json similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-ConnectionStack-MFCAEX2L0CKC.outputs.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-AuthTriggerCustomLambdaStack-TT7MSI2O15CI.outputs.json diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-AuthTriggerCustomLambdaStack-ME2HIO3WXG9U.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-AuthTriggerCustomLambdaStack-TT7MSI2O15CI.parameters.json similarity index 50% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-AuthTriggerCustomLambdaStack-ME2HIO3WXG9U.parameters.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-AuthTriggerCustomLambdaStack-TT7MSI2O15CI.parameters.json index dbc97b6c78e..6ed9f4a0eae 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-AuthTriggerCustomLambdaStack-ME2HIO3WXG9U.parameters.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-AuthTriggerCustomLambdaStack-TT7MSI2O15CI.parameters.json @@ -1,19 +1,19 @@ [ { - "ParameterKey": "userpoolId", - "ParameterValue": "us-east-1_u3DbKJdMj" + "ParameterKey": "functionfitnesstracker33f5545533f55455PreSignupLambdaExecutionRole", + "ParameterValue": "arn:aws:iam::123456789012:role/fitnesstracker33f5545533f55455PreSignup-main" }, { - "ParameterKey": "functionfitnesstracker6b0fc1196b0fc119PreSignupLambdaExecutionRole", - "ParameterValue": "arn:aws:iam::123456789012:role/fitnesstracker6b0fc1196b0fc119PreSignup-main" + "ParameterKey": "functionfitnesstracker33f5545533f55455PreSignupName", + "ParameterValue": "fitnesstracker33f5545533f55455PreSignup-main" }, { - "ParameterKey": "functionfitnesstracker6b0fc1196b0fc119PreSignupName", - "ParameterValue": "fitnesstracker6b0fc1196b0fc119PreSignup-main" + "ParameterKey": "functionfitnesstracker33f5545533f55455PreSignupArn", + "ParameterValue": "arn:aws:lambda:us-east-1:123456789012:function:fitnesstracker33f5545533f55455PreSignup-main" }, { - "ParameterKey": "functionfitnesstracker6b0fc1196b0fc119PreSignupArn", - "ParameterValue": "arn:aws:lambda:us-east-1:123456789012:function:fitnesstracker6b0fc1196b0fc119PreSignup-main" + "ParameterKey": "userpoolId", + "ParameterValue": "us-east-1_iguxCIcMS" }, { "ParameterKey": "env", @@ -21,6 +21,6 @@ }, { "ParameterKey": "userpoolArn", - "ParameterValue": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_u3DbKJdMj" + "ParameterValue": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_iguxCIcMS" } ] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-AuthTriggerCustomLambdaStack-ME2HIO3WXG9U.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-AuthTriggerCustomLambdaStack-TT7MSI2O15CI.template.json similarity index 94% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-AuthTriggerCustomLambdaStack-ME2HIO3WXG9U.template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-AuthTriggerCustomLambdaStack-TT7MSI2O15CI.template.json index d6957843a14..fd44b22e128 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-AuthTriggerCustomLambdaStack-ME2HIO3WXG9U.template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-AuthTriggerCustomLambdaStack-TT7MSI2O15CI.template.json @@ -11,13 +11,13 @@ "userpoolArn": { "Type": "String" }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupName": { + "functionfitnesstracker33f5545533f55455PreSignupName": { "Type": "String" }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupArn": { + "functionfitnesstracker33f5545533f55455PreSignupArn": { "Type": "String" }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupLambdaExecutionRole": { + "functionfitnesstracker33f5545533f55455PreSignupLambdaExecutionRole": { "Type": "String" } }, @@ -37,7 +37,7 @@ "Properties": { "Action": "lambda:InvokeFunction", "FunctionName": { - "Ref": "functionfitnesstracker6b0fc1196b0fc119PreSignupName" + "Ref": "functionfitnesstracker33f5545533f55455PreSignupName" }, "Principal": "cognito-idp.amazonaws.com", "SourceArn": { @@ -137,13 +137,13 @@ "lambdaConfig": [ { "triggerType": "PreSignUp", - "lambdaFunctionName": "fitnesstracker6b0fc1196b0fc119PreSignup", + "lambdaFunctionName": "fitnesstracker33f5545533f55455PreSignup", "lambdaFunctionArn": { - "Ref": "functionfitnesstracker6b0fc1196b0fc119PreSignupArn" + "Ref": "functionfitnesstracker33f5545533f55455PreSignupArn" } } ], - "nonce": "7cd6005c-9c8e-4220-8301-da63a38e9760" + "nonce": "bb94c712-a1c6-4c6a-82b8-4cb8c57b4acc" }, "DependsOn": [ "authTriggerFn7FCFA449", diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apiadminapi-T8AKDMEB7K09.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apiadminapi-NIM0OPDFSKJR.description.txt similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apiadminapi-T8AKDMEB7K09.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apiadminapi-NIM0OPDFSKJR.description.txt diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apiadminapi-T8AKDMEB7K09.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apiadminapi-NIM0OPDFSKJR.outputs.json similarity index 75% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apiadminapi-T8AKDMEB7K09.outputs.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apiadminapi-NIM0OPDFSKJR.outputs.json index f7824fb4182..124a527f440 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apiadminapi-T8AKDMEB7K09.outputs.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apiadminapi-NIM0OPDFSKJR.outputs.json @@ -6,12 +6,12 @@ }, { "OutputKey": "RootUrl", - "OutputValue": "https://kh5xa5hayh.execute-api.us-east-1.amazonaws.com/main", + "OutputValue": "https://oxq86r59h6.execute-api.us-east-1.amazonaws.com/main", "Description": "Root URL of the API gateway" }, { "OutputKey": "ApiId", - "OutputValue": "kh5xa5hayh", + "OutputValue": "oxq86r59h6", "Description": "API ID (prefix of API URL)" } ] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apiadminapi-T8AKDMEB7K09.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apiadminapi-NIM0OPDFSKJR.parameters.json similarity index 76% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apiadminapi-T8AKDMEB7K09.parameters.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apiadminapi-NIM0OPDFSKJR.parameters.json index 8547d0750f0..b06a743d6c9 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apiadminapi-T8AKDMEB7K09.parameters.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apiadminapi-NIM0OPDFSKJR.parameters.json @@ -3,20 +3,20 @@ "ParameterKey": "functionadminArn", "ParameterValue": "arn:aws:lambda:us-east-1:123456789012:function:admin-main" }, - { - "ParameterKey": "authfitnesstracker6b0fc1196b0fc119UserPoolId", - "ParameterValue": "us-east-1_u3DbKJdMj" - }, { "ParameterKey": "functionadminName", "ParameterValue": "admin-main" }, + { + "ParameterKey": "authfitnesstracker33f5545533f55455UserPoolId", + "ParameterValue": "us-east-1_iguxCIcMS" + }, { "ParameterKey": "env", "ParameterValue": "main" }, { "ParameterKey": "authuserPoolGroupsAdminGroupRole", - "ParameterValue": "arn:aws:iam::123456789012:role/us-east-1_u3DbKJdMj-AdminGroupRole" + "ParameterValue": "arn:aws:iam::123456789012:role/us-east-1_iguxCIcMS-AdminGroupRole" } ] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apiadminapi-T8AKDMEB7K09.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apiadminapi-NIM0OPDFSKJR.template.json similarity index 97% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apiadminapi-T8AKDMEB7K09.template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apiadminapi-NIM0OPDFSKJR.template.json index 6183a2fcf64..0eb23e1dfa6 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apiadminapi-T8AKDMEB7K09.template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apiadminapi-NIM0OPDFSKJR.template.json @@ -2,9 +2,9 @@ "Description": "API Gateway Resource for AWS Amplify CLI", "AWSTemplateFormatVersion": "2010-09-09", "Parameters": { - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Default": "authfitnesstracker33f5545533f55455UserPoolId" }, "authuserPoolGroupsAdminGroupRole": { "Type": "String", @@ -104,7 +104,7 @@ "-", [ { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" }, "AdminGroupRole" ] @@ -426,7 +426,7 @@ "Name": "adminapi" } }, - "adminapiDefault4XXResponse3222e4e8": { + "adminapiDefault4XXResponse1cf3cfdc": { "Type": "AWS::ApiGateway::GatewayResponse", "Properties": { "ResponseParameters": { @@ -441,7 +441,7 @@ } } }, - "adminapiDefault5XXResponse3222e4e8": { + "adminapiDefault5XXResponse1cf3cfdc": { "Type": "AWS::ApiGateway::GatewayResponse", "Properties": { "ResponseParameters": { @@ -456,7 +456,7 @@ } } }, - "DeploymentAPIGWadminapi48d8979a": { + "DeploymentAPIGWadminapi1af07a4b": { "Type": "AWS::ApiGateway::Deployment", "Properties": { "Description": "The Development stage deployment of your API.", @@ -474,8 +474,8 @@ } }, "DependsOn": [ - "adminapiDefault4XXResponse3222e4e8", - "adminapiDefault5XXResponse3222e4e8" + "adminapiDefault4XXResponse1cf3cfdc", + "adminapiDefault5XXResponse1cf3cfdc" ] } }, diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-ConnectionStack-MFCAEX2L0CKC.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-ConnectionStack-96IMUMC3YX9X.description.txt similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-ConnectionStack-MFCAEX2L0CKC.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-ConnectionStack-96IMUMC3YX9X.description.txt diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-ConnectionStack-96IMUMC3YX9X.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-ConnectionStack-96IMUMC3YX9X.outputs.json new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-ConnectionStack-96IMUMC3YX9X.outputs.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-ConnectionStack-MFCAEX2L0CKC.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-ConnectionStack-96IMUMC3YX9X.parameters.json similarity index 75% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-ConnectionStack-MFCAEX2L0CKC.parameters.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-ConnectionStack-96IMUMC3YX9X.parameters.json index 91bc23d610e..6b366cbc8e7 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-ConnectionStack-MFCAEX2L0CKC.parameters.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-ConnectionStack-96IMUMC3YX9X.parameters.json @@ -1,7 +1,7 @@ [ { "ParameterKey": "referencetotransformerrootstackS3DeploymentRootKeyA71EA735Ref", - "ParameterValue": "amplify-appsync-files/96fdcde6a80859ead18d697e115cb9bd809fa98a" + "ParameterValue": "amplify-appsync-files/67310f5f0a68cc163f9cc58da56e1409a2c21b1d" }, { "ParameterKey": "referencetotransformerrootstackGraphQLAPINONEDS2BA9D1C8Name", @@ -9,15 +9,15 @@ }, { "ParameterKey": "referencetotransformerrootstackGraphQLAPI20497F53ApiId", - "ParameterValue": "2aikutabnvbuhlzmh4mvkg3eji" + "ParameterValue": "jzwb5p2vcbd2ldlnlxokgjcjby" }, { "ParameterKey": "referencetotransformerrootstackExerciseNestedStackExerciseNestedStackResourceA190CF68OutputstransformerrootstackExerciseExerciseTable2F3E478ERef", - "ParameterValue": "Exercise-2aikutabnvbuhlzmh4mvkg3eji-main" + "ParameterValue": "Exercise-jzwb5p2vcbd2ldlnlxokgjcjby-main" }, { "ParameterKey": "referencetotransformerrootstackS3DeploymentBucket7592718ARef", - "ParameterValue": "amplify-fitnesstracker-main-0683c-deployment" + "ParameterValue": "amplify-fitnesstracker-main-a0537-deployment" }, { "ParameterKey": "referencetotransformerrootstackExerciseNestedStackExerciseNestedStackResourceA190CF68OutputstransformerrootstackExerciseExerciseDataSourceE8B787D0Name", diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-ConnectionStack-MFCAEX2L0CKC.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-ConnectionStack-96IMUMC3YX9X.template.json similarity index 98% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-ConnectionStack-MFCAEX2L0CKC.template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-ConnectionStack-96IMUMC3YX9X.template.json index c1c6aa9683f..c6490dbf938 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-ConnectionStack-MFCAEX2L0CKC.template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-ConnectionStack-96IMUMC3YX9X.template.json @@ -111,7 +111,7 @@ { "Ref": "referencetotransformerrootstackExerciseNestedStackExerciseNestedStackResourceA190CF68OutputstransformerrootstackExerciseExerciseTable2F3E478ERef" }, - "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-CustomResourcesjson-1N9JBA3LG1LSR.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-CustomResourcesjson-1FVS02E9NW5PX.description.txt similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-CustomResourcesjson-1N9JBA3LG1LSR.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-CustomResourcesjson-1FVS02E9NW5PX.description.txt diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-CustomResourcesjson-1N9JBA3LG1LSR.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-CustomResourcesjson-1FVS02E9NW5PX.outputs.json similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-CustomResourcesjson-1N9JBA3LG1LSR.outputs.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-CustomResourcesjson-1FVS02E9NW5PX.outputs.json diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-CustomResourcesjson-1N9JBA3LG1LSR.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-CustomResourcesjson-1FVS02E9NW5PX.parameters.json similarity index 60% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-CustomResourcesjson-1N9JBA3LG1LSR.parameters.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-CustomResourcesjson-1FVS02E9NW5PX.parameters.json index d52782c7820..4097d78d936 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-CustomResourcesjson-1N9JBA3LG1LSR.parameters.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-CustomResourcesjson-1FVS02E9NW5PX.parameters.json @@ -1,11 +1,11 @@ [ { "ParameterKey": "S3DeploymentBucket", - "ParameterValue": "amplify-fitnesstracker-main-0683c-deployment" + "ParameterValue": "amplify-fitnesstracker-main-a0537-deployment" }, { "ParameterKey": "AppSyncApiId", - "ParameterValue": "2aikutabnvbuhlzmh4mvkg3eji" + "ParameterValue": "jzwb5p2vcbd2ldlnlxokgjcjby" }, { "ParameterKey": "env", @@ -13,7 +13,7 @@ }, { "ParameterKey": "S3DeploymentRootKey", - "ParameterValue": "amplify-appsync-files/96fdcde6a80859ead18d697e115cb9bd809fa98a" + "ParameterValue": "amplify-appsync-files/67310f5f0a68cc163f9cc58da56e1409a2c21b1d" }, { "ParameterKey": "AppSyncApiName", diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-CustomResourcesjson-1N9JBA3LG1LSR.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-CustomResourcesjson-1FVS02E9NW5PX.template.json similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-CustomResourcesjson-1N9JBA3LG1LSR.template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-CustomResourcesjson-1FVS02E9NW5PX.template.json diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-Exercise-5FATTNCL6XOQ.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-Exercise-FLH6MX715G6M.description.txt similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-Exercise-5FATTNCL6XOQ.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-Exercise-FLH6MX715G6M.description.txt diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-Exercise-5FATTNCL6XOQ.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-Exercise-FLH6MX715G6M.outputs.json similarity index 62% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-Exercise-5FATTNCL6XOQ.outputs.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-Exercise-FLH6MX715G6M.outputs.json index da274bd8921..f1efdb2a150 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-Exercise-5FATTNCL6XOQ.outputs.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-Exercise-FLH6MX715G6M.outputs.json @@ -5,24 +5,24 @@ }, { "OutputKey": "GetAttExerciseTableName", - "OutputValue": "Exercise-2aikutabnvbuhlzmh4mvkg3eji-main", + "OutputValue": "Exercise-jzwb5p2vcbd2ldlnlxokgjcjby-main", "Description": "Your DynamoDB table name.", - "ExportName": "2aikutabnvbuhlzmh4mvkg3eji:GetAtt:ExerciseTable:Name" + "ExportName": "jzwb5p2vcbd2ldlnlxokgjcjby:GetAtt:ExerciseTable:Name" }, { "OutputKey": "GetAttExerciseDataSourceName", "OutputValue": "ExerciseTable", "Description": "Your model DataSource name.", - "ExportName": "2aikutabnvbuhlzmh4mvkg3eji:GetAtt:ExerciseDataSource:Name" + "ExportName": "jzwb5p2vcbd2ldlnlxokgjcjby:GetAtt:ExerciseDataSource:Name" }, { "OutputKey": "transformerrootstackExerciseExerciseTable2F3E478ERef", - "OutputValue": "Exercise-2aikutabnvbuhlzmh4mvkg3eji-main" + "OutputValue": "Exercise-jzwb5p2vcbd2ldlnlxokgjcjby-main" }, { "OutputKey": "GetAttExerciseTableStreamArn", - "OutputValue": "arn:aws:dynamodb:us-east-1:123456789012:table/Exercise-2aikutabnvbuhlzmh4mvkg3eji-main/stream/2026-03-07T19:49:12.813", + "OutputValue": "arn:aws:dynamodb:us-east-1:123456789012:table/Exercise-jzwb5p2vcbd2ldlnlxokgjcjby-main/stream/2026-03-24T03:05:11.212", "Description": "Your DynamoDB table StreamArn.", - "ExportName": "2aikutabnvbuhlzmh4mvkg3eji:GetAtt:ExerciseTable:StreamArn" + "ExportName": "jzwb5p2vcbd2ldlnlxokgjcjby:GetAtt:ExerciseTable:StreamArn" } ] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-Exercise-5FATTNCL6XOQ.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-Exercise-FLH6MX715G6M.parameters.json similarity index 83% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-Exercise-5FATTNCL6XOQ.parameters.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-Exercise-FLH6MX715G6M.parameters.json index bca438b6758..020d0d0614b 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-Exercise-5FATTNCL6XOQ.parameters.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-Exercise-FLH6MX715G6M.parameters.json @@ -5,7 +5,7 @@ }, { "ParameterKey": "referencetotransformerrootstackS3DeploymentRootKeyA71EA735Ref", - "ParameterValue": "amplify-appsync-files/96fdcde6a80859ead18d697e115cb9bd809fa98a" + "ParameterValue": "amplify-appsync-files/67310f5f0a68cc163f9cc58da56e1409a2c21b1d" }, { "ParameterKey": "referencetotransformerrootstackGraphQLAPINONEDS2BA9D1C8Name", @@ -17,27 +17,27 @@ }, { "ParameterKey": "referencetotransformerrootstackGraphQLAPI20497F53ApiId", - "ParameterValue": "2aikutabnvbuhlzmh4mvkg3eji" + "ParameterValue": "jzwb5p2vcbd2ldlnlxokgjcjby" }, { "ParameterKey": "referencetotransformerrootstackWorkoutProgramNestedStackWorkoutProgramNestedStackResource515A29CDOutputstransformerrootstackWorkoutProgramQuerygetWorkoutProgrampostAuth0FunctionQuerygetWorkoutProgrampostAuth0FunctionAppSyncFunction6E15B378FunctionId", - "ParameterValue": "mn5wca276raehbbj7ablvuzuyy" + "ParameterValue": "azpojmlshjb33hbzmjtsne6eke" }, { "ParameterKey": "referencetotransformerrootstackWorkoutProgramNestedStackWorkoutProgramNestedStackResource515A29CDOutputstransformerrootstackWorkoutProgramSubscriptiononCreateWorkoutProgramauth0FunctionSubscriptiononCreateWorkoutProgramauth0FunctionAppSyncF52D36F4F", - "ParameterValue": "pjy2pklvwjg77kzmfes5eplwca" + "ParameterValue": "p4zgtsdhtfd5plnqeuyw434jry" }, { "ParameterKey": "referencetotransformerrootstackWorkoutProgramNestedStackWorkoutProgramNestedStackResource515A29CDOutputstransformerrootstackWorkoutProgramQuerygetWorkoutProgramauth0FunctionQuerygetWorkoutProgramauth0FunctionAppSyncFunction8D95BFD8FunctionId", - "ParameterValue": "tjmf4nbjffc6baz6izyfa7zoee" + "ParameterValue": "7rhd6ral6railaajcfswqeadf4" }, { "ParameterKey": "referencetotransformerrootstackWorkoutProgramNestedStackWorkoutProgramNestedStackResource515A29CDOutputstransformerrootstackWorkoutProgramMutationupdateWorkoutPrograminit0FunctionMutationupdateWorkoutPrograminit0FunctionAppSyncFunctionB2E2FC20FunctionId", - "ParameterValue": "gcj7zbxan5cnhovaulvkfubw3u" + "ParameterValue": "fws4doskqbag7dbslx7eygyckq" }, { "ParameterKey": "referencetotransformerrootstackWorkoutProgramNestedStackWorkoutProgramNestedStackResource515A29CDOutputstransformerrootstackWorkoutProgramMutationcreateWorkoutPrograminit0FunctionMutationcreateWorkoutPrograminit0FunctionAppSyncFunctionD55A286BFunctionId", - "ParameterValue": "go273nioyjckvme7sxyuctdzma" + "ParameterValue": "cdecyw7rljhx7kqioiulvfozuq" }, { "ParameterKey": "DynamoDBEnableServerSideEncryption", @@ -49,7 +49,7 @@ }, { "ParameterKey": "referencetotransformerrootstackWorkoutProgramNestedStackWorkoutProgramNestedStackResource515A29CDOutputstransformerrootstackWorkoutProgramWorkoutProgramOwnerDataResolverFnWorkoutProgramOwnerDataResolverFnAppSyncFunctionB902B95DFunctionId", - "ParameterValue": "2tyj3o3hzbcedjajmqiuiqkmki" + "ParameterValue": "c3jrt4vcd5cfbirsv2pukwfqt4" }, { "ParameterKey": "DynamoDBModelTableWriteIOPS", @@ -57,7 +57,7 @@ }, { "ParameterKey": "referencetotransformerrootstackS3DeploymentBucket7592718ARef", - "ParameterValue": "amplify-fitnesstracker-main-0683c-deployment" + "ParameterValue": "amplify-fitnesstracker-main-a0537-deployment" }, { "ParameterKey": "referencetotransformerrootstackenv10C5A902Ref", @@ -65,6 +65,6 @@ }, { "ParameterKey": "referencetotransformerrootstackWorkoutProgramNestedStackWorkoutProgramNestedStackResource515A29CDOutputstransformerrootstackWorkoutProgramSubscriptionOnCreateWorkoutProgramDataResolverFnSubscriptionOnCreateWorkoutProgramDataResolverFnAppSyn4D846E8C", - "ParameterValue": "daqve7kbmzhx7iugbpnuykgqmi" + "ParameterValue": "bsbxi7b5m5hnjh55tvtvnd55tq" } ] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-Exercise-5FATTNCL6XOQ.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-Exercise-FLH6MX715G6M.template.json similarity index 98% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-Exercise-5FATTNCL6XOQ.template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-Exercise-FLH6MX715G6M.template.json index bc7724b533f..dfd88a7f935 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-Exercise-5FATTNCL6XOQ.template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-Exercise-FLH6MX715G6M.template.json @@ -503,7 +503,7 @@ { "Ref": "ExerciseTable" }, - "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, @@ -598,7 +598,7 @@ { "Ref": "ExerciseTable" }, - "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, @@ -729,7 +729,7 @@ { "Ref": "ExerciseTable" }, - "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, @@ -881,7 +881,7 @@ { "Ref": "ExerciseTable" }, - "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, @@ -1030,7 +1030,7 @@ { "Ref": "ExerciseTable" }, - "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, @@ -1067,7 +1067,7 @@ { "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId" }, - "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, @@ -1104,7 +1104,7 @@ { "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId" }, - "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, @@ -1141,7 +1141,7 @@ { "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId" }, - "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, @@ -1172,7 +1172,7 @@ { "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId" }, - "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-Meal-T0IHN7YLGV2P.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-Meal-PHGUK3IXO0QL.description.txt similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-Meal-T0IHN7YLGV2P.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-Meal-PHGUK3IXO0QL.description.txt diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-Meal-T0IHN7YLGV2P.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-Meal-PHGUK3IXO0QL.outputs.json similarity index 57% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-Meal-T0IHN7YLGV2P.outputs.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-Meal-PHGUK3IXO0QL.outputs.json index b4d3ff64313..c2ec65f8932 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-Meal-T0IHN7YLGV2P.outputs.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-Meal-PHGUK3IXO0QL.outputs.json @@ -1,20 +1,20 @@ [ { "OutputKey": "GetAttMealTableName", - "OutputValue": "Meal-2aikutabnvbuhlzmh4mvkg3eji-main", + "OutputValue": "Meal-jzwb5p2vcbd2ldlnlxokgjcjby-main", "Description": "Your DynamoDB table name.", - "ExportName": "2aikutabnvbuhlzmh4mvkg3eji:GetAtt:MealTable:Name" + "ExportName": "jzwb5p2vcbd2ldlnlxokgjcjby:GetAtt:MealTable:Name" }, { "OutputKey": "GetAttMealDataSourceName", "OutputValue": "MealTable", "Description": "Your model DataSource name.", - "ExportName": "2aikutabnvbuhlzmh4mvkg3eji:GetAtt:MealDataSource:Name" + "ExportName": "jzwb5p2vcbd2ldlnlxokgjcjby:GetAtt:MealDataSource:Name" }, { "OutputKey": "GetAttMealTableStreamArn", - "OutputValue": "arn:aws:dynamodb:us-east-1:123456789012:table/Meal-2aikutabnvbuhlzmh4mvkg3eji-main/stream/2026-03-07T19:49:12.348", + "OutputValue": "arn:aws:dynamodb:us-east-1:123456789012:table/Meal-jzwb5p2vcbd2ldlnlxokgjcjby-main/stream/2026-03-24T03:05:11.935", "Description": "Your DynamoDB table StreamArn.", - "ExportName": "2aikutabnvbuhlzmh4mvkg3eji:GetAtt:MealTable:StreamArn" + "ExportName": "jzwb5p2vcbd2ldlnlxokgjcjby:GetAtt:MealTable:StreamArn" } ] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-Meal-T0IHN7YLGV2P.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-Meal-PHGUK3IXO0QL.parameters.json similarity index 83% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-Meal-T0IHN7YLGV2P.parameters.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-Meal-PHGUK3IXO0QL.parameters.json index 16cab91f61c..fb60a11041e 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-Meal-T0IHN7YLGV2P.parameters.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-Meal-PHGUK3IXO0QL.parameters.json @@ -5,7 +5,7 @@ }, { "ParameterKey": "referencetotransformerrootstackS3DeploymentRootKeyA71EA735Ref", - "ParameterValue": "amplify-appsync-files/96fdcde6a80859ead18d697e115cb9bd809fa98a" + "ParameterValue": "amplify-appsync-files/67310f5f0a68cc163f9cc58da56e1409a2c21b1d" }, { "ParameterKey": "referencetotransformerrootstackGraphQLAPINONEDS2BA9D1C8Name", @@ -17,19 +17,19 @@ }, { "ParameterKey": "referencetotransformerrootstackGraphQLAPI20497F53ApiId", - "ParameterValue": "2aikutabnvbuhlzmh4mvkg3eji" + "ParameterValue": "jzwb5p2vcbd2ldlnlxokgjcjby" }, { "ParameterKey": "referencetotransformerrootstackWorkoutProgramNestedStackWorkoutProgramNestedStackResource515A29CDOutputstransformerrootstackWorkoutProgramQuerygetWorkoutProgrampostAuth0FunctionQuerygetWorkoutProgrampostAuth0FunctionAppSyncFunction6E15B378FunctionId", - "ParameterValue": "mn5wca276raehbbj7ablvuzuyy" + "ParameterValue": "azpojmlshjb33hbzmjtsne6eke" }, { "ParameterKey": "referencetotransformerrootstackWorkoutProgramNestedStackWorkoutProgramNestedStackResource515A29CDOutputstransformerrootstackWorkoutProgramMutationupdateWorkoutPrograminit0FunctionMutationupdateWorkoutPrograminit0FunctionAppSyncFunctionB2E2FC20FunctionId", - "ParameterValue": "gcj7zbxan5cnhovaulvkfubw3u" + "ParameterValue": "fws4doskqbag7dbslx7eygyckq" }, { "ParameterKey": "referencetotransformerrootstackWorkoutProgramNestedStackWorkoutProgramNestedStackResource515A29CDOutputstransformerrootstackWorkoutProgramMutationcreateWorkoutPrograminit0FunctionMutationcreateWorkoutPrograminit0FunctionAppSyncFunctionD55A286BFunctionId", - "ParameterValue": "go273nioyjckvme7sxyuctdzma" + "ParameterValue": "cdecyw7rljhx7kqioiulvfozuq" }, { "ParameterKey": "DynamoDBEnableServerSideEncryption", @@ -45,7 +45,7 @@ }, { "ParameterKey": "referencetotransformerrootstackS3DeploymentBucket7592718ARef", - "ParameterValue": "amplify-fitnesstracker-main-0683c-deployment" + "ParameterValue": "amplify-fitnesstracker-main-a0537-deployment" }, { "ParameterKey": "referencetotransformerrootstackenv10C5A902Ref", @@ -53,6 +53,6 @@ }, { "ParameterKey": "referencetotransformerrootstackWorkoutProgramNestedStackWorkoutProgramNestedStackResource515A29CDOutputstransformerrootstackWorkoutProgramSubscriptionOnCreateWorkoutProgramDataResolverFnSubscriptionOnCreateWorkoutProgramDataResolverFnAppSyn4D846E8C", - "ParameterValue": "daqve7kbmzhx7iugbpnuykgqmi" + "ParameterValue": "bsbxi7b5m5hnjh55tvtvnd55tq" } ] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-Meal-T0IHN7YLGV2P.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-Meal-PHGUK3IXO0QL.template.json similarity index 98% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-Meal-T0IHN7YLGV2P.template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-Meal-PHGUK3IXO0QL.template.json index 17b23d06950..0ab887347e8 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-Meal-T0IHN7YLGV2P.template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-Meal-PHGUK3IXO0QL.template.json @@ -482,7 +482,7 @@ { "Ref": "MealTable" }, - "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, @@ -580,7 +580,7 @@ { "Ref": "MealTable" }, - "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, @@ -711,7 +711,7 @@ { "Ref": "MealTable" }, - "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, @@ -863,7 +863,7 @@ { "Ref": "MealTable" }, - "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, @@ -1012,7 +1012,7 @@ { "Ref": "MealTable" }, - "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, @@ -1082,7 +1082,7 @@ { "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId" }, - "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, @@ -1122,7 +1122,7 @@ { "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId" }, - "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, @@ -1162,7 +1162,7 @@ { "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId" }, - "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-WorkoutProgram-1LQLU2DSLQ8HT.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-WorkoutProgram-DSQSG720758E.description.txt similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-WorkoutProgram-1LQLU2DSLQ8HT.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-WorkoutProgram-DSQSG720758E.description.txt diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-WorkoutProgram-1LQLU2DSLQ8HT.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-WorkoutProgram-DSQSG720758E.outputs.json similarity index 72% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-WorkoutProgram-1LQLU2DSLQ8HT.outputs.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-WorkoutProgram-DSQSG720758E.outputs.json index 065eb378801..9f9b1cb8cc5 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-WorkoutProgram-1LQLU2DSLQ8HT.outputs.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-WorkoutProgram-DSQSG720758E.outputs.json @@ -1,48 +1,48 @@ [ { "OutputKey": "transformerrootstackWorkoutProgramQuerygetWorkoutProgramauth0FunctionQuerygetWorkoutProgramauth0FunctionAppSyncFunction8D95BFD8FunctionId", - "OutputValue": "tjmf4nbjffc6baz6izyfa7zoee" + "OutputValue": "7rhd6ral6railaajcfswqeadf4" }, { "OutputKey": "transformerrootstackWorkoutProgramSubscriptiononCreateWorkoutProgramauth0FunctionSubscriptiononCreateWorkoutProgramauth0FunctionAppSyncFunction55BF88AFFunctionId", - "OutputValue": "pjy2pklvwjg77kzmfes5eplwca" + "OutputValue": "p4zgtsdhtfd5plnqeuyw434jry" }, { "OutputKey": "GetAttWorkoutProgramTableStreamArn", - "OutputValue": "arn:aws:dynamodb:us-east-1:123456789012:table/WorkoutProgram-2aikutabnvbuhlzmh4mvkg3eji-main/stream/2026-03-07T19:48:24.327", + "OutputValue": "arn:aws:dynamodb:us-east-1:123456789012:table/WorkoutProgram-jzwb5p2vcbd2ldlnlxokgjcjby-main/stream/2026-03-24T03:04:23.623", "Description": "Your DynamoDB table StreamArn.", - "ExportName": "2aikutabnvbuhlzmh4mvkg3eji:GetAtt:WorkoutProgramTable:StreamArn" + "ExportName": "jzwb5p2vcbd2ldlnlxokgjcjby:GetAtt:WorkoutProgramTable:StreamArn" }, { "OutputKey": "transformerrootstackWorkoutProgramMutationupdateWorkoutPrograminit0FunctionMutationupdateWorkoutPrograminit0FunctionAppSyncFunctionB2E2FC20FunctionId", - "OutputValue": "gcj7zbxan5cnhovaulvkfubw3u" + "OutputValue": "fws4doskqbag7dbslx7eygyckq" }, { "OutputKey": "GetAttWorkoutProgramTableName", - "OutputValue": "WorkoutProgram-2aikutabnvbuhlzmh4mvkg3eji-main", + "OutputValue": "WorkoutProgram-jzwb5p2vcbd2ldlnlxokgjcjby-main", "Description": "Your DynamoDB table name.", - "ExportName": "2aikutabnvbuhlzmh4mvkg3eji:GetAtt:WorkoutProgramTable:Name" + "ExportName": "jzwb5p2vcbd2ldlnlxokgjcjby:GetAtt:WorkoutProgramTable:Name" }, { "OutputKey": "transformerrootstackWorkoutProgramWorkoutProgramOwnerDataResolverFnWorkoutProgramOwnerDataResolverFnAppSyncFunctionB902B95DFunctionId", - "OutputValue": "2tyj3o3hzbcedjajmqiuiqkmki" + "OutputValue": "c3jrt4vcd5cfbirsv2pukwfqt4" }, { "OutputKey": "GetAttWorkoutProgramDataSourceName", "OutputValue": "WorkoutProgramTable", "Description": "Your model DataSource name.", - "ExportName": "2aikutabnvbuhlzmh4mvkg3eji:GetAtt:WorkoutProgramDataSource:Name" + "ExportName": "jzwb5p2vcbd2ldlnlxokgjcjby:GetAtt:WorkoutProgramDataSource:Name" }, { "OutputKey": "transformerrootstackWorkoutProgramQuerygetWorkoutProgrampostAuth0FunctionQuerygetWorkoutProgrampostAuth0FunctionAppSyncFunction6E15B378FunctionId", - "OutputValue": "mn5wca276raehbbj7ablvuzuyy" + "OutputValue": "azpojmlshjb33hbzmjtsne6eke" }, { "OutputKey": "transformerrootstackWorkoutProgramSubscriptionOnCreateWorkoutProgramDataResolverFnSubscriptionOnCreateWorkoutProgramDataResolverFnAppSyncFunctionE9212A4DFunctionId", - "OutputValue": "daqve7kbmzhx7iugbpnuykgqmi" + "OutputValue": "bsbxi7b5m5hnjh55tvtvnd55tq" }, { "OutputKey": "transformerrootstackWorkoutProgramMutationcreateWorkoutPrograminit0FunctionMutationcreateWorkoutPrograminit0FunctionAppSyncFunctionD55A286BFunctionId", - "OutputValue": "go273nioyjckvme7sxyuctdzma" + "OutputValue": "cdecyw7rljhx7kqioiulvfozuq" } ] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-WorkoutProgram-1LQLU2DSLQ8HT.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-WorkoutProgram-DSQSG720758E.parameters.json similarity index 82% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-WorkoutProgram-1LQLU2DSLQ8HT.parameters.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-WorkoutProgram-DSQSG720758E.parameters.json index 956ab094ba8..7ab6bc5b463 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-WorkoutProgram-1LQLU2DSLQ8HT.parameters.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-WorkoutProgram-DSQSG720758E.parameters.json @@ -5,7 +5,7 @@ }, { "ParameterKey": "referencetotransformerrootstackS3DeploymentRootKeyA71EA735Ref", - "ParameterValue": "amplify-appsync-files/96fdcde6a80859ead18d697e115cb9bd809fa98a" + "ParameterValue": "amplify-appsync-files/67310f5f0a68cc163f9cc58da56e1409a2c21b1d" }, { "ParameterKey": "DynamoDBEnableServerSideEncryption", @@ -25,7 +25,7 @@ }, { "ParameterKey": "referencetotransformerrootstackGraphQLAPI20497F53ApiId", - "ParameterValue": "2aikutabnvbuhlzmh4mvkg3eji" + "ParameterValue": "jzwb5p2vcbd2ldlnlxokgjcjby" }, { "ParameterKey": "DynamoDBModelTableWriteIOPS", @@ -33,7 +33,7 @@ }, { "ParameterKey": "referencetotransformerrootstackS3DeploymentBucket7592718ARef", - "ParameterValue": "amplify-fitnesstracker-main-0683c-deployment" + "ParameterValue": "amplify-fitnesstracker-main-a0537-deployment" }, { "ParameterKey": "referencetotransformerrootstackenv10C5A902Ref", diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-WorkoutProgram-1LQLU2DSLQ8HT.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-WorkoutProgram-DSQSG720758E.template.json similarity index 98% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-WorkoutProgram-1LQLU2DSLQ8HT.template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-WorkoutProgram-DSQSG720758E.template.json index 231e86502e9..5e3c935a32f 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS-WorkoutProgram-1LQLU2DSLQ8HT.template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX-WorkoutProgram-DSQSG720758E.template.json @@ -503,7 +503,7 @@ { "Ref": "WorkoutProgramTable" }, - "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, @@ -604,7 +604,7 @@ { "Ref": "WorkoutProgramTable" }, - "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, @@ -771,7 +771,7 @@ { "Ref": "WorkoutProgramTable" }, - "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, @@ -959,7 +959,7 @@ { "Ref": "WorkoutProgramTable" }, - "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, @@ -1111,7 +1111,7 @@ { "Ref": "WorkoutProgramTable" }, - "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, @@ -1232,7 +1232,7 @@ { "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId" }, - "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, @@ -1278,7 +1278,7 @@ { "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId" }, - "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, @@ -1324,7 +1324,7 @@ { "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId" }, - "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, @@ -1403,7 +1403,7 @@ { "Ref": "referencetotransformerrootstackGraphQLAPI20497F53ApiId" }, - "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" + "\"))\n$util.qr($ctx.stash.put(\"connectionAttributes\", {}))\n\n$util.qr($ctx.stash.put(\"identityPoolId\", \"us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022\"))\n$util.qr($ctx.stash.put(\"adminRoles\", [\"lognutrition-main\"]))\n$util.toJson({})" ] ] }, diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX.description.txt similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX.description.txt diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX.outputs.json new file mode 100644 index 00000000000..028a35d20d0 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX.outputs.json @@ -0,0 +1,20 @@ +[ + { + "OutputKey": "GraphQLAPIIdOutput", + "OutputValue": "jzwb5p2vcbd2ldlnlxokgjcjby", + "Description": "Your GraphQL API ID.", + "ExportName": "amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX:GraphQLApiId" + }, + { + "OutputKey": "GraphQLAPIEndpointOutput", + "OutputValue": "https://lqftdnws2zb75jcuwdcmx23wdi.appsync-api.us-east-1.amazonaws.com/graphql", + "Description": "Your GraphQL API endpoint.", + "ExportName": "amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX:GraphQLApiEndpoint" + }, + { + "OutputKey": "GraphQLAPIKeyOutput", + "OutputValue": "da2-fakeapikey00000000000000", + "Description": "Your GraphQL API ID.", + "ExportName": "amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX:GraphQLApiKey" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX.parameters.json similarity index 79% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS.parameters.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX.parameters.json index 2c851c9541e..989b15c2007 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS.parameters.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX.parameters.json @@ -17,7 +17,7 @@ }, { "ParameterKey": "S3DeploymentBucket", - "ParameterValue": "amplify-fitnesstracker-main-0683c-deployment" + "ParameterValue": "amplify-fitnesstracker-main-a0537-deployment" }, { "ParameterKey": "DynamoDBModelTableWriteIOPS", @@ -29,7 +29,7 @@ }, { "ParameterKey": "S3DeploymentRootKey", - "ParameterValue": "amplify-appsync-files/96fdcde6a80859ead18d697e115cb9bd809fa98a" + "ParameterValue": "amplify-appsync-files/67310f5f0a68cc163f9cc58da56e1409a2c21b1d" }, { "ParameterKey": "AppSyncApiName", @@ -37,6 +37,6 @@ }, { "ParameterKey": "AuthCognitoUserPoolId", - "ParameterValue": "us-east-1_u3DbKJdMj" + "ParameterValue": "us-east-1_iguxCIcMS" } ] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX.template.json similarity index 99% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS.template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX.template.json index 91ce2688779..eb461aa7cbb 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apifitnesstracker-1T86UW9NDGVCS.template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apifitnesstracker-103NTH9S45SYX.template.json @@ -129,7 +129,7 @@ ] }, "Description": "graphql", - "Expires": 1773519059 + "Expires": 1774926795 } }, "GraphQLAPINONEDS95A13CF0": { diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apinutritionapi-8ILYUUGF5PGJ.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apinutritionapi-HLNAE81TRC4B.description.txt similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apinutritionapi-8ILYUUGF5PGJ.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apinutritionapi-HLNAE81TRC4B.description.txt diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apinutritionapi-8ILYUUGF5PGJ.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apinutritionapi-HLNAE81TRC4B.outputs.json similarity index 75% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apinutritionapi-8ILYUUGF5PGJ.outputs.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apinutritionapi-HLNAE81TRC4B.outputs.json index c3e846b6c49..7c901a65dec 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apinutritionapi-8ILYUUGF5PGJ.outputs.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apinutritionapi-HLNAE81TRC4B.outputs.json @@ -6,12 +6,12 @@ }, { "OutputKey": "RootUrl", - "OutputValue": "https://6smuxn28tb.execute-api.us-east-1.amazonaws.com/main", + "OutputValue": "https://hmydcaubcb.execute-api.us-east-1.amazonaws.com/main", "Description": "Root URL of the API gateway" }, { "OutputKey": "ApiId", - "OutputValue": "6smuxn28tb", + "OutputValue": "hmydcaubcb", "Description": "API ID (prefix of API URL)" } ] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apinutritionapi-8ILYUUGF5PGJ.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apinutritionapi-HLNAE81TRC4B.parameters.json similarity index 77% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apinutritionapi-8ILYUUGF5PGJ.parameters.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apinutritionapi-HLNAE81TRC4B.parameters.json index 42fc8635726..2805d4489d2 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apinutritionapi-8ILYUUGF5PGJ.parameters.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apinutritionapi-HLNAE81TRC4B.parameters.json @@ -1,12 +1,12 @@ [ - { - "ParameterKey": "authfitnesstracker6b0fc1196b0fc119UserPoolId", - "ParameterValue": "us-east-1_u3DbKJdMj" - }, { "ParameterKey": "functionlognutritionArn", "ParameterValue": "arn:aws:lambda:us-east-1:123456789012:function:lognutrition-main" }, + { + "ParameterKey": "authfitnesstracker33f5545533f55455UserPoolId", + "ParameterValue": "us-east-1_iguxCIcMS" + }, { "ParameterKey": "functionlognutritionName", "ParameterValue": "lognutrition-main" @@ -17,6 +17,6 @@ }, { "ParameterKey": "authuserPoolGroupsAdminGroupRole", - "ParameterValue": "arn:aws:iam::123456789012:role/us-east-1_u3DbKJdMj-AdminGroupRole" + "ParameterValue": "arn:aws:iam::123456789012:role/us-east-1_iguxCIcMS-AdminGroupRole" } ] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apinutritionapi-8ILYUUGF5PGJ.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apinutritionapi-HLNAE81TRC4B.template.json similarity index 98% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apinutritionapi-8ILYUUGF5PGJ.template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apinutritionapi-HLNAE81TRC4B.template.json index 0c19f7dd33c..eaa3ad7fcfe 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-apinutritionapi-8ILYUUGF5PGJ.template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-apinutritionapi-HLNAE81TRC4B.template.json @@ -2,9 +2,9 @@ "Description": "API Gateway Resource for AWS Amplify CLI", "AWSTemplateFormatVersion": "2010-09-09", "Parameters": { - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Default": "authfitnesstracker33f5545533f55455UserPoolId" }, "authuserPoolGroupsAdminGroupRole": { "Type": "String", @@ -344,7 +344,7 @@ "-", [ { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" }, "AdminGroupRole" ] @@ -666,7 +666,7 @@ "Name": "nutritionapi" } }, - "nutritionapiDefault4XXResponsec3b6f366": { + "nutritionapiDefault4XXResponse59d8037a": { "Type": "AWS::ApiGateway::GatewayResponse", "Properties": { "ResponseParameters": { @@ -681,7 +681,7 @@ } } }, - "nutritionapiDefault5XXResponsec3b6f366": { + "nutritionapiDefault5XXResponse59d8037a": { "Type": "AWS::ApiGateway::GatewayResponse", "Properties": { "ResponseParameters": { @@ -696,7 +696,7 @@ } } }, - "DeploymentAPIGWnutritionapi6697cfda": { + "DeploymentAPIGWnutritionapi633ac738": { "Type": "AWS::ApiGateway::Deployment", "Properties": { "Description": "The Development stage deployment of your API.", @@ -714,8 +714,8 @@ } }, "DependsOn": [ - "nutritionapiDefault4XXResponsec3b6f366", - "nutritionapiDefault5XXResponsec3b6f366" + "nutritionapiDefault4XXResponse59d8037a", + "nutritionapiDefault5XXResponse59d8037a" ] } }, diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-authfitnesstracker6b0fc1196b0fc119-IU8FJDZI54QH.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.description.txt similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-authfitnesstracker6b0fc1196b0fc119-IU8FJDZI54QH.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.description.txt diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-authfitnesstracker6b0fc1196b0fc119-IU8FJDZI54QH.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.outputs.json similarity index 62% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-authfitnesstracker6b0fc1196b0fc119-IU8FJDZI54QH.outputs.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.outputs.json index 08653517f4e..38dc79f5baf 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-authfitnesstracker6b0fc1196b0fc119-IU8FJDZI54QH.outputs.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.outputs.json @@ -1,35 +1,35 @@ [ { "OutputKey": "UserPoolId", - "OutputValue": "us-east-1_u3DbKJdMj", + "OutputValue": "us-east-1_iguxCIcMS", "Description": "Id for the user pool" }, { "OutputKey": "AppClientIDWeb", - "OutputValue": "7rgr70g6grv2t7e4jstuq5uuqg", + "OutputValue": "29bubgvfbbqkp4k60rl7oaqd8s", "Description": "The user pool app client id for web" }, { "OutputKey": "AppClientID", - "OutputValue": "7s3vppsutj69af1r91u7tm2a45", + "OutputValue": "3s8jcv7nflisr91emephrr2a9s", "Description": "The user pool app client id" }, { "OutputKey": "IdentityPoolId", - "OutputValue": "us-east-1:48e665cb-fd1f-483f-83c3-a11110c013db", + "OutputValue": "us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022", "Description": "Id for the identity pool" }, { "OutputKey": "UserPoolArn", - "OutputValue": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_u3DbKJdMj", + "OutputValue": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_iguxCIcMS", "Description": "Arn for the user pool" }, { "OutputKey": "IdentityPoolName", - "OutputValue": "fitnesstracker6b0fc119_identitypool_6b0fc119__main" + "OutputValue": "fitnesstracker33f55455_identitypool_33f55455__main" }, { "OutputKey": "UserPoolName", - "OutputValue": "fitnesstracker6b0fc119_userpool_6b0fc119" + "OutputValue": "fitnesstracker33f55455_userpool_33f55455" } ] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.parameters.json new file mode 100644 index 00000000000..01043034b58 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.parameters.json @@ -0,0 +1,178 @@ +[ + { + "ParameterKey": "authRoleArn", + "ParameterValue": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-a0537-authRole" + }, + { + "ParameterKey": "autoVerifiedAttributes", + "ParameterValue": "email" + }, + { + "ParameterKey": "allowUnauthenticatedIdentities", + "ParameterValue": "false" + }, + { + "ParameterKey": "hostedUI", + "ParameterValue": "false" + }, + { + "ParameterKey": "smsVerificationMessage", + "ParameterValue": "Your verification code is {####}" + }, + { + "ParameterKey": "userpoolClientReadAttributes", + "ParameterValue": "email" + }, + { + "ParameterKey": "breakCircularDependency", + "ParameterValue": "true" + }, + { + "ParameterKey": "mfaTypes", + "ParameterValue": "SMS Text Message" + }, + { + "ParameterKey": "emailVerificationSubject", + "ParameterValue": "Your verification code" + }, + { + "ParameterKey": "sharedId", + "ParameterValue": "33f55455" + }, + { + "ParameterKey": "useDefault", + "ParameterValue": "manual" + }, + { + "ParameterKey": "userpoolClientGenerateSecret", + "ParameterValue": "false" + }, + { + "ParameterKey": "mfaConfiguration", + "ParameterValue": "OFF" + }, + { + "ParameterKey": "identityPoolName", + "ParameterValue": "fitnesstracker33f55455_identitypool_33f55455" + }, + { + "ParameterKey": "thirdPartyAuth", + "ParameterValue": "false" + }, + { + "ParameterKey": "userPoolGroupList", + "ParameterValue": "Admin" + }, + { + "ParameterKey": "authSelections", + "ParameterValue": "identityPoolAndUserPool" + }, + { + "ParameterKey": "adminQueries", + "ParameterValue": "false" + }, + { + "ParameterKey": "permissions", + "ParameterValue": "" + }, + { + "ParameterKey": "functionfitnesstracker33f5545533f55455PreSignupArn", + "ParameterValue": "functionfitnesstracker33f5545533f55455PreSignupArn" + }, + { + "ParameterKey": "resourceNameTruncated", + "ParameterValue": "fitnes33f55455" + }, + { + "ParameterKey": "userPoolGroups", + "ParameterValue": "true" + }, + { + "ParameterKey": "smsAuthenticationMessage", + "ParameterValue": "Your authentication code is {####}" + }, + { + "ParameterKey": "passwordPolicyMinLength", + "ParameterValue": "8" + }, + { + "ParameterKey": "userPoolName", + "ParameterValue": "fitnesstracker33f55455_userpool_33f55455" + }, + { + "ParameterKey": "userpoolClientWriteAttributes", + "ParameterValue": "email" + }, + { + "ParameterKey": "dependsOn", + "ParameterValue": "[object Object]" + }, + { + "ParameterKey": "useEnabledMfas", + "ParameterValue": "true" + }, + { + "ParameterKey": "functionfitnesstracker33f5545533f55455PreSignupName", + "ParameterValue": "functionfitnesstracker33f5545533f55455PreSignupName" + }, + { + "ParameterKey": "usernameCaseSensitive", + "ParameterValue": "false" + }, + { + "ParameterKey": "resourceName", + "ParameterValue": "fitnesstracker33f5545533f55455" + }, + { + "ParameterKey": "env", + "ParameterValue": "main" + }, + { + "ParameterKey": "triggers", + "ParameterValue": "{\"PreSignup\":[\"email-filter-allowlist\"]}" + }, + { + "ParameterKey": "serviceName", + "ParameterValue": "Cognito" + }, + { + "ParameterKey": "emailVerificationMessage", + "ParameterValue": "Your verification code is {####}" + }, + { + "ParameterKey": "userpoolClientRefreshTokenValidity", + "ParameterValue": "30" + }, + { + "ParameterKey": "userpoolClientSetAttributes", + "ParameterValue": "false" + }, + { + "ParameterKey": "unauthRoleArn", + "ParameterValue": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-a0537-unauthRole" + }, + { + "ParameterKey": "requiredAttributes", + "ParameterValue": "email" + }, + { + "ParameterKey": "passwordPolicyCharacters", + "ParameterValue": "" + }, + { + "ParameterKey": "authTriggerConnections", + "ParameterValue": "{\"triggerType\":\"PreSignUp\",\"lambdaFunctionName\":\"fitnesstracker33f5545533f55455PreSignup\"}" + }, + { + "ParameterKey": "aliasAttributes", + "ParameterValue": "" + }, + { + "ParameterKey": "userpoolClientLambdaRole", + "ParameterValue": "fitnes33f55455_userpoolclient_lambda_role" + }, + { + "ParameterKey": "defaultPasswordPolicy", + "ParameterValue": "false" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.template.json new file mode 100644 index 00000000000..f5ed153a8fe --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-authfitnesstracker33f5545533f55455-1DWODNQZOZ508.template.json @@ -0,0 +1,480 @@ +{ + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"auth-Cognito\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "env": { + "Type": "String" + }, + "functionfitnesstracker33f5545533f55455PreSignupArn": { + "Type": "String", + "Default": "functionfitnesstracker33f5545533f55455PreSignupArn" + }, + "functionfitnesstracker33f5545533f55455PreSignupName": { + "Type": "String", + "Default": "functionfitnesstracker33f5545533f55455PreSignupName" + }, + "identityPoolName": { + "Type": "String" + }, + "allowUnauthenticatedIdentities": { + "Type": "String" + }, + "resourceNameTruncated": { + "Type": "String" + }, + "userPoolName": { + "Type": "String" + }, + "autoVerifiedAttributes": { + "Type": "CommaDelimitedList" + }, + "mfaConfiguration": { + "Type": "String" + }, + "mfaTypes": { + "Type": "CommaDelimitedList" + }, + "smsAuthenticationMessage": { + "Type": "String" + }, + "smsVerificationMessage": { + "Type": "String" + }, + "emailVerificationSubject": { + "Type": "String" + }, + "emailVerificationMessage": { + "Type": "String" + }, + "defaultPasswordPolicy": { + "Type": "String" + }, + "passwordPolicyMinLength": { + "Type": "String" + }, + "passwordPolicyCharacters": { + "Type": "CommaDelimitedList" + }, + "requiredAttributes": { + "Type": "CommaDelimitedList" + }, + "aliasAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientGenerateSecret": { + "Type": "String" + }, + "userpoolClientRefreshTokenValidity": { + "Type": "String" + }, + "userpoolClientWriteAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientReadAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientLambdaRole": { + "Type": "String" + }, + "userpoolClientSetAttributes": { + "Type": "String" + }, + "sharedId": { + "Type": "String" + }, + "resourceName": { + "Type": "String" + }, + "authSelections": { + "Type": "String" + }, + "useDefault": { + "Type": "String" + }, + "thirdPartyAuth": { + "Type": "String" + }, + "userPoolGroups": { + "Type": "String" + }, + "adminQueries": { + "Type": "String" + }, + "triggers": { + "Type": "String" + }, + "hostedUI": { + "Type": "String" + }, + "userPoolGroupList": { + "Type": "CommaDelimitedList" + }, + "serviceName": { + "Type": "String" + }, + "usernameCaseSensitive": { + "Type": "String" + }, + "useEnabledMfas": { + "Type": "String" + }, + "authRoleArn": { + "Type": "String" + }, + "unauthRoleArn": { + "Type": "String" + }, + "breakCircularDependency": { + "Type": "String" + }, + "dependsOn": { + "Type": "CommaDelimitedList" + }, + "permissions": { + "Type": "CommaDelimitedList" + }, + "authTriggerConnections": { + "Type": "CommaDelimitedList" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + }, + "Resources": { + "UserPool": { + "Type": "AWS::Cognito::UserPool", + "Properties": { + "AutoVerifiedAttributes": [ + "email" + ], + "EmailVerificationMessage": { + "Ref": "emailVerificationMessage" + }, + "EmailVerificationSubject": { + "Ref": "emailVerificationSubject" + }, + "MfaConfiguration": { + "Ref": "mfaConfiguration" + }, + "Policies": { + "PasswordPolicy": { + "MinimumLength": { + "Ref": "passwordPolicyMinLength" + }, + "RequireLowercase": false, + "RequireNumbers": false, + "RequireSymbols": false, + "RequireUppercase": false + } + }, + "Schema": [ + { + "Mutable": true, + "Name": "email", + "Required": true + } + ], + "UserAttributeUpdateSettings": { + "AttributesRequireVerificationBeforeUpdate": [ + "email" + ] + }, + "UserPoolName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + { + "Ref": "userPoolName" + }, + { + "Fn::Join": [ + "", + [ + { + "Ref": "userPoolName" + }, + "-", + { + "Ref": "env" + } + ] + ] + } + ] + }, + "UsernameConfiguration": { + "CaseSensitive": false + } + } + }, + "UserPoolClientWeb": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "ClientName": "fitnes33f55455_app_clientWeb", + "RefreshTokenValidity": { + "Ref": "userpoolClientRefreshTokenValidity" + }, + "TokenValidityUnits": { + "RefreshToken": "days" + }, + "UserPoolId": { + "Ref": "UserPool" + } + }, + "DependsOn": [ + "UserPool" + ] + }, + "UserPoolClient": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "ClientName": "fitnes33f55455_app_client", + "GenerateSecret": { + "Ref": "userpoolClientGenerateSecret" + }, + "RefreshTokenValidity": { + "Ref": "userpoolClientRefreshTokenValidity" + }, + "TokenValidityUnits": { + "RefreshToken": "days" + }, + "UserPoolId": { + "Ref": "UserPool" + } + }, + "DependsOn": [ + "UserPool" + ] + }, + "UserPoolClientRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + }, + "Action": "sts:AssumeRole" + } + ] + }, + "RoleName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + { + "Ref": "userpoolClientLambdaRole" + }, + { + "Fn::Join": [ + "", + [ + "upClientLambdaRole33f55455", + { + "Fn::Select": [ + 3, + { + "Fn::Split": [ + "-", + { + "Ref": "AWS::StackName" + } + ] + } + ] + }, + "-", + { + "Ref": "env" + } + ] + ] + } + ] + } + } + }, + "IdentityPool": { + "Type": "AWS::Cognito::IdentityPool", + "Properties": { + "AllowUnauthenticatedIdentities": { + "Ref": "allowUnauthenticatedIdentities" + }, + "CognitoIdentityProviders": [ + { + "ClientId": { + "Ref": "UserPoolClient" + }, + "ProviderName": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "client": { + "Ref": "UserPool" + } + } + ] + } + }, + { + "ClientId": { + "Ref": "UserPoolClientWeb" + }, + "ProviderName": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "client": { + "Ref": "UserPool" + } + } + ] + } + } + ], + "IdentityPoolName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "fitnesstracker33f55455_identitypool_33f55455", + { + "Fn::Join": [ + "", + [ + "fitnesstracker33f55455_identitypool_33f55455__", + { + "Ref": "env" + } + ] + ] + } + ] + } + } + }, + "IdentityPoolRoleMap": { + "Type": "AWS::Cognito::IdentityPoolRoleAttachment", + "Properties": { + "IdentityPoolId": { + "Ref": "IdentityPool" + }, + "RoleMappings": { + "UserPoolClientRoleMapping": { + "AmbiguousRoleResolution": "AuthenticatedRole", + "IdentityProvider": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${userPool}:${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "userPool": { + "Ref": "UserPool" + }, + "client": { + "Ref": "UserPoolClient" + } + } + ] + }, + "Type": "Token" + }, + "UserPoolWebClientRoleMapping": { + "AmbiguousRoleResolution": "AuthenticatedRole", + "IdentityProvider": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${userPool}:${webClient}", + { + "region": { + "Ref": "AWS::Region" + }, + "userPool": { + "Ref": "UserPool" + }, + "webClient": { + "Ref": "UserPoolClientWeb" + } + } + ] + }, + "Type": "Token" + } + }, + "Roles": { + "unauthenticated": { + "Ref": "unauthRoleArn" + }, + "authenticated": { + "Ref": "authRoleArn" + } + } + }, + "DependsOn": [ + "IdentityPool", + "UserPoolClient", + "UserPoolClientWeb" + ] + } + }, + "Outputs": { + "IdentityPoolId": { + "Description": "Id for the identity pool", + "Value": { + "Ref": "IdentityPool" + } + }, + "IdentityPoolName": { + "Value": { + "Fn::GetAtt": [ + "IdentityPool", + "Name" + ] + } + }, + "UserPoolId": { + "Description": "Id for the user pool", + "Value": { + "Ref": "UserPool" + } + }, + "UserPoolArn": { + "Description": "Arn for the user pool", + "Value": { + "Fn::GetAtt": [ + "UserPool", + "Arn" + ] + } + }, + "UserPoolName": { + "Value": { + "Ref": "userPoolName" + } + }, + "AppClientIDWeb": { + "Description": "The user pool app client id for web", + "Value": { + "Ref": "UserPoolClientWeb" + } + }, + "AppClientID": { + "Description": "The user pool app client id", + "Value": { + "Ref": "UserPoolClient" + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-authuserPoolGroups-1RDWF2H8163RP.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.description.txt similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-authuserPoolGroups-1RDWF2H8163RP.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.description.txt diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.outputs.json new file mode 100644 index 00000000000..86a20382cd6 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.outputs.json @@ -0,0 +1,6 @@ +[ + { + "OutputKey": "AdminGroupRole", + "OutputValue": "arn:aws:iam::123456789012:role/us-east-1_iguxCIcMS-AdminGroupRole" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.parameters.json new file mode 100644 index 00000000000..11a65b7a7e8 --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.parameters.json @@ -0,0 +1,30 @@ +[ + { + "ParameterKey": "UnauthRoleArn", + "ParameterValue": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-a0537-unauthRole" + }, + { + "ParameterKey": "authfitnesstracker33f5545533f55455IdentityPoolId", + "ParameterValue": "us-east-1:157ae2f7-5e4e-42ad-83e8-22689e0c1022" + }, + { + "ParameterKey": "AuthRoleArn", + "ParameterValue": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-a0537-authRole" + }, + { + "ParameterKey": "authfitnesstracker33f5545533f55455UserPoolId", + "ParameterValue": "us-east-1_iguxCIcMS" + }, + { + "ParameterKey": "env", + "ParameterValue": "main" + }, + { + "ParameterKey": "authfitnesstracker33f5545533f55455AppClientIDWeb", + "ParameterValue": "29bubgvfbbqkp4k60rl7oaqd8s" + }, + { + "ParameterKey": "authfitnesstracker33f5545533f55455AppClientID", + "ParameterValue": "3s8jcv7nflisr91emephrr2a9s" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-authuserPoolGroups-1RDWF2H8163RP.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.template.json similarity index 76% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-authuserPoolGroups-1RDWF2H8163RP.template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.template.json index 0741b0ac99f..e34b9d7bd14 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-authuserPoolGroups-1RDWF2H8163RP.template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-authuserPoolGroups-19G9G5Q52J3XF.template.json @@ -11,21 +11,21 @@ "UnauthRoleArn": { "Type": "String" }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Default": "authfitnesstracker33f5545533f55455UserPoolId" }, - "authfitnesstracker6b0fc1196b0fc119IdentityPoolId": { + "authfitnesstracker33f5545533f55455IdentityPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119IdentityPoolId" + "Default": "authfitnesstracker33f5545533f55455IdentityPoolId" }, - "authfitnesstracker6b0fc1196b0fc119AppClientID": { + "authfitnesstracker33f5545533f55455AppClientID": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119AppClientID" + "Default": "authfitnesstracker33f5545533f55455AppClientID" }, - "authfitnesstracker6b0fc1196b0fc119AppClientIDWeb": { + "authfitnesstracker33f5545533f55455AppClientIDWeb": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119AppClientIDWeb" + "Default": "authfitnesstracker33f5545533f55455AppClientIDWeb" } }, "Conditions": { @@ -52,7 +52,7 @@ ] }, "UserPoolId": { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" } } }, @@ -72,7 +72,7 @@ "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": { - "Ref": "authfitnesstracker6b0fc1196b0fc119IdentityPoolId" + "Ref": "authfitnesstracker33f5545533f55455IdentityPoolId" } }, "ForAnyValue:StringLike": { @@ -87,7 +87,7 @@ "", [ { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" }, "-AdminGroupRole" ] diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionadmin-1COFLOF4D1C47.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionadmin-1XHD95ED0WDDQ.description.txt similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionadmin-1COFLOF4D1C47.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionadmin-1XHD95ED0WDDQ.description.txt diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionadmin-1COFLOF4D1C47.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionadmin-1XHD95ED0WDDQ.outputs.json similarity index 82% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionadmin-1COFLOF4D1C47.outputs.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionadmin-1XHD95ED0WDDQ.outputs.json index 27a0f946070..25dd9bb9cfe 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionadmin-1COFLOF4D1C47.outputs.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionadmin-1XHD95ED0WDDQ.outputs.json @@ -1,7 +1,7 @@ [ { "OutputKey": "LambdaExecutionRoleArn", - "OutputValue": "arn:aws:iam::123456789012:role/fitnesstrackerLambdaRole8a95290d-main" + "OutputValue": "arn:aws:iam::123456789012:role/fitnesstrackerLambdaRole4a08108a-main" }, { "OutputKey": "Region", @@ -17,6 +17,6 @@ }, { "OutputKey": "LambdaExecutionRole", - "OutputValue": "fitnesstrackerLambdaRole8a95290d-main" + "OutputValue": "fitnesstrackerLambdaRole4a08108a-main" } ] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionadmin-1COFLOF4D1C47.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionadmin-1XHD95ED0WDDQ.parameters.json similarity index 52% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionadmin-1COFLOF4D1C47.parameters.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionadmin-1XHD95ED0WDDQ.parameters.json index 483014cc753..8893510b234 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionadmin-1COFLOF4D1C47.parameters.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionadmin-1XHD95ED0WDDQ.parameters.json @@ -5,15 +5,15 @@ }, { "ParameterKey": "s3Key", - "ParameterValue": "amplify-builds/admin-536f797874787247392f-build.zip" + "ParameterValue": "amplify-builds/admin-7934694b6d366c486d32-build.zip" }, { - "ParameterKey": "authfitnesstracker6b0fc1196b0fc119UserPoolId", - "ParameterValue": "us-east-1_u3DbKJdMj" + "ParameterKey": "deploymentBucketName", + "ParameterValue": "amplify-fitnesstracker-main-a0537-deployment" }, { - "ParameterKey": "deploymentBucketName", - "ParameterValue": "amplify-fitnesstracker-main-0683c-deployment" + "ParameterKey": "authfitnesstracker33f5545533f55455UserPoolId", + "ParameterValue": "us-east-1_iguxCIcMS" }, { "ParameterKey": "env", diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionadmin-1COFLOF4D1C47.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionadmin-1XHD95ED0WDDQ.template.json similarity index 93% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionadmin-1COFLOF4D1C47.template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionadmin-1XHD95ED0WDDQ.template.json index 2dbe7e47d6b..57322afb5e3 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionadmin-1COFLOF4D1C47.template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionadmin-1XHD95ED0WDDQ.template.json @@ -16,9 +16,9 @@ "s3Key": { "Type": "String" }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Type": "String", - "Default": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Default": "authfitnesstracker33f5545533f55455UserPoolId" } }, "Conditions": { @@ -74,8 +74,8 @@ "REGION": { "Ref": "AWS::Region" }, - "AUTH_FITNESSTRACKER6B0FC1196B0FC119_USERPOOLID": { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "AUTH_FITNESSTRACKER33F5545533F55455_USERPOOLID": { + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" } } }, @@ -96,12 +96,12 @@ "RoleName": { "Fn::If": [ "ShouldNotCreateEnvResources", - "fitnesstrackerLambdaRole8a95290d", + "fitnesstrackerLambdaRole4a08108a", { "Fn::Join": [ "", [ - "fitnesstrackerLambdaRole8a95290d", + "fitnesstrackerLambdaRole4a08108a", "-", { "Ref": "env" @@ -220,7 +220,7 @@ }, ":userpool/", { - "Ref": "authfitnesstracker6b0fc1196b0fc119UserPoolId" + "Ref": "authfitnesstracker33f5545533f55455UserPoolId" } ] ] diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionfitnesstracker6b0fc1196b0fc119PreSignup-IQSLCEZIETI0.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionfitnesstracker33f5545533f55455PreSignup-1NSDWT8P6Z7SU.description.txt similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionfitnesstracker6b0fc1196b0fc119PreSignup-IQSLCEZIETI0.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionfitnesstracker33f5545533f55455PreSignup-1NSDWT8P6Z7SU.description.txt diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionfitnesstracker6b0fc1196b0fc119PreSignup-IQSLCEZIETI0.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionfitnesstracker33f5545533f55455PreSignup-1NSDWT8P6Z7SU.outputs.json similarity index 63% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionfitnesstracker6b0fc1196b0fc119PreSignup-IQSLCEZIETI0.outputs.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionfitnesstracker33f5545533f55455PreSignup-1NSDWT8P6Z7SU.outputs.json index cbe5d2d6675..eb2c3a837ae 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionfitnesstracker6b0fc1196b0fc119PreSignup-IQSLCEZIETI0.outputs.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionfitnesstracker33f5545533f55455PreSignup-1NSDWT8P6Z7SU.outputs.json @@ -1,7 +1,7 @@ [ { "OutputKey": "LambdaExecutionRoleArn", - "OutputValue": "arn:aws:iam::123456789012:role/fitnesstracker6b0fc1196b0fc119PreSignup-main" + "OutputValue": "arn:aws:iam::123456789012:role/fitnesstracker33f5545533f55455PreSignup-main" }, { "OutputKey": "Region", @@ -9,14 +9,14 @@ }, { "OutputKey": "Arn", - "OutputValue": "arn:aws:lambda:us-east-1:123456789012:function:fitnesstracker6b0fc1196b0fc119PreSignup-main" + "OutputValue": "arn:aws:lambda:us-east-1:123456789012:function:fitnesstracker33f5545533f55455PreSignup-main" }, { "OutputKey": "Name", - "OutputValue": "fitnesstracker6b0fc1196b0fc119PreSignup-main" + "OutputValue": "fitnesstracker33f5545533f55455PreSignup-main" }, { "OutputKey": "LambdaExecutionRole", - "OutputValue": "fitnesstracker6b0fc1196b0fc119PreSignup-main" + "OutputValue": "fitnesstracker33f5545533f55455PreSignup-main" } ] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionfitnesstracker6b0fc1196b0fc119PreSignup-IQSLCEZIETI0.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionfitnesstracker33f5545533f55455PreSignup-1NSDWT8P6Z7SU.parameters.json similarity index 77% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionfitnesstracker6b0fc1196b0fc119PreSignup-IQSLCEZIETI0.parameters.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionfitnesstracker33f5545533f55455PreSignup-1NSDWT8P6Z7SU.parameters.json index 592cb027916..5f958b22dc3 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionfitnesstracker6b0fc1196b0fc119PreSignup-IQSLCEZIETI0.parameters.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionfitnesstracker33f5545533f55455PreSignup-1NSDWT8P6Z7SU.parameters.json @@ -5,7 +5,7 @@ }, { "ParameterKey": "s3Key", - "ParameterValue": "amplify-builds/fitnesstracker6b0fc1196b0fc119PreSignup-555a623867446f4a3843-build.zip" + "ParameterValue": "amplify-builds/fitnesstracker33f5545533f55455PreSignup-68374859444c45627749-build.zip" }, { "ParameterKey": "functionName", @@ -21,7 +21,7 @@ }, { "ParameterKey": "deploymentBucketName", - "ParameterValue": "amplify-fitnesstracker-main-0683c-deployment" + "ParameterValue": "amplify-fitnesstracker-main-a0537-deployment" }, { "ParameterKey": "DOMAINBLACKLIST", @@ -33,7 +33,7 @@ }, { "ParameterKey": "resourceName", - "ParameterValue": "fitnesstracker6b0fc1196b0fc119PreSignup" + "ParameterValue": "fitnesstracker33f5545533f55455PreSignup" }, { "ParameterKey": "trigger", diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionfitnesstracker33f5545533f55455PreSignup-1NSDWT8P6Z7SU.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionfitnesstracker33f5545533f55455PreSignup-1NSDWT8P6Z7SU.template.json new file mode 100644 index 00000000000..e53fff724cb --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionfitnesstracker33f5545533f55455PreSignup-1NSDWT8P6Z7SU.template.json @@ -0,0 +1,242 @@ +{ + "AWSTemplateFormatVersion": "2010-09-09", + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"function-Lambda\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "Parameters": { + "DOMAINBLACKLIST": { + "Type": "String", + "Default": "" + }, + "DOMAINALLOWLIST": { + "Type": "String", + "Default": "" + }, + "modules": { + "Type": "String", + "Default": "", + "Description": "Comma-delimited list of modules to be executed by a lambda trigger. Sent to resource as an env variable." + }, + "resourceName": { + "Type": "String", + "Default": "" + }, + "trigger": { + "Type": "String", + "Default": "true" + }, + "functionName": { + "Type": "String", + "Default": "" + }, + "roleName": { + "Type": "String", + "Default": "" + }, + "parentResource": { + "Type": "String", + "Default": "" + }, + "parentStack": { + "Type": "String", + "Default": "" + }, + "env": { + "Type": "String" + }, + "deploymentBucketName": { + "Type": "String" + }, + "s3Key": { + "Type": "String" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + }, + "Resources": { + "LambdaFunction": { + "Type": "AWS::Lambda::Function", + "Metadata": { + "aws:asset:path": "./src", + "aws:asset:property": "Code" + }, + "Properties": { + "Handler": "index.handler", + "FunctionName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "fitnesstracker33f5545533f55455PreSignup", + { + "Fn::Join": [ + "", + [ + "fitnesstracker33f5545533f55455PreSignup", + "-", + { + "Ref": "env" + } + ] + ] + } + ] + }, + "Environment": { + "Variables": { + "ENV": { + "Ref": "env" + }, + "MODULES": { + "Ref": "modules" + }, + "REGION": { + "Ref": "AWS::Region" + }, + "DOMAINALLOWLIST": { + "Ref": "DOMAINALLOWLIST" + }, + "DOMAINBLACKLIST": { + "Ref": "DOMAINBLACKLIST" + } + } + }, + "Role": { + "Fn::GetAtt": [ + "LambdaExecutionRole", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Timeout": 25, + "Code": { + "S3Bucket": { + "Ref": "deploymentBucketName" + }, + "S3Key": { + "Ref": "s3Key" + } + } + } + }, + "LambdaExecutionRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "RoleName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "fitnesstracker33f5545533f55455PreSignup", + { + "Fn::Join": [ + "", + [ + "fitnesstracker33f5545533f55455PreSignup", + "-", + { + "Ref": "env" + } + ] + ] + } + ] + }, + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + }, + "Action": [ + "sts:AssumeRole" + ] + } + ] + } + } + }, + "lambdaexecutionpolicy": { + "DependsOn": [ + "LambdaExecutionRole" + ], + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyName": "lambda-execution-policy", + "Roles": [ + { + "Ref": "LambdaExecutionRole" + } + ], + "PolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Resource": { + "Fn::Sub": [ + "arn:aws:logs:${region}:${account}:log-group:/aws/lambda/${lambda}:log-stream:*", + { + "region": { + "Ref": "AWS::Region" + }, + "account": { + "Ref": "AWS::AccountId" + }, + "lambda": { + "Ref": "LambdaFunction" + } + } + ] + } + } + ] + } + } + } + }, + "Outputs": { + "Name": { + "Value": { + "Ref": "LambdaFunction" + } + }, + "Arn": { + "Value": { + "Fn::GetAtt": [ + "LambdaFunction", + "Arn" + ] + } + }, + "LambdaExecutionRole": { + "Value": { + "Ref": "LambdaExecutionRole" + } + }, + "LambdaExecutionRoleArn": { + "Value": { + "Fn::GetAtt": [ + "LambdaExecutionRole", + "Arn" + ] + } + }, + "Region": { + "Value": { + "Ref": "AWS::Region" + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionlognutrition-10VHW25DVQUYL.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionlognutrition-13HP6USYKZ4YI.description.txt similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionlognutrition-10VHW25DVQUYL.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionlognutrition-13HP6USYKZ4YI.description.txt diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionlognutrition-10VHW25DVQUYL.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionlognutrition-13HP6USYKZ4YI.outputs.json similarity index 83% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionlognutrition-10VHW25DVQUYL.outputs.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionlognutrition-13HP6USYKZ4YI.outputs.json index 0687ea2fe72..ff6bec326d2 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionlognutrition-10VHW25DVQUYL.outputs.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionlognutrition-13HP6USYKZ4YI.outputs.json @@ -1,7 +1,7 @@ [ { "OutputKey": "LambdaExecutionRoleArn", - "OutputValue": "arn:aws:iam::123456789012:role/fitnesstrackerLambdaRolee7dd41c6-main" + "OutputValue": "arn:aws:iam::123456789012:role/fitnesstrackerLambdaRole2824d4b4-main" }, { "OutputKey": "Region", @@ -17,6 +17,6 @@ }, { "OutputKey": "LambdaExecutionRole", - "OutputValue": "fitnesstrackerLambdaRolee7dd41c6-main" + "OutputValue": "fitnesstrackerLambdaRole2824d4b4-main" } ] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionlognutrition-10VHW25DVQUYL.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionlognutrition-13HP6USYKZ4YI.parameters.json similarity index 77% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionlognutrition-10VHW25DVQUYL.parameters.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionlognutrition-13HP6USYKZ4YI.parameters.json index 887bbd3b71a..f5b9c93a1a7 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionlognutrition-10VHW25DVQUYL.parameters.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionlognutrition-13HP6USYKZ4YI.parameters.json @@ -5,7 +5,7 @@ }, { "ParameterKey": "apifitnesstrackerGraphQLAPIIdOutput", - "ParameterValue": "2aikutabnvbuhlzmh4mvkg3eji" + "ParameterValue": "jzwb5p2vcbd2ldlnlxokgjcjby" }, { "ParameterKey": "s3Key", @@ -13,7 +13,7 @@ }, { "ParameterKey": "deploymentBucketName", - "ParameterValue": "amplify-fitnesstracker-main-0683c-deployment" + "ParameterValue": "amplify-fitnesstracker-main-a0537-deployment" }, { "ParameterKey": "env", diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionlognutrition-10VHW25DVQUYL.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionlognutrition-13HP6USYKZ4YI.template.json similarity index 98% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionlognutrition-10VHW25DVQUYL.template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionlognutrition-13HP6USYKZ4YI.template.json index fd10c7f0ba5..34e97f53ec9 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c-functionlognutrition-10VHW25DVQUYL.template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537-functionlognutrition-13HP6USYKZ4YI.template.json @@ -122,12 +122,12 @@ "RoleName": { "Fn::If": [ "ShouldNotCreateEnvResources", - "fitnesstrackerLambdaRolee7dd41c6", + "fitnesstrackerLambdaRole2824d4b4", { "Fn::Join": [ "", [ - "fitnesstrackerLambdaRolee7dd41c6", + "fitnesstrackerLambdaRole2824d4b4", "-", { "Ref": "env" diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c.description.txt b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537.description.txt similarity index 100% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c.description.txt rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537.description.txt diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c.outputs.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537.outputs.json similarity index 56% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c.outputs.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537.outputs.json index c3871838d76..12c76d2fccb 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c.outputs.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537.outputs.json @@ -1,42 +1,42 @@ [ { "OutputKey": "AuthRoleName", - "OutputValue": "amplify-fitnesstracker-main-0683c-authRole" + "OutputValue": "amplify-fitnesstracker-main-a0537-authRole" }, { "OutputKey": "UnauthRoleArn", - "OutputValue": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-0683c-unauthRole" + "OutputValue": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-a0537-unauthRole" }, { "OutputKey": "AuthRoleArn", - "OutputValue": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-0683c-authRole" + "OutputValue": "arn:aws:iam::123456789012:role/amplify-fitnesstracker-main-a0537-authRole" }, { "OutputKey": "Region", "OutputValue": "us-east-1", "Description": "CloudFormation provider root stack Region", - "ExportName": "amplify-fitnesstracker-main-0683c-Region" + "ExportName": "amplify-fitnesstracker-main-a0537-Region" }, { "OutputKey": "DeploymentBucketName", - "OutputValue": "amplify-fitnesstracker-main-0683c-deployment", + "OutputValue": "amplify-fitnesstracker-main-a0537-deployment", "Description": "CloudFormation provider root stack deployment bucket name", - "ExportName": "amplify-fitnesstracker-main-0683c-DeploymentBucketName" + "ExportName": "amplify-fitnesstracker-main-a0537-DeploymentBucketName" }, { "OutputKey": "UnauthRoleName", - "OutputValue": "amplify-fitnesstracker-main-0683c-unauthRole" + "OutputValue": "amplify-fitnesstracker-main-a0537-unauthRole" }, { "OutputKey": "StackName", - "OutputValue": "amplify-fitnesstracker-main-0683c", + "OutputValue": "amplify-fitnesstracker-main-a0537", "Description": "CloudFormation provider root stack ID", - "ExportName": "amplify-fitnesstracker-main-0683c-StackName" + "ExportName": "amplify-fitnesstracker-main-a0537-StackName" }, { "OutputKey": "StackId", - "OutputValue": "arn:aws:cloudformation:us-east-1:123456789012:stack/amplify-fitnesstracker-main-0683c/8ef87630-1a5b-11f1-84f6-12153bdc35f9", + "OutputValue": "arn:aws:cloudformation:us-east-1:123456789012:stack/amplify-fitnesstracker-main-a0537/1749a530-272d-11f1-a465-0e5f0b5f7853", "Description": "CloudFormation provider root stack name", - "ExportName": "amplify-fitnesstracker-main-0683c-StackId" + "ExportName": "amplify-fitnesstracker-main-a0537-StackId" } ] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537.parameters.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537.parameters.json new file mode 100644 index 00000000000..9ba77cc775e --- /dev/null +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537.parameters.json @@ -0,0 +1,14 @@ +[ + { + "ParameterKey": "AuthRoleName", + "ParameterValue": "amplify-fitnesstracker-main-a0537-authRole" + }, + { + "ParameterKey": "DeploymentBucketName", + "ParameterValue": "amplify-fitnesstracker-main-a0537-deployment" + }, + { + "ParameterKey": "UnauthRoleName", + "ParameterValue": "amplify-fitnesstracker-main-a0537-unauthRole" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c.template.json b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537.template.json similarity index 85% rename from amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c.template.json rename to amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537.template.json index 3c1652a8af6..e4e090d2980 100644 --- a/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-0683c.template.json +++ b/amplify-migration-apps/fitness-tracker/_snapshot.pre.refactor/amplify-fitnesstracker-main-a0537.template.json @@ -202,7 +202,7 @@ "APIGatewayAuthStack": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/APIGatewayAuthStack.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/APIGatewayAuthStack.json", "Parameters": { "authRoleName": { "Ref": "AuthRoleName" @@ -229,50 +229,50 @@ "AuthTriggerCustomLambdaStack": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/auth/auth-trigger-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/auth/auth-trigger-cloudformation-template.json", "Parameters": { "env": "main", "userpoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, "userpoolArn": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolArn" ] }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupLambdaExecutionRole": { + "functionfitnesstracker33f5545533f55455PreSignupLambdaExecutionRole": { "Fn::GetAtt": [ - "functionfitnesstracker6b0fc1196b0fc119PreSignup", + "functionfitnesstracker33f5545533f55455PreSignup", "Outputs.LambdaExecutionRoleArn" ] }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupArn": { + "functionfitnesstracker33f5545533f55455PreSignupArn": { "Fn::GetAtt": [ - "functionfitnesstracker6b0fc1196b0fc119PreSignup", + "functionfitnesstracker33f5545533f55455PreSignup", "Outputs.Arn" ] }, - "functionfitnesstracker6b0fc1196b0fc119PreSignupName": { + "functionfitnesstracker33f5545533f55455PreSignupName": { "Fn::GetAtt": [ - "functionfitnesstracker6b0fc1196b0fc119PreSignup", + "functionfitnesstracker33f5545533f55455PreSignup", "Outputs.Name" ] } } }, "DependsOn": [ - "authfitnesstracker6b0fc1196b0fc119", - "functionfitnesstracker6b0fc1196b0fc119PreSignup" + "authfitnesstracker33f5545533f55455", + "functionfitnesstracker33f5545533f55455PreSignup" ] }, "apiadminapi": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/adminapi-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/adminapi-cloudformation-template.json", "Parameters": { "functionadminName": { "Fn::GetAtt": [ @@ -286,9 +286,9 @@ "Outputs.Arn" ] }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, @@ -305,19 +305,19 @@ "apifitnesstracker": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/cloudformation-template.json", "Parameters": { "AppSyncApiName": "fitnesstracker", "DynamoDBBillingMode": "PAY_PER_REQUEST", "DynamoDBEnableServerSideEncryption": false, "AuthCognitoUserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, - "S3DeploymentBucket": "amplify-fitnesstracker-main-0683c-deployment", - "S3DeploymentRootKey": "amplify-appsync-files/96fdcde6a80859ead18d697e115cb9bd809fa98a", + "S3DeploymentBucket": "amplify-fitnesstracker-main-a0537-deployment", + "S3DeploymentRootKey": "amplify-appsync-files/67310f5f0a68cc163f9cc58da56e1409a2c21b1d", "env": "main" } } @@ -325,7 +325,7 @@ "apinutritionapi": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/api/nutritionapi-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/api/nutritionapi-cloudformation-template.json", "Parameters": { "functionlognutritionName": { "Fn::GetAtt": [ @@ -339,9 +339,9 @@ "Outputs.Arn" ] }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, @@ -355,15 +355,15 @@ } } }, - "authfitnesstracker6b0fc1196b0fc119": { + "authfitnesstracker33f5545533f55455": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/auth/fitnesstracker6b0fc1196b0fc119-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/auth/fitnesstracker33f5545533f55455-cloudformation-template.json", "Parameters": { - "identityPoolName": "fitnesstracker6b0fc119_identitypool_6b0fc119", + "identityPoolName": "fitnesstracker33f55455_identitypool_33f55455", "allowUnauthenticatedIdentities": false, - "resourceNameTruncated": "fitnes6b0fc119", - "userPoolName": "fitnesstracker6b0fc119_userpool_6b0fc119", + "resourceNameTruncated": "fitnes33f55455", + "userPoolName": "fitnesstracker33f55455_userpool_33f55455", "autoVerifiedAttributes": "email", "mfaConfiguration": "OFF", "mfaTypes": "SMS Text Message", @@ -377,13 +377,13 @@ "requiredAttributes": "email", "aliasAttributes": "", "userpoolClientGenerateSecret": false, - "userpoolClientRefreshTokenValidity": "30", + "userpoolClientRefreshTokenValidity": 30, "userpoolClientWriteAttributes": "email", "userpoolClientReadAttributes": "email", - "userpoolClientLambdaRole": "fitnes6b0fc119_userpoolclient_lambda_role", + "userpoolClientLambdaRole": "fitnes33f55455_userpoolclient_lambda_role", "userpoolClientSetAttributes": false, - "sharedId": "6b0fc119", - "resourceName": "fitnesstracker6b0fc1196b0fc119", + "sharedId": "33f55455", + "resourceName": "fitnesstracker33f5545533f55455", "authSelections": "identityPoolAndUserPool", "useDefault": "manual", "thirdPartyAuth": false, @@ -410,7 +410,7 @@ "breakCircularDependency": true, "dependsOn": "[object Object]", "permissions": "", - "authTriggerConnections": "{\"triggerType\":\"PreSignUp\",\"lambdaFunctionName\":\"fitnesstracker6b0fc1196b0fc119PreSignup\"}", + "authTriggerConnections": "{\"triggerType\":\"PreSignUp\",\"lambdaFunctionName\":\"fitnesstracker33f5545533f55455PreSignup\"}", "env": "main" } } @@ -418,7 +418,7 @@ "authuserPoolGroups": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/auth/userPoolGroups-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/auth/userPoolGroups-cloudformation-template.json", "Parameters": { "AuthRoleArn": { "Fn::GetAtt": [ @@ -432,27 +432,27 @@ "Arn" ] }, - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "authfitnesstracker33f5545533f55455UserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, - "authfitnesstracker6b0fc1196b0fc119AppClientIDWeb": { + "authfitnesstracker33f5545533f55455AppClientIDWeb": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.AppClientIDWeb" ] }, - "authfitnesstracker6b0fc1196b0fc119AppClientID": { + "authfitnesstracker33f5545533f55455AppClientID": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.AppClientID" ] }, - "authfitnesstracker6b0fc1196b0fc119IdentityPoolId": { + "authfitnesstracker33f5545533f55455IdentityPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.IdentityPoolId" ] }, @@ -463,13 +463,13 @@ "functionadmin": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/function/admin-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/function/admin-cloudformation-template.json", "Parameters": { - "deploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", - "s3Key": "amplify-builds/admin-536f797874787247392f-build.zip", - "authfitnesstracker6b0fc1196b0fc119UserPoolId": { + "deploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", + "s3Key": "amplify-builds/admin-7934694b6d366c486d32-build.zip", + "authfitnesstracker33f5545533f55455UserPoolId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.UserPoolId" ] }, @@ -477,16 +477,16 @@ } } }, - "functionfitnesstracker6b0fc1196b0fc119PreSignup": { + "functionfitnesstracker33f5545533f55455PreSignup": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/function/fitnesstracker6b0fc1196b0fc119PreSignup-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/function/fitnesstracker33f5545533f55455PreSignup-cloudformation-template.json", "Parameters": { "modules": "email-filter-allowlist", - "resourceName": "fitnesstracker6b0fc1196b0fc119PreSignup", + "resourceName": "fitnesstracker33f5545533f55455PreSignup", "DOMAINALLOWLIST": "amazon.com", - "deploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", - "s3Key": "amplify-builds/fitnesstracker6b0fc1196b0fc119PreSignup-555a623867446f4a3843-build.zip", + "deploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", + "s3Key": "amplify-builds/fitnesstracker33f5545533f55455PreSignup-68374859444c45627749-build.zip", "env": "main" } } @@ -494,9 +494,9 @@ "functionlognutrition": { "Type": "AWS::CloudFormation::Stack", "Properties": { - "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-0683c-deployment/amplify-cfn-templates/function/lognutrition-cloudformation-template.json", + "TemplateURL": "https://s3.amazonaws.com/amplify-fitnesstracker-main-a0537-deployment/amplify-cfn-templates/function/lognutrition-cloudformation-template.json", "Parameters": { - "deploymentBucketName": "amplify-fitnesstracker-main-0683c-deployment", + "deploymentBucketName": "amplify-fitnesstracker-main-a0537-deployment", "s3Key": "amplify-builds/lognutrition-554b5263566866516c6c-build.zip", "apifitnesstrackerGraphQLAPIIdOutput": { "Fn::GetAtt": [ @@ -512,7 +512,7 @@ "DependsOn": [ "AuthRole", "UnauthRole", - "authfitnesstracker6b0fc1196b0fc119" + "authfitnesstracker33f5545533f55455" ], "Type": "AWS::Lambda::Function", "Properties": { @@ -622,7 +622,7 @@ }, "idpId": { "Fn::GetAtt": [ - "authfitnesstracker6b0fc1196b0fc119", + "authfitnesstracker33f5545533f55455", "Outputs.IdentityPoolId" ] }, diff --git a/amplify-migration-apps/mood-board/_snapshot.post.refactor/refactor.__from__.amplify-moodboard-gen2main-branch-f7e4caeabb-auth179371D7-UGINV3RD10.__to__.amplify-moodboard-gen2main-branch-f7e4caeabb-auth179371D7-UGINV3RD10-holding.target.template.json b/amplify-migration-apps/mood-board/_snapshot.post.refactor/refactor.__from__.amplify-moodboard-gen2main-branch-f7e4caeabb-auth179371D7-UGINV3RD10.__to__.amplify-moodboard-gen2main-branch-f7e4caeabb-auth179371D7-UGINV3RD10-holding.target.template.json index e41793ca420..f9691d6822f 100644 --- a/amplify-migration-apps/mood-board/_snapshot.post.refactor/refactor.__from__.amplify-moodboard-gen2main-branch-f7e4caeabb-auth179371D7-UGINV3RD10.__to__.amplify-moodboard-gen2main-branch-f7e4caeabb-auth179371D7-UGINV3RD10-holding.target.template.json +++ b/amplify-migration-apps/mood-board/_snapshot.post.refactor/refactor.__from__.amplify-moodboard-gen2main-branch-f7e4caeabb-auth179371D7-UGINV3RD10.__to__.amplify-moodboard-gen2main-branch-f7e4caeabb-auth179371D7-UGINV3RD10-holding.target.template.json @@ -204,10 +204,6 @@ "authenticated": "arn:aws:iam::123456789012:role/amplify-moodboard-ge-amplifyAuthauthenticatedU-UANJImTyKZ7p" } }, - "DependsOn": [ - "amplifyAuthIdentityPool3FDE84CC", - "amplifyAuthUserPoolAppClient2626C6F8" - ], "Metadata": { "aws:cdk:path": "amplify-moodboard-gen2main-branch-f7e4caeabb/auth/amplifyAuth/IdentityPoolRoleAttachment" } diff --git a/amplify-migration-apps/mood-board/_snapshot.post.refactor/refactor.__from__.amplify-moodboard-gen2main-branch-f7e4caeabb-storage0EC3F24A-11PWXC3G56PPP.__to__.amplify-moodboard-gen2main-branch-f7e4caeabb-storage0EC3F24A-11PWXC3G56PPP-holding.source.template.json b/amplify-migration-apps/mood-board/_snapshot.post.refactor/refactor.__from__.amplify-moodboard-gen2main-branch-f7e4caeabb-storage0EC3F24A-11PWXC3G56PPP.__to__.amplify-moodboard-gen2main-branch-f7e4caeabb-storage0EC3F24A-11PWXC3G56PPP-holding.source.template.json index 26152a149ed..3a7e2136339 100644 --- a/amplify-migration-apps/mood-board/_snapshot.post.refactor/refactor.__from__.amplify-moodboard-gen2main-branch-f7e4caeabb-storage0EC3F24A-11PWXC3G56PPP.__to__.amplify-moodboard-gen2main-branch-f7e4caeabb-storage0EC3F24A-11PWXC3G56PPP-holding.source.template.json +++ b/amplify-migration-apps/mood-board/_snapshot.post.refactor/refactor.__from__.amplify-moodboard-gen2main-branch-f7e4caeabb-storage0EC3F24A-11PWXC3G56PPP.__to__.amplify-moodboard-gen2main-branch-f7e4caeabb-storage0EC3F24A-11PWXC3G56PPP-holding.source.template.json @@ -69,9 +69,6 @@ "ServiceToken": "arn:aws:lambda:us-east-1:123456789012:function:amplify-moodboard-gen2main-branch-f7e4caeabb-storage0EC3F24A-11PWXC3G56PPP/CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F", "BucketName": "amplify-moodboard-ge-moodboard20e29595008142e-hil8whofbv0z" }, - "DependsOn": [ - "moodboard20e29595008142e3ad16f01c4066e1c41959agen2mainBucketPolicy9A17D834" - ], "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { @@ -128,9 +125,6 @@ ] } }, - "DependsOn": [ - "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092" - ], "Metadata": { "aws:cdk:path": "amplify-moodboard-gen2main-branch-f7e4caeabb/storage/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler", "aws:asset:path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", diff --git a/amplify-migration-apps/mood-board/_snapshot.post.refactor/refactor.__from__.amplify-moodboard-main-1959a-authmoodboard759ae00a-55VYEATUY8WM.__to__.amplify-moodboard-gen2main-branch-f7e4caeabb-auth179371D7-UGINV3RD10.target.template.json b/amplify-migration-apps/mood-board/_snapshot.post.refactor/refactor.__from__.amplify-moodboard-main-1959a-authmoodboard759ae00a-55VYEATUY8WM.__to__.amplify-moodboard-gen2main-branch-f7e4caeabb-auth179371D7-UGINV3RD10.target.template.json index 1ba32e13166..75f291f8426 100644 --- a/amplify-migration-apps/mood-board/_snapshot.post.refactor/refactor.__from__.amplify-moodboard-main-1959a-authmoodboard759ae00a-55VYEATUY8WM.__to__.amplify-moodboard-gen2main-branch-f7e4caeabb-auth179371D7-UGINV3RD10.target.template.json +++ b/amplify-migration-apps/mood-board/_snapshot.post.refactor/refactor.__from__.amplify-moodboard-main-1959a-authmoodboard759ae00a-55VYEATUY8WM.__to__.amplify-moodboard-gen2main-branch-f7e4caeabb-auth179371D7-UGINV3RD10.target.template.json @@ -168,10 +168,7 @@ "RefreshToken": "days" }, "UserPoolId": "us-east-1_Cwvqs93Nc" - }, - "DependsOn": [ - "amplifyAuthUserPool4BA7F805" - ] + } }, "amplifyAuthUserPoolNativeAppClient79534448": { "Type": "AWS::Cognito::UserPoolClient", @@ -183,10 +180,7 @@ "RefreshToken": "days" }, "UserPoolId": "us-east-1_Cwvqs93Nc" - }, - "DependsOn": [ - "amplifyAuthUserPool4BA7F805" - ] + } }, "amplifyAuthIdentityPool3FDE84CC": { "Type": "AWS::Cognito::IdentityPool", @@ -241,10 +235,7 @@ "unauthenticated": "arn:aws:iam::123456789012:role/amplify-moodboard-main-1959a-unauthRole", "authenticated": "arn:aws:iam::123456789012:role/amplify-moodboard-main-1959a-authRole" } - }, - "DependsOn": [ - "amplifyAuthIdentityPool3FDE84CC" - ] + } } }, "Conditions": { diff --git a/amplify-migration-apps/mood-board/_snapshot.post.refactor/refactor.__from__.amplify-moodboard-main-1959a-storagemoodboardStorage-4QIRO85L6OVA.__to__.amplify-moodboard-gen2main-branch-f7e4caeabb-storage0EC3F24A-11PWXC3G56PPP.source.template.json b/amplify-migration-apps/mood-board/_snapshot.post.refactor/refactor.__from__.amplify-moodboard-main-1959a-storagemoodboardStorage-4QIRO85L6OVA.__to__.amplify-moodboard-gen2main-branch-f7e4caeabb-storage0EC3F24A-11PWXC3G56PPP.source.template.json index 06a94faaeaf..91330cd6b72 100644 --- a/amplify-migration-apps/mood-board/_snapshot.post.refactor/refactor.__from__.amplify-moodboard-main-1959a-storagemoodboardStorage-4QIRO85L6OVA.__to__.amplify-moodboard-gen2main-branch-f7e4caeabb-storage0EC3F24A-11PWXC3G56PPP.source.template.json +++ b/amplify-migration-apps/mood-board/_snapshot.post.refactor/refactor.__from__.amplify-moodboard-main-1959a-storagemoodboardStorage-4QIRO85L6OVA.__to__.amplify-moodboard-gen2main-branch-f7e4caeabb-storage0EC3F24A-11PWXC3G56PPP.source.template.json @@ -213,7 +213,6 @@ "amplify-moodboard-main-1959a-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthPublic" }, "S3AuthProtectedPolicy": { @@ -250,7 +249,6 @@ "amplify-moodboard-main-1959a-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthProtected" }, "S3AuthPrivatePolicy": { @@ -287,7 +285,6 @@ "amplify-moodboard-main-1959a-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthPrivate" }, "S3AuthUploadPolicy": { @@ -324,7 +321,6 @@ "amplify-moodboard-main-1959a-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthUploads" }, "S3GuestPublicPolicy": { @@ -361,7 +357,6 @@ "amplify-moodboard-main-1959a-unauthRole" ] }, - "DependsOn": [], "Condition": "CreateGuestPublic" }, "S3AuthReadPolicy": { @@ -416,7 +411,6 @@ "amplify-moodboard-main-1959a-authRole" ] }, - "DependsOn": [], "Condition": "AuthReadAndList" }, "S3GuestReadPolicy": { @@ -469,7 +463,6 @@ "amplify-moodboard-main-1959a-unauthRole" ] }, - "DependsOn": [], "Condition": "GuestReadAndList" } } diff --git a/amplify-migration-apps/mood-board/_snapshot.post.refactor/refactor.__from__.amplify-moodboard-main-1959a-storagemoodboardStorage-4QIRO85L6OVA.__to__.amplify-moodboard-gen2main-branch-f7e4caeabb-storage0EC3F24A-11PWXC3G56PPP.target.template.json b/amplify-migration-apps/mood-board/_snapshot.post.refactor/refactor.__from__.amplify-moodboard-main-1959a-storagemoodboardStorage-4QIRO85L6OVA.__to__.amplify-moodboard-gen2main-branch-f7e4caeabb-storage0EC3F24A-11PWXC3G56PPP.target.template.json index 603dfa5b725..b5962a18290 100644 --- a/amplify-migration-apps/mood-board/_snapshot.post.refactor/refactor.__from__.amplify-moodboard-main-1959a-storagemoodboardStorage-4QIRO85L6OVA.__to__.amplify-moodboard-gen2main-branch-f7e4caeabb-storage0EC3F24A-11PWXC3G56PPP.target.template.json +++ b/amplify-migration-apps/mood-board/_snapshot.post.refactor/refactor.__from__.amplify-moodboard-main-1959a-storagemoodboardStorage-4QIRO85L6OVA.__to__.amplify-moodboard-gen2main-branch-f7e4caeabb-storage0EC3F24A-11PWXC3G56PPP.target.template.json @@ -69,9 +69,6 @@ "ServiceToken": "arn:aws:lambda:us-east-1:123456789012:function:amplify-moodboard-gen2main-branch-f7e4caeabb-storage0EC3F24A-11PWXC3G56PPP/CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F", "BucketName": "amplify-moodboard-ge-moodboard20e29595008142e-hil8whofbv0z" }, - "DependsOn": [ - "moodboard20e29595008142e3ad16f01c4066e1c41959agen2mainBucketPolicy9A17D834" - ], "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { @@ -128,9 +125,6 @@ ] } }, - "DependsOn": [ - "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092" - ], "Metadata": { "aws:cdk:path": "amplify-moodboard-gen2main-branch-f7e4caeabb/storage/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler", "aws:asset:path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", diff --git a/amplify-migration-apps/mood-board/_snapshot.post.refactor/update.amplify-moodboard-gen2main-branch-f7e4caeabb-auth179371D7-UGINV3RD10.template.json b/amplify-migration-apps/mood-board/_snapshot.post.refactor/update.amplify-moodboard-gen2main-branch-f7e4caeabb-auth179371D7-UGINV3RD10.template.json index 3557a8fa1e2..3c4e609fcb2 100644 --- a/amplify-migration-apps/mood-board/_snapshot.post.refactor/update.amplify-moodboard-gen2main-branch-f7e4caeabb-auth179371D7-UGINV3RD10.template.json +++ b/amplify-migration-apps/mood-board/_snapshot.post.refactor/update.amplify-moodboard-gen2main-branch-f7e4caeabb-auth179371D7-UGINV3RD10.template.json @@ -303,10 +303,6 @@ "authenticated": "arn:aws:iam::123456789012:role/amplify-moodboard-ge-amplifyAuthauthenticatedU-UANJImTyKZ7p" } }, - "DependsOn": [ - "amplifyAuthIdentityPool3FDE84CC", - "amplifyAuthUserPoolAppClient2626C6F8" - ], "Metadata": { "aws:cdk:path": "amplify-moodboard-gen2main-branch-f7e4caeabb/auth/amplifyAuth/IdentityPoolRoleAttachment" } diff --git a/amplify-migration-apps/mood-board/_snapshot.post.refactor/update.amplify-moodboard-gen2main-branch-f7e4caeabb-storage0EC3F24A-11PWXC3G56PPP.template.json b/amplify-migration-apps/mood-board/_snapshot.post.refactor/update.amplify-moodboard-gen2main-branch-f7e4caeabb-storage0EC3F24A-11PWXC3G56PPP.template.json index 8721f5c0e54..b62dc855c35 100644 --- a/amplify-migration-apps/mood-board/_snapshot.post.refactor/update.amplify-moodboard-gen2main-branch-f7e4caeabb-storage0EC3F24A-11PWXC3G56PPP.template.json +++ b/amplify-migration-apps/mood-board/_snapshot.post.refactor/update.amplify-moodboard-gen2main-branch-f7e4caeabb-storage0EC3F24A-11PWXC3G56PPP.template.json @@ -141,9 +141,6 @@ "ServiceToken": "arn:aws:lambda:us-east-1:123456789012:function:amplify-moodboard-gen2main-branch-f7e4caeabb-storage0EC3F24A-11PWXC3G56PPP/CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F", "BucketName": "amplify-moodboard-ge-moodboard20e29595008142e-hil8whofbv0z" }, - "DependsOn": [ - "moodboard20e29595008142e3ad16f01c4066e1c41959agen2mainBucketPolicy9A17D834" - ], "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { @@ -200,9 +197,6 @@ ] } }, - "DependsOn": [ - "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092" - ], "Metadata": { "aws:cdk:path": "amplify-moodboard-gen2main-branch-f7e4caeabb/storage/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler", "aws:asset:path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", diff --git a/amplify-migration-apps/mood-board/_snapshot.post.refactor/update.amplify-moodboard-main-1959a-authmoodboard759ae00a-55VYEATUY8WM.template.json b/amplify-migration-apps/mood-board/_snapshot.post.refactor/update.amplify-moodboard-main-1959a-authmoodboard759ae00a-55VYEATUY8WM.template.json index ef08b4cd597..97ac6185c7d 100644 --- a/amplify-migration-apps/mood-board/_snapshot.post.refactor/update.amplify-moodboard-main-1959a-authmoodboard759ae00a-55VYEATUY8WM.template.json +++ b/amplify-migration-apps/mood-board/_snapshot.post.refactor/update.amplify-moodboard-main-1959a-authmoodboard759ae00a-55VYEATUY8WM.template.json @@ -177,10 +177,7 @@ "RefreshToken": "days" }, "UserPoolId": "us-east-1_Cwvqs93Nc" - }, - "DependsOn": [ - "UserPool" - ] + } }, "UserPoolClient": { "Type": "AWS::Cognito::UserPoolClient", @@ -192,10 +189,7 @@ "RefreshToken": "days" }, "UserPoolId": "us-east-1_Cwvqs93Nc" - }, - "DependsOn": [ - "UserPool" - ] + } }, "UserPoolClientRole": { "Type": "AWS::IAM::Role", @@ -288,10 +282,7 @@ "unauthenticated": "arn:aws:iam::123456789012:role/amplify-moodboard-main-1959a-unauthRole", "authenticated": "arn:aws:iam::123456789012:role/amplify-moodboard-main-1959a-authRole" } - }, - "DependsOn": [ - "IdentityPool" - ] + } } }, "Outputs": { diff --git a/amplify-migration-apps/mood-board/_snapshot.post.refactor/update.amplify-moodboard-main-1959a-storagemoodboardStorage-4QIRO85L6OVA.template.json b/amplify-migration-apps/mood-board/_snapshot.post.refactor/update.amplify-moodboard-main-1959a-storagemoodboardStorage-4QIRO85L6OVA.template.json index 8ae961bc698..0ec74d2088d 100644 --- a/amplify-migration-apps/mood-board/_snapshot.post.refactor/update.amplify-moodboard-main-1959a-storagemoodboardStorage-4QIRO85L6OVA.template.json +++ b/amplify-migration-apps/mood-board/_snapshot.post.refactor/update.amplify-moodboard-main-1959a-storagemoodboardStorage-4QIRO85L6OVA.template.json @@ -277,7 +277,6 @@ "amplify-moodboard-main-1959a-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthPublic" }, "S3AuthProtectedPolicy": { @@ -314,7 +313,6 @@ "amplify-moodboard-main-1959a-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthProtected" }, "S3AuthPrivatePolicy": { @@ -351,7 +349,6 @@ "amplify-moodboard-main-1959a-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthPrivate" }, "S3AuthUploadPolicy": { @@ -388,7 +385,6 @@ "amplify-moodboard-main-1959a-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthUploads" }, "S3GuestPublicPolicy": { @@ -425,7 +421,6 @@ "amplify-moodboard-main-1959a-unauthRole" ] }, - "DependsOn": [], "Condition": "CreateGuestPublic" }, "S3AuthReadPolicy": { @@ -480,7 +475,6 @@ "amplify-moodboard-main-1959a-authRole" ] }, - "DependsOn": [], "Condition": "AuthReadAndList" }, "S3GuestReadPolicy": { @@ -533,7 +527,6 @@ "amplify-moodboard-main-1959a-unauthRole" ] }, - "DependsOn": [], "Condition": "GuestReadAndList" } } diff --git a/amplify-migration-apps/product-catalog/_snapshot.post.refactor/refactor.__from__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-auth179371D7-1RF1TAQPAA1WW.__to__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-auth179371D7-1RF1TAQPAA1WW-holding.target.template.json b/amplify-migration-apps/product-catalog/_snapshot.post.refactor/refactor.__from__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-auth179371D7-1RF1TAQPAA1WW.__to__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-auth179371D7-1RF1TAQPAA1WW-holding.target.template.json index c1c890be0a7..38ef9ab99c9 100644 --- a/amplify-migration-apps/product-catalog/_snapshot.post.refactor/refactor.__from__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-auth179371D7-1RF1TAQPAA1WW.__to__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-auth179371D7-1RF1TAQPAA1WW-holding.target.template.json +++ b/amplify-migration-apps/product-catalog/_snapshot.post.refactor/refactor.__from__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-auth179371D7-1RF1TAQPAA1WW.__to__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-auth179371D7-1RF1TAQPAA1WW-holding.target.template.json @@ -204,10 +204,6 @@ "authenticated": "arn:aws:iam::123456789012:role/amplify-productcatalog-ge-amplifyAuthauthenticatedU-7u6GoubHxSy7" } }, - "DependsOn": [ - "amplifyAuthIdentityPool3FDE84CC", - "amplifyAuthUserPoolAppClient2626C6F8" - ], "Metadata": { "aws:cdk:path": "amplify-productcatalog-gen2main-branch-4b79ec0f9a/auth/amplifyAuth/IdentityPoolRoleAttachment" } diff --git a/amplify-migration-apps/product-catalog/_snapshot.post.refactor/refactor.__from__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-storage0EC3F24A-13PB5LDXDDFTY.__to__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-storage0EC3F24A-13PB5LDXDDFTY-holding.source.template.json b/amplify-migration-apps/product-catalog/_snapshot.post.refactor/refactor.__from__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-storage0EC3F24A-13PB5LDXDDFTY.__to__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-storage0EC3F24A-13PB5LDXDDFTY-holding.source.template.json index 3d7eee45f75..436640b9b85 100644 --- a/amplify-migration-apps/product-catalog/_snapshot.post.refactor/refactor.__from__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-storage0EC3F24A-13PB5LDXDDFTY.__to__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-storage0EC3F24A-13PB5LDXDDFTY-holding.source.template.json +++ b/amplify-migration-apps/product-catalog/_snapshot.post.refactor/refactor.__from__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-storage0EC3F24A-13PB5LDXDDFTY.__to__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-storage0EC3F24A-13PB5LDXDDFTY-holding.source.template.json @@ -69,9 +69,6 @@ "ServiceToken": "arn:aws:lambda:us-east-1:123456789012:function:amplify-productcatalog-gen2main-branch-4b79ec0f9a-storage0EC3F24A-13PB5LDXDDFTY/CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F", "BucketName": "amplify-productcatalog-ge-productcatalogf95af07481-vzyggfkxkyam" }, - "DependsOn": [ - "productcatalogf95af07481f845caa6594c26ac9c8ed331323gen2mainBucketPolicyF51DAA81" - ], "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { @@ -106,10 +103,6 @@ "Managed": true, "SkipDestinationValidation": false }, - "DependsOn": [ - "productcatalogf95af07481f845caa6594c26ac9c8ed331323gen2mainBucketAllowBucketNotificationsToamplifyproductcataloggen2mainbranch4b79ec0f9afunctionS3Trigger1ef46783gen2mainlambda8226525A5BBBE747", - "productcatalogf95af07481f845caa6594c26ac9c8ed331323gen2mainBucketPolicyF51DAA81" - ], "Metadata": { "aws:cdk:path": "amplify-productcatalog-gen2main-branch-4b79ec0f9a/storage/productcatalogf95af07481f845caa6594c26ac9c8ed331323-gen2-main/Bucket/Notifications/Resource" } @@ -181,9 +174,6 @@ ] } }, - "DependsOn": [ - "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092" - ], "Metadata": { "aws:cdk:path": "amplify-productcatalog-gen2main-branch-4b79ec0f9a/storage/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler", "aws:asset:path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", @@ -296,10 +286,6 @@ } ] }, - "DependsOn": [ - "BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleDefaultPolicy2CF63D36", - "BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleB6FB88EC" - ], "Metadata": { "aws:cdk:path": "amplify-productcatalog-gen2main-branch-4b79ec0f9a/storage/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Resource" } diff --git a/amplify-migration-apps/product-catalog/_snapshot.post.refactor/refactor.__from__.amplify-productcatalog-main-31323-authproductcatalog90174ac4-1DKM3MK2JKRFC.__to__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-auth179371D7-1RF1TAQPAA1WW.target.template.json b/amplify-migration-apps/product-catalog/_snapshot.post.refactor/refactor.__from__.amplify-productcatalog-main-31323-authproductcatalog90174ac4-1DKM3MK2JKRFC.__to__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-auth179371D7-1RF1TAQPAA1WW.target.template.json index 187486f41fc..a69d3b0e16d 100644 --- a/amplify-migration-apps/product-catalog/_snapshot.post.refactor/refactor.__from__.amplify-productcatalog-main-31323-authproductcatalog90174ac4-1DKM3MK2JKRFC.__to__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-auth179371D7-1RF1TAQPAA1WW.target.template.json +++ b/amplify-migration-apps/product-catalog/_snapshot.post.refactor/refactor.__from__.amplify-productcatalog-main-31323-authproductcatalog90174ac4-1DKM3MK2JKRFC.__to__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-auth179371D7-1RF1TAQPAA1WW.target.template.json @@ -205,10 +205,7 @@ "RefreshToken": "days" }, "UserPoolId": "us-east-1_66BkqNfdX" - }, - "DependsOn": [ - "amplifyAuthUserPool4BA7F805" - ] + } }, "amplifyAuthUserPoolNativeAppClient79534448": { "Type": "AWS::Cognito::UserPoolClient", @@ -220,10 +217,7 @@ "RefreshToken": "days" }, "UserPoolId": "us-east-1_66BkqNfdX" - }, - "DependsOn": [ - "amplifyAuthUserPool4BA7F805" - ] + } }, "amplifyAuthIdentityPool3FDE84CC": { "Type": "AWS::Cognito::IdentityPool", @@ -278,10 +272,7 @@ "unauthenticated": "arn:aws:iam::123456789012:role/amplify-productcatalog-main-31323-unauthRole", "authenticated": "arn:aws:iam::123456789012:role/amplify-productcatalog-main-31323-authRole" } - }, - "DependsOn": [ - "amplifyAuthIdentityPool3FDE84CC" - ] + } } }, "Conditions": { diff --git a/amplify-migration-apps/product-catalog/_snapshot.post.refactor/refactor.__from__.amplify-productcatalog-main-31323-storages338e5b439-DQ7IMC8LEGGI.__to__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-storage0EC3F24A-13PB5LDXDDFTY.source.template.json b/amplify-migration-apps/product-catalog/_snapshot.post.refactor/refactor.__from__.amplify-productcatalog-main-31323-storages338e5b439-DQ7IMC8LEGGI.__to__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-storage0EC3F24A-13PB5LDXDDFTY.source.template.json index 931e6107b36..da74f677807 100644 --- a/amplify-migration-apps/product-catalog/_snapshot.post.refactor/refactor.__from__.amplify-productcatalog-main-31323-storages338e5b439-DQ7IMC8LEGGI.__to__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-storage0EC3F24A-13PB5LDXDDFTY.source.template.json +++ b/amplify-migration-apps/product-catalog/_snapshot.post.refactor/refactor.__from__.amplify-productcatalog-main-31323-storages338e5b439-DQ7IMC8LEGGI.__to__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-storage0EC3F24A-13PB5LDXDDFTY.source.template.json @@ -274,7 +274,6 @@ "amplify-productcatalog-main-31323-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthPublic" }, "S3AuthProtectedPolicy": { @@ -311,7 +310,6 @@ "amplify-productcatalog-main-31323-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthProtected" }, "S3AuthPrivatePolicy": { @@ -348,7 +346,6 @@ "amplify-productcatalog-main-31323-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthPrivate" }, "S3AuthUploadPolicy": { @@ -385,7 +382,6 @@ "amplify-productcatalog-main-31323-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthUploads" }, "S3AuthReadPolicy": { @@ -440,7 +436,6 @@ "amplify-productcatalog-main-31323-authRole" ] }, - "DependsOn": [], "Condition": "AuthReadAndList" }, "S3TriggerBucketPolicy": { @@ -493,8 +488,7 @@ "Roles": [ "S3Trigger1ef46783LambdaRole1ef46783-main" ] - }, - "DependsOn": [] + } } } } \ No newline at end of file diff --git a/amplify-migration-apps/product-catalog/_snapshot.post.refactor/refactor.__from__.amplify-productcatalog-main-31323-storages338e5b439-DQ7IMC8LEGGI.__to__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-storage0EC3F24A-13PB5LDXDDFTY.target.template.json b/amplify-migration-apps/product-catalog/_snapshot.post.refactor/refactor.__from__.amplify-productcatalog-main-31323-storages338e5b439-DQ7IMC8LEGGI.__to__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-storage0EC3F24A-13PB5LDXDDFTY.target.template.json index ee4724de7d0..9a1ece0d4ba 100644 --- a/amplify-migration-apps/product-catalog/_snapshot.post.refactor/refactor.__from__.amplify-productcatalog-main-31323-storages338e5b439-DQ7IMC8LEGGI.__to__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-storage0EC3F24A-13PB5LDXDDFTY.target.template.json +++ b/amplify-migration-apps/product-catalog/_snapshot.post.refactor/refactor.__from__.amplify-productcatalog-main-31323-storages338e5b439-DQ7IMC8LEGGI.__to__.amplify-productcatalog-gen2main-branch-4b79ec0f9a-storage0EC3F24A-13PB5LDXDDFTY.target.template.json @@ -69,9 +69,6 @@ "ServiceToken": "arn:aws:lambda:us-east-1:123456789012:function:amplify-productcatalog-gen2main-branch-4b79ec0f9a-storage0EC3F24A-13PB5LDXDDFTY/CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F", "BucketName": "amplify-productcatalog-ge-productcatalogf95af07481-vzyggfkxkyam" }, - "DependsOn": [ - "productcatalogf95af07481f845caa6594c26ac9c8ed331323gen2mainBucketPolicyF51DAA81" - ], "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { @@ -106,10 +103,6 @@ "Managed": true, "SkipDestinationValidation": false }, - "DependsOn": [ - "productcatalogf95af07481f845caa6594c26ac9c8ed331323gen2mainBucketAllowBucketNotificationsToamplifyproductcataloggen2mainbranch4b79ec0f9afunctionS3Trigger1ef46783gen2mainlambda8226525A5BBBE747", - "productcatalogf95af07481f845caa6594c26ac9c8ed331323gen2mainBucketPolicyF51DAA81" - ], "Metadata": { "aws:cdk:path": "amplify-productcatalog-gen2main-branch-4b79ec0f9a/storage/productcatalogf95af07481f845caa6594c26ac9c8ed331323-gen2-main/Bucket/Notifications/Resource" } @@ -181,9 +174,6 @@ ] } }, - "DependsOn": [ - "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092" - ], "Metadata": { "aws:cdk:path": "amplify-productcatalog-gen2main-branch-4b79ec0f9a/storage/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler", "aws:asset:path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", @@ -296,10 +286,6 @@ } ] }, - "DependsOn": [ - "BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleDefaultPolicy2CF63D36", - "BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleB6FB88EC" - ], "Metadata": { "aws:cdk:path": "amplify-productcatalog-gen2main-branch-4b79ec0f9a/storage/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Resource" } @@ -539,7 +525,6 @@ ] } }, - "DependsOn": [], "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain" } diff --git a/amplify-migration-apps/product-catalog/_snapshot.post.refactor/update.amplify-productcatalog-gen2main-branch-4b79ec0f9a-auth179371D7-1RF1TAQPAA1WW.template.json b/amplify-migration-apps/product-catalog/_snapshot.post.refactor/update.amplify-productcatalog-gen2main-branch-4b79ec0f9a-auth179371D7-1RF1TAQPAA1WW.template.json index 9a3f81d31df..ba390bdc15b 100644 --- a/amplify-migration-apps/product-catalog/_snapshot.post.refactor/update.amplify-productcatalog-gen2main-branch-4b79ec0f9a-auth179371D7-1RF1TAQPAA1WW.template.json +++ b/amplify-migration-apps/product-catalog/_snapshot.post.refactor/update.amplify-productcatalog-gen2main-branch-4b79ec0f9a-auth179371D7-1RF1TAQPAA1WW.template.json @@ -340,10 +340,6 @@ "authenticated": "arn:aws:iam::123456789012:role/amplify-productcatalog-ge-amplifyAuthauthenticatedU-7u6GoubHxSy7" } }, - "DependsOn": [ - "amplifyAuthIdentityPool3FDE84CC", - "amplifyAuthUserPoolAppClient2626C6F8" - ], "Metadata": { "aws:cdk:path": "amplify-productcatalog-gen2main-branch-4b79ec0f9a/auth/amplifyAuth/IdentityPoolRoleAttachment" } diff --git a/amplify-migration-apps/product-catalog/_snapshot.post.refactor/update.amplify-productcatalog-gen2main-branch-4b79ec0f9a-storage0EC3F24A-13PB5LDXDDFTY.template.json b/amplify-migration-apps/product-catalog/_snapshot.post.refactor/update.amplify-productcatalog-gen2main-branch-4b79ec0f9a-storage0EC3F24A-13PB5LDXDDFTY.template.json index 3eddc81943c..4f29cfcc0ed 100644 --- a/amplify-migration-apps/product-catalog/_snapshot.post.refactor/update.amplify-productcatalog-gen2main-branch-4b79ec0f9a-storage0EC3F24A-13PB5LDXDDFTY.template.json +++ b/amplify-migration-apps/product-catalog/_snapshot.post.refactor/update.amplify-productcatalog-gen2main-branch-4b79ec0f9a-storage0EC3F24A-13PB5LDXDDFTY.template.json @@ -141,9 +141,6 @@ "ServiceToken": "arn:aws:lambda:us-east-1:123456789012:function:amplify-productcatalog-gen2main-branch-4b79ec0f9a-storage0EC3F24A-13PB5LDXDDFTY/CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F", "BucketName": "amplify-productcatalog-ge-productcatalogf95af07481-vzyggfkxkyam" }, - "DependsOn": [ - "productcatalogf95af07481f845caa6594c26ac9c8ed331323gen2mainBucketPolicyF51DAA81" - ], "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { @@ -178,10 +175,6 @@ "Managed": true, "SkipDestinationValidation": false }, - "DependsOn": [ - "productcatalogf95af07481f845caa6594c26ac9c8ed331323gen2mainBucketAllowBucketNotificationsToamplifyproductcataloggen2mainbranch4b79ec0f9afunctionS3Trigger1ef46783gen2mainlambda8226525A5BBBE747", - "productcatalogf95af07481f845caa6594c26ac9c8ed331323gen2mainBucketPolicyF51DAA81" - ], "Metadata": { "aws:cdk:path": "amplify-productcatalog-gen2main-branch-4b79ec0f9a/storage/productcatalogf95af07481f845caa6594c26ac9c8ed331323-gen2-main/Bucket/Notifications/Resource" } @@ -253,9 +246,6 @@ ] } }, - "DependsOn": [ - "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092" - ], "Metadata": { "aws:cdk:path": "amplify-productcatalog-gen2main-branch-4b79ec0f9a/storage/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler", "aws:asset:path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", @@ -368,10 +358,6 @@ } ] }, - "DependsOn": [ - "BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleDefaultPolicy2CF63D36", - "BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleB6FB88EC" - ], "Metadata": { "aws:cdk:path": "amplify-productcatalog-gen2main-branch-4b79ec0f9a/storage/BucketNotificationsHandler050a0587b7544547bf325f094a3db834/Resource" } diff --git a/amplify-migration-apps/product-catalog/_snapshot.post.refactor/update.amplify-productcatalog-main-31323-authproductcatalog90174ac4-1DKM3MK2JKRFC.template.json b/amplify-migration-apps/product-catalog/_snapshot.post.refactor/update.amplify-productcatalog-main-31323-authproductcatalog90174ac4-1DKM3MK2JKRFC.template.json index b2b78850e70..f680f1c6eb8 100644 --- a/amplify-migration-apps/product-catalog/_snapshot.post.refactor/update.amplify-productcatalog-main-31323-authproductcatalog90174ac4-1DKM3MK2JKRFC.template.json +++ b/amplify-migration-apps/product-catalog/_snapshot.post.refactor/update.amplify-productcatalog-main-31323-authproductcatalog90174ac4-1DKM3MK2JKRFC.template.json @@ -177,10 +177,7 @@ "RefreshToken": "days" }, "UserPoolId": "us-east-1_66BkqNfdX" - }, - "DependsOn": [ - "UserPool" - ] + } }, "UserPoolClient": { "Type": "AWS::Cognito::UserPoolClient", @@ -192,10 +189,7 @@ "RefreshToken": "days" }, "UserPoolId": "us-east-1_66BkqNfdX" - }, - "DependsOn": [ - "UserPool" - ] + } }, "UserPoolClientRole": { "Type": "AWS::IAM::Role", @@ -288,10 +282,7 @@ "unauthenticated": "arn:aws:iam::123456789012:role/amplify-productcatalog-main-31323-unauthRole", "authenticated": "arn:aws:iam::123456789012:role/amplify-productcatalog-main-31323-authRole" } - }, - "DependsOn": [ - "IdentityPool" - ] + } } }, "Outputs": { diff --git a/amplify-migration-apps/product-catalog/_snapshot.post.refactor/update.amplify-productcatalog-main-31323-storages338e5b439-DQ7IMC8LEGGI.template.json b/amplify-migration-apps/product-catalog/_snapshot.post.refactor/update.amplify-productcatalog-main-31323-storages338e5b439-DQ7IMC8LEGGI.template.json index a490d8b9de5..a194d381190 100644 --- a/amplify-migration-apps/product-catalog/_snapshot.post.refactor/update.amplify-productcatalog-main-31323-storages338e5b439-DQ7IMC8LEGGI.template.json +++ b/amplify-migration-apps/product-catalog/_snapshot.post.refactor/update.amplify-productcatalog-main-31323-storages338e5b439-DQ7IMC8LEGGI.template.json @@ -267,7 +267,6 @@ ] } }, - "DependsOn": [], "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain" }, @@ -351,7 +350,6 @@ "amplify-productcatalog-main-31323-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthPublic" }, "S3AuthProtectedPolicy": { @@ -388,7 +386,6 @@ "amplify-productcatalog-main-31323-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthProtected" }, "S3AuthPrivatePolicy": { @@ -425,7 +422,6 @@ "amplify-productcatalog-main-31323-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthPrivate" }, "S3AuthUploadPolicy": { @@ -462,7 +458,6 @@ "amplify-productcatalog-main-31323-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthUploads" }, "S3AuthReadPolicy": { @@ -517,7 +512,6 @@ "amplify-productcatalog-main-31323-authRole" ] }, - "DependsOn": [], "Condition": "AuthReadAndList" }, "S3TriggerBucketPolicy": { @@ -570,8 +564,7 @@ "Roles": [ "S3Trigger1ef46783LambdaRole1ef46783-main" ] - }, - "DependsOn": [] + } } } } \ No newline at end of file diff --git a/amplify-migration-apps/project-boards/_snapshot.post.refactor/refactor.__from__.amplify-projectboards-gen2main-branch-886dbd2dec-auth179371D7-CFDKYQIOG2UJ.__to__.amplify-projectboards-gen2main-branch-886dbd2dec-auth179371D7-CFDKYQIOG2UJ-holding.target.template.json b/amplify-migration-apps/project-boards/_snapshot.post.refactor/refactor.__from__.amplify-projectboards-gen2main-branch-886dbd2dec-auth179371D7-CFDKYQIOG2UJ.__to__.amplify-projectboards-gen2main-branch-886dbd2dec-auth179371D7-CFDKYQIOG2UJ-holding.target.template.json index 4bd455c3620..8656382c8f9 100644 --- a/amplify-migration-apps/project-boards/_snapshot.post.refactor/refactor.__from__.amplify-projectboards-gen2main-branch-886dbd2dec-auth179371D7-CFDKYQIOG2UJ.__to__.amplify-projectboards-gen2main-branch-886dbd2dec-auth179371D7-CFDKYQIOG2UJ-holding.target.template.json +++ b/amplify-migration-apps/project-boards/_snapshot.post.refactor/refactor.__from__.amplify-projectboards-gen2main-branch-886dbd2dec-auth179371D7-CFDKYQIOG2UJ.__to__.amplify-projectboards-gen2main-branch-886dbd2dec-auth179371D7-CFDKYQIOG2UJ-holding.target.template.json @@ -204,10 +204,6 @@ "authenticated": "arn:aws:iam::123456789012:role/amplify-projectboards-ge-amplifyAuthauthenticatedU-HuWvFKttqdhF" } }, - "DependsOn": [ - "amplifyAuthIdentityPool3FDE84CC", - "amplifyAuthUserPoolAppClient2626C6F8" - ], "Metadata": { "aws:cdk:path": "amplify-projectboards-gen2main-branch-886dbd2dec/auth/amplifyAuth/IdentityPoolRoleAttachment" } diff --git a/amplify-migration-apps/project-boards/_snapshot.post.refactor/refactor.__from__.amplify-projectboards-gen2main-branch-886dbd2dec-storage0EC3F24A-MCTM3Q2BCVCJ.__to__.amplify-projectboards-gen2main-branch-886dbd2dec-storage0EC3F24A-MCTM3Q2BCVCJ-holding.source.template.json b/amplify-migration-apps/project-boards/_snapshot.post.refactor/refactor.__from__.amplify-projectboards-gen2main-branch-886dbd2dec-storage0EC3F24A-MCTM3Q2BCVCJ.__to__.amplify-projectboards-gen2main-branch-886dbd2dec-storage0EC3F24A-MCTM3Q2BCVCJ-holding.source.template.json index 580eda74c18..ead58590739 100644 --- a/amplify-migration-apps/project-boards/_snapshot.post.refactor/refactor.__from__.amplify-projectboards-gen2main-branch-886dbd2dec-storage0EC3F24A-MCTM3Q2BCVCJ.__to__.amplify-projectboards-gen2main-branch-886dbd2dec-storage0EC3F24A-MCTM3Q2BCVCJ-holding.source.template.json +++ b/amplify-migration-apps/project-boards/_snapshot.post.refactor/refactor.__from__.amplify-projectboards-gen2main-branch-886dbd2dec-storage0EC3F24A-MCTM3Q2BCVCJ.__to__.amplify-projectboards-gen2main-branch-886dbd2dec-storage0EC3F24A-MCTM3Q2BCVCJ-holding.source.template.json @@ -69,9 +69,6 @@ "ServiceToken": "arn:aws:lambda:us-east-1:123456789012:function:amplify-projectboards-gen2main-branch-886dbd2dec-storage0EC3F24A-MCTM3Q2BCVCJ/CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F", "BucketName": "amplify-projectboards-ge-projectboards34b9a7f3c2c-3ojawjs7ffmv" }, - "DependsOn": [ - "projectboards34b9a7f3c2ca489293910116c994688b02940gen2mainBucketPolicy8CF7A616" - ], "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { @@ -128,9 +125,6 @@ ] } }, - "DependsOn": [ - "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092" - ], "Metadata": { "aws:cdk:path": "amplify-projectboards-gen2main-branch-886dbd2dec/storage/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler", "aws:asset:path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", diff --git a/amplify-migration-apps/project-boards/_snapshot.post.refactor/refactor.__from__.amplify-projectboards-main-02940-authprojectboards54040ecc-PH0BQLGBQAYV.__to__.amplify-projectboards-gen2main-branch-886dbd2dec-auth179371D7-CFDKYQIOG2UJ.target.template.json b/amplify-migration-apps/project-boards/_snapshot.post.refactor/refactor.__from__.amplify-projectboards-main-02940-authprojectboards54040ecc-PH0BQLGBQAYV.__to__.amplify-projectboards-gen2main-branch-886dbd2dec-auth179371D7-CFDKYQIOG2UJ.target.template.json index 06fb757fe75..9e7b4fc0c68 100644 --- a/amplify-migration-apps/project-boards/_snapshot.post.refactor/refactor.__from__.amplify-projectboards-main-02940-authprojectboards54040ecc-PH0BQLGBQAYV.__to__.amplify-projectboards-gen2main-branch-886dbd2dec-auth179371D7-CFDKYQIOG2UJ.target.template.json +++ b/amplify-migration-apps/project-boards/_snapshot.post.refactor/refactor.__from__.amplify-projectboards-main-02940-authprojectboards54040ecc-PH0BQLGBQAYV.__to__.amplify-projectboards-gen2main-branch-886dbd2dec-auth179371D7-CFDKYQIOG2UJ.target.template.json @@ -168,10 +168,7 @@ "RefreshToken": "days" }, "UserPoolId": "us-east-1_ct5s4IEz3" - }, - "DependsOn": [ - "amplifyAuthUserPool4BA7F805" - ] + } }, "amplifyAuthUserPoolNativeAppClient79534448": { "Type": "AWS::Cognito::UserPoolClient", @@ -183,10 +180,7 @@ "RefreshToken": "days" }, "UserPoolId": "us-east-1_ct5s4IEz3" - }, - "DependsOn": [ - "amplifyAuthUserPool4BA7F805" - ] + } }, "amplifyAuthIdentityPool3FDE84CC": { "Type": "AWS::Cognito::IdentityPool", @@ -241,10 +235,7 @@ "unauthenticated": "arn:aws:iam::123456789012:role/amplify-projectboards-main-02940-unauthRole", "authenticated": "arn:aws:iam::123456789012:role/amplify-projectboards-main-02940-authRole" } - }, - "DependsOn": [ - "amplifyAuthIdentityPool3FDE84CC" - ] + } } }, "Conditions": { diff --git a/amplify-migration-apps/project-boards/_snapshot.post.refactor/refactor.__from__.amplify-projectboards-main-02940-storages369f8ff1c-WRT91DP311WY.__to__.amplify-projectboards-gen2main-branch-886dbd2dec-storage0EC3F24A-MCTM3Q2BCVCJ.source.template.json b/amplify-migration-apps/project-boards/_snapshot.post.refactor/refactor.__from__.amplify-projectboards-main-02940-storages369f8ff1c-WRT91DP311WY.__to__.amplify-projectboards-gen2main-branch-886dbd2dec-storage0EC3F24A-MCTM3Q2BCVCJ.source.template.json index fadc25c61f3..5df877c8f45 100644 --- a/amplify-migration-apps/project-boards/_snapshot.post.refactor/refactor.__from__.amplify-projectboards-main-02940-storages369f8ff1c-WRT91DP311WY.__to__.amplify-projectboards-gen2main-branch-886dbd2dec-storage0EC3F24A-MCTM3Q2BCVCJ.source.template.json +++ b/amplify-migration-apps/project-boards/_snapshot.post.refactor/refactor.__from__.amplify-projectboards-main-02940-storages369f8ff1c-WRT91DP311WY.__to__.amplify-projectboards-gen2main-branch-886dbd2dec-storage0EC3F24A-MCTM3Q2BCVCJ.source.template.json @@ -213,7 +213,6 @@ "amplify-projectboards-main-02940-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthPublic" }, "S3AuthProtectedPolicy": { @@ -250,7 +249,6 @@ "amplify-projectboards-main-02940-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthProtected" }, "S3AuthPrivatePolicy": { @@ -287,7 +285,6 @@ "amplify-projectboards-main-02940-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthPrivate" }, "S3AuthUploadPolicy": { @@ -324,7 +321,6 @@ "amplify-projectboards-main-02940-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthUploads" }, "S3GuestPublicPolicy": { @@ -361,7 +357,6 @@ "amplify-projectboards-main-02940-unauthRole" ] }, - "DependsOn": [], "Condition": "CreateGuestPublic" }, "S3AuthReadPolicy": { @@ -416,7 +411,6 @@ "amplify-projectboards-main-02940-authRole" ] }, - "DependsOn": [], "Condition": "AuthReadAndList" }, "S3GuestReadPolicy": { @@ -469,7 +463,6 @@ "amplify-projectboards-main-02940-unauthRole" ] }, - "DependsOn": [], "Condition": "GuestReadAndList" } } diff --git a/amplify-migration-apps/project-boards/_snapshot.post.refactor/refactor.__from__.amplify-projectboards-main-02940-storages369f8ff1c-WRT91DP311WY.__to__.amplify-projectboards-gen2main-branch-886dbd2dec-storage0EC3F24A-MCTM3Q2BCVCJ.target.template.json b/amplify-migration-apps/project-boards/_snapshot.post.refactor/refactor.__from__.amplify-projectboards-main-02940-storages369f8ff1c-WRT91DP311WY.__to__.amplify-projectboards-gen2main-branch-886dbd2dec-storage0EC3F24A-MCTM3Q2BCVCJ.target.template.json index 60a42386506..3f1975883b2 100644 --- a/amplify-migration-apps/project-boards/_snapshot.post.refactor/refactor.__from__.amplify-projectboards-main-02940-storages369f8ff1c-WRT91DP311WY.__to__.amplify-projectboards-gen2main-branch-886dbd2dec-storage0EC3F24A-MCTM3Q2BCVCJ.target.template.json +++ b/amplify-migration-apps/project-boards/_snapshot.post.refactor/refactor.__from__.amplify-projectboards-main-02940-storages369f8ff1c-WRT91DP311WY.__to__.amplify-projectboards-gen2main-branch-886dbd2dec-storage0EC3F24A-MCTM3Q2BCVCJ.target.template.json @@ -69,9 +69,6 @@ "ServiceToken": "arn:aws:lambda:us-east-1:123456789012:function:amplify-projectboards-gen2main-branch-886dbd2dec-storage0EC3F24A-MCTM3Q2BCVCJ/CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F", "BucketName": "amplify-projectboards-ge-projectboards34b9a7f3c2c-3ojawjs7ffmv" }, - "DependsOn": [ - "projectboards34b9a7f3c2ca489293910116c994688b02940gen2mainBucketPolicy8CF7A616" - ], "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { @@ -128,9 +125,6 @@ ] } }, - "DependsOn": [ - "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092" - ], "Metadata": { "aws:cdk:path": "amplify-projectboards-gen2main-branch-886dbd2dec/storage/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler", "aws:asset:path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", diff --git a/amplify-migration-apps/project-boards/_snapshot.post.refactor/update.amplify-projectboards-gen2main-branch-886dbd2dec-auth179371D7-CFDKYQIOG2UJ.template.json b/amplify-migration-apps/project-boards/_snapshot.post.refactor/update.amplify-projectboards-gen2main-branch-886dbd2dec-auth179371D7-CFDKYQIOG2UJ.template.json index ce3bc368f1b..e004bc868c5 100644 --- a/amplify-migration-apps/project-boards/_snapshot.post.refactor/update.amplify-projectboards-gen2main-branch-886dbd2dec-auth179371D7-CFDKYQIOG2UJ.template.json +++ b/amplify-migration-apps/project-boards/_snapshot.post.refactor/update.amplify-projectboards-gen2main-branch-886dbd2dec-auth179371D7-CFDKYQIOG2UJ.template.json @@ -303,10 +303,6 @@ "authenticated": "arn:aws:iam::123456789012:role/amplify-projectboards-ge-amplifyAuthauthenticatedU-HuWvFKttqdhF" } }, - "DependsOn": [ - "amplifyAuthIdentityPool3FDE84CC", - "amplifyAuthUserPoolAppClient2626C6F8" - ], "Metadata": { "aws:cdk:path": "amplify-projectboards-gen2main-branch-886dbd2dec/auth/amplifyAuth/IdentityPoolRoleAttachment" } diff --git a/amplify-migration-apps/project-boards/_snapshot.post.refactor/update.amplify-projectboards-gen2main-branch-886dbd2dec-storage0EC3F24A-MCTM3Q2BCVCJ.template.json b/amplify-migration-apps/project-boards/_snapshot.post.refactor/update.amplify-projectboards-gen2main-branch-886dbd2dec-storage0EC3F24A-MCTM3Q2BCVCJ.template.json index 0c2b9cd2a9c..89a6d81ca6f 100644 --- a/amplify-migration-apps/project-boards/_snapshot.post.refactor/update.amplify-projectboards-gen2main-branch-886dbd2dec-storage0EC3F24A-MCTM3Q2BCVCJ.template.json +++ b/amplify-migration-apps/project-boards/_snapshot.post.refactor/update.amplify-projectboards-gen2main-branch-886dbd2dec-storage0EC3F24A-MCTM3Q2BCVCJ.template.json @@ -141,9 +141,6 @@ "ServiceToken": "arn:aws:lambda:us-east-1:123456789012:function:amplify-projectboards-gen2main-branch-886dbd2dec-storage0EC3F24A-MCTM3Q2BCVCJ/CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F", "BucketName": "amplify-projectboards-ge-projectboards34b9a7f3c2c-3ojawjs7ffmv" }, - "DependsOn": [ - "projectboards34b9a7f3c2ca489293910116c994688b02940gen2mainBucketPolicy8CF7A616" - ], "UpdateReplacePolicy": "Delete", "DeletionPolicy": "Delete", "Metadata": { @@ -200,9 +197,6 @@ ] } }, - "DependsOn": [ - "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092" - ], "Metadata": { "aws:cdk:path": "amplify-projectboards-gen2main-branch-886dbd2dec/storage/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler", "aws:asset:path": "asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6", diff --git a/amplify-migration-apps/project-boards/_snapshot.post.refactor/update.amplify-projectboards-main-02940-authprojectboards54040ecc-PH0BQLGBQAYV.template.json b/amplify-migration-apps/project-boards/_snapshot.post.refactor/update.amplify-projectboards-main-02940-authprojectboards54040ecc-PH0BQLGBQAYV.template.json index 3aa2d612914..92d9ab6fde9 100644 --- a/amplify-migration-apps/project-boards/_snapshot.post.refactor/update.amplify-projectboards-main-02940-authprojectboards54040ecc-PH0BQLGBQAYV.template.json +++ b/amplify-migration-apps/project-boards/_snapshot.post.refactor/update.amplify-projectboards-main-02940-authprojectboards54040ecc-PH0BQLGBQAYV.template.json @@ -177,10 +177,7 @@ "RefreshToken": "days" }, "UserPoolId": "us-east-1_ct5s4IEz3" - }, - "DependsOn": [ - "UserPool" - ] + } }, "UserPoolClient": { "Type": "AWS::Cognito::UserPoolClient", @@ -192,10 +189,7 @@ "RefreshToken": "days" }, "UserPoolId": "us-east-1_ct5s4IEz3" - }, - "DependsOn": [ - "UserPool" - ] + } }, "UserPoolClientRole": { "Type": "AWS::IAM::Role", @@ -288,10 +282,7 @@ "unauthenticated": "arn:aws:iam::123456789012:role/amplify-projectboards-main-02940-unauthRole", "authenticated": "arn:aws:iam::123456789012:role/amplify-projectboards-main-02940-authRole" } - }, - "DependsOn": [ - "IdentityPool" - ] + } } }, "Outputs": { diff --git a/amplify-migration-apps/project-boards/_snapshot.post.refactor/update.amplify-projectboards-main-02940-storages369f8ff1c-WRT91DP311WY.template.json b/amplify-migration-apps/project-boards/_snapshot.post.refactor/update.amplify-projectboards-main-02940-storages369f8ff1c-WRT91DP311WY.template.json index eed789328a5..1ebeee344f7 100644 --- a/amplify-migration-apps/project-boards/_snapshot.post.refactor/update.amplify-projectboards-main-02940-storages369f8ff1c-WRT91DP311WY.template.json +++ b/amplify-migration-apps/project-boards/_snapshot.post.refactor/update.amplify-projectboards-main-02940-storages369f8ff1c-WRT91DP311WY.template.json @@ -277,7 +277,6 @@ "amplify-projectboards-main-02940-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthPublic" }, "S3AuthProtectedPolicy": { @@ -314,7 +313,6 @@ "amplify-projectboards-main-02940-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthProtected" }, "S3AuthPrivatePolicy": { @@ -351,7 +349,6 @@ "amplify-projectboards-main-02940-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthPrivate" }, "S3AuthUploadPolicy": { @@ -388,7 +385,6 @@ "amplify-projectboards-main-02940-authRole" ] }, - "DependsOn": [], "Condition": "CreateAuthUploads" }, "S3GuestPublicPolicy": { @@ -425,7 +421,6 @@ "amplify-projectboards-main-02940-unauthRole" ] }, - "DependsOn": [], "Condition": "CreateGuestPublic" }, "S3AuthReadPolicy": { @@ -480,7 +475,6 @@ "amplify-projectboards-main-02940-authRole" ] }, - "DependsOn": [], "Condition": "AuthReadAndList" }, "S3GuestReadPolicy": { @@ -533,7 +527,6 @@ "amplify-projectboards-main-02940-unauthRole" ] }, - "DependsOn": [], "Condition": "GuestReadAndList" } } diff --git a/amplify-migration-apps/snapshot.ts b/amplify-migration-apps/snapshot.ts index be48b273688..9729d7bd933 100644 --- a/amplify-migration-apps/snapshot.ts +++ b/amplify-migration-apps/snapshot.ts @@ -128,7 +128,7 @@ function stackNameFromArn(arnOrName: string): string { return arnOrName; } -async function downloadRecursive(stackNameOrArn: string, targetDir: string, appId: string, appName: string): Promise { +async function downloadRecursive(stackNameOrArn: string, targetDir: string): Promise { const stackName = stackNameFromArn(stackNameOrArn); const template = await fetchTemplate(stackName); @@ -148,7 +148,7 @@ async function downloadRecursive(stackNameOrArn: string, targetDir: string, appI const nestedIds = await fetchNestedStacks(stackName); for (const nestedId of nestedIds) { - await downloadRecursive(nestedId, targetDir, appId, appName); + await downloadRecursive(nestedId, targetDir); } } @@ -165,8 +165,8 @@ async function capturePreRefactor(appName: string, amplifyAppName?: string, gen2 const targetDir = path.resolve(path.join(__dirname, appName, '_snapshot.pre.refactor')); resetDir(targetDir); - await downloadRecursive(gen2RootStack, targetDir, app.appId!, app.name!); - await downloadRecursive(gen1RootStack, targetDir, app.appId!, app.name!); + await downloadRecursive(gen2RootStack, targetDir); + await downloadRecursive(gen1RootStack, targetDir); } async function capturePostRefactor(appName: string, deployedAppPath: string): Promise { diff --git a/amplify-migration-apps/store-locator/README.md b/amplify-migration-apps/store-locator/README.md new file mode 100644 index 00000000000..e2d944da3b1 --- /dev/null +++ b/amplify-migration-apps/store-locator/README.md @@ -0,0 +1,310 @@ +# Store Locator (Amplify Gen1) + +![](./images/app.png) + +A store locator app that displays store locations on an interactive map powered by AWS Amplify Geo and Amazon Location Service. It uses Maps for rendering store locations, Place Index (Location Search) for address search, and Geofence Collections for users to define virtual perimeters around store areas. + +## Install Dependencies + +```console +npm install +``` + +## Initialize Environment + +```console +amplify init +``` + +```console +⚠️ For new projects, we recommend starting with AWS Amplify Gen 2, our new code-first developer experience. Get started at https://docs.amplify.aws/react/start/quickstart/ +✔ Do you want to continue with Amplify Gen 1? (y/N) · yes +✔ Why would you like to use Amplify Gen 1? · Prefer not to answer +Note: It is recommended to run this command from the root of your app directory +? Enter a name for the project storeLocator +The following configuration will be applied: + +Project information +| Name: storeLocator +| Environment: main +| Default editor: Visual Studio Code +| App type: javascript +| Javascript framework: react +| Source Directory Path: src +| Distribution Directory Path: dist +| Build Command: npm run-script build +| Start Command: npm run-script start + +? Initialize the project with the above configuration? No +? Enter a name for the environment main +? Choose your default editor: Visual Studio Code +✔ Choose the type of app that you're building · javascript +Please tell us about your project +? What javascript framework are you using react +? Source Directory Path: src +? Distribution Directory Path: dist +? Build Command: npm run-script build +? Start Command: npm run-script start +Using default provider awscloudformation +? Select the authentication method you want to use: AWS profile + +For more information on AWS Profiles, see: +https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html + +? Please choose the profile you want to use default +``` + +## Add Categories + +### Auth + +Cognito-based auth using email. Create Cognito user pool groups for Geofences and add post confirmation lambda trigger to add users to the group. + +```console +amplify add auth +``` + +```console +? Do you want to use the default authentication and security configuration? Manual configuration +? Select the authentication/authorization services that you want to use: User Sign-Up, Sign-In, connected with AWS IAM controls (Enables per-user Storage features for i +mages or other content, Analytics, and more) +? Provide a friendly name for your resource that will be used to label this category in the project: (accept default value) +? Enter a name for your identity pool. (accept default value) +? Allow unauthenticated logins? (Provides scoped down permissions that you can control via AWS IAM) No +? Do you want to enable 3rd party authentication providers in your identity pool? No +? Provide a name for your user pool: (accept default value) +? How do you want users to be able to sign in? Email +? Do you want to add User Pool Groups? Yes +? Provide a name for your user pool group: storeLocatorAdmin +? Do you want to add another User Pool Group No +? Sort the user pool groups in order of preference · storeLocatorAdmin +? Do you want to add an admin queries API? No +? Multifactor authentication (MFA) user login options: OFF +? Email based user registration/forgot password: Enabled (Requires per-user email entry at registration) +? Specify an email verification subject: Your verification code +? Specify an email verification message: Your verification code is {####} +? Do you want to override the default password policy for this User Pool? No +? What attributes are required for signing up? Email +? Specify the app's refresh token expiration period (in days): 100 +? Do you want to specify the user attributes this app can read and write? No +? Do you want to enable any of the following capabilities? Add User to Group +? Do you want to use an OAuth flow? No +? Do you want to configure Lambda Triggers for Cognito? Yes +? Which triggers do you want to enable for Cognito Post Confirmation +? What functionality do you want to use for Post Confirmation Add User To Group +? Enter the name of the group to which users will be added. · storeLocatorAdmin +``` + +### Geo - Map + +Map resource for displaying store locations using Amazon Location Service. + +```console +amplify add geo +``` + +```console +? Select which capability you want to add: Map (visualize the geospatial data) +✔ Provide a name for the Map: · storeLocatorMap +✔ Restrict access by? · Both +✔ Who can access this Map? · Authorized and Guest users +Must pick at least 1 of 1 options. Selecting all options [storeLocatorAdmin] +Available advanced settings: +- Map style & Map data provider (default: Streets provided by Esri) + +✔ Do you want to configure advanced settings? (y/N) · no +``` + +### Geo - Location Search + +Search index for searching places and addresses. + +```console +amplify add geo +``` + +```console +? Select which capability you want to add: Location search (search by places, addresses, coordinates) +✔ Provide a name for the location search index (place index): · storeLocatorSearch +✔ Restrict access by? · Both +✔ Who can access this search index? · Authorized and Guest users +Must pick at least 1 of 1 options. Selecting all options [storeLocatorAdmin] +Available advanced settings: +- Search data provider (default: HERE) +- Search result storage location (default: no result storage) + +✔ Do you want to configure advanced settings? (y/N) · no +``` + +### Geo - Geofence + +```console +amplify add geo +``` + +```console +? Select which capability you want to add: Geofencing (visualize virtual perimeters) +✔ Provide a name for the Geofence Collection: · storeLocatorGeofence +Must pick at least 1 of 1 options. Selecting all options [storeLocatorAdmin] +✔ What kind of access do you want for storeLocatorAdmin users? Select ALL that apply: · Read geofence, Create/Update geofence, Delete geofence, List geofences +``` + +```console +amplify push +``` + +```console + Current Environment: main + +┌──────────┬──────────────────────────────────────────┬───────────┬───────────────────┐ +│ Category │ Resource name │ Operation │ Provider plugin │ +├──────────┼──────────────────────────────────────────┼───────────┼───────────────────┤ +│ Auth │ storelocatorcff4360f │ Create │ awscloudformation │ +├──────────┼──────────────────────────────────────────┼───────────┼───────────────────┤ +│ Geo │ storeLocatorMap │ Create │ awscloudformation │ +├──────────┼──────────────────────────────────────────┼───────────┼───────────────────┤ +│ Auth │ userPoolGroups │ Create │ awscloudformation │ +├──────────┼──────────────────────────────────────────┼───────────┼───────────────────┤ +│ Function │ storelocatorcff4360fPostConfirmation │ Create │ awscloudformation │ +├──────────┼──────────────────────────────────────────┼───────────┼───────────────────┤ +│ Geo │ storeLocatorGeofence │ Create │ awscloudformation │ +├──────────┼──────────────────────────────────────────┼───────────┼───────────────────┤ +│ Geo │ storeLocatorSearch │ Create │ awscloudformation │ +└──────────┴──────────────────────────────────────────┴───────────┴───────────────────┘ + +✔ Are you sure you want to continue? (Y/n) · yes +``` + +## Publish Frontend + +To publish the frontend, leverage the Amplify hosting console. First push everything to the `main` branch: + +```console +git add . +git commit -m "feat: gen1" +git push origin main +``` + +Next, accept all the default values and follow the getting started wizard to connect your repo and branch. Wait for the deployment to finish successfully. + +![](./images/hosting-get-started.png) +![](./images/add-main-branch.png) +![](./images/deploying-main-branch.png) + +Wait for the deployment to finish successfully. + +## Migrating to Gen2 + +> Based on https://github.com/aws-amplify/amplify-cli/blob/gen2-migration/GEN2_MIGRATION_GUIDE.md + +> [!WARNING] +> Migration is not fully supported for this app because the geo category doesn't support refactoring yet. +> This guide ends at the `generate` step. + +First install the experimental amplify CLI package that provides the migration commands. + +```console +npm install @aws-amplify/cli-internal-gen2-migration-experimental-alpha +``` + +Now run them: + +```console +npx amplify gen2-migration lock +``` + +```console +git checkout -b gen2-main +npx amplify gen2-migration generate +``` + +**Edit in `./src/main.tsx`:** + +```diff +- import amplifyconfig from './amplifyconfiguration.json'; ++ import amplifyconfig from '../amplify_outputs.json'; +``` + +```console +git add . +git commit -m "feat: migrate to gen2" +git push origin gen2-main +``` + +**Edit in `./amplify/auth/storelocatorcff4360fPostConfirmation/resource.ts`:** + +```diff +- memoryMB: 128, +- runtime: 22 ++ memoryMB: 512, ++ runtime: 22, ++ resourceGroupName: 'auth' +``` + +**Edit in `./amplify/auth/storelocatorcff4360fPostConfirmation/index.js`:** + +The Gen1 dynamic `require(`./${name}`)` doesn't work with esbuild bundling in the Amplify build pipeline (`Module not found in bundle: ./add-to-group`). Replace with a static import: + +```diff +- const moduleNames = process.env.MODULES.split(','); +- /** +- * The array of imported modules. +- */ +- const modules = moduleNames.map((name) => require(`./${name}`)); ++ import * as addToGroup from './add-to-group'; ++ ++ const modules = [addToGroup]; +``` + +```diff +- exports.handler = async (event, context) => { ++ export async function handler(event, context) { +``` + +**Edit in `./amplify/auth/storelocatorcff4360fPostConfirmation/add-to-group.js`:** + +```diff +- const { +- CognitoIdentityProviderClient, +- AdminAddUserToGroupCommand, +- GetGroupCommand, +- CreateGroupCommand, +- } = require('@aws-sdk/client-cognito-identity-provider'); ++ import { ++ CognitoIdentityProviderClient, ++ AdminAddUserToGroupCommand, ++ GetGroupCommand, ++ CreateGroupCommand, ++ } from '@aws-sdk/client-cognito-identity-provider'; +``` + +```diff +- exports.handler = async (event) => { ++ export const handler = async (event) => { +``` + +**Edit in `./amplify/auth/resource.ts`:** + +```diff +- triggers: { +- postConfirmation: storelocatorcff4360fPostConfirmation +- }, ++ triggers: { ++ postConfirmation: storelocatorcff4360fPostConfirmation ++ }, ++ access: (allow) => [ ++ allow.resource(storelocatorcff4360fPostConfirmation).to([ ++ "addUserToGroup", ++ "manageGroups", ++ ]), ++ ], +``` + +Now connect the `gen2-main` branch to the hosting service: + +![](./images/add-gen2-main-branch.png) +![](./images/deploying-gen2-main-branch.png) + +Wait for the deployment to finish successfully. + +**The guide ends here because the geo category doesn't support refactoring yet.** diff --git a/amplify-migration-apps/store-locator/_snapshot.post.generate/.gitignore b/amplify-migration-apps/store-locator/_snapshot.post.generate/.gitignore new file mode 100644 index 00000000000..c71cd6d6b4b --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.post.generate/.gitignore @@ -0,0 +1,8 @@ +# amplify +.amplify +amplify_outputs* +amplifyconfiguration* +aws-exports* +node_modules +build +dist diff --git a/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify.yml b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify.yml new file mode 100644 index 00000000000..52c312768f5 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify.yml @@ -0,0 +1,23 @@ +version: 1 +backend: + phases: + build: + commands: + - "# Execute Amplify CLI with the helper script" + - npm ci --cache .npm --prefer-offline + - npx ampx pipeline-deploy --branch $AWS_BRANCH --app-id $AWS_APP_ID +frontend: + phases: + preBuild: + commands: + - npm install + build: + commands: + - npm run build + artifacts: + baseDirectory: dist + files: + - "**/*" + cache: + paths: + - node_modules/**/* diff --git a/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/auth/resource.ts b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/auth/resource.ts new file mode 100644 index 00000000000..4763d3fe892 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/auth/resource.ts @@ -0,0 +1,24 @@ +import { defineAuth } from '@aws-amplify/backend'; +import { storelocator41a9495f41a9495fPostConfirmation } from './storelocator41a9495f41a9495fPostConfirmation/resource'; + +export const auth = defineAuth({ + loginWith: { + email: { + verificationEmailSubject: 'Your verification code', + verificationEmailBody: () => 'Your verification code is {####}', + }, + }, + userAttributes: { + email: { + required: true, + mutable: true, + }, + }, + groups: ['storeLocatorAdmin'], + triggers: { + postConfirmation: storelocator41a9495f41a9495fPostConfirmation, + }, + multifactor: { + mode: 'OFF', + }, +}); diff --git a/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/auth/storelocator41a9495f41a9495fPostConfirmation/add-to-group.js b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/auth/storelocator41a9495f41a9495fPostConfirmation/add-to-group.js new file mode 100644 index 00000000000..b8920ac2104 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/auth/storelocator41a9495f41a9495fPostConfirmation/add-to-group.js @@ -0,0 +1,37 @@ +const { + CognitoIdentityProviderClient, + AdminAddUserToGroupCommand, + GetGroupCommand, + CreateGroupCommand, +} = require('@aws-sdk/client-cognito-identity-provider'); + +const cognitoIdentityServiceProvider = new CognitoIdentityProviderClient({}); + +/** + * @type {import('@types/aws-lambda').PostConfirmationTriggerHandler} + */ +exports.handler = async (event) => { + const groupParams = { + GroupName: process.env.GROUP, + UserPoolId: event.userPoolId, + }; + const addUserParams = { + GroupName: process.env.GROUP, + UserPoolId: event.userPoolId, + Username: event.userName, + }; + /** + * Check if the group exists; if it doesn't, create it. + */ + try { + await cognitoIdentityServiceProvider.send(new GetGroupCommand(groupParams)); + } catch (e) { + await cognitoIdentityServiceProvider.send(new CreateGroupCommand(groupParams)); + } + /** + * Then, add the user to the group. + */ + await cognitoIdentityServiceProvider.send(new AdminAddUserToGroupCommand(addUserParams)); + + return event; +}; diff --git a/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/auth/storelocator41a9495f41a9495fPostConfirmation/event.json b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/auth/storelocator41a9495f41a9495fPostConfirmation/event.json new file mode 100644 index 00000000000..5eafe06ea53 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/auth/storelocator41a9495f41a9495fPostConfirmation/event.json @@ -0,0 +1,7 @@ +{ + "request": { + "userPoolId": "testID", + "userName": "testUser" + }, + "response": {} +} diff --git a/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/auth/storelocator41a9495f41a9495fPostConfirmation/index.js b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/auth/storelocator41a9495f41a9495fPostConfirmation/index.js new file mode 100644 index 00000000000..876a0cedec6 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/auth/storelocator41a9495f41a9495fPostConfirmation/index.js @@ -0,0 +1,33 @@ +/** + * @fileoverview + * + * This CloudFormation Trigger creates a handler which awaits the other handlers + * specified in the `MODULES` env var, located at `./${MODULE}`. + */ + +/** + * The names of modules to load are stored as a comma-delimited string in the + * `MODULES` env var. + */ +const moduleNames = process.env.MODULES.split(','); +/** + * The array of imported modules. + */ +const modules = moduleNames.map((name) => require(`./${name}`)); + +/** + * This async handler iterates over the given modules and awaits them. + * + * @see https://docs.aws.amazon.com/lambda/latest/dg/nodejs-handler.html#nodejs-handler-async + * @type {import('@types/aws-lambda').APIGatewayProxyHandler} + * + */ +exports.handler = async (event, context) => { + /** + * Instead of naively iterating over all handlers, run them concurrently with + * `await Promise.all(...)`. This would otherwise just be determined by the + * order of names in the `MODULES` var. + */ + await Promise.all(modules.map((module) => module.handler(event, context))); + return event; +}; diff --git a/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/auth/storelocator41a9495f41a9495fPostConfirmation/resource.ts b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/auth/storelocator41a9495f41a9495fPostConfirmation/resource.ts new file mode 100644 index 00000000000..3c8d49b0e0a --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/auth/storelocator41a9495f41a9495fPostConfirmation/resource.ts @@ -0,0 +1,17 @@ +import { defineFunction } from '@aws-amplify/backend'; + +const branchName = process.env.AWS_BRANCH ?? 'sandbox'; + +export const storelocator41a9495f41a9495fPostConfirmation = defineFunction({ + entry: './index.js', + name: `storelocator41a9495f41a9495fPostConfirmation-${branchName}`, + timeoutSeconds: 25, + memoryMB: 128, + environment: { + ENV: `${branchName}`, + MODULES: 'add-to-group', + REGION: 'us-east-1', + GROUP: 'storeLocatorAdmin', + }, + runtime: 22, +}); diff --git a/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/backend.ts b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/backend.ts new file mode 100644 index 00000000000..d199ec482f3 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/backend.ts @@ -0,0 +1,34 @@ +import { auth } from './auth/resource'; +import { storelocator41a9495f41a9495fPostConfirmation } from './auth/storelocator41a9495f41a9495fPostConfirmation/resource'; +import { defineGeo } from './geo/resource'; +import { defineBackend } from '@aws-amplify/backend'; +import { Duration } from 'aws-cdk-lib'; + +const backend = defineBackend({ + auth, + storelocator41a9495f41a9495fPostConfirmation, +}); +const geo = defineGeo(backend); +const cfnUserPool = backend.auth.resources.cfnResources.cfnUserPool; +cfnUserPool.usernameAttributes = ['email']; +cfnUserPool.policies = { + passwordPolicy: { + minimumLength: 8, + requireUppercase: false, + requireLowercase: false, + requireNumbers: false, + requireSymbols: false, + temporaryPasswordValidityDays: 7, + }, +}; +const userPool = backend.auth.resources.userPool; +userPool.addClient('NativeAppClient', { + refreshTokenValidity: Duration.days(100), + enableTokenRevocation: true, + enablePropagateAdditionalUserContextData: false, + authSessionValidity: Duration.minutes(3), + disableOAuth: true, + generateSecret: false, +}); +const branchName = process.env.AWS_BRANCH ?? 'sandbox'; +backend.storelocator41a9495f41a9495fPostConfirmation.resources.cfnResources.cfnFunction.functionName = `storelocator41a9495f41a9495fPostConfirmation-${branchName}`; diff --git a/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/geo/resource.ts b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/geo/resource.ts new file mode 100644 index 00000000000..329d22bfbbb --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/geo/resource.ts @@ -0,0 +1,29 @@ +import { defineStoreLocatorMap } from './storeLocatorMap/resource'; +import { defineStoreLocatorSearch } from './storeLocatorSearch/resource'; +import { defineStoreLocatorGeofence } from './storeLocatorGeofence/resource'; +import { Backend } from '@aws-amplify/backend'; + +export const defineGeo = (backend: Backend) => { + const storeLocatorMap = defineStoreLocatorMap(backend); + const storeLocatorSearch = defineStoreLocatorSearch(backend); + const storeLocatorGeofence = defineStoreLocatorGeofence(backend); + backend.addOutput({ + geo: { + aws_region: storeLocatorMap.region, + maps: { + items: { + [storeLocatorMap.name]: { style: storeLocatorMap.style }, + }, + default: storeLocatorMap.name, + }, + search_indices: { + items: [storeLocatorSearch.name], + default: storeLocatorSearch.name, + }, + geofence_collections: { + items: [storeLocatorGeofence.name], + default: storeLocatorGeofence.name, + }, + }, + }); +}; diff --git a/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/geo/storeLocatorGeofence/resource.ts b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/geo/storeLocatorGeofence/resource.ts new file mode 100644 index 00000000000..c832107c15c --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/geo/storeLocatorGeofence/resource.ts @@ -0,0 +1,24 @@ +import { geostoreLocatorGeofence } from './storeLocatorGeofence-construct'; +import { Backend } from '@aws-amplify/backend'; + +const branchName = process.env.AWS_BRANCH ?? 'sandbox'; + +export const defineStoreLocatorGeofence = (backend: Backend) => { + const storeLocatorGeofenceStack = backend.createStack( + 'geostoreLocatorGeofence' + ); + const storeLocatorGeofence = new geostoreLocatorGeofence( + storeLocatorGeofenceStack, + 'storeLocatorGeofence', + { + authstorelocator41a9495f41a9495fUserPoolId: + backend.auth.resources.userPool.userPoolId, + authuserPoolGroupsstoreLocatorAdminGroupRole: + backend.auth.resources.groups['storeLocatorAdmin'].role.roleName, + collectionName: 'storeLocatorGeofence', + branchName, + isDefault: 'true', + } + ); + return storeLocatorGeofence; +}; diff --git a/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/geo/storeLocatorGeofence/storeLocatorGeofence-construct.ts b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/geo/storeLocatorGeofence/storeLocatorGeofence-construct.ts new file mode 100644 index 00000000000..b2ce35289cb --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/geo/storeLocatorGeofence/storeLocatorGeofence-construct.ts @@ -0,0 +1,274 @@ +import * as cdk from 'aws-cdk-lib'; +import * as iam from 'aws-cdk-lib/aws-iam'; +import * as lambda from 'aws-cdk-lib/aws-lambda'; +import { Construct } from 'constructs'; + +export interface geostoreLocatorGeofenceProps { + /** + */ + readonly authuserPoolGroupsstoreLocatorAdminGroupRole: string; + /** + */ + readonly authstorelocator41a9495f41a9495fUserPoolId: string; + /** + */ + readonly collectionName: string; + /** + */ + readonly isDefault: string; + /** + */ + readonly branchName: string; +} + +/** + * {"createdOn":"Mac","createdBy":"Amplify","createdWith":"14.2.5","stackType":"geo-GeofenceCollection","metadata":{"whyContinueWithGen1":"Prefer not to answer"}} + */ +export class geostoreLocatorGeofence extends Construct { + public readonly name; + public readonly region; + public readonly arn; + + public constructor( + scope: Construct, + id: string, + props: geostoreLocatorGeofenceProps + ) { + super(scope, id); + + // Mappings + const regionMapping = new cdk.CfnMapping(this, 'RegionMapping', { + mapping: { + 'us-east-1': { + locationServiceRegion: 'us-east-1', + }, + 'us-east-2': { + locationServiceRegion: 'us-east-2', + }, + 'us-west-2': { + locationServiceRegion: 'us-west-2', + }, + 'ap-southeast-1': { + locationServiceRegion: 'ap-southeast-1', + }, + 'ap-southeast-2': { + locationServiceRegion: 'ap-southeast-2', + }, + 'ap-northeast-1': { + locationServiceRegion: 'ap-northeast-1', + }, + 'eu-central-1': { + locationServiceRegion: 'eu-central-1', + }, + 'eu-north-1': { + locationServiceRegion: 'eu-north-1', + }, + 'eu-west-1': { + locationServiceRegion: 'eu-west-1', + }, + 'sa-east-1': { + locationServiceRegion: 'us-east-1', + }, + 'ca-central-1': { + locationServiceRegion: 'us-east-1', + }, + 'us-west-1': { + locationServiceRegion: 'us-west-2', + }, + 'cn-north-1': { + locationServiceRegion: 'us-west-2', + }, + 'cn-northwest-1': { + locationServiceRegion: 'us-west-2', + }, + 'ap-south-1': { + locationServiceRegion: 'us-west-2', + }, + 'ap-northeast-3': { + locationServiceRegion: 'us-west-2', + }, + 'ap-northeast-2': { + locationServiceRegion: 'us-west-2', + }, + 'eu-west-2': { + locationServiceRegion: 'eu-west-1', + }, + 'eu-west-3': { + locationServiceRegion: 'eu-west-1', + }, + 'me-south-1': { + locationServiceRegion: 'ap-southeast-1', + }, + }, + }); + + // Resources + const customGeofenceCollectionLambdaServiceRole9040D551 = new iam.CfnRole( + this, + 'CustomGeofenceCollectionLambdaServiceRole9040D551', + { + assumeRolePolicyDocument: { + Statement: [ + { + Action: 'sts:AssumeRole', + Effect: 'Allow', + Principal: { + Service: 'lambda.amazonaws.com', + }, + }, + ], + Version: '2012-10-17', + }, + managedPolicyArns: [ + [ + 'arn:', + cdk.Stack.of(this).partition, + ':iam::aws:policy/service-role/AWSLambdaBasicExecutionRole', + ].join(''), + ], + } + ); + + const customGeofenceCollectionLambdaServiceRoleDefaultPolicy0A18b369 = + new iam.CfnPolicy( + this, + 'CustomGeofenceCollectionLambdaServiceRoleDefaultPolicy0A18B369', + { + policyDocument: { + Statement: [ + { + Action: 'geo:CreateGeofenceCollection', + Effect: 'Allow', + Resource: '*', + }, + { + Action: [ + 'geo:UpdateGeofenceCollection', + 'geo:DeleteGeofenceCollection', + ], + Effect: 'Allow', + Resource: `arn:aws:geo:${regionMapping.findInMap( + cdk.Stack.of(this).region, + 'locationServiceRegion' + )}:${cdk.Stack.of(this).account}:geofence-collection/${[ + props.collectionName!, + props.branchName!, + ].join('-')}`, + }, + ], + Version: '2012-10-17', + }, + policyName: + 'CustomGeofenceCollectionLambdaServiceRoleDefaultPolicy0A18B369', + roles: [customGeofenceCollectionLambdaServiceRole9040D551.ref], + } + ); + + const customGeofenceCollectionLambdaCa3d002b = new lambda.CfnFunction( + this, + 'CustomGeofenceCollectionLambdaCA3D002B', + { + code: { + zipFile: + "const response = require('cfn-response');\nconst {\n LocationClient,\n CreateGeofenceCollectionCommand,\n DeleteGeofenceCollectionCommand,\n UpdateGeofenceCollectionCommand,\n} = require('@aws-sdk/client-location');\nexports.handler = async function (event, context) {\n try {\n console.log('REQUEST RECEIVED:' + JSON.stringify(event));\n const pricingPlan = 'RequestBasedUsage';\n if (event.RequestType === 'Create') {\n const params = {\n CollectionName: event.ResourceProperties.collectionName,\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new CreateGeofenceCollectionCommand(params));\n console.log('create resource response data' + JSON.stringify(res));\n if (res.CollectionName && res.CollectionArn) {\n await response.send(event, context, response.SUCCESS, res, params.CollectionName);\n } else {\n await response.send(event, context, response.FAILED, res, params.CollectionName);\n }\n }\n if (event.RequestType === 'Update') {\n const params = {\n CollectionName: event.ResourceProperties.collectionName,\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new UpdateGeofenceCollectionCommand(params));\n console.log('update resource response data' + JSON.stringify(res));\n if (res.CollectionName) {\n await response.send(event, context, response.SUCCESS, res, params.CollectionName);\n } else {\n await response.send(event, context, response.FAILED, res, params.CollectionName);\n }\n }\n if (event.RequestType === 'Delete') {\n const params = {\n CollectionName: event.ResourceProperties.collectionName,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new DeleteGeofenceCollectionCommand(params));\n console.log('delete resource response data' + JSON.stringify(res));\n await response.send(event, context, response.SUCCESS, res, params.CollectionName);\n }\n } catch (err) {\n console.log(err.stack);\n const res = { Error: err };\n await response.send(event, context, response.FAILED, res, event.ResourceProperties.collectionName);\n throw err;\n }\n};\n", + }, + handler: 'index.handler', + role: customGeofenceCollectionLambdaServiceRole9040D551.attrArn, + runtime: 'nodejs22.x', + timeout: 300, + } + ); + customGeofenceCollectionLambdaCa3d002b.addDependency( + customGeofenceCollectionLambdaServiceRoleDefaultPolicy0A18b369 + ); + customGeofenceCollectionLambdaCa3d002b.addDependency( + customGeofenceCollectionLambdaServiceRole9040D551 + ); + + const customGeofenceCollection = new cdk.CfnCustomResource( + this, + 'CustomGeofenceCollection', + { + serviceToken: customGeofenceCollectionLambdaCa3d002b.attrArn, + } + ); + customGeofenceCollection.addOverride('Type', 'Custom::LambdaCallout'); + customGeofenceCollection.addPropertyOverride( + 'collectionName', + [props.collectionName!, props.branchName!].join('-') + ); + customGeofenceCollection.addPropertyOverride( + 'region', + regionMapping.findInMap( + cdk.Stack.of(this).region, + 'locationServiceRegion' + ) + ); + customGeofenceCollection.addPropertyOverride('env', props.branchName!); + customGeofenceCollection.cfnOptions.deletionPolicy = + cdk.CfnDeletionPolicy.DELETE; + + const storeLocatorAdminGeofenceCollectionPolicy = new iam.CfnPolicy( + this, + 'storeLocatorAdminGeofenceCollectionPolicy', + { + policyDocument: { + Statement: [ + { + Action: [ + 'geo:GetGeofence', + 'geo:PutGeofence', + 'geo:BatchPutGeofence', + 'geo:BatchDeleteGeofence', + 'geo:ListGeofences', + ], + Effect: 'Allow', + Resource: `arn:aws:geo:${regionMapping.findInMap( + cdk.Stack.of(this).region, + 'locationServiceRegion' + )}:${ + cdk.Stack.of(this).account + }:geofence-collection/${customGeofenceCollection + .getAtt('CollectionName') + .toString()}`, + }, + ], + Version: '2012-10-17', + }, + policyName: [ + 'storeLocatorAdmin', + [props.collectionName!, props.branchName!].join('-'), + 'Policy', + ].join(''), + roles: [props.authuserPoolGroupsstoreLocatorAdminGroupRole!], + } + ); + + // Outputs + this.name = customGeofenceCollection.getAtt('CollectionName').toString(); + new cdk.CfnOutput(this, 'CfnOutputName', { + key: 'Name', + value: this.name!.toString(), + }); + this.region = regionMapping.findInMap( + cdk.Stack.of(this).region, + 'locationServiceRegion' + ); + new cdk.CfnOutput(this, 'CfnOutputRegion', { + key: 'Region', + value: this.region!.toString(), + }); + this.arn = `arn:aws:geo:${regionMapping.findInMap( + cdk.Stack.of(this).region, + 'locationServiceRegion' + )}:${ + cdk.Stack.of(this).account + }:geofence-collection/${customGeofenceCollection + .getAtt('CollectionName') + .toString()}`; + new cdk.CfnOutput(this, 'CfnOutputArn', { + key: 'Arn', + value: this.arn!.toString(), + }); + } +} diff --git a/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/geo/storeLocatorMap/resource.ts b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/geo/storeLocatorMap/resource.ts new file mode 100644 index 00000000000..212b3d1c6f5 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/geo/storeLocatorMap/resource.ts @@ -0,0 +1,26 @@ +import { geostoreLocatorMap } from './storeLocatorMap-construct'; +import { Backend } from '@aws-amplify/backend'; + +const branchName = process.env.AWS_BRANCH ?? 'sandbox'; + +export const defineStoreLocatorMap = (backend: Backend) => { + const storeLocatorMapStack = backend.createStack('geostoreLocatorMap'); + const storeLocatorMap = new geostoreLocatorMap( + storeLocatorMapStack, + 'storeLocatorMap', + { + authRoleName: backend.auth.resources.authenticatedUserIamRole.roleName, + unauthRoleName: + backend.auth.resources.unauthenticatedUserIamRole.roleName, + authstorelocator41a9495f41a9495fUserPoolId: + backend.auth.resources.userPool.userPoolId, + authuserPoolGroupsstoreLocatorAdminGroupRole: + backend.auth.resources.groups['storeLocatorAdmin'].role.roleName, + mapName: 'storeLocatorMap', + mapStyle: 'VectorEsriStreets', + branchName, + isDefault: 'true', + } + ); + return storeLocatorMap; +}; diff --git a/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/geo/storeLocatorMap/storeLocatorMap-construct.ts b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/geo/storeLocatorMap/storeLocatorMap-construct.ts new file mode 100644 index 00000000000..f3aadded338 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/geo/storeLocatorMap/storeLocatorMap-construct.ts @@ -0,0 +1,262 @@ +import * as cdk from 'aws-cdk-lib'; +import * as iam from 'aws-cdk-lib/aws-iam'; +import * as lambda from 'aws-cdk-lib/aws-lambda'; +import { Construct } from 'constructs'; + +export interface geostoreLocatorMapProps { + /** + */ + readonly authuserPoolGroupsstoreLocatorAdminGroupRole: string; + /** + */ + readonly authstorelocator41a9495f41a9495fUserPoolId: string; + /** + */ + readonly authRoleName: string; + /** + */ + readonly unauthRoleName: string; + /** + */ + readonly mapName: string; + /** + */ + readonly mapStyle: string; + /** + */ + readonly isDefault: string; + /** + */ + readonly branchName: string; +} + +/** + * {"createdOn":"Mac","createdBy":"Amplify","createdWith":"14.2.5","stackType":"geo-Map","metadata":{"whyContinueWithGen1":"Prefer not to answer"}} + */ +export class geostoreLocatorMap extends Construct { + public readonly name; + public readonly style; + public readonly region; + public readonly arn; + + public constructor( + scope: Construct, + id: string, + props: geostoreLocatorMapProps + ) { + super(scope, id); + + // Mappings + const regionMapping = new cdk.CfnMapping(this, 'RegionMapping', { + mapping: { + 'us-east-1': { + locationServiceRegion: 'us-east-1', + }, + 'us-east-2': { + locationServiceRegion: 'us-east-2', + }, + 'us-west-2': { + locationServiceRegion: 'us-west-2', + }, + 'ap-southeast-1': { + locationServiceRegion: 'ap-southeast-1', + }, + 'ap-southeast-2': { + locationServiceRegion: 'ap-southeast-2', + }, + 'ap-northeast-1': { + locationServiceRegion: 'ap-northeast-1', + }, + 'eu-central-1': { + locationServiceRegion: 'eu-central-1', + }, + 'eu-north-1': { + locationServiceRegion: 'eu-north-1', + }, + 'eu-west-1': { + locationServiceRegion: 'eu-west-1', + }, + 'sa-east-1': { + locationServiceRegion: 'us-east-1', + }, + 'ca-central-1': { + locationServiceRegion: 'us-east-1', + }, + 'us-west-1': { + locationServiceRegion: 'us-west-2', + }, + 'cn-north-1': { + locationServiceRegion: 'us-west-2', + }, + 'cn-northwest-1': { + locationServiceRegion: 'us-west-2', + }, + 'ap-south-1': { + locationServiceRegion: 'us-west-2', + }, + 'ap-northeast-3': { + locationServiceRegion: 'us-west-2', + }, + 'ap-northeast-2': { + locationServiceRegion: 'us-west-2', + }, + 'eu-west-2': { + locationServiceRegion: 'eu-west-1', + }, + 'eu-west-3': { + locationServiceRegion: 'eu-west-1', + }, + 'me-south-1': { + locationServiceRegion: 'ap-southeast-1', + }, + }, + }); + + // Resources + const customMapLambdaServiceRole4Ee7732c = new iam.CfnRole( + this, + 'CustomMapLambdaServiceRole4EE7732C', + { + assumeRolePolicyDocument: { + Statement: [ + { + Action: 'sts:AssumeRole', + Effect: 'Allow', + Principal: { + Service: 'lambda.amazonaws.com', + }, + }, + ], + Version: '2012-10-17', + }, + managedPolicyArns: [ + [ + 'arn:', + cdk.Stack.of(this).partition, + ':iam::aws:policy/service-role/AWSLambdaBasicExecutionRole', + ].join(''), + ], + } + ); + + const customMapLambdaServiceRoleDefaultPolicy983Fdd4e = new iam.CfnPolicy( + this, + 'CustomMapLambdaServiceRoleDefaultPolicy983FDD4E', + { + policyDocument: { + Statement: [ + { + Action: 'geo:CreateMap', + Effect: 'Allow', + Resource: '*', + }, + { + Action: ['geo:UpdateMap', 'geo:DeleteMap'], + Effect: 'Allow', + Resource: `arn:aws:geo:${regionMapping.findInMap( + cdk.Stack.of(this).region, + 'locationServiceRegion' + )}:${cdk.Stack.of(this).account}:map/${[ + props.mapName!, + props.branchName!, + ].join('-')}`, + }, + ], + Version: '2012-10-17', + }, + policyName: 'CustomMapLambdaServiceRoleDefaultPolicy983FDD4E', + roles: [customMapLambdaServiceRole4Ee7732c.ref], + } + ); + + const customMapLambda51D5d430 = new lambda.CfnFunction( + this, + 'CustomMapLambda51D5D430', + { + code: { + zipFile: + "const response = require('cfn-response');\nconst { LocationClient, CreateMapCommand, DeleteMapCommand, UpdateMapCommand } = require('@aws-sdk/client-location');\nexports.handler = async function (event, context) {\n try {\n console.log('REQUEST RECEIVED:' + JSON.stringify(event));\n const pricingPlan = 'RequestBasedUsage';\n if (event.RequestType === 'Create') {\n let params = {\n MapName: event.ResourceProperties.mapName,\n Configuration: {\n Style: event.ResourceProperties.mapStyle,\n },\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new CreateMapCommand(params));\n console.log('create resource response data' + JSON.stringify(res));\n if (res.MapName && res.MapArn) {\n await response.send(event, context, response.SUCCESS, res, params.MapName);\n } else {\n await response.send(event, context, response.FAILED, res, params.MapName);\n }\n }\n if (event.RequestType === 'Update') {\n let params = {\n MapName: event.ResourceProperties.mapName,\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new UpdateMapCommand(params));\n console.log('update resource response data' + JSON.stringify(res));\n if (res.MapName && res.MapArn) {\n await response.send(event, context, response.SUCCESS, res, params.MapName);\n } else {\n await response.send(event, context, response.FAILED, res, params.MapName);\n }\n }\n if (event.RequestType === 'Delete') {\n let params = {\n MapName: event.ResourceProperties.mapName,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new DeleteMapCommand(params));\n console.log('delete resource response data' + JSON.stringify(res));\n await response.send(event, context, response.SUCCESS, res, params.MapName);\n }\n } catch (err) {\n console.log(err.stack);\n const res = { Error: err };\n await response.send(event, context, response.FAILED, res, event.ResourceProperties.mapName);\n throw err;\n }\n};\n", + }, + handler: 'index.handler', + role: customMapLambdaServiceRole4Ee7732c.attrArn, + runtime: 'nodejs22.x', + timeout: 300, + } + ); + customMapLambda51D5d430.addDependency( + customMapLambdaServiceRoleDefaultPolicy983Fdd4e + ); + customMapLambda51D5d430.addDependency(customMapLambdaServiceRole4Ee7732c); + + const customMap = new cdk.CfnCustomResource(this, 'CustomMap', { + serviceToken: customMapLambda51D5d430.attrArn, + }); + customMap.addOverride('Type', 'Custom::LambdaCallout'); + customMap.addPropertyOverride( + 'mapName', + [props.mapName!, props.branchName!].join('-') + ); + customMap.addPropertyOverride('mapStyle', props.mapStyle!); + customMap.addPropertyOverride( + 'region', + regionMapping.findInMap( + cdk.Stack.of(this).region, + 'locationServiceRegion' + ) + ); + customMap.addPropertyOverride('env', props.branchName!); + customMap.cfnOptions.deletionPolicy = cdk.CfnDeletionPolicy.DELETE; + + const mapPolicy = new iam.CfnPolicy(this, 'MapPolicy', { + policyDocument: { + Statement: [ + { + Action: [ + 'geo:GetMapStyleDescriptor', + 'geo:GetMapGlyphs', + 'geo:GetMapSprites', + 'geo:GetMapTile', + ], + Effect: 'Allow', + Resource: customMap.getAtt('MapArn').toString(), + }, + ], + Version: '2012-10-17', + }, + policyName: [ + [props.mapName!, props.branchName!].join('-'), + 'Policy', + ].join(''), + roles: [ + props.authRoleName!, + props.unauthRoleName!, + props.authuserPoolGroupsstoreLocatorAdminGroupRole!, + ], + }); + + // Outputs + this.name = customMap.getAtt('MapName').toString(); + new cdk.CfnOutput(this, 'CfnOutputName', { + key: 'Name', + value: this.name!.toString(), + }); + this.style = props.mapStyle!; + new cdk.CfnOutput(this, 'CfnOutputStyle', { + key: 'Style', + value: this.style!.toString(), + }); + this.region = regionMapping.findInMap( + cdk.Stack.of(this).region, + 'locationServiceRegion' + ); + new cdk.CfnOutput(this, 'CfnOutputRegion', { + key: 'Region', + value: this.region!.toString(), + }); + this.arn = customMap.getAtt('MapArn').toString(); + new cdk.CfnOutput(this, 'CfnOutputArn', { + key: 'Arn', + value: this.arn!.toString(), + }); + } +} diff --git a/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/geo/storeLocatorSearch/resource.ts b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/geo/storeLocatorSearch/resource.ts new file mode 100644 index 00000000000..6062b48f04a --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/geo/storeLocatorSearch/resource.ts @@ -0,0 +1,27 @@ +import { geostoreLocatorSearch } from './storeLocatorSearch-construct'; +import { Backend } from '@aws-amplify/backend'; + +const branchName = process.env.AWS_BRANCH ?? 'sandbox'; + +export const defineStoreLocatorSearch = (backend: Backend) => { + const storeLocatorSearchStack = backend.createStack('geostoreLocatorSearch'); + const storeLocatorSearch = new geostoreLocatorSearch( + storeLocatorSearchStack, + 'storeLocatorSearch', + { + authRoleName: backend.auth.resources.authenticatedUserIamRole.roleName, + unauthRoleName: + backend.auth.resources.unauthenticatedUserIamRole.roleName, + authstorelocator41a9495f41a9495fUserPoolId: + backend.auth.resources.userPool.userPoolId, + authuserPoolGroupsstoreLocatorAdminGroupRole: + backend.auth.resources.groups['storeLocatorAdmin'].role.roleName, + indexName: 'storeLocatorSearch', + dataProvider: 'Here', + dataSourceIntendedUse: 'SingleUse', + branchName, + isDefault: 'true', + } + ); + return storeLocatorSearch; +}; diff --git a/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/geo/storeLocatorSearch/storeLocatorSearch-construct.ts b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/geo/storeLocatorSearch/storeLocatorSearch-construct.ts new file mode 100644 index 00000000000..bde16c5fbbe --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/geo/storeLocatorSearch/storeLocatorSearch-construct.ts @@ -0,0 +1,270 @@ +import * as cdk from 'aws-cdk-lib'; +import * as iam from 'aws-cdk-lib/aws-iam'; +import * as lambda from 'aws-cdk-lib/aws-lambda'; +import { Construct } from 'constructs'; + +export interface geostoreLocatorSearchProps { + /** + */ + readonly authuserPoolGroupsstoreLocatorAdminGroupRole: string; + /** + */ + readonly authstorelocator41a9495f41a9495fUserPoolId: string; + /** + */ + readonly authRoleName: string; + /** + */ + readonly unauthRoleName: string; + /** + */ + readonly indexName: string; + /** + */ + readonly dataProvider: string; + /** + */ + readonly dataSourceIntendedUse: string; + /** + */ + readonly isDefault: string; + /** + */ + readonly branchName: string; +} + +/** + * {"createdOn":"Mac","createdBy":"Amplify","createdWith":"14.2.5","stackType":"geo-PlaceIndex","metadata":{"whyContinueWithGen1":"Prefer not to answer"}} + */ +export class geostoreLocatorSearch extends Construct { + public readonly name; + public readonly region; + public readonly arn; + + public constructor( + scope: Construct, + id: string, + props: geostoreLocatorSearchProps + ) { + super(scope, id); + + // Mappings + const regionMapping = new cdk.CfnMapping(this, 'RegionMapping', { + mapping: { + 'us-east-1': { + locationServiceRegion: 'us-east-1', + }, + 'us-east-2': { + locationServiceRegion: 'us-east-2', + }, + 'us-west-2': { + locationServiceRegion: 'us-west-2', + }, + 'ap-southeast-1': { + locationServiceRegion: 'ap-southeast-1', + }, + 'ap-southeast-2': { + locationServiceRegion: 'ap-southeast-2', + }, + 'ap-northeast-1': { + locationServiceRegion: 'ap-northeast-1', + }, + 'eu-central-1': { + locationServiceRegion: 'eu-central-1', + }, + 'eu-north-1': { + locationServiceRegion: 'eu-north-1', + }, + 'eu-west-1': { + locationServiceRegion: 'eu-west-1', + }, + 'sa-east-1': { + locationServiceRegion: 'us-east-1', + }, + 'ca-central-1': { + locationServiceRegion: 'us-east-1', + }, + 'us-west-1': { + locationServiceRegion: 'us-west-2', + }, + 'cn-north-1': { + locationServiceRegion: 'us-west-2', + }, + 'cn-northwest-1': { + locationServiceRegion: 'us-west-2', + }, + 'ap-south-1': { + locationServiceRegion: 'us-west-2', + }, + 'ap-northeast-3': { + locationServiceRegion: 'us-west-2', + }, + 'ap-northeast-2': { + locationServiceRegion: 'us-west-2', + }, + 'eu-west-2': { + locationServiceRegion: 'eu-west-1', + }, + 'eu-west-3': { + locationServiceRegion: 'eu-west-1', + }, + 'me-south-1': { + locationServiceRegion: 'ap-southeast-1', + }, + }, + }); + + // Resources + const customPlaceIndexLambdaServiceRoleFd2f3c9d = new iam.CfnRole( + this, + 'CustomPlaceIndexLambdaServiceRoleFD2F3C9D', + { + assumeRolePolicyDocument: { + Statement: [ + { + Action: 'sts:AssumeRole', + Effect: 'Allow', + Principal: { + Service: 'lambda.amazonaws.com', + }, + }, + ], + Version: '2012-10-17', + }, + managedPolicyArns: [ + [ + 'arn:', + cdk.Stack.of(this).partition, + ':iam::aws:policy/service-role/AWSLambdaBasicExecutionRole', + ].join(''), + ], + } + ); + + const customPlaceIndexLambdaServiceRoleDefaultPolicy818068B1 = + new iam.CfnPolicy( + this, + 'CustomPlaceIndexLambdaServiceRoleDefaultPolicy818068B1', + { + policyDocument: { + Statement: [ + { + Action: 'geo:CreatePlaceIndex', + Effect: 'Allow', + Resource: '*', + }, + { + Action: ['geo:UpdatePlaceIndex', 'geo:DeletePlaceIndex'], + Effect: 'Allow', + Resource: `arn:aws:geo:${regionMapping.findInMap( + cdk.Stack.of(this).region, + 'locationServiceRegion' + )}:${cdk.Stack.of(this).account}:place-index/${[ + props.indexName!, + props.branchName!, + ].join('-')}`, + }, + ], + Version: '2012-10-17', + }, + policyName: 'CustomPlaceIndexLambdaServiceRoleDefaultPolicy818068B1', + roles: [customPlaceIndexLambdaServiceRoleFd2f3c9d.ref], + } + ); + + const customPlaceIndexLambda79813Bb9 = new lambda.CfnFunction( + this, + 'CustomPlaceIndexLambda79813BB9', + { + code: { + zipFile: + "const response = require('cfn-response');\nconst { LocationClient, CreatePlaceIndexCommand, DeletePlaceIndexCommand, UpdatePlaceIndexCommand } = require('@aws-sdk/client-location');\nexports.handler = async function (event, context) {\n try {\n console.log('REQUEST RECEIVED:' + JSON.stringify(event));\n const pricingPlan = 'RequestBasedUsage';\n if (event.RequestType === 'Create') {\n const params = {\n IndexName: event.ResourceProperties.indexName,\n DataSource: event.ResourceProperties.dataSource,\n DataSourceConfiguration: {\n IntendedUse: event.ResourceProperties.dataSourceIntendedUse,\n },\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new CreatePlaceIndexCommand(params));\n console.log('create resource response data' + JSON.stringify(res));\n if (res.IndexName && res.IndexArn) {\n event.PhysicalResourceId = res.IndexName;\n await response.send(event, context, response.SUCCESS, res, params.IndexName);\n } else {\n await response.send(event, context, response.FAILED, res, params.IndexName);\n }\n }\n if (event.RequestType === 'Update') {\n const params = {\n IndexName: event.ResourceProperties.indexName,\n DataSourceConfiguration: {\n IntendedUse: event.ResourceProperties.dataSourceIntendedUse,\n },\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new UpdatePlaceIndexCommand(params));\n console.log('update resource response data' + JSON.stringify(res));\n if (res.IndexName && res.IndexArn) {\n event.PhysicalResourceId = res.IndexName;\n await response.send(event, context, response.SUCCESS, res, params.IndexName);\n } else {\n await response.send(event, context, response.FAILED, res, params.IndexName);\n }\n }\n if (event.RequestType === 'Delete') {\n const params = {\n IndexName: event.ResourceProperties.indexName,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new DeletePlaceIndexCommand(params));\n event.PhysicalResourceId = event.ResourceProperties.indexName;\n console.log('delete resource response data' + JSON.stringify(res));\n await response.send(event, context, response.SUCCESS, res, params.IndexName);\n }\n } catch (err) {\n console.log(err.stack);\n const res = { Error: err };\n await response.send(event, context, response.FAILED, res, event.ResourceProperties.indexName);\n throw err;\n }\n};\n", + }, + handler: 'index.handler', + role: customPlaceIndexLambdaServiceRoleFd2f3c9d.attrArn, + runtime: 'nodejs22.x', + timeout: 300, + } + ); + customPlaceIndexLambda79813Bb9.addDependency( + customPlaceIndexLambdaServiceRoleDefaultPolicy818068B1 + ); + customPlaceIndexLambda79813Bb9.addDependency( + customPlaceIndexLambdaServiceRoleFd2f3c9d + ); + + const customPlaceIndex = new cdk.CfnCustomResource( + this, + 'CustomPlaceIndex', + { + serviceToken: customPlaceIndexLambda79813Bb9.attrArn, + } + ); + customPlaceIndex.addOverride('Type', 'Custom::LambdaCallout'); + customPlaceIndex.addPropertyOverride( + 'indexName', + [props.indexName!, props.branchName!].join('-') + ); + customPlaceIndex.addPropertyOverride('dataSource', props.dataProvider!); + customPlaceIndex.addPropertyOverride( + 'dataSourceIntendedUse', + props.dataSourceIntendedUse! + ); + customPlaceIndex.addPropertyOverride( + 'region', + regionMapping.findInMap( + cdk.Stack.of(this).region, + 'locationServiceRegion' + ) + ); + customPlaceIndex.addPropertyOverride('env', props.branchName!); + customPlaceIndex.cfnOptions.deletionPolicy = cdk.CfnDeletionPolicy.DELETE; + + const placeIndexPolicy = new iam.CfnPolicy(this, 'PlaceIndexPolicy', { + policyDocument: { + Statement: [ + { + Action: [ + 'geo:SearchPlaceIndexForPosition', + 'geo:SearchPlaceIndexForText', + 'geo:SearchPlaceIndexForSuggestions', + 'geo:GetPlace', + ], + Effect: 'Allow', + Resource: customPlaceIndex.getAtt('IndexArn').toString(), + }, + ], + Version: '2012-10-17', + }, + policyName: [ + [props.indexName!, props.branchName!].join('-'), + 'Policy', + ].join(''), + roles: [ + props.authRoleName!, + props.unauthRoleName!, + props.authuserPoolGroupsstoreLocatorAdminGroupRole!, + ], + }); + + // Outputs + this.name = customPlaceIndex.getAtt('IndexName').toString(); + new cdk.CfnOutput(this, 'CfnOutputName', { + key: 'Name', + value: this.name!.toString(), + }); + this.region = regionMapping.findInMap( + cdk.Stack.of(this).region, + 'locationServiceRegion' + ); + new cdk.CfnOutput(this, 'CfnOutputRegion', { + key: 'Region', + value: this.region!.toString(), + }); + this.arn = customPlaceIndex.getAtt('IndexArn').toString(); + new cdk.CfnOutput(this, 'CfnOutputArn', { + key: 'Arn', + value: this.arn!.toString(), + }); + } +} diff --git a/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/package.json b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/package.json new file mode 100644 index 00000000000..3dbc1ca591c --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} diff --git a/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/tsconfig.json b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/tsconfig.json new file mode 100644 index 00000000000..fb4251ddaae --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.post.generate/amplify/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "target": "es2022", + "module": "es2022", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true, + "paths": { + "$amplify/*": ["../.amplify/generated/*"] + } + } +} diff --git a/amplify-migration-apps/store-locator/_snapshot.post.generate/package.json b/amplify-migration-apps/store-locator/_snapshot.post.generate/package.json new file mode 100644 index 00000000000..60c4583620e --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.post.generate/package.json @@ -0,0 +1,53 @@ +{ + "name": "@amplify-migration-apps/store-locator", + "private": true, + "version": "0.0.0", + "type": "module", + "installConfig": { + "hoistingLimits": "workspaces" + }, + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview", + "sanitize": "tsx ../sanitize.ts", + "typecheck": "cd _snapshot.post.generate/amplify && npx tsc --noEmit" + }, + "dependencies": { + "@aws-amplify/geo": "^3.0.92", + "@aws-amplify/ui-react": "^6.13.2", + "@aws-amplify/ui-react-geo": "^2.2.13", + "@aws-sdk/client-cognito-identity-provider": "^3.1016.0", + "aws-amplify": "^6.16.0", + "axios": "latest", + "maplibre-gl": "^2.4.0", + "maplibre-gl-js-amplify": "^4.0.2", + "react": "^19.2.0", + "react-dom": "^19.2.0" + }, + "devDependencies": { + "@aws-amplify/backend": "^1.18.0", + "@aws-amplify/backend-cli": "^1.8.0", + "@aws-amplify/backend-data": "^1.6.2", + "@eslint/js": "^9.39.1", + "@types/aws-lambda": "^8.10.92", + "@types/node": "*", + "@types/react": "^19.2.5", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^5.1.1", + "aws-cdk": "^2", + "aws-cdk-lib": "^2", + "ci-info": "^4.3.1", + "constructs": "^10.0.0", + "esbuild": "^0.27.0", + "eslint": "^9.39.1", + "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-react-refresh": "^0.4.24", + "globals": "^16.5.0", + "tsx": "^4.20.6", + "typescript": "~5.9.3", + "typescript-eslint": "^8.46.4", + "vite": "^7.2.4" + } +} diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/.gitignore b/amplify-migration-apps/store-locator/_snapshot.pre.generate/.gitignore new file mode 100644 index 00000000000..ddc1f0fb628 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/.gitignore @@ -0,0 +1,21 @@ +#amplify-do-not-edit-begin +!amplify/\#current-cloud-backend +amplify/.config/local-* +!amplify/logs +!amplify/mock-data +!amplify/mock-api-resources +!amplify/backend/amplify-meta.json +!amplify/backend/.temp +!build/ +dist/ +node_modules/ +aws-exports.js +awsconfiguration.json +amplifyconfiguration.json +amplifyconfiguration.dart +amplify-build-config.json +amplify-gradle-config.json +amplifytools.xcconfig +.secret-* +**.sample +#amplify-do-not-edit-end \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/amplify-meta.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/amplify-meta.json new file mode 100644 index 00000000000..ead1cbf796c --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/amplify-meta.json @@ -0,0 +1,227 @@ +{ + "providers": { + "awscloudformation": { + "AuthRoleName": "amplify-storelocator-main-f9ca7-authRole", + "UnauthRoleArn": "arn:aws:iam::123456789012:role/amplify-storelocator-main-f9ca7-unauthRole", + "AuthRoleArn": "arn:aws:iam::123456789012:role/amplify-storelocator-main-f9ca7-authRole", + "Region": "us-east-1", + "DeploymentBucketName": "amplify-storelocator-main-f9ca7-deployment", + "UnauthRoleName": "amplify-storelocator-main-f9ca7-unauthRole", + "StackName": "amplify-storelocator-main-f9ca7", + "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/amplify-storelocator-main-f9ca7/06c2ecf0-279e-11f1-a161-0ea0286337e9", + "AmplifyAppId": "storelocator", + "AuthTriggerTemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/auth/auth-trigger-cloudformation-template.json" + } + }, + "auth": { + "userPoolGroups": { + "service": "Cognito-UserPool-Groups", + "providerPlugin": "awscloudformation", + "dependsOn": [ + { + "category": "auth", + "resourceName": "storelocator41a9495f41a9495f", + "attributes": [ + "UserPoolId", + "AppClientIDWeb", + "AppClientID", + "IdentityPoolId" + ] + } + ], + "lastPushTimeStamp": "2026-03-24T16:38:00.639Z", + "providerMetadata": { + "s3TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/auth/userPoolGroups-cloudformation-template.json", + "logicalId": "authuserPoolGroups" + }, + "output": { + "storeLocatorAdminGroupRole": "arn:aws:iam::123456789012:role/us-east-1_R1pdziFVe-storeLocatorAdminGroupRole" + }, + "lastPushDirHash": "aY2fv0JwB9V2Pnq+Iavglw2oGVE=" + }, + "storelocator41a9495f41a9495f": { + "service": "Cognito", + "providerPlugin": "awscloudformation", + "dependsOn": [ + { + "category": "function", + "resourceName": "storelocator41a9495f41a9495fPostConfirmation", + "triggerProvider": "Cognito", + "attributes": [ + "Arn", + "Name" + ] + } + ], + "customAuth": false, + "frontendAuthConfig": { + "socialProviders": [], + "usernameAttributes": [ + "EMAIL" + ], + "signupAttributes": [ + "EMAIL" + ], + "passwordProtectionSettings": { + "passwordPolicyMinLength": 8, + "passwordPolicyCharacters": [] + }, + "mfaConfiguration": "OFF", + "mfaTypes": [ + "SMS" + ], + "verificationMechanisms": [ + "EMAIL" + ] + }, + "providerMetadata": { + "s3TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/auth/storelocator41a9495f41a9495f-cloudformation-template.json", + "logicalId": "authstorelocator41a9495f41a9495f" + }, + "lastPushTimeStamp": "2026-03-24T16:38:00.639Z", + "output": { + "UserPoolId": "us-east-1_R1pdziFVe", + "AppClientIDWeb": "6am6ldh23n8ke819nuvk51cddq", + "AppClientID": "5ppvpdo9dmkrj55qi8h865lt34", + "IdentityPoolId": "us-east-1:4ea514e6-bc16-4990-a5ea-cefe84c3050d", + "UserPoolArn": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_R1pdziFVe", + "IdentityPoolName": "storelocator41a9495f_identitypool_41a9495f__main", + "UserPoolName": "storelocator41a9495f_userpool_41a9495f" + }, + "lastPushDirHash": "BhovtRkLGtk84r9ocO7d+lsB8TQ=" + } + }, + "function": { + "storelocator41a9495f41a9495fPostConfirmation": { + "build": true, + "providerPlugin": "awscloudformation", + "service": "Lambda", + "lastBuildTimeStamp": "2026-03-24T16:33:11.355Z", + "lastBuildType": "PROD", + "lastPackageTimeStamp": "2026-03-24T16:33:12.063Z", + "distZipFilename": "storelocator41a9495f41a9495fPostConfirmation-6a6c746d4739755a384a-build.zip", + "s3Bucket": { + "deploymentBucketName": "amplify-storelocator-main-f9ca7-deployment", + "s3Key": "amplify-builds/storelocator41a9495f41a9495fPostConfirmation-6a6c746d4739755a384a-build.zip" + }, + "providerMetadata": { + "s3TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/function/storelocator41a9495f41a9495fPostConfirmation-cloudformation-template.json", + "logicalId": "functionstorelocator41a9495f41a9495fPostConfirmation" + }, + "lastPushTimeStamp": "2026-03-24T16:38:00.639Z", + "output": { + "LambdaExecutionRoleArn": "arn:aws:iam::123456789012:role/storelocator41a9495f41a9495fPostConfirmation-main", + "Region": "us-east-1", + "Arn": "arn:aws:lambda:us-east-1:123456789012:function:storelocator41a9495f41a9495fPostConfirmation-main", + "Name": "storelocator41a9495f41a9495fPostConfirmation-main", + "LambdaExecutionRole": "storelocator41a9495f41a9495fPostConfirmation-main" + }, + "lastPushDirHash": "6EQkwiPaTbkyYCg4JDkMQiOWz8g=" + } + }, + "geo": { + "storeLocatorMap": { + "isDefault": true, + "providerPlugin": "awscloudformation", + "service": "Map", + "mapStyle": "VectorEsriStreets", + "accessType": "AuthorizedAndGuestUsers", + "dependsOn": [ + { + "category": "auth", + "resourceName": "storelocator41a9495f41a9495f", + "attributes": [ + "UserPoolId" + ] + }, + { + "category": "auth", + "resourceName": "userPoolGroups", + "attributes": [ + "storeLocatorAdminGroupRole" + ] + } + ], + "providerMetadata": { + "s3TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/geo/storeLocatorMap-cloudformation-template.json", + "logicalId": "geostoreLocatorMap" + }, + "lastPushTimeStamp": "2026-03-24T16:38:00.639Z", + "output": { + "Style": "VectorEsriStreets", + "Region": "us-east-1", + "Arn": "arn:aws:geo:us-east-1:123456789012:map/storeLocatorMap-main", + "Name": "storeLocatorMap-main" + }, + "lastPushDirHash": "f6hS2nqVgBHpibNEdmumaRgBCRM=" + }, + "storeLocatorSearch": { + "isDefault": true, + "providerPlugin": "awscloudformation", + "service": "PlaceIndex", + "dataProvider": "HERE", + "dataSourceIntendedUse": "SingleUse", + "accessType": "AuthorizedAndGuestUsers", + "dependsOn": [ + { + "category": "auth", + "resourceName": "storelocator41a9495f41a9495f", + "attributes": [ + "UserPoolId" + ] + }, + { + "category": "auth", + "resourceName": "userPoolGroups", + "attributes": [ + "storeLocatorAdminGroupRole" + ] + } + ], + "providerMetadata": { + "s3TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/geo/storeLocatorSearch-cloudformation-template.json", + "logicalId": "geostoreLocatorSearch" + }, + "lastPushTimeStamp": "2026-03-24T16:38:00.639Z", + "output": { + "Region": "us-east-1", + "Arn": "arn:aws:geo:us-east-1:123456789012:place-index/storeLocatorSearch-main", + "Name": "storeLocatorSearch-main" + }, + "lastPushDirHash": "DcWb0RNLHGk1nlEWvQI8kcmIhuw=" + }, + "storeLocatorGeofence": { + "isDefault": true, + "providerPlugin": "awscloudformation", + "service": "GeofenceCollection", + "accessType": "CognitoGroups", + "dependsOn": [ + { + "category": "auth", + "resourceName": "storelocator41a9495f41a9495f", + "attributes": [ + "UserPoolId" + ] + }, + { + "category": "auth", + "resourceName": "userPoolGroups", + "attributes": [ + "storeLocatorAdminGroupRole" + ] + } + ], + "providerMetadata": { + "s3TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/geo/storeLocatorGeofence-cloudformation-template.json", + "logicalId": "geostoreLocatorGeofence" + }, + "lastPushTimeStamp": "2026-03-24T16:38:00.639Z", + "output": { + "Region": "us-east-1", + "Arn": "arn:aws:geo:us-east-1:123456789012:geofence-collection/storeLocatorGeofence-main", + "Name": "storeLocatorGeofence-main" + }, + "lastPushDirHash": "qBxz5+dofKzvXa0AVAS5tnATCqA=" + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/storelocator41a9495f41a9495f/build/auth-trigger-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/storelocator41a9495f41a9495f/build/auth-trigger-cloudformation-template.json new file mode 100644 index 00000000000..e6186c748d1 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/storelocator41a9495f41a9495f/build/auth-trigger-cloudformation-template.json @@ -0,0 +1,204 @@ +{ + "Description": "Custom Resource stack for Auth Trigger created using Amplify CLI", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "env": { + "Type": "String" + }, + "userpoolId": { + "Type": "String" + }, + "userpoolArn": { + "Type": "String" + }, + "functionstorelocator41a9495f41a9495fPostConfirmationName": { + "Type": "String" + }, + "functionstorelocator41a9495f41a9495fPostConfirmationArn": { + "Type": "String" + }, + "functionstorelocator41a9495f41a9495fPostConfirmationLambdaExecutionRole": { + "Type": "String" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + }, + "Resources": { + "UserPoolPostConfirmationLambdaInvokePermission": { + "Type": "AWS::Lambda::Permission", + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "functionstorelocator41a9495f41a9495fPostConfirmationName" + }, + "Principal": "cognito-idp.amazonaws.com", + "SourceArn": { + "Ref": "userpoolArn" + } + } + }, + "Amplifyfunctionstorelocator41a9495f41a9495fPostConfirmationNamePostConfirmationAddToGroupCognitoC0815C8F": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "cognito-idp:AdminAddUserToGroup", + "cognito-idp:GetGroup", + "cognito-idp:CreateGroup" + ], + "Effect": "Allow", + "Resource": { + "Ref": "userpoolArn" + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "AddToGroupCognito", + "Roles": [ + { + "Fn::Select": [ + 1, + { + "Fn::Split": [ + "/", + { + "Fn::Select": [ + 5, + { + "Fn::Split": [ + ":", + { + "Ref": "functionstorelocator41a9495f41a9495fPostConfirmationLambdaExecutionRole" + } + ] + } + ] + } + ] + } + ] + } + ] + } + }, + "authTriggerFnServiceRole08093B67": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + } + }, + "authTriggerFnServiceRoleDefaultPolicyEC9285A8": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "cognito-idp:DescribeUserPool", + "cognito-idp:UpdateUserPool" + ], + "Effect": "Allow", + "Resource": { + "Ref": "userpoolArn" + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "authTriggerFnServiceRoleDefaultPolicyEC9285A8", + "Roles": [ + { + "Ref": "authTriggerFnServiceRole08093B67" + } + ] + } + }, + "authTriggerFn7FCFA449": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "const response = require('cfn-response');\nconst {\n CognitoIdentityProviderClient,\n DescribeUserPoolCommand,\n UpdateUserPoolCommand,\n} = require('@aws-sdk/client-cognito-identity-provider');\n\nexports.handler = (event, context) => {\n // Don't return promise, response.send() marks context as done internally\n void tryHandleEvent(event, context);\n};\n\nasync function tryHandleEvent(event, context) {\n const physicalResourceId =\n event.RequestType === 'Update' ? event.PhysicalResourceId : `${event.LogicalResourceId}-${event.ResourceProperties.userpoolId}`;\n try {\n await handleEvent(event);\n response.send(event, context, response.SUCCESS, {}, physicalResourceId);\n } catch (err) {\n console.log(err.stack);\n response.send(event, context, response.FAILED, { err }, physicalResourceId);\n }\n}\n\nasync function handleEvent(event) {\n const userPoolId = event.ResourceProperties.userpoolId;\n const { lambdaConfig } = event.ResourceProperties;\n const config = {};\n const cognitoClient = new CognitoIdentityProviderClient({});\n const userPoolConfig = await cognitoClient.send(new DescribeUserPoolCommand({ UserPoolId: userPoolId }));\n const userPoolParams = userPoolConfig.UserPool;\n // update userPool params\n\n const updateUserPoolConfig = {\n UserPoolId: userPoolParams.Id,\n Policies: userPoolParams.Policies,\n SmsVerificationMessage: userPoolParams.SmsVerificationMessage,\n AccountRecoverySetting: userPoolParams.AccountRecoverySetting,\n AdminCreateUserConfig: userPoolParams.AdminCreateUserConfig,\n AutoVerifiedAttributes: userPoolParams.AutoVerifiedAttributes,\n EmailConfiguration: userPoolParams.EmailConfiguration,\n EmailVerificationMessage: userPoolParams.EmailVerificationMessage,\n EmailVerificationSubject: userPoolParams.EmailVerificationSubject,\n VerificationMessageTemplate: userPoolParams.VerificationMessageTemplate,\n SmsAuthenticationMessage: userPoolParams.SmsAuthenticationMessage,\n MfaConfiguration: userPoolParams.MfaConfiguration,\n DeviceConfiguration: userPoolParams.DeviceConfiguration,\n SmsConfiguration: userPoolParams.SmsConfiguration,\n UserPoolTags: userPoolParams.UserPoolTags,\n UserPoolAddOns: userPoolParams.UserPoolAddOns,\n };\n\n // removing undefined keys\n Object.keys(updateUserPoolConfig).forEach((key) => updateUserPoolConfig[key] === undefined && delete updateUserPoolConfig[key]);\n\n /* removing UnusedAccountValidityDays as deprecated\n InvalidParameterException: Please use TemporaryPasswordValidityDays in PasswordPolicy instead of UnusedAccountValidityDays\n */\n if (updateUserPoolConfig.AdminCreateUserConfig && updateUserPoolConfig.AdminCreateUserConfig.UnusedAccountValidityDays) {\n delete updateUserPoolConfig.AdminCreateUserConfig.UnusedAccountValidityDays;\n }\n lambdaConfig.forEach((lambda) => (config[`${lambda.triggerType}`] = lambda.lambdaFunctionArn));\n if (event.RequestType === 'Delete') {\n updateUserPoolConfig.LambdaConfig = {};\n console.log(`${event.RequestType}:`, JSON.stringify(updateUserPoolConfig));\n const result = await cognitoClient.send(new UpdateUserPoolCommand(updateUserPoolConfig));\n console.log(`delete response data ${JSON.stringify(result)}`);\n } else if (event.RequestType === 'Update' || event.RequestType === 'Create') {\n updateUserPoolConfig.LambdaConfig = config;\n const result = await cognitoClient.send(new UpdateUserPoolCommand(updateUserPoolConfig));\n console.log(`createOrUpdate response data ${JSON.stringify(result)}`);\n }\n}\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "authTriggerFnServiceRole08093B67", + "Arn" + ] + }, + "Runtime": "nodejs22.x" + }, + "DependsOn": [ + "authTriggerFnServiceRoleDefaultPolicyEC9285A8", + "authTriggerFnServiceRole08093B67" + ] + }, + "CustomAuthTriggerResource": { + "Type": "Custom::CustomAuthTriggerResourceOutputs", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "authTriggerFn7FCFA449", + "Arn" + ] + }, + "userpoolId": { + "Ref": "userpoolId" + }, + "lambdaConfig": [ + { + "triggerType": "PostConfirmation", + "lambdaFunctionName": "storelocator41a9495f41a9495fPostConfirmation", + "lambdaFunctionArn": { + "Ref": "functionstorelocator41a9495f41a9495fPostConfirmationArn" + } + } + ], + "nonce": "a956ed2b-ea63-4747-acee-0f4cb27b3925" + }, + "DependsOn": [ + "authTriggerFn7FCFA449", + "authTriggerFnServiceRoleDefaultPolicyEC9285A8", + "authTriggerFnServiceRole08093B67" + ], + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/storelocator41a9495f41a9495f/build/parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/storelocator41a9495f41a9495f/build/parameters.json new file mode 100644 index 00000000000..cba9966059e --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/storelocator41a9495f41a9495f/build/parameters.json @@ -0,0 +1,82 @@ +{ + "identityPoolName": "storelocator41a9495f_identitypool_41a9495f", + "allowUnauthenticatedIdentities": true, + "resourceNameTruncated": "storel41a9495f", + "userPoolName": "storelocator41a9495f_userpool_41a9495f", + "autoVerifiedAttributes": [ + "email" + ], + "mfaConfiguration": "OFF", + "mfaTypes": [ + "SMS Text Message" + ], + "smsAuthenticationMessage": "Your authentication code is {####}", + "smsVerificationMessage": "Your verification code is {####}", + "emailVerificationSubject": "Your verification code", + "emailVerificationMessage": "Your verification code is {####}", + "defaultPasswordPolicy": false, + "passwordPolicyMinLength": 8, + "passwordPolicyCharacters": [], + "requiredAttributes": [ + "email" + ], + "aliasAttributes": [], + "userpoolClientGenerateSecret": false, + "userpoolClientRefreshTokenValidity": "100", + "userpoolClientWriteAttributes": [ + "email" + ], + "userpoolClientReadAttributes": [ + "email" + ], + "userpoolClientLambdaRole": "storel41a9495f_userpoolclient_lambda_role", + "userpoolClientSetAttributes": false, + "sharedId": "41a9495f", + "resourceName": "storelocator41a9495f41a9495f", + "authSelections": "identityPoolAndUserPool", + "useDefault": "manual", + "thirdPartyAuth": false, + "usernameAttributes": [ + "email" + ], + "userPoolGroups": true, + "adminQueries": false, + "triggers": "{\"PostConfirmation\":[\"add-to-group\"]}", + "hostedUI": false, + "userPoolGroupList": [ + "storeLocatorAdmin" + ], + "serviceName": "Cognito", + "usernameCaseSensitive": false, + "useEnabledMfas": true, + "authRoleArn": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + }, + "unauthRoleArn": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + }, + "breakCircularDependency": true, + "dependsOn": [ + { + "category": "function", + "resourceName": "storelocator41a9495f41a9495fPostConfirmation", + "triggerProvider": "Cognito", + "attributes": [ + "Arn", + "Name" + ] + } + ], + "permissions": [ + "{\"policyName\":\"AddToGroupCognito\",\"trigger\":\"PostConfirmation\",\"effect\":\"Allow\",\"actions\":[\"cognito-idp:AdminAddUserToGroup\",\"cognito-idp:GetGroup\",\"cognito-idp:CreateGroup\"],\"resource\":{\"paramType\":\"!GetAtt\",\"keys\":[\"UserPool\",\"Arn\"]}}" + ], + "authTriggerConnections": [ + "{\"triggerType\":\"PostConfirmation\",\"lambdaFunctionName\":\"storelocator41a9495f41a9495fPostConfirmation\"}" + ] +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/storelocator41a9495f41a9495f/build/storelocator41a9495f41a9495f-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/storelocator41a9495f41a9495f/build/storelocator41a9495f41a9495f-cloudformation-template.json new file mode 100644 index 00000000000..32f0ad747e9 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/storelocator41a9495f41a9495f/build/storelocator41a9495f41a9495f-cloudformation-template.json @@ -0,0 +1,486 @@ +{ + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"auth-Cognito\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "env": { + "Type": "String" + }, + "functionstorelocator41a9495f41a9495fPostConfirmationArn": { + "Type": "String", + "Default": "functionstorelocator41a9495f41a9495fPostConfirmationArn" + }, + "functionstorelocator41a9495f41a9495fPostConfirmationName": { + "Type": "String", + "Default": "functionstorelocator41a9495f41a9495fPostConfirmationName" + }, + "identityPoolName": { + "Type": "String" + }, + "allowUnauthenticatedIdentities": { + "Type": "String" + }, + "resourceNameTruncated": { + "Type": "String" + }, + "userPoolName": { + "Type": "String" + }, + "autoVerifiedAttributes": { + "Type": "CommaDelimitedList" + }, + "mfaConfiguration": { + "Type": "String" + }, + "mfaTypes": { + "Type": "CommaDelimitedList" + }, + "smsAuthenticationMessage": { + "Type": "String" + }, + "smsVerificationMessage": { + "Type": "String" + }, + "emailVerificationSubject": { + "Type": "String" + }, + "emailVerificationMessage": { + "Type": "String" + }, + "defaultPasswordPolicy": { + "Type": "String" + }, + "passwordPolicyMinLength": { + "Type": "String" + }, + "passwordPolicyCharacters": { + "Type": "CommaDelimitedList" + }, + "requiredAttributes": { + "Type": "CommaDelimitedList" + }, + "aliasAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientGenerateSecret": { + "Type": "String" + }, + "userpoolClientRefreshTokenValidity": { + "Type": "String" + }, + "userpoolClientWriteAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientReadAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientLambdaRole": { + "Type": "String" + }, + "userpoolClientSetAttributes": { + "Type": "String" + }, + "sharedId": { + "Type": "String" + }, + "resourceName": { + "Type": "String" + }, + "authSelections": { + "Type": "String" + }, + "useDefault": { + "Type": "String" + }, + "thirdPartyAuth": { + "Type": "String" + }, + "usernameAttributes": { + "Type": "CommaDelimitedList" + }, + "userPoolGroups": { + "Type": "String" + }, + "adminQueries": { + "Type": "String" + }, + "triggers": { + "Type": "String" + }, + "hostedUI": { + "Type": "String" + }, + "userPoolGroupList": { + "Type": "CommaDelimitedList" + }, + "serviceName": { + "Type": "String" + }, + "usernameCaseSensitive": { + "Type": "String" + }, + "useEnabledMfas": { + "Type": "String" + }, + "authRoleArn": { + "Type": "String" + }, + "unauthRoleArn": { + "Type": "String" + }, + "breakCircularDependency": { + "Type": "String" + }, + "dependsOn": { + "Type": "CommaDelimitedList" + }, + "permissions": { + "Type": "CommaDelimitedList" + }, + "authTriggerConnections": { + "Type": "CommaDelimitedList" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + }, + "Resources": { + "UserPool": { + "Type": "AWS::Cognito::UserPool", + "Properties": { + "AutoVerifiedAttributes": [ + "email" + ], + "EmailVerificationMessage": { + "Ref": "emailVerificationMessage" + }, + "EmailVerificationSubject": { + "Ref": "emailVerificationSubject" + }, + "MfaConfiguration": { + "Ref": "mfaConfiguration" + }, + "Policies": { + "PasswordPolicy": { + "MinimumLength": { + "Ref": "passwordPolicyMinLength" + }, + "RequireLowercase": false, + "RequireNumbers": false, + "RequireSymbols": false, + "RequireUppercase": false + } + }, + "Schema": [ + { + "Mutable": true, + "Name": "email", + "Required": true + } + ], + "UserAttributeUpdateSettings": { + "AttributesRequireVerificationBeforeUpdate": [ + "email" + ] + }, + "UserPoolName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + { + "Ref": "userPoolName" + }, + { + "Fn::Join": [ + "", + [ + { + "Ref": "userPoolName" + }, + "-", + { + "Ref": "env" + } + ] + ] + } + ] + }, + "UsernameAttributes": { + "Ref": "usernameAttributes" + }, + "UsernameConfiguration": { + "CaseSensitive": false + } + } + }, + "UserPoolClientWeb": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "ClientName": "storel41a9495f_app_clientWeb", + "RefreshTokenValidity": { + "Ref": "userpoolClientRefreshTokenValidity" + }, + "TokenValidityUnits": { + "RefreshToken": "days" + }, + "UserPoolId": { + "Ref": "UserPool" + } + }, + "DependsOn": [ + "UserPool" + ] + }, + "UserPoolClient": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "ClientName": "storel41a9495f_app_client", + "GenerateSecret": { + "Ref": "userpoolClientGenerateSecret" + }, + "RefreshTokenValidity": { + "Ref": "userpoolClientRefreshTokenValidity" + }, + "TokenValidityUnits": { + "RefreshToken": "days" + }, + "UserPoolId": { + "Ref": "UserPool" + } + }, + "DependsOn": [ + "UserPool" + ] + }, + "UserPoolClientRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + }, + "Action": "sts:AssumeRole" + } + ] + }, + "RoleName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + { + "Ref": "userpoolClientLambdaRole" + }, + { + "Fn::Join": [ + "", + [ + "upClientLambdaRole41a9495f", + { + "Fn::Select": [ + 3, + { + "Fn::Split": [ + "-", + { + "Ref": "AWS::StackName" + } + ] + } + ] + }, + "-", + { + "Ref": "env" + } + ] + ] + } + ] + } + } + }, + "IdentityPool": { + "Type": "AWS::Cognito::IdentityPool", + "Properties": { + "AllowUnauthenticatedIdentities": { + "Ref": "allowUnauthenticatedIdentities" + }, + "CognitoIdentityProviders": [ + { + "ClientId": { + "Ref": "UserPoolClient" + }, + "ProviderName": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "client": { + "Ref": "UserPool" + } + } + ] + } + }, + { + "ClientId": { + "Ref": "UserPoolClientWeb" + }, + "ProviderName": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "client": { + "Ref": "UserPool" + } + } + ] + } + } + ], + "IdentityPoolName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "storelocator41a9495f_identitypool_41a9495f", + { + "Fn::Join": [ + "", + [ + "storelocator41a9495f_identitypool_41a9495f__", + { + "Ref": "env" + } + ] + ] + } + ] + } + } + }, + "IdentityPoolRoleMap": { + "Type": "AWS::Cognito::IdentityPoolRoleAttachment", + "Properties": { + "IdentityPoolId": { + "Ref": "IdentityPool" + }, + "RoleMappings": { + "UserPoolClientRoleMapping": { + "AmbiguousRoleResolution": "AuthenticatedRole", + "IdentityProvider": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${userPool}:${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "userPool": { + "Ref": "UserPool" + }, + "client": { + "Ref": "UserPoolClient" + } + } + ] + }, + "Type": "Token" + }, + "UserPoolWebClientRoleMapping": { + "AmbiguousRoleResolution": "AuthenticatedRole", + "IdentityProvider": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${userPool}:${webClient}", + { + "region": { + "Ref": "AWS::Region" + }, + "userPool": { + "Ref": "UserPool" + }, + "webClient": { + "Ref": "UserPoolClientWeb" + } + } + ] + }, + "Type": "Token" + } + }, + "Roles": { + "unauthenticated": { + "Ref": "unauthRoleArn" + }, + "authenticated": { + "Ref": "authRoleArn" + } + } + }, + "DependsOn": [ + "IdentityPool", + "UserPoolClient", + "UserPoolClientWeb" + ] + } + }, + "Outputs": { + "IdentityPoolId": { + "Description": "Id for the identity pool", + "Value": { + "Ref": "IdentityPool" + } + }, + "IdentityPoolName": { + "Value": { + "Fn::GetAtt": [ + "IdentityPool", + "Name" + ] + } + }, + "UserPoolId": { + "Description": "Id for the user pool", + "Value": { + "Ref": "UserPool" + } + }, + "UserPoolArn": { + "Description": "Arn for the user pool", + "Value": { + "Fn::GetAtt": [ + "UserPool", + "Arn" + ] + } + }, + "UserPoolName": { + "Value": { + "Ref": "userPoolName" + } + }, + "AppClientIDWeb": { + "Description": "The user pool app client id for web", + "Value": { + "Ref": "UserPoolClientWeb" + } + }, + "AppClientID": { + "Description": "The user pool app client id", + "Value": { + "Ref": "UserPoolClient" + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/storelocator41a9495f41a9495f/cli-inputs.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/storelocator41a9495f41a9495f/cli-inputs.json new file mode 100644 index 00000000000..c66baffc70c --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/storelocator41a9495f41a9495f/cli-inputs.json @@ -0,0 +1,89 @@ +{ + "version": "1", + "cognitoConfig": { + "identityPoolName": "storelocator41a9495f_identitypool_41a9495f", + "allowUnauthenticatedIdentities": true, + "resourceNameTruncated": "storel41a9495f", + "userPoolName": "storelocator41a9495f_userpool_41a9495f", + "autoVerifiedAttributes": [ + "email" + ], + "mfaConfiguration": "OFF", + "mfaTypes": [ + "SMS Text Message" + ], + "smsAuthenticationMessage": "Your authentication code is {####}", + "smsVerificationMessage": "Your verification code is {####}", + "emailVerificationSubject": "Your verification code", + "emailVerificationMessage": "Your verification code is {####}", + "defaultPasswordPolicy": false, + "passwordPolicyMinLength": 8, + "passwordPolicyCharacters": [], + "requiredAttributes": [ + "email" + ], + "aliasAttributes": [], + "userpoolClientGenerateSecret": false, + "userpoolClientRefreshTokenValidity": "100", + "userpoolClientWriteAttributes": [ + "email" + ], + "userpoolClientReadAttributes": [ + "email" + ], + "userpoolClientLambdaRole": "storel41a9495f_userpoolclient_lambda_role", + "userpoolClientSetAttributes": false, + "sharedId": "41a9495f", + "resourceName": "storelocator41a9495f41a9495f", + "authSelections": "identityPoolAndUserPool", + "useDefault": "manual", + "thirdPartyAuth": false, + "usernameAttributes": [ + "email" + ], + "userPoolGroups": true, + "adminQueries": false, + "triggers": { + "PostConfirmation": [ + "add-to-group" + ] + }, + "hostedUI": false, + "userPoolGroupList": [ + "storeLocatorAdmin" + ], + "serviceName": "Cognito", + "usernameCaseSensitive": false, + "useEnabledMfas": true, + "authRoleArn": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + }, + "unauthRoleArn": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + }, + "breakCircularDependency": true, + "dependsOn": [ + { + "category": "function", + "resourceName": "storelocator41a9495f41a9495fPostConfirmation", + "triggerProvider": "Cognito", + "attributes": [ + "Arn", + "Name" + ] + } + ], + "permissions": [ + "{\"policyName\":\"AddToGroupCognito\",\"trigger\":\"PostConfirmation\",\"effect\":\"Allow\",\"actions\":[\"cognito-idp:AdminAddUserToGroup\",\"cognito-idp:GetGroup\",\"cognito-idp:CreateGroup\"],\"resource\":{\"paramType\":\"!GetAtt\",\"keys\":[\"UserPool\",\"Arn\"]}}" + ], + "authTriggerConnections": [ + "{\"triggerType\":\"PostConfirmation\",\"lambdaFunctionName\":\"storelocator41a9495f41a9495fPostConfirmation\"}" + ] + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/userPoolGroups/build/parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/userPoolGroups/build/parameters.json new file mode 100644 index 00000000000..48115bd5cd6 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/userPoolGroups/build/parameters.json @@ -0,0 +1,14 @@ +{ + "AuthRoleArn": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + }, + "UnauthRoleArn": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json new file mode 100644 index 00000000000..5edc3def07d --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json @@ -0,0 +1,109 @@ +{ + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"auth-Cognito-UserPool-Groups\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "env": { + "Type": "String" + }, + "AuthRoleArn": { + "Type": "String" + }, + "UnauthRoleArn": { + "Type": "String" + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Type": "String", + "Default": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "authstorelocator41a9495f41a9495fIdentityPoolId": { + "Type": "String", + "Default": "authstorelocator41a9495f41a9495fIdentityPoolId" + }, + "authstorelocator41a9495f41a9495fAppClientID": { + "Type": "String", + "Default": "authstorelocator41a9495f41a9495fAppClientID" + }, + "authstorelocator41a9495f41a9495fAppClientIDWeb": { + "Type": "String", + "Default": "authstorelocator41a9495f41a9495fAppClientIDWeb" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + }, + "Resources": { + "storeLocatorAdminGroup": { + "Type": "AWS::Cognito::UserPoolGroup", + "Properties": { + "Description": "override success", + "GroupName": "storeLocatorAdmin", + "Precedence": 1, + "RoleArn": { + "Fn::GetAtt": [ + "storeLocatorAdminGroupRole", + "Arn" + ] + }, + "UserPoolId": { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + } + } + }, + "storeLocatorAdminGroupRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Allow", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + }, + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringEquals": { + "cognito-identity.amazonaws.com:aud": { + "Ref": "authstorelocator41a9495f41a9495fIdentityPoolId" + } + }, + "ForAnyValue:StringLike": { + "cognito-identity.amazonaws.com:amr": "authenticated" + } + } + } + ] + }, + "RoleName": { + "Fn::Join": [ + "", + [ + { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "-storeLocatorAdminGroupRole" + ] + ] + } + } + } + }, + "Outputs": { + "storeLocatorAdminGroupRole": { + "Value": { + "Fn::GetAtt": [ + "storeLocatorAdminGroupRole", + "Arn" + ] + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/userPoolGroups/user-pool-group-precedence.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/userPoolGroups/user-pool-group-precedence.json new file mode 100644 index 00000000000..bcc9738de65 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/auth/userPoolGroups/user-pool-group-precedence.json @@ -0,0 +1,6 @@ +[ + { + "groupName": "storeLocatorAdmin", + "precedence": 1 + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/auth/storelocator41a9495f41a9495f/build/storelocator41a9495f41a9495f-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/auth/storelocator41a9495f41a9495f/build/storelocator41a9495f41a9495f-cloudformation-template.json new file mode 100644 index 00000000000..32f0ad747e9 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/auth/storelocator41a9495f41a9495f/build/storelocator41a9495f41a9495f-cloudformation-template.json @@ -0,0 +1,486 @@ +{ + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"auth-Cognito\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "env": { + "Type": "String" + }, + "functionstorelocator41a9495f41a9495fPostConfirmationArn": { + "Type": "String", + "Default": "functionstorelocator41a9495f41a9495fPostConfirmationArn" + }, + "functionstorelocator41a9495f41a9495fPostConfirmationName": { + "Type": "String", + "Default": "functionstorelocator41a9495f41a9495fPostConfirmationName" + }, + "identityPoolName": { + "Type": "String" + }, + "allowUnauthenticatedIdentities": { + "Type": "String" + }, + "resourceNameTruncated": { + "Type": "String" + }, + "userPoolName": { + "Type": "String" + }, + "autoVerifiedAttributes": { + "Type": "CommaDelimitedList" + }, + "mfaConfiguration": { + "Type": "String" + }, + "mfaTypes": { + "Type": "CommaDelimitedList" + }, + "smsAuthenticationMessage": { + "Type": "String" + }, + "smsVerificationMessage": { + "Type": "String" + }, + "emailVerificationSubject": { + "Type": "String" + }, + "emailVerificationMessage": { + "Type": "String" + }, + "defaultPasswordPolicy": { + "Type": "String" + }, + "passwordPolicyMinLength": { + "Type": "String" + }, + "passwordPolicyCharacters": { + "Type": "CommaDelimitedList" + }, + "requiredAttributes": { + "Type": "CommaDelimitedList" + }, + "aliasAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientGenerateSecret": { + "Type": "String" + }, + "userpoolClientRefreshTokenValidity": { + "Type": "String" + }, + "userpoolClientWriteAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientReadAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientLambdaRole": { + "Type": "String" + }, + "userpoolClientSetAttributes": { + "Type": "String" + }, + "sharedId": { + "Type": "String" + }, + "resourceName": { + "Type": "String" + }, + "authSelections": { + "Type": "String" + }, + "useDefault": { + "Type": "String" + }, + "thirdPartyAuth": { + "Type": "String" + }, + "usernameAttributes": { + "Type": "CommaDelimitedList" + }, + "userPoolGroups": { + "Type": "String" + }, + "adminQueries": { + "Type": "String" + }, + "triggers": { + "Type": "String" + }, + "hostedUI": { + "Type": "String" + }, + "userPoolGroupList": { + "Type": "CommaDelimitedList" + }, + "serviceName": { + "Type": "String" + }, + "usernameCaseSensitive": { + "Type": "String" + }, + "useEnabledMfas": { + "Type": "String" + }, + "authRoleArn": { + "Type": "String" + }, + "unauthRoleArn": { + "Type": "String" + }, + "breakCircularDependency": { + "Type": "String" + }, + "dependsOn": { + "Type": "CommaDelimitedList" + }, + "permissions": { + "Type": "CommaDelimitedList" + }, + "authTriggerConnections": { + "Type": "CommaDelimitedList" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + }, + "Resources": { + "UserPool": { + "Type": "AWS::Cognito::UserPool", + "Properties": { + "AutoVerifiedAttributes": [ + "email" + ], + "EmailVerificationMessage": { + "Ref": "emailVerificationMessage" + }, + "EmailVerificationSubject": { + "Ref": "emailVerificationSubject" + }, + "MfaConfiguration": { + "Ref": "mfaConfiguration" + }, + "Policies": { + "PasswordPolicy": { + "MinimumLength": { + "Ref": "passwordPolicyMinLength" + }, + "RequireLowercase": false, + "RequireNumbers": false, + "RequireSymbols": false, + "RequireUppercase": false + } + }, + "Schema": [ + { + "Mutable": true, + "Name": "email", + "Required": true + } + ], + "UserAttributeUpdateSettings": { + "AttributesRequireVerificationBeforeUpdate": [ + "email" + ] + }, + "UserPoolName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + { + "Ref": "userPoolName" + }, + { + "Fn::Join": [ + "", + [ + { + "Ref": "userPoolName" + }, + "-", + { + "Ref": "env" + } + ] + ] + } + ] + }, + "UsernameAttributes": { + "Ref": "usernameAttributes" + }, + "UsernameConfiguration": { + "CaseSensitive": false + } + } + }, + "UserPoolClientWeb": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "ClientName": "storel41a9495f_app_clientWeb", + "RefreshTokenValidity": { + "Ref": "userpoolClientRefreshTokenValidity" + }, + "TokenValidityUnits": { + "RefreshToken": "days" + }, + "UserPoolId": { + "Ref": "UserPool" + } + }, + "DependsOn": [ + "UserPool" + ] + }, + "UserPoolClient": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "ClientName": "storel41a9495f_app_client", + "GenerateSecret": { + "Ref": "userpoolClientGenerateSecret" + }, + "RefreshTokenValidity": { + "Ref": "userpoolClientRefreshTokenValidity" + }, + "TokenValidityUnits": { + "RefreshToken": "days" + }, + "UserPoolId": { + "Ref": "UserPool" + } + }, + "DependsOn": [ + "UserPool" + ] + }, + "UserPoolClientRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + }, + "Action": "sts:AssumeRole" + } + ] + }, + "RoleName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + { + "Ref": "userpoolClientLambdaRole" + }, + { + "Fn::Join": [ + "", + [ + "upClientLambdaRole41a9495f", + { + "Fn::Select": [ + 3, + { + "Fn::Split": [ + "-", + { + "Ref": "AWS::StackName" + } + ] + } + ] + }, + "-", + { + "Ref": "env" + } + ] + ] + } + ] + } + } + }, + "IdentityPool": { + "Type": "AWS::Cognito::IdentityPool", + "Properties": { + "AllowUnauthenticatedIdentities": { + "Ref": "allowUnauthenticatedIdentities" + }, + "CognitoIdentityProviders": [ + { + "ClientId": { + "Ref": "UserPoolClient" + }, + "ProviderName": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "client": { + "Ref": "UserPool" + } + } + ] + } + }, + { + "ClientId": { + "Ref": "UserPoolClientWeb" + }, + "ProviderName": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "client": { + "Ref": "UserPool" + } + } + ] + } + } + ], + "IdentityPoolName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "storelocator41a9495f_identitypool_41a9495f", + { + "Fn::Join": [ + "", + [ + "storelocator41a9495f_identitypool_41a9495f__", + { + "Ref": "env" + } + ] + ] + } + ] + } + } + }, + "IdentityPoolRoleMap": { + "Type": "AWS::Cognito::IdentityPoolRoleAttachment", + "Properties": { + "IdentityPoolId": { + "Ref": "IdentityPool" + }, + "RoleMappings": { + "UserPoolClientRoleMapping": { + "AmbiguousRoleResolution": "AuthenticatedRole", + "IdentityProvider": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${userPool}:${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "userPool": { + "Ref": "UserPool" + }, + "client": { + "Ref": "UserPoolClient" + } + } + ] + }, + "Type": "Token" + }, + "UserPoolWebClientRoleMapping": { + "AmbiguousRoleResolution": "AuthenticatedRole", + "IdentityProvider": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${userPool}:${webClient}", + { + "region": { + "Ref": "AWS::Region" + }, + "userPool": { + "Ref": "UserPool" + }, + "webClient": { + "Ref": "UserPoolClientWeb" + } + } + ] + }, + "Type": "Token" + } + }, + "Roles": { + "unauthenticated": { + "Ref": "unauthRoleArn" + }, + "authenticated": { + "Ref": "authRoleArn" + } + } + }, + "DependsOn": [ + "IdentityPool", + "UserPoolClient", + "UserPoolClientWeb" + ] + } + }, + "Outputs": { + "IdentityPoolId": { + "Description": "Id for the identity pool", + "Value": { + "Ref": "IdentityPool" + } + }, + "IdentityPoolName": { + "Value": { + "Fn::GetAtt": [ + "IdentityPool", + "Name" + ] + } + }, + "UserPoolId": { + "Description": "Id for the user pool", + "Value": { + "Ref": "UserPool" + } + }, + "UserPoolArn": { + "Description": "Arn for the user pool", + "Value": { + "Fn::GetAtt": [ + "UserPool", + "Arn" + ] + } + }, + "UserPoolName": { + "Value": { + "Ref": "userPoolName" + } + }, + "AppClientIDWeb": { + "Description": "The user pool app client id for web", + "Value": { + "Ref": "UserPoolClientWeb" + } + }, + "AppClientID": { + "Description": "The user pool app client id", + "Value": { + "Ref": "UserPoolClient" + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json new file mode 100644 index 00000000000..5edc3def07d --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json @@ -0,0 +1,109 @@ +{ + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"auth-Cognito-UserPool-Groups\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "env": { + "Type": "String" + }, + "AuthRoleArn": { + "Type": "String" + }, + "UnauthRoleArn": { + "Type": "String" + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Type": "String", + "Default": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "authstorelocator41a9495f41a9495fIdentityPoolId": { + "Type": "String", + "Default": "authstorelocator41a9495f41a9495fIdentityPoolId" + }, + "authstorelocator41a9495f41a9495fAppClientID": { + "Type": "String", + "Default": "authstorelocator41a9495f41a9495fAppClientID" + }, + "authstorelocator41a9495f41a9495fAppClientIDWeb": { + "Type": "String", + "Default": "authstorelocator41a9495f41a9495fAppClientIDWeb" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + }, + "Resources": { + "storeLocatorAdminGroup": { + "Type": "AWS::Cognito::UserPoolGroup", + "Properties": { + "Description": "override success", + "GroupName": "storeLocatorAdmin", + "Precedence": 1, + "RoleArn": { + "Fn::GetAtt": [ + "storeLocatorAdminGroupRole", + "Arn" + ] + }, + "UserPoolId": { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + } + } + }, + "storeLocatorAdminGroupRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Allow", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + }, + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringEquals": { + "cognito-identity.amazonaws.com:aud": { + "Ref": "authstorelocator41a9495f41a9495fIdentityPoolId" + } + }, + "ForAnyValue:StringLike": { + "cognito-identity.amazonaws.com:amr": "authenticated" + } + } + } + ] + }, + "RoleName": { + "Fn::Join": [ + "", + [ + { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "-storeLocatorAdminGroupRole" + ] + ] + } + } + } + }, + "Outputs": { + "storeLocatorAdminGroupRole": { + "Value": { + "Fn::GetAtt": [ + "storeLocatorAdminGroupRole", + "Arn" + ] + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/awscloudformation/build/root-cloudformation-stack.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/awscloudformation/build/root-cloudformation-stack.json new file mode 100644 index 00000000000..1b8df321c23 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/awscloudformation/build/root-cloudformation-stack.json @@ -0,0 +1,653 @@ +{ + "Description": "Root Stack for AWS Amplify CLI", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "DeploymentBucketName": { + "Type": "String", + "Default": "DeploymentBucket", + "Description": "Name of the common deployment bucket provided by the parent stack" + }, + "AuthRoleName": { + "Type": "String", + "Default": "AuthRoleName", + "Description": "Name of the common deployment bucket provided by the parent stack" + }, + "UnauthRoleName": { + "Type": "String", + "Default": "UnAuthRoleName", + "Description": "Name of the common deployment bucket provided by the parent stack" + } + }, + "Outputs": { + "Region": { + "Description": "CloudFormation provider root stack Region", + "Value": { + "Ref": "AWS::Region" + }, + "Export": { + "Name": { + "Fn::Sub": "${AWS::StackName}-Region" + } + } + }, + "StackName": { + "Description": "CloudFormation provider root stack ID", + "Value": { + "Ref": "AWS::StackName" + }, + "Export": { + "Name": { + "Fn::Sub": "${AWS::StackName}-StackName" + } + } + }, + "StackId": { + "Description": "CloudFormation provider root stack name", + "Value": { + "Ref": "AWS::StackId" + }, + "Export": { + "Name": { + "Fn::Sub": "${AWS::StackName}-StackId" + } + } + }, + "AuthRoleArn": { + "Value": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + } + }, + "UnauthRoleArn": { + "Value": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + } + }, + "DeploymentBucketName": { + "Description": "CloudFormation provider root stack deployment bucket name", + "Value": { + "Ref": "DeploymentBucketName" + }, + "Export": { + "Name": { + "Fn::Sub": "${AWS::StackName}-DeploymentBucketName" + } + } + }, + "AuthRoleName": { + "Value": { + "Ref": "AuthRole" + } + }, + "UnauthRoleName": { + "Value": { + "Ref": "UnauthRole" + } + } + }, + "Resources": { + "DeploymentBucket": { + "Type": "AWS::S3::Bucket", + "Properties": { + "BucketName": { + "Ref": "DeploymentBucketName" + }, + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { + "SSEAlgorithm": "AES256" + } + } + ] + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "DeploymentBucketBlockHTTP": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "DeploymentBucketName" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": "s3:*", + "Effect": "Deny", + "Principal": "*", + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:aws:s3:::", + { + "Ref": "DeploymentBucketName" + }, + "/*" + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:aws:s3:::", + { + "Ref": "DeploymentBucketName" + } + ] + ] + } + ], + "Condition": { + "Bool": { + "aws:SecureTransport": false + } + } + } + ] + } + } + }, + "AuthRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Deny", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + }, + "Action": "sts:AssumeRoleWithWebIdentity" + } + ] + }, + "RoleName": { + "Ref": "AuthRoleName" + } + } + }, + "UnauthRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Deny", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + }, + "Action": "sts:AssumeRoleWithWebIdentity" + } + ] + }, + "RoleName": { + "Ref": "UnauthRoleName" + } + } + }, + "AuthTriggerCustomLambdaStack": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/auth/auth-trigger-cloudformation-template.json", + "Parameters": { + "env": "main", + "userpoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "userpoolArn": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolArn" + ] + }, + "functionstorelocator41a9495f41a9495fPostConfirmationLambdaExecutionRole": { + "Fn::GetAtt": [ + "functionstorelocator41a9495f41a9495fPostConfirmation", + "Outputs.LambdaExecutionRoleArn" + ] + }, + "functionstorelocator41a9495f41a9495fPostConfirmationArn": { + "Fn::GetAtt": [ + "functionstorelocator41a9495f41a9495fPostConfirmation", + "Outputs.Arn" + ] + }, + "functionstorelocator41a9495f41a9495fPostConfirmationName": { + "Fn::GetAtt": [ + "functionstorelocator41a9495f41a9495fPostConfirmation", + "Outputs.Name" + ] + } + } + }, + "DependsOn": [ + "authstorelocator41a9495f41a9495f", + "functionstorelocator41a9495f41a9495fPostConfirmation" + ] + }, + "authuserPoolGroups": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/auth/userPoolGroups-cloudformation-template.json", + "Parameters": { + "AuthRoleArn": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + }, + "UnauthRoleArn": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "authstorelocator41a9495f41a9495fAppClientIDWeb": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.AppClientIDWeb" + ] + }, + "authstorelocator41a9495f41a9495fAppClientID": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.AppClientID" + ] + }, + "authstorelocator41a9495f41a9495fIdentityPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.IdentityPoolId" + ] + }, + "env": "main" + } + } + }, + "authstorelocator41a9495f41a9495f": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/auth/storelocator41a9495f41a9495f-cloudformation-template.json", + "Parameters": { + "identityPoolName": "storelocator41a9495f_identitypool_41a9495f", + "allowUnauthenticatedIdentities": true, + "resourceNameTruncated": "storel41a9495f", + "userPoolName": "storelocator41a9495f_userpool_41a9495f", + "autoVerifiedAttributes": "email", + "mfaConfiguration": "OFF", + "mfaTypes": "SMS Text Message", + "smsAuthenticationMessage": "Your authentication code is {####}", + "smsVerificationMessage": "Your verification code is {####}", + "emailVerificationSubject": "Your verification code", + "emailVerificationMessage": "Your verification code is {####}", + "defaultPasswordPolicy": false, + "passwordPolicyMinLength": 8, + "passwordPolicyCharacters": "", + "requiredAttributes": "email", + "aliasAttributes": "", + "userpoolClientGenerateSecret": false, + "userpoolClientRefreshTokenValidity": "100", + "userpoolClientWriteAttributes": "email", + "userpoolClientReadAttributes": "email", + "userpoolClientLambdaRole": "storel41a9495f_userpoolclient_lambda_role", + "userpoolClientSetAttributes": false, + "sharedId": "41a9495f", + "resourceName": "storelocator41a9495f41a9495f", + "authSelections": "identityPoolAndUserPool", + "useDefault": "manual", + "thirdPartyAuth": false, + "usernameAttributes": "email", + "userPoolGroups": true, + "adminQueries": false, + "triggers": "{\"PostConfirmation\":[\"add-to-group\"]}", + "hostedUI": false, + "userPoolGroupList": "storeLocatorAdmin", + "serviceName": "Cognito", + "usernameCaseSensitive": false, + "useEnabledMfas": true, + "authRoleArn": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + }, + "unauthRoleArn": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + }, + "breakCircularDependency": true, + "dependsOn": "[object Object]", + "permissions": "{\"policyName\":\"AddToGroupCognito\",\"trigger\":\"PostConfirmation\",\"effect\":\"Allow\",\"actions\":[\"cognito-idp:AdminAddUserToGroup\",\"cognito-idp:GetGroup\",\"cognito-idp:CreateGroup\"],\"resource\":{\"paramType\":\"!GetAtt\",\"keys\":[\"UserPool\",\"Arn\"]}}", + "authTriggerConnections": "{\"triggerType\":\"PostConfirmation\",\"lambdaFunctionName\":\"storelocator41a9495f41a9495fPostConfirmation\"}", + "env": "main" + } + } + }, + "functionstorelocator41a9495f41a9495fPostConfirmation": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/function/storelocator41a9495f41a9495fPostConfirmation-cloudformation-template.json", + "Parameters": { + "modules": "add-to-group", + "resourceName": "storelocator41a9495f41a9495fPostConfirmation", + "GROUP": "storeLocatorAdmin", + "deploymentBucketName": "amplify-storelocator-main-f9ca7-deployment", + "s3Key": "amplify-builds/storelocator41a9495f41a9495fPostConfirmation-6a6c746d4739755a384a-build.zip", + "env": "main" + } + } + }, + "geostoreLocatorMap": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/geo/storeLocatorMap-cloudformation-template.json", + "Parameters": { + "authRoleName": { + "Ref": "AuthRoleName" + }, + "unauthRoleName": { + "Ref": "UnauthRoleName" + }, + "mapName": "storeLocatorMap", + "mapStyle": "VectorEsriStreets", + "isDefault": true, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Fn::GetAtt": [ + "authuserPoolGroups", + "Outputs.storeLocatorAdminGroupRole" + ] + }, + "env": "main" + } + } + }, + "geostoreLocatorSearch": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/geo/storeLocatorSearch-cloudformation-template.json", + "Parameters": { + "authRoleName": { + "Ref": "AuthRoleName" + }, + "unauthRoleName": { + "Ref": "UnauthRoleName" + }, + "indexName": "storeLocatorSearch", + "dataProvider": "Here", + "dataSourceIntendedUse": "SingleUse", + "isDefault": true, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Fn::GetAtt": [ + "authuserPoolGroups", + "Outputs.storeLocatorAdminGroupRole" + ] + }, + "env": "main" + } + } + }, + "geostoreLocatorGeofence": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/geo/storeLocatorGeofence-cloudformation-template.json", + "Parameters": { + "collectionName": "storeLocatorGeofence", + "isDefault": true, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Fn::GetAtt": [ + "authuserPoolGroups", + "Outputs.storeLocatorAdminGroupRole" + ] + }, + "env": "main" + } + } + }, + "UpdateRolesWithIDPFunction": { + "DependsOn": [ + "AuthRole", + "UnauthRole", + "authstorelocator41a9495f41a9495f" + ], + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": { + "Fn::Join": [ + "\n", + [ + "const response = require('cfn-response');", + "const { IAMClient, GetRoleCommand, UpdateAssumeRolePolicyCommand } = require('@aws-sdk/client-iam');", + "exports.handler = function(event, context) {", + " // Don't return promise, response.send() marks context as done internally", + " const ignoredPromise = handleEvent(event, context)", + "};", + "async function handleEvent(event, context) {", + " try {", + " let authRoleName = event.ResourceProperties.authRoleName;", + " let unauthRoleName = event.ResourceProperties.unauthRoleName;", + " let idpId = event.ResourceProperties.idpId;", + " let authParamsJson = {", + " 'Version': '2012-10-17',", + " 'Statement': [{", + " 'Effect': 'Allow',", + " 'Principal': {'Federated': 'cognito-identity.amazonaws.com'},", + " 'Action': 'sts:AssumeRoleWithWebIdentity',", + " 'Condition': {", + " 'StringEquals': {'cognito-identity.amazonaws.com:aud': idpId},", + " 'ForAnyValue:StringLike': {'cognito-identity.amazonaws.com:amr': 'authenticated'}", + " }", + " }]", + " };", + " let unauthParamsJson = {", + " 'Version': '2012-10-17',", + " 'Statement': [{", + " 'Effect': 'Allow',", + " 'Principal': {'Federated': 'cognito-identity.amazonaws.com'},", + " 'Action': 'sts:AssumeRoleWithWebIdentity',", + " 'Condition': {", + " 'StringEquals': {'cognito-identity.amazonaws.com:aud': idpId},", + " 'ForAnyValue:StringLike': {'cognito-identity.amazonaws.com:amr': 'unauthenticated'}", + " }", + " }]", + " };", + " if (event.RequestType === 'Delete') {", + " try {", + " delete authParamsJson.Statement[0].Condition;", + " delete unauthParamsJson.Statement[0].Condition;", + " authParamsJson.Statement[0].Effect = 'Deny'", + " unauthParamsJson.Statement[0].Effect = 'Deny'", + " let authParams = {PolicyDocument: JSON.stringify(authParamsJson), RoleName: authRoleName};", + " let unauthParams = {PolicyDocument: JSON.stringify(unauthParamsJson), RoleName: unauthRoleName};", + " const iam = new IAMClient({region: event.ResourceProperties.region});", + " let res = await Promise.all([", + " iam.send(new GetRoleCommand({RoleName: authParams.RoleName})),", + " iam.send(new GetRoleCommand({RoleName: unauthParams.RoleName}))", + " ]);", + " res = await Promise.all([", + " iam.send(new UpdateAssumeRolePolicyCommand(authParams)),", + " iam.send(new UpdateAssumeRolePolicyCommand(unauthParams))", + " ]);", + " response.send(event, context, response.SUCCESS, {});", + " } catch (err) {", + " console.log(err.stack);", + " response.send(event, context, response.SUCCESS, {Error: err});", + " }", + " } else if (event.RequestType === 'Update' || event.RequestType === 'Create') {", + " const iam = new IAMClient({region: event.ResourceProperties.region});", + " let authParams = {PolicyDocument: JSON.stringify(authParamsJson), RoleName: authRoleName};", + " let unauthParams = {PolicyDocument: JSON.stringify(unauthParamsJson), RoleName: unauthRoleName};", + " const res = await Promise.all([", + " iam.send(new UpdateAssumeRolePolicyCommand(authParams)),", + " iam.send(new UpdateAssumeRolePolicyCommand(unauthParams))", + " ]);", + " response.send(event, context, response.SUCCESS, {});", + " }", + " } catch (err) {", + " console.log(err.stack);", + " response.send(event, context, response.FAILED, {Error: err});", + " }", + "};" + ] + ] + } + }, + "Handler": "index.handler", + "Runtime": "nodejs22.x", + "Timeout": 300, + "Role": { + "Fn::GetAtt": [ + "UpdateRolesWithIDPFunctionRole", + "Arn" + ] + } + } + }, + "UpdateRolesWithIDPFunctionOutputs": { + "Type": "Custom::LambdaCallout", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "UpdateRolesWithIDPFunction", + "Arn" + ] + }, + "region": { + "Ref": "AWS::Region" + }, + "idpId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.IdentityPoolId" + ] + }, + "authRoleName": { + "Ref": "AuthRole" + }, + "unauthRoleName": { + "Ref": "UnauthRole" + } + } + }, + "UpdateRolesWithIDPFunctionRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "RoleName": { + "Fn::Join": [ + "", + [ + { + "Ref": "AuthRole" + }, + "-idp" + ] + ] + }, + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + }, + "Action": [ + "sts:AssumeRole" + ] + } + ] + }, + "Policies": [ + { + "PolicyName": "UpdateRolesWithIDPFunctionPolicy", + "PolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Resource": "arn:aws:logs:*:*:*" + }, + { + "Effect": "Allow", + "Action": [ + "iam:UpdateAssumeRolePolicy", + "iam:GetRole" + ], + "Resource": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + } + }, + { + "Effect": "Allow", + "Action": [ + "iam:UpdateAssumeRolePolicy", + "iam:GetRole" + ], + "Resource": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + } + } + ] + } + } + ] + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/function/storelocator41a9495f41a9495fPostConfirmation/storelocator41a9495f41a9495fPostConfirmation-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/function/storelocator41a9495f41a9495fPostConfirmation/storelocator41a9495f41a9495fPostConfirmation-cloudformation-template.json new file mode 100644 index 00000000000..192bbea9292 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/function/storelocator41a9495f41a9495fPostConfirmation/storelocator41a9495f41a9495fPostConfirmation-cloudformation-template.json @@ -0,0 +1,235 @@ +{ + "AWSTemplateFormatVersion": "2010-09-09", + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"function-Lambda\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "Parameters": { + "GROUP": { + "Type": "String", + "Default": "" + }, + "modules": { + "Type": "String", + "Default": "", + "Description": "Comma-delimited list of modules to be executed by a lambda trigger. Sent to resource as an env variable." + }, + "resourceName": { + "Type": "String", + "Default": "" + }, + "trigger": { + "Type": "String", + "Default": "true" + }, + "functionName": { + "Type": "String", + "Default": "" + }, + "roleName": { + "Type": "String", + "Default": "" + }, + "parentResource": { + "Type": "String", + "Default": "" + }, + "parentStack": { + "Type": "String", + "Default": "" + }, + "env": { + "Type": "String" + }, + "deploymentBucketName": { + "Type": "String" + }, + "s3Key": { + "Type": "String" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + }, + "Resources": { + "LambdaFunction": { + "Type": "AWS::Lambda::Function", + "Metadata": { + "aws:asset:path": "./src", + "aws:asset:property": "Code" + }, + "Properties": { + "Handler": "index.handler", + "FunctionName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "storelocator41a9495f41a9495fPostConfirmation", + { + "Fn::Join": [ + "", + [ + "storelocator41a9495f41a9495fPostConfirmation", + "-", + { + "Ref": "env" + } + ] + ] + } + ] + }, + "Environment": { + "Variables": { + "ENV": { + "Ref": "env" + }, + "MODULES": { + "Ref": "modules" + }, + "REGION": { + "Ref": "AWS::Region" + }, + "GROUP": { + "Ref": "GROUP" + } + } + }, + "Role": { + "Fn::GetAtt": [ + "LambdaExecutionRole", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Timeout": 25, + "Code": { + "S3Bucket": { + "Ref": "deploymentBucketName" + }, + "S3Key": { + "Ref": "s3Key" + } + } + } + }, + "LambdaExecutionRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "RoleName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "storelocator41a9495f41a9495fPostConfirmation", + { + "Fn::Join": [ + "", + [ + "storelocator41a9495f41a9495fPostConfirmation", + "-", + { + "Ref": "env" + } + ] + ] + } + ] + }, + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + }, + "Action": [ + "sts:AssumeRole" + ] + } + ] + } + } + }, + "lambdaexecutionpolicy": { + "DependsOn": [ + "LambdaExecutionRole" + ], + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyName": "lambda-execution-policy", + "Roles": [ + { + "Ref": "LambdaExecutionRole" + } + ], + "PolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Resource": { + "Fn::Sub": [ + "arn:aws:logs:${region}:${account}:log-group:/aws/lambda/${lambda}:log-stream:*", + { + "region": { + "Ref": "AWS::Region" + }, + "account": { + "Ref": "AWS::AccountId" + }, + "lambda": { + "Ref": "LambdaFunction" + } + } + ] + } + } + ] + } + } + } + }, + "Outputs": { + "Name": { + "Value": { + "Ref": "LambdaFunction" + } + }, + "Arn": { + "Value": { + "Fn::GetAtt": [ + "LambdaFunction", + "Arn" + ] + } + }, + "LambdaExecutionRole": { + "Value": { + "Ref": "LambdaExecutionRole" + } + }, + "LambdaExecutionRoleArn": { + "Value": { + "Fn::GetAtt": [ + "LambdaExecutionRole", + "Arn" + ] + } + }, + "Region": { + "Value": { + "Ref": "AWS::Region" + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/geo/storeLocatorGeofence/storeLocatorGeofence-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/geo/storeLocatorGeofence/storeLocatorGeofence-cloudformation-template.json new file mode 100644 index 00000000000..17020d54719 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/geo/storeLocatorGeofence/storeLocatorGeofence-cloudformation-template.json @@ -0,0 +1,364 @@ +{ + "Mappings": { + "RegionMapping": { + "us-east-1": { + "locationServiceRegion": "us-east-1" + }, + "us-east-2": { + "locationServiceRegion": "us-east-2" + }, + "us-west-2": { + "locationServiceRegion": "us-west-2" + }, + "ap-southeast-1": { + "locationServiceRegion": "ap-southeast-1" + }, + "ap-southeast-2": { + "locationServiceRegion": "ap-southeast-2" + }, + "ap-northeast-1": { + "locationServiceRegion": "ap-northeast-1" + }, + "eu-central-1": { + "locationServiceRegion": "eu-central-1" + }, + "eu-north-1": { + "locationServiceRegion": "eu-north-1" + }, + "eu-west-1": { + "locationServiceRegion": "eu-west-1" + }, + "sa-east-1": { + "locationServiceRegion": "us-east-1" + }, + "ca-central-1": { + "locationServiceRegion": "us-east-1" + }, + "us-west-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-north-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-northwest-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-south-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-3": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-2": { + "locationServiceRegion": "us-west-2" + }, + "eu-west-2": { + "locationServiceRegion": "eu-west-1" + }, + "eu-west-3": { + "locationServiceRegion": "eu-west-1" + }, + "me-south-1": { + "locationServiceRegion": "ap-southeast-1" + } + } + }, + "Parameters": { + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Type": "String" + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Type": "String" + }, + "collectionName": { + "Type": "String" + }, + "env": { + "Type": "String" + }, + "isDefault": { + "Type": "String" + } + }, + "Resources": { + "CustomGeofenceCollectionLambdaServiceRole9040D551": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + } + }, + "CustomGeofenceCollectionLambdaServiceRoleDefaultPolicy0A18B369": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "geo:CreateGeofenceCollection", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "geo:UpdateGeofenceCollection", + "geo:DeleteGeofenceCollection" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:geofence-collection/${collectionName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "collectionName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "collectionName" + }, + { + "Ref": "env" + } + ] + ] + } + } + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "CustomGeofenceCollectionLambdaServiceRoleDefaultPolicy0A18B369", + "Roles": [ + { + "Ref": "CustomGeofenceCollectionLambdaServiceRole9040D551" + } + ] + } + }, + "CustomGeofenceCollectionLambdaCA3D002B": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "const response = require('cfn-response');\nconst {\n LocationClient,\n CreateGeofenceCollectionCommand,\n DeleteGeofenceCollectionCommand,\n UpdateGeofenceCollectionCommand,\n} = require('@aws-sdk/client-location');\nexports.handler = async function (event, context) {\n try {\n console.log('REQUEST RECEIVED:' + JSON.stringify(event));\n const pricingPlan = 'RequestBasedUsage';\n if (event.RequestType === 'Create') {\n const params = {\n CollectionName: event.ResourceProperties.collectionName,\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new CreateGeofenceCollectionCommand(params));\n console.log('create resource response data' + JSON.stringify(res));\n if (res.CollectionName && res.CollectionArn) {\n await response.send(event, context, response.SUCCESS, res, params.CollectionName);\n } else {\n await response.send(event, context, response.FAILED, res, params.CollectionName);\n }\n }\n if (event.RequestType === 'Update') {\n const params = {\n CollectionName: event.ResourceProperties.collectionName,\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new UpdateGeofenceCollectionCommand(params));\n console.log('update resource response data' + JSON.stringify(res));\n if (res.CollectionName) {\n await response.send(event, context, response.SUCCESS, res, params.CollectionName);\n } else {\n await response.send(event, context, response.FAILED, res, params.CollectionName);\n }\n }\n if (event.RequestType === 'Delete') {\n const params = {\n CollectionName: event.ResourceProperties.collectionName,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new DeleteGeofenceCollectionCommand(params));\n console.log('delete resource response data' + JSON.stringify(res));\n await response.send(event, context, response.SUCCESS, res, params.CollectionName);\n }\n } catch (err) {\n console.log(err.stack);\n const res = { Error: err };\n await response.send(event, context, response.FAILED, res, event.ResourceProperties.collectionName);\n throw err;\n }\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "CustomGeofenceCollectionLambdaServiceRole9040D551", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Timeout": 300 + }, + "DependsOn": [ + "CustomGeofenceCollectionLambdaServiceRoleDefaultPolicy0A18B369", + "CustomGeofenceCollectionLambdaServiceRole9040D551" + ] + }, + "CustomGeofenceCollection": { + "Type": "Custom::LambdaCallout", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "CustomGeofenceCollectionLambdaCA3D002B", + "Arn" + ] + }, + "collectionName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "collectionName" + }, + { + "Ref": "env" + } + ] + ] + }, + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "env": { + "Ref": "env" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "storeLocatorAdminGeofenceCollectionPolicy": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "geo:GetGeofence", + "geo:PutGeofence", + "geo:BatchPutGeofence", + "geo:BatchDeleteGeofence", + "geo:ListGeofences" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:geofence-collection/${collectionName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "collectionName": { + "Fn::GetAtt": [ + "CustomGeofenceCollection", + "CollectionName" + ] + } + } + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": { + "Fn::Join": [ + "", + [ + "storeLocatorAdmin", + { + "Fn::Join": [ + "-", + [ + { + "Ref": "collectionName" + }, + { + "Ref": "env" + } + ] + ] + }, + "Policy" + ] + ] + }, + "Roles": [ + { + "Fn::Join": [ + "-", + [ + { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "storeLocatorAdminGroupRole" + ] + ] + } + ] + } + } + }, + "Outputs": { + "Name": { + "Value": { + "Fn::GetAtt": [ + "CustomGeofenceCollection", + "CollectionName" + ] + } + }, + "Region": { + "Value": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + } + }, + "Arn": { + "Value": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:geofence-collection/${collectionName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "collectionName": { + "Fn::GetAtt": [ + "CustomGeofenceCollection", + "CollectionName" + ] + } + } + ] + } + } + }, + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"geo-GeofenceCollection\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}" +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/geo/storeLocatorMap/storeLocatorMap-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/geo/storeLocatorMap/storeLocatorMap-cloudformation-template.json new file mode 100644 index 00000000000..bf53b69ff23 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/geo/storeLocatorMap/storeLocatorMap-cloudformation-template.json @@ -0,0 +1,347 @@ +{ + "Mappings": { + "RegionMapping": { + "us-east-1": { + "locationServiceRegion": "us-east-1" + }, + "us-east-2": { + "locationServiceRegion": "us-east-2" + }, + "us-west-2": { + "locationServiceRegion": "us-west-2" + }, + "ap-southeast-1": { + "locationServiceRegion": "ap-southeast-1" + }, + "ap-southeast-2": { + "locationServiceRegion": "ap-southeast-2" + }, + "ap-northeast-1": { + "locationServiceRegion": "ap-northeast-1" + }, + "eu-central-1": { + "locationServiceRegion": "eu-central-1" + }, + "eu-north-1": { + "locationServiceRegion": "eu-north-1" + }, + "eu-west-1": { + "locationServiceRegion": "eu-west-1" + }, + "sa-east-1": { + "locationServiceRegion": "us-east-1" + }, + "ca-central-1": { + "locationServiceRegion": "us-east-1" + }, + "us-west-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-north-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-northwest-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-south-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-3": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-2": { + "locationServiceRegion": "us-west-2" + }, + "eu-west-2": { + "locationServiceRegion": "eu-west-1" + }, + "eu-west-3": { + "locationServiceRegion": "eu-west-1" + }, + "me-south-1": { + "locationServiceRegion": "ap-southeast-1" + } + } + }, + "Parameters": { + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Type": "String" + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Type": "String" + }, + "authRoleName": { + "Type": "String" + }, + "unauthRoleName": { + "Type": "String" + }, + "mapName": { + "Type": "String" + }, + "mapStyle": { + "Type": "String" + }, + "env": { + "Type": "String" + }, + "isDefault": { + "Type": "String" + } + }, + "Resources": { + "CustomMapLambdaServiceRole4EE7732C": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + } + }, + "CustomMapLambdaServiceRoleDefaultPolicy983FDD4E": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "geo:CreateMap", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "geo:UpdateMap", + "geo:DeleteMap" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:map/${mapName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "mapName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "mapName" + }, + { + "Ref": "env" + } + ] + ] + } + } + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "CustomMapLambdaServiceRoleDefaultPolicy983FDD4E", + "Roles": [ + { + "Ref": "CustomMapLambdaServiceRole4EE7732C" + } + ] + } + }, + "CustomMapLambda51D5D430": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "const response = require('cfn-response');\nconst { LocationClient, CreateMapCommand, DeleteMapCommand, UpdateMapCommand } = require('@aws-sdk/client-location');\nexports.handler = async function (event, context) {\n try {\n console.log('REQUEST RECEIVED:' + JSON.stringify(event));\n const pricingPlan = 'RequestBasedUsage';\n if (event.RequestType === 'Create') {\n let params = {\n MapName: event.ResourceProperties.mapName,\n Configuration: {\n Style: event.ResourceProperties.mapStyle,\n },\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new CreateMapCommand(params));\n console.log('create resource response data' + JSON.stringify(res));\n if (res.MapName && res.MapArn) {\n await response.send(event, context, response.SUCCESS, res, params.MapName);\n } else {\n await response.send(event, context, response.FAILED, res, params.MapName);\n }\n }\n if (event.RequestType === 'Update') {\n let params = {\n MapName: event.ResourceProperties.mapName,\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new UpdateMapCommand(params));\n console.log('update resource response data' + JSON.stringify(res));\n if (res.MapName && res.MapArn) {\n await response.send(event, context, response.SUCCESS, res, params.MapName);\n } else {\n await response.send(event, context, response.FAILED, res, params.MapName);\n }\n }\n if (event.RequestType === 'Delete') {\n let params = {\n MapName: event.ResourceProperties.mapName,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new DeleteMapCommand(params));\n console.log('delete resource response data' + JSON.stringify(res));\n await response.send(event, context, response.SUCCESS, res, params.MapName);\n }\n } catch (err) {\n console.log(err.stack);\n const res = { Error: err };\n await response.send(event, context, response.FAILED, res, event.ResourceProperties.mapName);\n throw err;\n }\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "CustomMapLambdaServiceRole4EE7732C", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Timeout": 300 + }, + "DependsOn": [ + "CustomMapLambdaServiceRoleDefaultPolicy983FDD4E", + "CustomMapLambdaServiceRole4EE7732C" + ] + }, + "CustomMap": { + "Type": "Custom::LambdaCallout", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "CustomMapLambda51D5D430", + "Arn" + ] + }, + "mapName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "mapName" + }, + { + "Ref": "env" + } + ] + ] + }, + "mapStyle": { + "Ref": "mapStyle" + }, + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "env": { + "Ref": "env" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "MapPolicy": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "geo:GetMapStyleDescriptor", + "geo:GetMapGlyphs", + "geo:GetMapSprites", + "geo:GetMapTile" + ], + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "CustomMap", + "MapArn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": { + "Fn::Join": [ + "", + [ + { + "Fn::Join": [ + "-", + [ + { + "Ref": "mapName" + }, + { + "Ref": "env" + } + ] + ] + }, + "Policy" + ] + ] + }, + "Roles": [ + { + "Ref": "authRoleName" + }, + { + "Ref": "unauthRoleName" + }, + { + "Fn::Join": [ + "-", + [ + { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "storeLocatorAdminGroupRole" + ] + ] + } + ] + } + } + }, + "Outputs": { + "Name": { + "Value": { + "Fn::GetAtt": [ + "CustomMap", + "MapName" + ] + } + }, + "Style": { + "Value": { + "Ref": "mapStyle" + } + }, + "Region": { + "Value": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + } + }, + "Arn": { + "Value": { + "Fn::GetAtt": [ + "CustomMap", + "MapArn" + ] + } + } + }, + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"geo-Map\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}" +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/geo/storeLocatorSearch/storeLocatorSearch-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/geo/storeLocatorSearch/storeLocatorSearch-cloudformation-template.json new file mode 100644 index 00000000000..1ef40f17717 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/geo/storeLocatorSearch/storeLocatorSearch-cloudformation-template.json @@ -0,0 +1,348 @@ +{ + "Mappings": { + "RegionMapping": { + "us-east-1": { + "locationServiceRegion": "us-east-1" + }, + "us-east-2": { + "locationServiceRegion": "us-east-2" + }, + "us-west-2": { + "locationServiceRegion": "us-west-2" + }, + "ap-southeast-1": { + "locationServiceRegion": "ap-southeast-1" + }, + "ap-southeast-2": { + "locationServiceRegion": "ap-southeast-2" + }, + "ap-northeast-1": { + "locationServiceRegion": "ap-northeast-1" + }, + "eu-central-1": { + "locationServiceRegion": "eu-central-1" + }, + "eu-north-1": { + "locationServiceRegion": "eu-north-1" + }, + "eu-west-1": { + "locationServiceRegion": "eu-west-1" + }, + "sa-east-1": { + "locationServiceRegion": "us-east-1" + }, + "ca-central-1": { + "locationServiceRegion": "us-east-1" + }, + "us-west-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-north-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-northwest-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-south-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-3": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-2": { + "locationServiceRegion": "us-west-2" + }, + "eu-west-2": { + "locationServiceRegion": "eu-west-1" + }, + "eu-west-3": { + "locationServiceRegion": "eu-west-1" + }, + "me-south-1": { + "locationServiceRegion": "ap-southeast-1" + } + } + }, + "Parameters": { + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Type": "String" + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Type": "String" + }, + "authRoleName": { + "Type": "String" + }, + "unauthRoleName": { + "Type": "String" + }, + "indexName": { + "Type": "String" + }, + "dataProvider": { + "Type": "String" + }, + "dataSourceIntendedUse": { + "Type": "String" + }, + "env": { + "Type": "String" + }, + "isDefault": { + "Type": "String" + } + }, + "Resources": { + "CustomPlaceIndexLambdaServiceRoleFD2F3C9D": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + } + }, + "CustomPlaceIndexLambdaServiceRoleDefaultPolicy818068B1": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "geo:CreatePlaceIndex", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "geo:UpdatePlaceIndex", + "geo:DeletePlaceIndex" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:place-index/${indexName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "indexName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "indexName" + }, + { + "Ref": "env" + } + ] + ] + } + } + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "CustomPlaceIndexLambdaServiceRoleDefaultPolicy818068B1", + "Roles": [ + { + "Ref": "CustomPlaceIndexLambdaServiceRoleFD2F3C9D" + } + ] + } + }, + "CustomPlaceIndexLambda79813BB9": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "const response = require('cfn-response');\nconst { LocationClient, CreatePlaceIndexCommand, DeletePlaceIndexCommand, UpdatePlaceIndexCommand } = require('@aws-sdk/client-location');\nexports.handler = async function (event, context) {\n try {\n console.log('REQUEST RECEIVED:' + JSON.stringify(event));\n const pricingPlan = 'RequestBasedUsage';\n if (event.RequestType === 'Create') {\n const params = {\n IndexName: event.ResourceProperties.indexName,\n DataSource: event.ResourceProperties.dataSource,\n DataSourceConfiguration: {\n IntendedUse: event.ResourceProperties.dataSourceIntendedUse,\n },\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new CreatePlaceIndexCommand(params));\n console.log('create resource response data' + JSON.stringify(res));\n if (res.IndexName && res.IndexArn) {\n event.PhysicalResourceId = res.IndexName;\n await response.send(event, context, response.SUCCESS, res, params.IndexName);\n } else {\n await response.send(event, context, response.FAILED, res, params.IndexName);\n }\n }\n if (event.RequestType === 'Update') {\n const params = {\n IndexName: event.ResourceProperties.indexName,\n DataSourceConfiguration: {\n IntendedUse: event.ResourceProperties.dataSourceIntendedUse,\n },\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new UpdatePlaceIndexCommand(params));\n console.log('update resource response data' + JSON.stringify(res));\n if (res.IndexName && res.IndexArn) {\n event.PhysicalResourceId = res.IndexName;\n await response.send(event, context, response.SUCCESS, res, params.IndexName);\n } else {\n await response.send(event, context, response.FAILED, res, params.IndexName);\n }\n }\n if (event.RequestType === 'Delete') {\n const params = {\n IndexName: event.ResourceProperties.indexName,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new DeletePlaceIndexCommand(params));\n event.PhysicalResourceId = event.ResourceProperties.indexName;\n console.log('delete resource response data' + JSON.stringify(res));\n await response.send(event, context, response.SUCCESS, res, params.IndexName);\n }\n } catch (err) {\n console.log(err.stack);\n const res = { Error: err };\n await response.send(event, context, response.FAILED, res, event.ResourceProperties.indexName);\n throw err;\n }\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "CustomPlaceIndexLambdaServiceRoleFD2F3C9D", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Timeout": 300 + }, + "DependsOn": [ + "CustomPlaceIndexLambdaServiceRoleDefaultPolicy818068B1", + "CustomPlaceIndexLambdaServiceRoleFD2F3C9D" + ] + }, + "CustomPlaceIndex": { + "Type": "Custom::LambdaCallout", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "CustomPlaceIndexLambda79813BB9", + "Arn" + ] + }, + "indexName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "indexName" + }, + { + "Ref": "env" + } + ] + ] + }, + "dataSource": { + "Ref": "dataProvider" + }, + "dataSourceIntendedUse": { + "Ref": "dataSourceIntendedUse" + }, + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "env": { + "Ref": "env" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "PlaceIndexPolicy": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "geo:SearchPlaceIndexForPosition", + "geo:SearchPlaceIndexForText", + "geo:SearchPlaceIndexForSuggestions", + "geo:GetPlace" + ], + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "CustomPlaceIndex", + "IndexArn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": { + "Fn::Join": [ + "", + [ + { + "Fn::Join": [ + "-", + [ + { + "Ref": "indexName" + }, + { + "Ref": "env" + } + ] + ] + }, + "Policy" + ] + ] + }, + "Roles": [ + { + "Ref": "authRoleName" + }, + { + "Ref": "unauthRoleName" + }, + { + "Fn::Join": [ + "-", + [ + { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "storeLocatorAdminGroupRole" + ] + ] + } + ] + } + } + }, + "Outputs": { + "Name": { + "Value": { + "Fn::GetAtt": [ + "CustomPlaceIndex", + "IndexName" + ] + } + }, + "Region": { + "Value": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + } + }, + "Arn": { + "Value": { + "Fn::GetAtt": [ + "CustomPlaceIndex", + "IndexArn" + ] + } + } + }, + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"geo-PlaceIndex\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}" +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/root-cloudformation-stack.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/root-cloudformation-stack.json new file mode 100644 index 00000000000..1b8df321c23 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/awscloudformation/build/root-cloudformation-stack.json @@ -0,0 +1,653 @@ +{ + "Description": "Root Stack for AWS Amplify CLI", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "DeploymentBucketName": { + "Type": "String", + "Default": "DeploymentBucket", + "Description": "Name of the common deployment bucket provided by the parent stack" + }, + "AuthRoleName": { + "Type": "String", + "Default": "AuthRoleName", + "Description": "Name of the common deployment bucket provided by the parent stack" + }, + "UnauthRoleName": { + "Type": "String", + "Default": "UnAuthRoleName", + "Description": "Name of the common deployment bucket provided by the parent stack" + } + }, + "Outputs": { + "Region": { + "Description": "CloudFormation provider root stack Region", + "Value": { + "Ref": "AWS::Region" + }, + "Export": { + "Name": { + "Fn::Sub": "${AWS::StackName}-Region" + } + } + }, + "StackName": { + "Description": "CloudFormation provider root stack ID", + "Value": { + "Ref": "AWS::StackName" + }, + "Export": { + "Name": { + "Fn::Sub": "${AWS::StackName}-StackName" + } + } + }, + "StackId": { + "Description": "CloudFormation provider root stack name", + "Value": { + "Ref": "AWS::StackId" + }, + "Export": { + "Name": { + "Fn::Sub": "${AWS::StackName}-StackId" + } + } + }, + "AuthRoleArn": { + "Value": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + } + }, + "UnauthRoleArn": { + "Value": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + } + }, + "DeploymentBucketName": { + "Description": "CloudFormation provider root stack deployment bucket name", + "Value": { + "Ref": "DeploymentBucketName" + }, + "Export": { + "Name": { + "Fn::Sub": "${AWS::StackName}-DeploymentBucketName" + } + } + }, + "AuthRoleName": { + "Value": { + "Ref": "AuthRole" + } + }, + "UnauthRoleName": { + "Value": { + "Ref": "UnauthRole" + } + } + }, + "Resources": { + "DeploymentBucket": { + "Type": "AWS::S3::Bucket", + "Properties": { + "BucketName": { + "Ref": "DeploymentBucketName" + }, + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { + "SSEAlgorithm": "AES256" + } + } + ] + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "DeploymentBucketBlockHTTP": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "DeploymentBucketName" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": "s3:*", + "Effect": "Deny", + "Principal": "*", + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:aws:s3:::", + { + "Ref": "DeploymentBucketName" + }, + "/*" + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:aws:s3:::", + { + "Ref": "DeploymentBucketName" + } + ] + ] + } + ], + "Condition": { + "Bool": { + "aws:SecureTransport": false + } + } + } + ] + } + } + }, + "AuthRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Deny", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + }, + "Action": "sts:AssumeRoleWithWebIdentity" + } + ] + }, + "RoleName": { + "Ref": "AuthRoleName" + } + } + }, + "UnauthRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Deny", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + }, + "Action": "sts:AssumeRoleWithWebIdentity" + } + ] + }, + "RoleName": { + "Ref": "UnauthRoleName" + } + } + }, + "AuthTriggerCustomLambdaStack": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/auth/auth-trigger-cloudformation-template.json", + "Parameters": { + "env": "main", + "userpoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "userpoolArn": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolArn" + ] + }, + "functionstorelocator41a9495f41a9495fPostConfirmationLambdaExecutionRole": { + "Fn::GetAtt": [ + "functionstorelocator41a9495f41a9495fPostConfirmation", + "Outputs.LambdaExecutionRoleArn" + ] + }, + "functionstorelocator41a9495f41a9495fPostConfirmationArn": { + "Fn::GetAtt": [ + "functionstorelocator41a9495f41a9495fPostConfirmation", + "Outputs.Arn" + ] + }, + "functionstorelocator41a9495f41a9495fPostConfirmationName": { + "Fn::GetAtt": [ + "functionstorelocator41a9495f41a9495fPostConfirmation", + "Outputs.Name" + ] + } + } + }, + "DependsOn": [ + "authstorelocator41a9495f41a9495f", + "functionstorelocator41a9495f41a9495fPostConfirmation" + ] + }, + "authuserPoolGroups": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/auth/userPoolGroups-cloudformation-template.json", + "Parameters": { + "AuthRoleArn": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + }, + "UnauthRoleArn": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "authstorelocator41a9495f41a9495fAppClientIDWeb": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.AppClientIDWeb" + ] + }, + "authstorelocator41a9495f41a9495fAppClientID": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.AppClientID" + ] + }, + "authstorelocator41a9495f41a9495fIdentityPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.IdentityPoolId" + ] + }, + "env": "main" + } + } + }, + "authstorelocator41a9495f41a9495f": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/auth/storelocator41a9495f41a9495f-cloudformation-template.json", + "Parameters": { + "identityPoolName": "storelocator41a9495f_identitypool_41a9495f", + "allowUnauthenticatedIdentities": true, + "resourceNameTruncated": "storel41a9495f", + "userPoolName": "storelocator41a9495f_userpool_41a9495f", + "autoVerifiedAttributes": "email", + "mfaConfiguration": "OFF", + "mfaTypes": "SMS Text Message", + "smsAuthenticationMessage": "Your authentication code is {####}", + "smsVerificationMessage": "Your verification code is {####}", + "emailVerificationSubject": "Your verification code", + "emailVerificationMessage": "Your verification code is {####}", + "defaultPasswordPolicy": false, + "passwordPolicyMinLength": 8, + "passwordPolicyCharacters": "", + "requiredAttributes": "email", + "aliasAttributes": "", + "userpoolClientGenerateSecret": false, + "userpoolClientRefreshTokenValidity": "100", + "userpoolClientWriteAttributes": "email", + "userpoolClientReadAttributes": "email", + "userpoolClientLambdaRole": "storel41a9495f_userpoolclient_lambda_role", + "userpoolClientSetAttributes": false, + "sharedId": "41a9495f", + "resourceName": "storelocator41a9495f41a9495f", + "authSelections": "identityPoolAndUserPool", + "useDefault": "manual", + "thirdPartyAuth": false, + "usernameAttributes": "email", + "userPoolGroups": true, + "adminQueries": false, + "triggers": "{\"PostConfirmation\":[\"add-to-group\"]}", + "hostedUI": false, + "userPoolGroupList": "storeLocatorAdmin", + "serviceName": "Cognito", + "usernameCaseSensitive": false, + "useEnabledMfas": true, + "authRoleArn": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + }, + "unauthRoleArn": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + }, + "breakCircularDependency": true, + "dependsOn": "[object Object]", + "permissions": "{\"policyName\":\"AddToGroupCognito\",\"trigger\":\"PostConfirmation\",\"effect\":\"Allow\",\"actions\":[\"cognito-idp:AdminAddUserToGroup\",\"cognito-idp:GetGroup\",\"cognito-idp:CreateGroup\"],\"resource\":{\"paramType\":\"!GetAtt\",\"keys\":[\"UserPool\",\"Arn\"]}}", + "authTriggerConnections": "{\"triggerType\":\"PostConfirmation\",\"lambdaFunctionName\":\"storelocator41a9495f41a9495fPostConfirmation\"}", + "env": "main" + } + } + }, + "functionstorelocator41a9495f41a9495fPostConfirmation": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/function/storelocator41a9495f41a9495fPostConfirmation-cloudformation-template.json", + "Parameters": { + "modules": "add-to-group", + "resourceName": "storelocator41a9495f41a9495fPostConfirmation", + "GROUP": "storeLocatorAdmin", + "deploymentBucketName": "amplify-storelocator-main-f9ca7-deployment", + "s3Key": "amplify-builds/storelocator41a9495f41a9495fPostConfirmation-6a6c746d4739755a384a-build.zip", + "env": "main" + } + } + }, + "geostoreLocatorMap": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/geo/storeLocatorMap-cloudformation-template.json", + "Parameters": { + "authRoleName": { + "Ref": "AuthRoleName" + }, + "unauthRoleName": { + "Ref": "UnauthRoleName" + }, + "mapName": "storeLocatorMap", + "mapStyle": "VectorEsriStreets", + "isDefault": true, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Fn::GetAtt": [ + "authuserPoolGroups", + "Outputs.storeLocatorAdminGroupRole" + ] + }, + "env": "main" + } + } + }, + "geostoreLocatorSearch": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/geo/storeLocatorSearch-cloudformation-template.json", + "Parameters": { + "authRoleName": { + "Ref": "AuthRoleName" + }, + "unauthRoleName": { + "Ref": "UnauthRoleName" + }, + "indexName": "storeLocatorSearch", + "dataProvider": "Here", + "dataSourceIntendedUse": "SingleUse", + "isDefault": true, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Fn::GetAtt": [ + "authuserPoolGroups", + "Outputs.storeLocatorAdminGroupRole" + ] + }, + "env": "main" + } + } + }, + "geostoreLocatorGeofence": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/geo/storeLocatorGeofence-cloudformation-template.json", + "Parameters": { + "collectionName": "storeLocatorGeofence", + "isDefault": true, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Fn::GetAtt": [ + "authuserPoolGroups", + "Outputs.storeLocatorAdminGroupRole" + ] + }, + "env": "main" + } + } + }, + "UpdateRolesWithIDPFunction": { + "DependsOn": [ + "AuthRole", + "UnauthRole", + "authstorelocator41a9495f41a9495f" + ], + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": { + "Fn::Join": [ + "\n", + [ + "const response = require('cfn-response');", + "const { IAMClient, GetRoleCommand, UpdateAssumeRolePolicyCommand } = require('@aws-sdk/client-iam');", + "exports.handler = function(event, context) {", + " // Don't return promise, response.send() marks context as done internally", + " const ignoredPromise = handleEvent(event, context)", + "};", + "async function handleEvent(event, context) {", + " try {", + " let authRoleName = event.ResourceProperties.authRoleName;", + " let unauthRoleName = event.ResourceProperties.unauthRoleName;", + " let idpId = event.ResourceProperties.idpId;", + " let authParamsJson = {", + " 'Version': '2012-10-17',", + " 'Statement': [{", + " 'Effect': 'Allow',", + " 'Principal': {'Federated': 'cognito-identity.amazonaws.com'},", + " 'Action': 'sts:AssumeRoleWithWebIdentity',", + " 'Condition': {", + " 'StringEquals': {'cognito-identity.amazonaws.com:aud': idpId},", + " 'ForAnyValue:StringLike': {'cognito-identity.amazonaws.com:amr': 'authenticated'}", + " }", + " }]", + " };", + " let unauthParamsJson = {", + " 'Version': '2012-10-17',", + " 'Statement': [{", + " 'Effect': 'Allow',", + " 'Principal': {'Federated': 'cognito-identity.amazonaws.com'},", + " 'Action': 'sts:AssumeRoleWithWebIdentity',", + " 'Condition': {", + " 'StringEquals': {'cognito-identity.amazonaws.com:aud': idpId},", + " 'ForAnyValue:StringLike': {'cognito-identity.amazonaws.com:amr': 'unauthenticated'}", + " }", + " }]", + " };", + " if (event.RequestType === 'Delete') {", + " try {", + " delete authParamsJson.Statement[0].Condition;", + " delete unauthParamsJson.Statement[0].Condition;", + " authParamsJson.Statement[0].Effect = 'Deny'", + " unauthParamsJson.Statement[0].Effect = 'Deny'", + " let authParams = {PolicyDocument: JSON.stringify(authParamsJson), RoleName: authRoleName};", + " let unauthParams = {PolicyDocument: JSON.stringify(unauthParamsJson), RoleName: unauthRoleName};", + " const iam = new IAMClient({region: event.ResourceProperties.region});", + " let res = await Promise.all([", + " iam.send(new GetRoleCommand({RoleName: authParams.RoleName})),", + " iam.send(new GetRoleCommand({RoleName: unauthParams.RoleName}))", + " ]);", + " res = await Promise.all([", + " iam.send(new UpdateAssumeRolePolicyCommand(authParams)),", + " iam.send(new UpdateAssumeRolePolicyCommand(unauthParams))", + " ]);", + " response.send(event, context, response.SUCCESS, {});", + " } catch (err) {", + " console.log(err.stack);", + " response.send(event, context, response.SUCCESS, {Error: err});", + " }", + " } else if (event.RequestType === 'Update' || event.RequestType === 'Create') {", + " const iam = new IAMClient({region: event.ResourceProperties.region});", + " let authParams = {PolicyDocument: JSON.stringify(authParamsJson), RoleName: authRoleName};", + " let unauthParams = {PolicyDocument: JSON.stringify(unauthParamsJson), RoleName: unauthRoleName};", + " const res = await Promise.all([", + " iam.send(new UpdateAssumeRolePolicyCommand(authParams)),", + " iam.send(new UpdateAssumeRolePolicyCommand(unauthParams))", + " ]);", + " response.send(event, context, response.SUCCESS, {});", + " }", + " } catch (err) {", + " console.log(err.stack);", + " response.send(event, context, response.FAILED, {Error: err});", + " }", + "};" + ] + ] + } + }, + "Handler": "index.handler", + "Runtime": "nodejs22.x", + "Timeout": 300, + "Role": { + "Fn::GetAtt": [ + "UpdateRolesWithIDPFunctionRole", + "Arn" + ] + } + } + }, + "UpdateRolesWithIDPFunctionOutputs": { + "Type": "Custom::LambdaCallout", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "UpdateRolesWithIDPFunction", + "Arn" + ] + }, + "region": { + "Ref": "AWS::Region" + }, + "idpId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.IdentityPoolId" + ] + }, + "authRoleName": { + "Ref": "AuthRole" + }, + "unauthRoleName": { + "Ref": "UnauthRole" + } + } + }, + "UpdateRolesWithIDPFunctionRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "RoleName": { + "Fn::Join": [ + "", + [ + { + "Ref": "AuthRole" + }, + "-idp" + ] + ] + }, + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + }, + "Action": [ + "sts:AssumeRole" + ] + } + ] + }, + "Policies": [ + { + "PolicyName": "UpdateRolesWithIDPFunctionPolicy", + "PolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Resource": "arn:aws:logs:*:*:*" + }, + { + "Effect": "Allow", + "Action": [ + "iam:UpdateAssumeRolePolicy", + "iam:GetRole" + ], + "Resource": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + } + }, + { + "Effect": "Allow", + "Action": [ + "iam:UpdateAssumeRolePolicy", + "iam:GetRole" + ], + "Resource": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + } + } + ] + } + } + ] + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/backend-config.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/backend-config.json new file mode 100644 index 00000000000..6b7a962cd2d --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/backend-config.json @@ -0,0 +1,160 @@ +{ + "auth": { + "storelocator41a9495f41a9495f": { + "customAuth": false, + "dependsOn": [ + { + "attributes": [ + "Arn", + "Name" + ], + "category": "function", + "resourceName": "storelocator41a9495f41a9495fPostConfirmation", + "triggerProvider": "Cognito" + } + ], + "frontendAuthConfig": { + "mfaConfiguration": "OFF", + "mfaTypes": [ + "SMS" + ], + "passwordProtectionSettings": { + "passwordPolicyCharacters": [], + "passwordPolicyMinLength": 8 + }, + "signupAttributes": [ + "EMAIL" + ], + "socialProviders": [], + "usernameAttributes": [ + "EMAIL" + ], + "verificationMechanisms": [ + "EMAIL" + ] + }, + "providerPlugin": "awscloudformation", + "service": "Cognito" + }, + "userPoolGroups": { + "dependsOn": [ + { + "attributes": [ + "UserPoolId", + "AppClientIDWeb", + "AppClientID", + "IdentityPoolId" + ], + "category": "auth", + "resourceName": "storelocator41a9495f41a9495f" + } + ], + "providerPlugin": "awscloudformation", + "service": "Cognito-UserPool-Groups" + } + }, + "function": { + "storelocator41a9495f41a9495fPostConfirmation": { + "build": true, + "providerPlugin": "awscloudformation", + "service": "Lambda" + } + }, + "geo": { + "storeLocatorGeofence": { + "accessType": "CognitoGroups", + "dependsOn": [ + { + "attributes": [ + "UserPoolId" + ], + "category": "auth", + "resourceName": "storelocator41a9495f41a9495f" + }, + { + "attributes": [ + "storeLocatorAdminGroupRole" + ], + "category": "auth", + "resourceName": "userPoolGroups" + } + ], + "isDefault": true, + "providerPlugin": "awscloudformation", + "service": "GeofenceCollection" + }, + "storeLocatorMap": { + "accessType": "AuthorizedAndGuestUsers", + "dependsOn": [ + { + "attributes": [ + "UserPoolId" + ], + "category": "auth", + "resourceName": "storelocator41a9495f41a9495f" + }, + { + "attributes": [ + "storeLocatorAdminGroupRole" + ], + "category": "auth", + "resourceName": "userPoolGroups" + } + ], + "isDefault": true, + "mapStyle": "VectorEsriStreets", + "providerPlugin": "awscloudformation", + "service": "Map" + }, + "storeLocatorSearch": { + "accessType": "AuthorizedAndGuestUsers", + "dataProvider": "HERE", + "dataSourceIntendedUse": "SingleUse", + "dependsOn": [ + { + "attributes": [ + "UserPoolId" + ], + "category": "auth", + "resourceName": "storelocator41a9495f41a9495f" + }, + { + "attributes": [ + "storeLocatorAdminGroupRole" + ], + "category": "auth", + "resourceName": "userPoolGroups" + } + ], + "isDefault": true, + "providerPlugin": "awscloudformation", + "service": "PlaceIndex" + } + }, + "parameters": { + "AMPLIFY_function_storelocator41a9495f41a9495fPostConfirmation_GROUP": { + "usedBy": [ + { + "category": "function", + "resourceName": "storelocator41a9495f41a9495fPostConfirmation" + } + ] + }, + "AMPLIFY_function_storelocator41a9495f41a9495fPostConfirmation_deploymentBucketName": { + "usedBy": [ + { + "category": "function", + "resourceName": "storelocator41a9495f41a9495fPostConfirmation" + } + ] + }, + "AMPLIFY_function_storelocator41a9495f41a9495fPostConfirmation_s3Key": { + "usedBy": [ + { + "category": "function", + "resourceName": "storelocator41a9495f41a9495fPostConfirmation" + } + ] + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/amplify.state b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/amplify.state new file mode 100644 index 00000000000..0c3efe04706 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/amplify.state @@ -0,0 +1,6 @@ +{ + "pluginId": "amplify-nodejs-function-runtime-provider", + "functionRuntime": "nodejs", + "useLegacyBuild": true, + "defaultEditorFile": "src/index.js" +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/custom-policies.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/custom-policies.json new file mode 100644 index 00000000000..528c94f2f26 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/custom-policies.json @@ -0,0 +1,6 @@ +[ + { + "Action": [], + "Resource": [] + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/function-parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/function-parameters.json new file mode 100644 index 00000000000..4c07c063c1d --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/function-parameters.json @@ -0,0 +1,16 @@ +{ + "trigger": true, + "modules": [ + "add-to-group" + ], + "parentResource": "storelocator41a9495f41a9495f", + "functionName": "storelocator41a9495f41a9495fPostConfirmation", + "resourceName": "storelocator41a9495f41a9495fPostConfirmation", + "parentStack": "auth", + "triggerEnvs": "[]", + "triggerDir": "/snapshot/amplify-cli/build/node_modules/@aws-amplify/amplify-category-auth/provider-utils/awscloudformation/triggers/PostConfirmation", + "triggerTemplate": "PostConfirmation.json.ejs", + "triggerEventPath": "PostConfirmation.event.json", + "roleName": "storelocator41a9495f41a9495fPostConfirmation", + "skipEdit": true +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/parameters.json new file mode 100644 index 00000000000..82c0ad73bb2 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/parameters.json @@ -0,0 +1,4 @@ +{ + "modules": "add-to-group", + "resourceName": "storelocator41a9495f41a9495fPostConfirmation" +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/src/add-to-group.js b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/src/add-to-group.js new file mode 100644 index 00000000000..b8920ac2104 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/src/add-to-group.js @@ -0,0 +1,37 @@ +const { + CognitoIdentityProviderClient, + AdminAddUserToGroupCommand, + GetGroupCommand, + CreateGroupCommand, +} = require('@aws-sdk/client-cognito-identity-provider'); + +const cognitoIdentityServiceProvider = new CognitoIdentityProviderClient({}); + +/** + * @type {import('@types/aws-lambda').PostConfirmationTriggerHandler} + */ +exports.handler = async (event) => { + const groupParams = { + GroupName: process.env.GROUP, + UserPoolId: event.userPoolId, + }; + const addUserParams = { + GroupName: process.env.GROUP, + UserPoolId: event.userPoolId, + Username: event.userName, + }; + /** + * Check if the group exists; if it doesn't, create it. + */ + try { + await cognitoIdentityServiceProvider.send(new GetGroupCommand(groupParams)); + } catch (e) { + await cognitoIdentityServiceProvider.send(new CreateGroupCommand(groupParams)); + } + /** + * Then, add the user to the group. + */ + await cognitoIdentityServiceProvider.send(new AdminAddUserToGroupCommand(addUserParams)); + + return event; +}; diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/src/event.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/src/event.json new file mode 100644 index 00000000000..5eafe06ea53 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/src/event.json @@ -0,0 +1,7 @@ +{ + "request": { + "userPoolId": "testID", + "userName": "testUser" + }, + "response": {} +} diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/src/index.js b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/src/index.js new file mode 100644 index 00000000000..876a0cedec6 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/src/index.js @@ -0,0 +1,33 @@ +/** + * @fileoverview + * + * This CloudFormation Trigger creates a handler which awaits the other handlers + * specified in the `MODULES` env var, located at `./${MODULE}`. + */ + +/** + * The names of modules to load are stored as a comma-delimited string in the + * `MODULES` env var. + */ +const moduleNames = process.env.MODULES.split(','); +/** + * The array of imported modules. + */ +const modules = moduleNames.map((name) => require(`./${name}`)); + +/** + * This async handler iterates over the given modules and awaits them. + * + * @see https://docs.aws.amazon.com/lambda/latest/dg/nodejs-handler.html#nodejs-handler-async + * @type {import('@types/aws-lambda').APIGatewayProxyHandler} + * + */ +exports.handler = async (event, context) => { + /** + * Instead of naively iterating over all handlers, run them concurrently with + * `await Promise.all(...)`. This would otherwise just be determined by the + * order of names in the `MODULES` var. + */ + await Promise.all(modules.map((module) => module.handler(event, context))); + return event; +}; diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/src/package.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/src/package.json new file mode 100644 index 00000000000..97ed774298a --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/src/package.json @@ -0,0 +1,13 @@ +{ + "name": "storelocator41a9495f41a9495fPostConfirmation", + "version": "2.0.0", + "description": "Lambda function generated by Amplify", + "main": "index.js", + "license": "Apache-2.0", + "dependencies": { + "axios": "latest" + }, + "devDependencies": { + "@types/aws-lambda": "^8.10.92" + } +} diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/src/yarn.lock b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/src/yarn.lock new file mode 100644 index 00000000000..74757081d71 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/src/yarn.lock @@ -0,0 +1,169 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@types/aws-lambda@^8.10.92": + version "8.10.161" + resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.161.tgz#36d95723ec46d3d555bf0684f83cf4d4369a28ad" + integrity sha512-rUYdp+MQwSFocxIOcSsYSF3YYYC/uUpMbCY/mbO21vGqfrEYvNSoPyKYDj6RhXXpPfS0KstW9RwG3qXh9sL7FQ== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +axios@latest: + version "1.13.6" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.13.6.tgz#c3f92da917dc209a15dd29936d20d5089b6b6c98" + integrity sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ== + dependencies: + follow-redirects "^1.15.11" + form-data "^4.0.5" + proxy-from-env "^1.1.0" + +call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + +es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" + integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" + integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== + dependencies: + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + has-tostringtag "^1.0.2" + hasown "^2.0.2" + +follow-redirects@^1.15.11: + version "1.15.11" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340" + integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== + +form-data@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.5.tgz#b49e48858045ff4cbf6b03e1805cebcad3679053" + integrity sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + es-set-tostringtag "^2.1.0" + hasown "^2.0.2" + mime-types "^2.1.12" + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +get-intrinsic@^1.2.6: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== + dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + function-bind "^1.1.2" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" + +get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" + +gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== + +has-symbols@^1.0.3, has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== + +has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/storelocator41a9495f41a9495fPostConfirmation-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/storelocator41a9495f41a9495fPostConfirmation-cloudformation-template.json new file mode 100644 index 00000000000..192bbea9292 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/function/storelocator41a9495f41a9495fPostConfirmation/storelocator41a9495f41a9495fPostConfirmation-cloudformation-template.json @@ -0,0 +1,235 @@ +{ + "AWSTemplateFormatVersion": "2010-09-09", + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"function-Lambda\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "Parameters": { + "GROUP": { + "Type": "String", + "Default": "" + }, + "modules": { + "Type": "String", + "Default": "", + "Description": "Comma-delimited list of modules to be executed by a lambda trigger. Sent to resource as an env variable." + }, + "resourceName": { + "Type": "String", + "Default": "" + }, + "trigger": { + "Type": "String", + "Default": "true" + }, + "functionName": { + "Type": "String", + "Default": "" + }, + "roleName": { + "Type": "String", + "Default": "" + }, + "parentResource": { + "Type": "String", + "Default": "" + }, + "parentStack": { + "Type": "String", + "Default": "" + }, + "env": { + "Type": "String" + }, + "deploymentBucketName": { + "Type": "String" + }, + "s3Key": { + "Type": "String" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + }, + "Resources": { + "LambdaFunction": { + "Type": "AWS::Lambda::Function", + "Metadata": { + "aws:asset:path": "./src", + "aws:asset:property": "Code" + }, + "Properties": { + "Handler": "index.handler", + "FunctionName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "storelocator41a9495f41a9495fPostConfirmation", + { + "Fn::Join": [ + "", + [ + "storelocator41a9495f41a9495fPostConfirmation", + "-", + { + "Ref": "env" + } + ] + ] + } + ] + }, + "Environment": { + "Variables": { + "ENV": { + "Ref": "env" + }, + "MODULES": { + "Ref": "modules" + }, + "REGION": { + "Ref": "AWS::Region" + }, + "GROUP": { + "Ref": "GROUP" + } + } + }, + "Role": { + "Fn::GetAtt": [ + "LambdaExecutionRole", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Timeout": 25, + "Code": { + "S3Bucket": { + "Ref": "deploymentBucketName" + }, + "S3Key": { + "Ref": "s3Key" + } + } + } + }, + "LambdaExecutionRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "RoleName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "storelocator41a9495f41a9495fPostConfirmation", + { + "Fn::Join": [ + "", + [ + "storelocator41a9495f41a9495fPostConfirmation", + "-", + { + "Ref": "env" + } + ] + ] + } + ] + }, + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + }, + "Action": [ + "sts:AssumeRole" + ] + } + ] + } + } + }, + "lambdaexecutionpolicy": { + "DependsOn": [ + "LambdaExecutionRole" + ], + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyName": "lambda-execution-policy", + "Roles": [ + { + "Ref": "LambdaExecutionRole" + } + ], + "PolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Resource": { + "Fn::Sub": [ + "arn:aws:logs:${region}:${account}:log-group:/aws/lambda/${lambda}:log-stream:*", + { + "region": { + "Ref": "AWS::Region" + }, + "account": { + "Ref": "AWS::AccountId" + }, + "lambda": { + "Ref": "LambdaFunction" + } + } + ] + } + } + ] + } + } + } + }, + "Outputs": { + "Name": { + "Value": { + "Ref": "LambdaFunction" + } + }, + "Arn": { + "Value": { + "Fn::GetAtt": [ + "LambdaFunction", + "Arn" + ] + } + }, + "LambdaExecutionRole": { + "Value": { + "Ref": "LambdaExecutionRole" + } + }, + "LambdaExecutionRoleArn": { + "Value": { + "Fn::GetAtt": [ + "LambdaExecutionRole", + "Arn" + ] + } + }, + "Region": { + "Value": { + "Ref": "AWS::Region" + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorGeofence/cli-inputs.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorGeofence/cli-inputs.json new file mode 100644 index 00000000000..3bb50128864 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorGeofence/cli-inputs.json @@ -0,0 +1,10 @@ +{ + "groupPermissions": { + "storeLocatorAdmin": [ + "Read geofence", + "Create/Update geofence", + "Delete geofence", + "List geofences" + ] + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorGeofence/parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorGeofence/parameters.json new file mode 100644 index 00000000000..7ae714ed5ee --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorGeofence/parameters.json @@ -0,0 +1,4 @@ +{ + "collectionName": "storeLocatorGeofence", + "isDefault": true +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorGeofence/storeLocatorGeofence-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorGeofence/storeLocatorGeofence-cloudformation-template.json new file mode 100644 index 00000000000..17020d54719 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorGeofence/storeLocatorGeofence-cloudformation-template.json @@ -0,0 +1,364 @@ +{ + "Mappings": { + "RegionMapping": { + "us-east-1": { + "locationServiceRegion": "us-east-1" + }, + "us-east-2": { + "locationServiceRegion": "us-east-2" + }, + "us-west-2": { + "locationServiceRegion": "us-west-2" + }, + "ap-southeast-1": { + "locationServiceRegion": "ap-southeast-1" + }, + "ap-southeast-2": { + "locationServiceRegion": "ap-southeast-2" + }, + "ap-northeast-1": { + "locationServiceRegion": "ap-northeast-1" + }, + "eu-central-1": { + "locationServiceRegion": "eu-central-1" + }, + "eu-north-1": { + "locationServiceRegion": "eu-north-1" + }, + "eu-west-1": { + "locationServiceRegion": "eu-west-1" + }, + "sa-east-1": { + "locationServiceRegion": "us-east-1" + }, + "ca-central-1": { + "locationServiceRegion": "us-east-1" + }, + "us-west-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-north-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-northwest-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-south-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-3": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-2": { + "locationServiceRegion": "us-west-2" + }, + "eu-west-2": { + "locationServiceRegion": "eu-west-1" + }, + "eu-west-3": { + "locationServiceRegion": "eu-west-1" + }, + "me-south-1": { + "locationServiceRegion": "ap-southeast-1" + } + } + }, + "Parameters": { + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Type": "String" + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Type": "String" + }, + "collectionName": { + "Type": "String" + }, + "env": { + "Type": "String" + }, + "isDefault": { + "Type": "String" + } + }, + "Resources": { + "CustomGeofenceCollectionLambdaServiceRole9040D551": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + } + }, + "CustomGeofenceCollectionLambdaServiceRoleDefaultPolicy0A18B369": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "geo:CreateGeofenceCollection", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "geo:UpdateGeofenceCollection", + "geo:DeleteGeofenceCollection" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:geofence-collection/${collectionName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "collectionName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "collectionName" + }, + { + "Ref": "env" + } + ] + ] + } + } + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "CustomGeofenceCollectionLambdaServiceRoleDefaultPolicy0A18B369", + "Roles": [ + { + "Ref": "CustomGeofenceCollectionLambdaServiceRole9040D551" + } + ] + } + }, + "CustomGeofenceCollectionLambdaCA3D002B": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "const response = require('cfn-response');\nconst {\n LocationClient,\n CreateGeofenceCollectionCommand,\n DeleteGeofenceCollectionCommand,\n UpdateGeofenceCollectionCommand,\n} = require('@aws-sdk/client-location');\nexports.handler = async function (event, context) {\n try {\n console.log('REQUEST RECEIVED:' + JSON.stringify(event));\n const pricingPlan = 'RequestBasedUsage';\n if (event.RequestType === 'Create') {\n const params = {\n CollectionName: event.ResourceProperties.collectionName,\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new CreateGeofenceCollectionCommand(params));\n console.log('create resource response data' + JSON.stringify(res));\n if (res.CollectionName && res.CollectionArn) {\n await response.send(event, context, response.SUCCESS, res, params.CollectionName);\n } else {\n await response.send(event, context, response.FAILED, res, params.CollectionName);\n }\n }\n if (event.RequestType === 'Update') {\n const params = {\n CollectionName: event.ResourceProperties.collectionName,\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new UpdateGeofenceCollectionCommand(params));\n console.log('update resource response data' + JSON.stringify(res));\n if (res.CollectionName) {\n await response.send(event, context, response.SUCCESS, res, params.CollectionName);\n } else {\n await response.send(event, context, response.FAILED, res, params.CollectionName);\n }\n }\n if (event.RequestType === 'Delete') {\n const params = {\n CollectionName: event.ResourceProperties.collectionName,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new DeleteGeofenceCollectionCommand(params));\n console.log('delete resource response data' + JSON.stringify(res));\n await response.send(event, context, response.SUCCESS, res, params.CollectionName);\n }\n } catch (err) {\n console.log(err.stack);\n const res = { Error: err };\n await response.send(event, context, response.FAILED, res, event.ResourceProperties.collectionName);\n throw err;\n }\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "CustomGeofenceCollectionLambdaServiceRole9040D551", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Timeout": 300 + }, + "DependsOn": [ + "CustomGeofenceCollectionLambdaServiceRoleDefaultPolicy0A18B369", + "CustomGeofenceCollectionLambdaServiceRole9040D551" + ] + }, + "CustomGeofenceCollection": { + "Type": "Custom::LambdaCallout", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "CustomGeofenceCollectionLambdaCA3D002B", + "Arn" + ] + }, + "collectionName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "collectionName" + }, + { + "Ref": "env" + } + ] + ] + }, + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "env": { + "Ref": "env" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "storeLocatorAdminGeofenceCollectionPolicy": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "geo:GetGeofence", + "geo:PutGeofence", + "geo:BatchPutGeofence", + "geo:BatchDeleteGeofence", + "geo:ListGeofences" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:geofence-collection/${collectionName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "collectionName": { + "Fn::GetAtt": [ + "CustomGeofenceCollection", + "CollectionName" + ] + } + } + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": { + "Fn::Join": [ + "", + [ + "storeLocatorAdmin", + { + "Fn::Join": [ + "-", + [ + { + "Ref": "collectionName" + }, + { + "Ref": "env" + } + ] + ] + }, + "Policy" + ] + ] + }, + "Roles": [ + { + "Fn::Join": [ + "-", + [ + { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "storeLocatorAdminGroupRole" + ] + ] + } + ] + } + } + }, + "Outputs": { + "Name": { + "Value": { + "Fn::GetAtt": [ + "CustomGeofenceCollection", + "CollectionName" + ] + } + }, + "Region": { + "Value": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + } + }, + "Arn": { + "Value": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:geofence-collection/${collectionName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "collectionName": { + "Fn::GetAtt": [ + "CustomGeofenceCollection", + "CollectionName" + ] + } + } + ] + } + } + }, + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"geo-GeofenceCollection\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}" +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorMap/cli-inputs.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorMap/cli-inputs.json new file mode 100644 index 00000000000..89c77968423 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorMap/cli-inputs.json @@ -0,0 +1,5 @@ +{ + "groupPermissions": [ + "storeLocatorAdmin" + ] +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorMap/parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorMap/parameters.json new file mode 100644 index 00000000000..00f849451a2 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorMap/parameters.json @@ -0,0 +1,11 @@ +{ + "authRoleName": { + "Ref": "AuthRoleName" + }, + "unauthRoleName": { + "Ref": "UnauthRoleName" + }, + "mapName": "storeLocatorMap", + "mapStyle": "VectorEsriStreets", + "isDefault": true +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorMap/storeLocatorMap-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorMap/storeLocatorMap-cloudformation-template.json new file mode 100644 index 00000000000..bf53b69ff23 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorMap/storeLocatorMap-cloudformation-template.json @@ -0,0 +1,347 @@ +{ + "Mappings": { + "RegionMapping": { + "us-east-1": { + "locationServiceRegion": "us-east-1" + }, + "us-east-2": { + "locationServiceRegion": "us-east-2" + }, + "us-west-2": { + "locationServiceRegion": "us-west-2" + }, + "ap-southeast-1": { + "locationServiceRegion": "ap-southeast-1" + }, + "ap-southeast-2": { + "locationServiceRegion": "ap-southeast-2" + }, + "ap-northeast-1": { + "locationServiceRegion": "ap-northeast-1" + }, + "eu-central-1": { + "locationServiceRegion": "eu-central-1" + }, + "eu-north-1": { + "locationServiceRegion": "eu-north-1" + }, + "eu-west-1": { + "locationServiceRegion": "eu-west-1" + }, + "sa-east-1": { + "locationServiceRegion": "us-east-1" + }, + "ca-central-1": { + "locationServiceRegion": "us-east-1" + }, + "us-west-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-north-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-northwest-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-south-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-3": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-2": { + "locationServiceRegion": "us-west-2" + }, + "eu-west-2": { + "locationServiceRegion": "eu-west-1" + }, + "eu-west-3": { + "locationServiceRegion": "eu-west-1" + }, + "me-south-1": { + "locationServiceRegion": "ap-southeast-1" + } + } + }, + "Parameters": { + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Type": "String" + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Type": "String" + }, + "authRoleName": { + "Type": "String" + }, + "unauthRoleName": { + "Type": "String" + }, + "mapName": { + "Type": "String" + }, + "mapStyle": { + "Type": "String" + }, + "env": { + "Type": "String" + }, + "isDefault": { + "Type": "String" + } + }, + "Resources": { + "CustomMapLambdaServiceRole4EE7732C": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + } + }, + "CustomMapLambdaServiceRoleDefaultPolicy983FDD4E": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "geo:CreateMap", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "geo:UpdateMap", + "geo:DeleteMap" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:map/${mapName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "mapName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "mapName" + }, + { + "Ref": "env" + } + ] + ] + } + } + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "CustomMapLambdaServiceRoleDefaultPolicy983FDD4E", + "Roles": [ + { + "Ref": "CustomMapLambdaServiceRole4EE7732C" + } + ] + } + }, + "CustomMapLambda51D5D430": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "const response = require('cfn-response');\nconst { LocationClient, CreateMapCommand, DeleteMapCommand, UpdateMapCommand } = require('@aws-sdk/client-location');\nexports.handler = async function (event, context) {\n try {\n console.log('REQUEST RECEIVED:' + JSON.stringify(event));\n const pricingPlan = 'RequestBasedUsage';\n if (event.RequestType === 'Create') {\n let params = {\n MapName: event.ResourceProperties.mapName,\n Configuration: {\n Style: event.ResourceProperties.mapStyle,\n },\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new CreateMapCommand(params));\n console.log('create resource response data' + JSON.stringify(res));\n if (res.MapName && res.MapArn) {\n await response.send(event, context, response.SUCCESS, res, params.MapName);\n } else {\n await response.send(event, context, response.FAILED, res, params.MapName);\n }\n }\n if (event.RequestType === 'Update') {\n let params = {\n MapName: event.ResourceProperties.mapName,\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new UpdateMapCommand(params));\n console.log('update resource response data' + JSON.stringify(res));\n if (res.MapName && res.MapArn) {\n await response.send(event, context, response.SUCCESS, res, params.MapName);\n } else {\n await response.send(event, context, response.FAILED, res, params.MapName);\n }\n }\n if (event.RequestType === 'Delete') {\n let params = {\n MapName: event.ResourceProperties.mapName,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new DeleteMapCommand(params));\n console.log('delete resource response data' + JSON.stringify(res));\n await response.send(event, context, response.SUCCESS, res, params.MapName);\n }\n } catch (err) {\n console.log(err.stack);\n const res = { Error: err };\n await response.send(event, context, response.FAILED, res, event.ResourceProperties.mapName);\n throw err;\n }\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "CustomMapLambdaServiceRole4EE7732C", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Timeout": 300 + }, + "DependsOn": [ + "CustomMapLambdaServiceRoleDefaultPolicy983FDD4E", + "CustomMapLambdaServiceRole4EE7732C" + ] + }, + "CustomMap": { + "Type": "Custom::LambdaCallout", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "CustomMapLambda51D5D430", + "Arn" + ] + }, + "mapName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "mapName" + }, + { + "Ref": "env" + } + ] + ] + }, + "mapStyle": { + "Ref": "mapStyle" + }, + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "env": { + "Ref": "env" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "MapPolicy": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "geo:GetMapStyleDescriptor", + "geo:GetMapGlyphs", + "geo:GetMapSprites", + "geo:GetMapTile" + ], + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "CustomMap", + "MapArn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": { + "Fn::Join": [ + "", + [ + { + "Fn::Join": [ + "-", + [ + { + "Ref": "mapName" + }, + { + "Ref": "env" + } + ] + ] + }, + "Policy" + ] + ] + }, + "Roles": [ + { + "Ref": "authRoleName" + }, + { + "Ref": "unauthRoleName" + }, + { + "Fn::Join": [ + "-", + [ + { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "storeLocatorAdminGroupRole" + ] + ] + } + ] + } + } + }, + "Outputs": { + "Name": { + "Value": { + "Fn::GetAtt": [ + "CustomMap", + "MapName" + ] + } + }, + "Style": { + "Value": { + "Ref": "mapStyle" + } + }, + "Region": { + "Value": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + } + }, + "Arn": { + "Value": { + "Fn::GetAtt": [ + "CustomMap", + "MapArn" + ] + } + } + }, + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"geo-Map\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}" +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorSearch/cli-inputs.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorSearch/cli-inputs.json new file mode 100644 index 00000000000..89c77968423 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorSearch/cli-inputs.json @@ -0,0 +1,5 @@ +{ + "groupPermissions": [ + "storeLocatorAdmin" + ] +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorSearch/parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorSearch/parameters.json new file mode 100644 index 00000000000..a1ac3acce3c --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorSearch/parameters.json @@ -0,0 +1,12 @@ +{ + "authRoleName": { + "Ref": "AuthRoleName" + }, + "unauthRoleName": { + "Ref": "UnauthRoleName" + }, + "indexName": "storeLocatorSearch", + "dataProvider": "Here", + "dataSourceIntendedUse": "SingleUse", + "isDefault": true +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorSearch/storeLocatorSearch-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorSearch/storeLocatorSearch-cloudformation-template.json new file mode 100644 index 00000000000..1ef40f17717 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/geo/storeLocatorSearch/storeLocatorSearch-cloudformation-template.json @@ -0,0 +1,348 @@ +{ + "Mappings": { + "RegionMapping": { + "us-east-1": { + "locationServiceRegion": "us-east-1" + }, + "us-east-2": { + "locationServiceRegion": "us-east-2" + }, + "us-west-2": { + "locationServiceRegion": "us-west-2" + }, + "ap-southeast-1": { + "locationServiceRegion": "ap-southeast-1" + }, + "ap-southeast-2": { + "locationServiceRegion": "ap-southeast-2" + }, + "ap-northeast-1": { + "locationServiceRegion": "ap-northeast-1" + }, + "eu-central-1": { + "locationServiceRegion": "eu-central-1" + }, + "eu-north-1": { + "locationServiceRegion": "eu-north-1" + }, + "eu-west-1": { + "locationServiceRegion": "eu-west-1" + }, + "sa-east-1": { + "locationServiceRegion": "us-east-1" + }, + "ca-central-1": { + "locationServiceRegion": "us-east-1" + }, + "us-west-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-north-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-northwest-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-south-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-3": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-2": { + "locationServiceRegion": "us-west-2" + }, + "eu-west-2": { + "locationServiceRegion": "eu-west-1" + }, + "eu-west-3": { + "locationServiceRegion": "eu-west-1" + }, + "me-south-1": { + "locationServiceRegion": "ap-southeast-1" + } + } + }, + "Parameters": { + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Type": "String" + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Type": "String" + }, + "authRoleName": { + "Type": "String" + }, + "unauthRoleName": { + "Type": "String" + }, + "indexName": { + "Type": "String" + }, + "dataProvider": { + "Type": "String" + }, + "dataSourceIntendedUse": { + "Type": "String" + }, + "env": { + "Type": "String" + }, + "isDefault": { + "Type": "String" + } + }, + "Resources": { + "CustomPlaceIndexLambdaServiceRoleFD2F3C9D": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + } + }, + "CustomPlaceIndexLambdaServiceRoleDefaultPolicy818068B1": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "geo:CreatePlaceIndex", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "geo:UpdatePlaceIndex", + "geo:DeletePlaceIndex" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:place-index/${indexName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "indexName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "indexName" + }, + { + "Ref": "env" + } + ] + ] + } + } + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "CustomPlaceIndexLambdaServiceRoleDefaultPolicy818068B1", + "Roles": [ + { + "Ref": "CustomPlaceIndexLambdaServiceRoleFD2F3C9D" + } + ] + } + }, + "CustomPlaceIndexLambda79813BB9": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "const response = require('cfn-response');\nconst { LocationClient, CreatePlaceIndexCommand, DeletePlaceIndexCommand, UpdatePlaceIndexCommand } = require('@aws-sdk/client-location');\nexports.handler = async function (event, context) {\n try {\n console.log('REQUEST RECEIVED:' + JSON.stringify(event));\n const pricingPlan = 'RequestBasedUsage';\n if (event.RequestType === 'Create') {\n const params = {\n IndexName: event.ResourceProperties.indexName,\n DataSource: event.ResourceProperties.dataSource,\n DataSourceConfiguration: {\n IntendedUse: event.ResourceProperties.dataSourceIntendedUse,\n },\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new CreatePlaceIndexCommand(params));\n console.log('create resource response data' + JSON.stringify(res));\n if (res.IndexName && res.IndexArn) {\n event.PhysicalResourceId = res.IndexName;\n await response.send(event, context, response.SUCCESS, res, params.IndexName);\n } else {\n await response.send(event, context, response.FAILED, res, params.IndexName);\n }\n }\n if (event.RequestType === 'Update') {\n const params = {\n IndexName: event.ResourceProperties.indexName,\n DataSourceConfiguration: {\n IntendedUse: event.ResourceProperties.dataSourceIntendedUse,\n },\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new UpdatePlaceIndexCommand(params));\n console.log('update resource response data' + JSON.stringify(res));\n if (res.IndexName && res.IndexArn) {\n event.PhysicalResourceId = res.IndexName;\n await response.send(event, context, response.SUCCESS, res, params.IndexName);\n } else {\n await response.send(event, context, response.FAILED, res, params.IndexName);\n }\n }\n if (event.RequestType === 'Delete') {\n const params = {\n IndexName: event.ResourceProperties.indexName,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new DeletePlaceIndexCommand(params));\n event.PhysicalResourceId = event.ResourceProperties.indexName;\n console.log('delete resource response data' + JSON.stringify(res));\n await response.send(event, context, response.SUCCESS, res, params.IndexName);\n }\n } catch (err) {\n console.log(err.stack);\n const res = { Error: err };\n await response.send(event, context, response.FAILED, res, event.ResourceProperties.indexName);\n throw err;\n }\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "CustomPlaceIndexLambdaServiceRoleFD2F3C9D", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Timeout": 300 + }, + "DependsOn": [ + "CustomPlaceIndexLambdaServiceRoleDefaultPolicy818068B1", + "CustomPlaceIndexLambdaServiceRoleFD2F3C9D" + ] + }, + "CustomPlaceIndex": { + "Type": "Custom::LambdaCallout", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "CustomPlaceIndexLambda79813BB9", + "Arn" + ] + }, + "indexName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "indexName" + }, + { + "Ref": "env" + } + ] + ] + }, + "dataSource": { + "Ref": "dataProvider" + }, + "dataSourceIntendedUse": { + "Ref": "dataSourceIntendedUse" + }, + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "env": { + "Ref": "env" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "PlaceIndexPolicy": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "geo:SearchPlaceIndexForPosition", + "geo:SearchPlaceIndexForText", + "geo:SearchPlaceIndexForSuggestions", + "geo:GetPlace" + ], + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "CustomPlaceIndex", + "IndexArn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": { + "Fn::Join": [ + "", + [ + { + "Fn::Join": [ + "-", + [ + { + "Ref": "indexName" + }, + { + "Ref": "env" + } + ] + ] + }, + "Policy" + ] + ] + }, + "Roles": [ + { + "Ref": "authRoleName" + }, + { + "Ref": "unauthRoleName" + }, + { + "Fn::Join": [ + "-", + [ + { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "storeLocatorAdminGroupRole" + ] + ] + } + ] + } + } + }, + "Outputs": { + "Name": { + "Value": { + "Fn::GetAtt": [ + "CustomPlaceIndex", + "IndexName" + ] + } + }, + "Region": { + "Value": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + } + }, + "Arn": { + "Value": { + "Fn::GetAtt": [ + "CustomPlaceIndex", + "IndexArn" + ] + } + } + }, + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"geo-PlaceIndex\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}" +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/tags.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/tags.json new file mode 100644 index 00000000000..b9321d71b83 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/#current-cloud-backend/tags.json @@ -0,0 +1,10 @@ +[ + { + "Key": "user:Stack", + "Value": "{project-env}" + }, + { + "Key": "user:Application", + "Value": "{project-name}" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/.config/project-config.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/.config/project-config.json new file mode 100644 index 00000000000..60030e74166 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/.config/project-config.json @@ -0,0 +1,18 @@ +{ + "whyContinueWithGen1": "Prefer not to answer", + "projectName": "storeLocator", + "version": "3.1", + "frontend": "javascript", + "javascript": { + "framework": "react", + "config": { + "SourceDir": "src", + "DistributionDir": "dist", + "BuildCommand": "npm run-script build", + "StartCommand": "npm run-script start" + } + }, + "providers": [ + "awscloudformation" + ] +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/README.md b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/README.md new file mode 100644 index 00000000000..46165a9c8c6 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/README.md @@ -0,0 +1,8 @@ +# Getting Started with Amplify CLI +This directory was generated by [Amplify CLI](https://docs.amplify.aws/cli). + +Helpful resources: +- Amplify documentation: https://docs.amplify.aws. +- Amplify CLI documentation: https://docs.amplify.aws/cli. +- More details on this folder & generated files: https://docs.amplify.aws/cli/reference/files. +- Join Amplify's community: https://amplify.aws/community/. diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/amplify-meta.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/amplify-meta.json new file mode 100644 index 00000000000..c2f93edd8b2 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/amplify-meta.json @@ -0,0 +1,227 @@ +{ + "providers": { + "awscloudformation": { + "AuthRoleName": "amplify-storelocator-main-f9ca7-authRole", + "UnauthRoleArn": "arn:aws:iam::123456789012:role/amplify-storelocator-main-f9ca7-unauthRole", + "AuthRoleArn": "arn:aws:iam::123456789012:role/amplify-storelocator-main-f9ca7-authRole", + "Region": "us-east-1", + "DeploymentBucketName": "amplify-storelocator-main-f9ca7-deployment", + "UnauthRoleName": "amplify-storelocator-main-f9ca7-unauthRole", + "StackName": "amplify-storelocator-main-f9ca7", + "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/amplify-storelocator-main-f9ca7/06c2ecf0-279e-11f1-a161-0ea0286337e9", + "AmplifyAppId": "storelocator", + "AuthTriggerTemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/auth/auth-trigger-cloudformation-template.json" + } + }, + "auth": { + "userPoolGroups": { + "service": "Cognito-UserPool-Groups", + "providerPlugin": "awscloudformation", + "dependsOn": [ + { + "category": "auth", + "resourceName": "storelocator41a9495f41a9495f", + "attributes": [ + "UserPoolId", + "AppClientIDWeb", + "AppClientID", + "IdentityPoolId" + ] + } + ], + "lastPushTimeStamp": "2026-03-24T16:38:00.639Z", + "providerMetadata": { + "s3TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/auth/userPoolGroups-cloudformation-template.json", + "logicalId": "authuserPoolGroups" + }, + "output": { + "storeLocatorAdminGroupRole": "arn:aws:iam::123456789012:role/us-east-1_R1pdziFVe-storeLocatorAdminGroupRole" + }, + "lastPushDirHash": "aY2fv0JwB9V2Pnq+Iavglw2oGVE=" + }, + "storelocator41a9495f41a9495f": { + "service": "Cognito", + "providerPlugin": "awscloudformation", + "dependsOn": [ + { + "category": "function", + "resourceName": "storelocator41a9495f41a9495fPostConfirmation", + "triggerProvider": "Cognito", + "attributes": [ + "Arn", + "Name" + ] + } + ], + "customAuth": false, + "frontendAuthConfig": { + "socialProviders": [], + "usernameAttributes": [ + "EMAIL" + ], + "signupAttributes": [ + "EMAIL" + ], + "passwordProtectionSettings": { + "passwordPolicyMinLength": 8, + "passwordPolicyCharacters": [] + }, + "mfaConfiguration": "OFF", + "mfaTypes": [ + "SMS" + ], + "verificationMechanisms": [ + "EMAIL" + ] + }, + "providerMetadata": { + "s3TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/auth/storelocator41a9495f41a9495f-cloudformation-template.json", + "logicalId": "authstorelocator41a9495f41a9495f" + }, + "lastPushTimeStamp": "2026-03-24T16:38:00.639Z", + "output": { + "UserPoolId": "us-east-1_R1pdziFVe", + "AppClientIDWeb": "6am6ldh23n8ke819nuvk51cddq", + "AppClientID": "5ppvpdo9dmkrj55qi8h865lt34", + "IdentityPoolId": "us-east-1:4ea514e6-bc16-4990-a5ea-cefe84c3050d", + "UserPoolArn": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_R1pdziFVe", + "IdentityPoolName": "storelocator41a9495f_identitypool_41a9495f__main", + "UserPoolName": "storelocator41a9495f_userpool_41a9495f" + }, + "lastPushDirHash": "BhovtRkLGtk84r9ocO7d+lsB8TQ=" + } + }, + "function": { + "storelocator41a9495f41a9495fPostConfirmation": { + "build": true, + "providerPlugin": "awscloudformation", + "service": "Lambda", + "lastBuildTimeStamp": "2026-03-24T16:33:11.355Z", + "lastBuildType": "PROD", + "lastPackageTimeStamp": "2026-03-24T16:33:12.063Z", + "distZipFilename": "storelocator41a9495f41a9495fPostConfirmation-6a6c746d4739755a384a-build.zip", + "s3Bucket": { + "deploymentBucketName": "amplify-storelocator-main-f9ca7-deployment", + "s3Key": "amplify-builds/storelocator41a9495f41a9495fPostConfirmation-6a6c746d4739755a384a-build.zip" + }, + "providerMetadata": { + "s3TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/function/storelocator41a9495f41a9495fPostConfirmation-cloudformation-template.json", + "logicalId": "functionstorelocator41a9495f41a9495fPostConfirmation" + }, + "lastPushTimeStamp": "2026-03-24T16:38:00.639Z", + "output": { + "LambdaExecutionRoleArn": "arn:aws:iam::123456789012:role/storelocator41a9495f41a9495fPostConfirmation-main", + "Region": "us-east-1", + "Arn": "arn:aws:lambda:us-east-1:123456789012:function:storelocator41a9495f41a9495fPostConfirmation-main", + "Name": "storelocator41a9495f41a9495fPostConfirmation-main", + "LambdaExecutionRole": "storelocator41a9495f41a9495fPostConfirmation-main" + }, + "lastPushDirHash": "6EQkwiPaTbkyYCg4JDkMQiOWz8g=" + } + }, + "geo": { + "storeLocatorMap": { + "isDefault": true, + "providerPlugin": "awscloudformation", + "service": "Map", + "mapStyle": "VectorEsriStreets", + "accessType": "AuthorizedAndGuestUsers", + "dependsOn": [ + { + "category": "auth", + "resourceName": "storelocator41a9495f41a9495f", + "attributes": [ + "UserPoolId" + ] + }, + { + "category": "auth", + "resourceName": "userPoolGroups", + "attributes": [ + "storeLocatorAdminGroupRole" + ] + } + ], + "providerMetadata": { + "s3TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/geo/storeLocatorMap-cloudformation-template.json", + "logicalId": "geostoreLocatorMap" + }, + "lastPushTimeStamp": "2026-03-24T16:38:00.639Z", + "output": { + "Style": "VectorEsriStreets", + "Region": "us-east-1", + "Arn": "arn:aws:geo:us-east-1:123456789012:map/storeLocatorMap-main", + "Name": "storeLocatorMap-main" + }, + "lastPushDirHash": "f6hS2nqVgBHpibNEdmumaRgBCRM=" + }, + "storeLocatorSearch": { + "isDefault": true, + "providerPlugin": "awscloudformation", + "service": "PlaceIndex", + "dataProvider": "HERE", + "dataSourceIntendedUse": "SingleUse", + "accessType": "AuthorizedAndGuestUsers", + "dependsOn": [ + { + "category": "auth", + "resourceName": "storelocator41a9495f41a9495f", + "attributes": [ + "UserPoolId" + ] + }, + { + "category": "auth", + "resourceName": "userPoolGroups", + "attributes": [ + "storeLocatorAdminGroupRole" + ] + } + ], + "providerMetadata": { + "s3TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/geo/storeLocatorSearch-cloudformation-template.json", + "logicalId": "geostoreLocatorSearch" + }, + "lastPushTimeStamp": "2026-03-24T16:38:00.639Z", + "output": { + "Region": "us-east-1", + "Arn": "arn:aws:geo:us-east-1:123456789012:place-index/storeLocatorSearch-main", + "Name": "storeLocatorSearch-main" + }, + "lastPushDirHash": "DcWb0RNLHGk1nlEWvQI8kcmIhuw=" + }, + "storeLocatorGeofence": { + "isDefault": true, + "providerPlugin": "awscloudformation", + "service": "GeofenceCollection", + "accessType": "CognitoGroups", + "dependsOn": [ + { + "category": "auth", + "resourceName": "storelocator41a9495f41a9495f", + "attributes": [ + "UserPoolId" + ] + }, + { + "category": "auth", + "resourceName": "userPoolGroups", + "attributes": [ + "storeLocatorAdminGroupRole" + ] + } + ], + "providerMetadata": { + "s3TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/geo/storeLocatorGeofence-cloudformation-template.json", + "logicalId": "geostoreLocatorGeofence" + }, + "lastPushTimeStamp": "2026-03-24T16:38:00.639Z", + "output": { + "Region": "us-east-1", + "Arn": "arn:aws:geo:us-east-1:123456789012:geofence-collection/storeLocatorGeofence-main", + "Name": "storeLocatorGeofence-main" + }, + "lastPushDirHash": "qBxz5+dofKzvXa0AVAS5tnATCqA=" + } + } +} diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/auth/storelocator41a9495f41a9495f/build/auth-trigger-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/auth/storelocator41a9495f41a9495f/build/auth-trigger-cloudformation-template.json new file mode 100644 index 00000000000..e6186c748d1 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/auth/storelocator41a9495f41a9495f/build/auth-trigger-cloudformation-template.json @@ -0,0 +1,204 @@ +{ + "Description": "Custom Resource stack for Auth Trigger created using Amplify CLI", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "env": { + "Type": "String" + }, + "userpoolId": { + "Type": "String" + }, + "userpoolArn": { + "Type": "String" + }, + "functionstorelocator41a9495f41a9495fPostConfirmationName": { + "Type": "String" + }, + "functionstorelocator41a9495f41a9495fPostConfirmationArn": { + "Type": "String" + }, + "functionstorelocator41a9495f41a9495fPostConfirmationLambdaExecutionRole": { + "Type": "String" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + }, + "Resources": { + "UserPoolPostConfirmationLambdaInvokePermission": { + "Type": "AWS::Lambda::Permission", + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "functionstorelocator41a9495f41a9495fPostConfirmationName" + }, + "Principal": "cognito-idp.amazonaws.com", + "SourceArn": { + "Ref": "userpoolArn" + } + } + }, + "Amplifyfunctionstorelocator41a9495f41a9495fPostConfirmationNamePostConfirmationAddToGroupCognitoC0815C8F": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "cognito-idp:AdminAddUserToGroup", + "cognito-idp:GetGroup", + "cognito-idp:CreateGroup" + ], + "Effect": "Allow", + "Resource": { + "Ref": "userpoolArn" + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "AddToGroupCognito", + "Roles": [ + { + "Fn::Select": [ + 1, + { + "Fn::Split": [ + "/", + { + "Fn::Select": [ + 5, + { + "Fn::Split": [ + ":", + { + "Ref": "functionstorelocator41a9495f41a9495fPostConfirmationLambdaExecutionRole" + } + ] + } + ] + } + ] + } + ] + } + ] + } + }, + "authTriggerFnServiceRole08093B67": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + } + }, + "authTriggerFnServiceRoleDefaultPolicyEC9285A8": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "cognito-idp:DescribeUserPool", + "cognito-idp:UpdateUserPool" + ], + "Effect": "Allow", + "Resource": { + "Ref": "userpoolArn" + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "authTriggerFnServiceRoleDefaultPolicyEC9285A8", + "Roles": [ + { + "Ref": "authTriggerFnServiceRole08093B67" + } + ] + } + }, + "authTriggerFn7FCFA449": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "const response = require('cfn-response');\nconst {\n CognitoIdentityProviderClient,\n DescribeUserPoolCommand,\n UpdateUserPoolCommand,\n} = require('@aws-sdk/client-cognito-identity-provider');\n\nexports.handler = (event, context) => {\n // Don't return promise, response.send() marks context as done internally\n void tryHandleEvent(event, context);\n};\n\nasync function tryHandleEvent(event, context) {\n const physicalResourceId =\n event.RequestType === 'Update' ? event.PhysicalResourceId : `${event.LogicalResourceId}-${event.ResourceProperties.userpoolId}`;\n try {\n await handleEvent(event);\n response.send(event, context, response.SUCCESS, {}, physicalResourceId);\n } catch (err) {\n console.log(err.stack);\n response.send(event, context, response.FAILED, { err }, physicalResourceId);\n }\n}\n\nasync function handleEvent(event) {\n const userPoolId = event.ResourceProperties.userpoolId;\n const { lambdaConfig } = event.ResourceProperties;\n const config = {};\n const cognitoClient = new CognitoIdentityProviderClient({});\n const userPoolConfig = await cognitoClient.send(new DescribeUserPoolCommand({ UserPoolId: userPoolId }));\n const userPoolParams = userPoolConfig.UserPool;\n // update userPool params\n\n const updateUserPoolConfig = {\n UserPoolId: userPoolParams.Id,\n Policies: userPoolParams.Policies,\n SmsVerificationMessage: userPoolParams.SmsVerificationMessage,\n AccountRecoverySetting: userPoolParams.AccountRecoverySetting,\n AdminCreateUserConfig: userPoolParams.AdminCreateUserConfig,\n AutoVerifiedAttributes: userPoolParams.AutoVerifiedAttributes,\n EmailConfiguration: userPoolParams.EmailConfiguration,\n EmailVerificationMessage: userPoolParams.EmailVerificationMessage,\n EmailVerificationSubject: userPoolParams.EmailVerificationSubject,\n VerificationMessageTemplate: userPoolParams.VerificationMessageTemplate,\n SmsAuthenticationMessage: userPoolParams.SmsAuthenticationMessage,\n MfaConfiguration: userPoolParams.MfaConfiguration,\n DeviceConfiguration: userPoolParams.DeviceConfiguration,\n SmsConfiguration: userPoolParams.SmsConfiguration,\n UserPoolTags: userPoolParams.UserPoolTags,\n UserPoolAddOns: userPoolParams.UserPoolAddOns,\n };\n\n // removing undefined keys\n Object.keys(updateUserPoolConfig).forEach((key) => updateUserPoolConfig[key] === undefined && delete updateUserPoolConfig[key]);\n\n /* removing UnusedAccountValidityDays as deprecated\n InvalidParameterException: Please use TemporaryPasswordValidityDays in PasswordPolicy instead of UnusedAccountValidityDays\n */\n if (updateUserPoolConfig.AdminCreateUserConfig && updateUserPoolConfig.AdminCreateUserConfig.UnusedAccountValidityDays) {\n delete updateUserPoolConfig.AdminCreateUserConfig.UnusedAccountValidityDays;\n }\n lambdaConfig.forEach((lambda) => (config[`${lambda.triggerType}`] = lambda.lambdaFunctionArn));\n if (event.RequestType === 'Delete') {\n updateUserPoolConfig.LambdaConfig = {};\n console.log(`${event.RequestType}:`, JSON.stringify(updateUserPoolConfig));\n const result = await cognitoClient.send(new UpdateUserPoolCommand(updateUserPoolConfig));\n console.log(`delete response data ${JSON.stringify(result)}`);\n } else if (event.RequestType === 'Update' || event.RequestType === 'Create') {\n updateUserPoolConfig.LambdaConfig = config;\n const result = await cognitoClient.send(new UpdateUserPoolCommand(updateUserPoolConfig));\n console.log(`createOrUpdate response data ${JSON.stringify(result)}`);\n }\n}\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "authTriggerFnServiceRole08093B67", + "Arn" + ] + }, + "Runtime": "nodejs22.x" + }, + "DependsOn": [ + "authTriggerFnServiceRoleDefaultPolicyEC9285A8", + "authTriggerFnServiceRole08093B67" + ] + }, + "CustomAuthTriggerResource": { + "Type": "Custom::CustomAuthTriggerResourceOutputs", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "authTriggerFn7FCFA449", + "Arn" + ] + }, + "userpoolId": { + "Ref": "userpoolId" + }, + "lambdaConfig": [ + { + "triggerType": "PostConfirmation", + "lambdaFunctionName": "storelocator41a9495f41a9495fPostConfirmation", + "lambdaFunctionArn": { + "Ref": "functionstorelocator41a9495f41a9495fPostConfirmationArn" + } + } + ], + "nonce": "a956ed2b-ea63-4747-acee-0f4cb27b3925" + }, + "DependsOn": [ + "authTriggerFn7FCFA449", + "authTriggerFnServiceRoleDefaultPolicyEC9285A8", + "authTriggerFnServiceRole08093B67" + ], + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/auth/storelocator41a9495f41a9495f/build/parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/auth/storelocator41a9495f41a9495f/build/parameters.json new file mode 100644 index 00000000000..cba9966059e --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/auth/storelocator41a9495f41a9495f/build/parameters.json @@ -0,0 +1,82 @@ +{ + "identityPoolName": "storelocator41a9495f_identitypool_41a9495f", + "allowUnauthenticatedIdentities": true, + "resourceNameTruncated": "storel41a9495f", + "userPoolName": "storelocator41a9495f_userpool_41a9495f", + "autoVerifiedAttributes": [ + "email" + ], + "mfaConfiguration": "OFF", + "mfaTypes": [ + "SMS Text Message" + ], + "smsAuthenticationMessage": "Your authentication code is {####}", + "smsVerificationMessage": "Your verification code is {####}", + "emailVerificationSubject": "Your verification code", + "emailVerificationMessage": "Your verification code is {####}", + "defaultPasswordPolicy": false, + "passwordPolicyMinLength": 8, + "passwordPolicyCharacters": [], + "requiredAttributes": [ + "email" + ], + "aliasAttributes": [], + "userpoolClientGenerateSecret": false, + "userpoolClientRefreshTokenValidity": "100", + "userpoolClientWriteAttributes": [ + "email" + ], + "userpoolClientReadAttributes": [ + "email" + ], + "userpoolClientLambdaRole": "storel41a9495f_userpoolclient_lambda_role", + "userpoolClientSetAttributes": false, + "sharedId": "41a9495f", + "resourceName": "storelocator41a9495f41a9495f", + "authSelections": "identityPoolAndUserPool", + "useDefault": "manual", + "thirdPartyAuth": false, + "usernameAttributes": [ + "email" + ], + "userPoolGroups": true, + "adminQueries": false, + "triggers": "{\"PostConfirmation\":[\"add-to-group\"]}", + "hostedUI": false, + "userPoolGroupList": [ + "storeLocatorAdmin" + ], + "serviceName": "Cognito", + "usernameCaseSensitive": false, + "useEnabledMfas": true, + "authRoleArn": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + }, + "unauthRoleArn": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + }, + "breakCircularDependency": true, + "dependsOn": [ + { + "category": "function", + "resourceName": "storelocator41a9495f41a9495fPostConfirmation", + "triggerProvider": "Cognito", + "attributes": [ + "Arn", + "Name" + ] + } + ], + "permissions": [ + "{\"policyName\":\"AddToGroupCognito\",\"trigger\":\"PostConfirmation\",\"effect\":\"Allow\",\"actions\":[\"cognito-idp:AdminAddUserToGroup\",\"cognito-idp:GetGroup\",\"cognito-idp:CreateGroup\"],\"resource\":{\"paramType\":\"!GetAtt\",\"keys\":[\"UserPool\",\"Arn\"]}}" + ], + "authTriggerConnections": [ + "{\"triggerType\":\"PostConfirmation\",\"lambdaFunctionName\":\"storelocator41a9495f41a9495fPostConfirmation\"}" + ] +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/auth/storelocator41a9495f41a9495f/build/storelocator41a9495f41a9495f-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/auth/storelocator41a9495f41a9495f/build/storelocator41a9495f41a9495f-cloudformation-template.json new file mode 100644 index 00000000000..32f0ad747e9 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/auth/storelocator41a9495f41a9495f/build/storelocator41a9495f41a9495f-cloudformation-template.json @@ -0,0 +1,486 @@ +{ + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"auth-Cognito\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "env": { + "Type": "String" + }, + "functionstorelocator41a9495f41a9495fPostConfirmationArn": { + "Type": "String", + "Default": "functionstorelocator41a9495f41a9495fPostConfirmationArn" + }, + "functionstorelocator41a9495f41a9495fPostConfirmationName": { + "Type": "String", + "Default": "functionstorelocator41a9495f41a9495fPostConfirmationName" + }, + "identityPoolName": { + "Type": "String" + }, + "allowUnauthenticatedIdentities": { + "Type": "String" + }, + "resourceNameTruncated": { + "Type": "String" + }, + "userPoolName": { + "Type": "String" + }, + "autoVerifiedAttributes": { + "Type": "CommaDelimitedList" + }, + "mfaConfiguration": { + "Type": "String" + }, + "mfaTypes": { + "Type": "CommaDelimitedList" + }, + "smsAuthenticationMessage": { + "Type": "String" + }, + "smsVerificationMessage": { + "Type": "String" + }, + "emailVerificationSubject": { + "Type": "String" + }, + "emailVerificationMessage": { + "Type": "String" + }, + "defaultPasswordPolicy": { + "Type": "String" + }, + "passwordPolicyMinLength": { + "Type": "String" + }, + "passwordPolicyCharacters": { + "Type": "CommaDelimitedList" + }, + "requiredAttributes": { + "Type": "CommaDelimitedList" + }, + "aliasAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientGenerateSecret": { + "Type": "String" + }, + "userpoolClientRefreshTokenValidity": { + "Type": "String" + }, + "userpoolClientWriteAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientReadAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientLambdaRole": { + "Type": "String" + }, + "userpoolClientSetAttributes": { + "Type": "String" + }, + "sharedId": { + "Type": "String" + }, + "resourceName": { + "Type": "String" + }, + "authSelections": { + "Type": "String" + }, + "useDefault": { + "Type": "String" + }, + "thirdPartyAuth": { + "Type": "String" + }, + "usernameAttributes": { + "Type": "CommaDelimitedList" + }, + "userPoolGroups": { + "Type": "String" + }, + "adminQueries": { + "Type": "String" + }, + "triggers": { + "Type": "String" + }, + "hostedUI": { + "Type": "String" + }, + "userPoolGroupList": { + "Type": "CommaDelimitedList" + }, + "serviceName": { + "Type": "String" + }, + "usernameCaseSensitive": { + "Type": "String" + }, + "useEnabledMfas": { + "Type": "String" + }, + "authRoleArn": { + "Type": "String" + }, + "unauthRoleArn": { + "Type": "String" + }, + "breakCircularDependency": { + "Type": "String" + }, + "dependsOn": { + "Type": "CommaDelimitedList" + }, + "permissions": { + "Type": "CommaDelimitedList" + }, + "authTriggerConnections": { + "Type": "CommaDelimitedList" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + }, + "Resources": { + "UserPool": { + "Type": "AWS::Cognito::UserPool", + "Properties": { + "AutoVerifiedAttributes": [ + "email" + ], + "EmailVerificationMessage": { + "Ref": "emailVerificationMessage" + }, + "EmailVerificationSubject": { + "Ref": "emailVerificationSubject" + }, + "MfaConfiguration": { + "Ref": "mfaConfiguration" + }, + "Policies": { + "PasswordPolicy": { + "MinimumLength": { + "Ref": "passwordPolicyMinLength" + }, + "RequireLowercase": false, + "RequireNumbers": false, + "RequireSymbols": false, + "RequireUppercase": false + } + }, + "Schema": [ + { + "Mutable": true, + "Name": "email", + "Required": true + } + ], + "UserAttributeUpdateSettings": { + "AttributesRequireVerificationBeforeUpdate": [ + "email" + ] + }, + "UserPoolName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + { + "Ref": "userPoolName" + }, + { + "Fn::Join": [ + "", + [ + { + "Ref": "userPoolName" + }, + "-", + { + "Ref": "env" + } + ] + ] + } + ] + }, + "UsernameAttributes": { + "Ref": "usernameAttributes" + }, + "UsernameConfiguration": { + "CaseSensitive": false + } + } + }, + "UserPoolClientWeb": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "ClientName": "storel41a9495f_app_clientWeb", + "RefreshTokenValidity": { + "Ref": "userpoolClientRefreshTokenValidity" + }, + "TokenValidityUnits": { + "RefreshToken": "days" + }, + "UserPoolId": { + "Ref": "UserPool" + } + }, + "DependsOn": [ + "UserPool" + ] + }, + "UserPoolClient": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "ClientName": "storel41a9495f_app_client", + "GenerateSecret": { + "Ref": "userpoolClientGenerateSecret" + }, + "RefreshTokenValidity": { + "Ref": "userpoolClientRefreshTokenValidity" + }, + "TokenValidityUnits": { + "RefreshToken": "days" + }, + "UserPoolId": { + "Ref": "UserPool" + } + }, + "DependsOn": [ + "UserPool" + ] + }, + "UserPoolClientRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + }, + "Action": "sts:AssumeRole" + } + ] + }, + "RoleName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + { + "Ref": "userpoolClientLambdaRole" + }, + { + "Fn::Join": [ + "", + [ + "upClientLambdaRole41a9495f", + { + "Fn::Select": [ + 3, + { + "Fn::Split": [ + "-", + { + "Ref": "AWS::StackName" + } + ] + } + ] + }, + "-", + { + "Ref": "env" + } + ] + ] + } + ] + } + } + }, + "IdentityPool": { + "Type": "AWS::Cognito::IdentityPool", + "Properties": { + "AllowUnauthenticatedIdentities": { + "Ref": "allowUnauthenticatedIdentities" + }, + "CognitoIdentityProviders": [ + { + "ClientId": { + "Ref": "UserPoolClient" + }, + "ProviderName": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "client": { + "Ref": "UserPool" + } + } + ] + } + }, + { + "ClientId": { + "Ref": "UserPoolClientWeb" + }, + "ProviderName": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "client": { + "Ref": "UserPool" + } + } + ] + } + } + ], + "IdentityPoolName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "storelocator41a9495f_identitypool_41a9495f", + { + "Fn::Join": [ + "", + [ + "storelocator41a9495f_identitypool_41a9495f__", + { + "Ref": "env" + } + ] + ] + } + ] + } + } + }, + "IdentityPoolRoleMap": { + "Type": "AWS::Cognito::IdentityPoolRoleAttachment", + "Properties": { + "IdentityPoolId": { + "Ref": "IdentityPool" + }, + "RoleMappings": { + "UserPoolClientRoleMapping": { + "AmbiguousRoleResolution": "AuthenticatedRole", + "IdentityProvider": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${userPool}:${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "userPool": { + "Ref": "UserPool" + }, + "client": { + "Ref": "UserPoolClient" + } + } + ] + }, + "Type": "Token" + }, + "UserPoolWebClientRoleMapping": { + "AmbiguousRoleResolution": "AuthenticatedRole", + "IdentityProvider": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${userPool}:${webClient}", + { + "region": { + "Ref": "AWS::Region" + }, + "userPool": { + "Ref": "UserPool" + }, + "webClient": { + "Ref": "UserPoolClientWeb" + } + } + ] + }, + "Type": "Token" + } + }, + "Roles": { + "unauthenticated": { + "Ref": "unauthRoleArn" + }, + "authenticated": { + "Ref": "authRoleArn" + } + } + }, + "DependsOn": [ + "IdentityPool", + "UserPoolClient", + "UserPoolClientWeb" + ] + } + }, + "Outputs": { + "IdentityPoolId": { + "Description": "Id for the identity pool", + "Value": { + "Ref": "IdentityPool" + } + }, + "IdentityPoolName": { + "Value": { + "Fn::GetAtt": [ + "IdentityPool", + "Name" + ] + } + }, + "UserPoolId": { + "Description": "Id for the user pool", + "Value": { + "Ref": "UserPool" + } + }, + "UserPoolArn": { + "Description": "Arn for the user pool", + "Value": { + "Fn::GetAtt": [ + "UserPool", + "Arn" + ] + } + }, + "UserPoolName": { + "Value": { + "Ref": "userPoolName" + } + }, + "AppClientIDWeb": { + "Description": "The user pool app client id for web", + "Value": { + "Ref": "UserPoolClientWeb" + } + }, + "AppClientID": { + "Description": "The user pool app client id", + "Value": { + "Ref": "UserPoolClient" + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/auth/storelocator41a9495f41a9495f/cli-inputs.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/auth/storelocator41a9495f41a9495f/cli-inputs.json new file mode 100644 index 00000000000..c66baffc70c --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/auth/storelocator41a9495f41a9495f/cli-inputs.json @@ -0,0 +1,89 @@ +{ + "version": "1", + "cognitoConfig": { + "identityPoolName": "storelocator41a9495f_identitypool_41a9495f", + "allowUnauthenticatedIdentities": true, + "resourceNameTruncated": "storel41a9495f", + "userPoolName": "storelocator41a9495f_userpool_41a9495f", + "autoVerifiedAttributes": [ + "email" + ], + "mfaConfiguration": "OFF", + "mfaTypes": [ + "SMS Text Message" + ], + "smsAuthenticationMessage": "Your authentication code is {####}", + "smsVerificationMessage": "Your verification code is {####}", + "emailVerificationSubject": "Your verification code", + "emailVerificationMessage": "Your verification code is {####}", + "defaultPasswordPolicy": false, + "passwordPolicyMinLength": 8, + "passwordPolicyCharacters": [], + "requiredAttributes": [ + "email" + ], + "aliasAttributes": [], + "userpoolClientGenerateSecret": false, + "userpoolClientRefreshTokenValidity": "100", + "userpoolClientWriteAttributes": [ + "email" + ], + "userpoolClientReadAttributes": [ + "email" + ], + "userpoolClientLambdaRole": "storel41a9495f_userpoolclient_lambda_role", + "userpoolClientSetAttributes": false, + "sharedId": "41a9495f", + "resourceName": "storelocator41a9495f41a9495f", + "authSelections": "identityPoolAndUserPool", + "useDefault": "manual", + "thirdPartyAuth": false, + "usernameAttributes": [ + "email" + ], + "userPoolGroups": true, + "adminQueries": false, + "triggers": { + "PostConfirmation": [ + "add-to-group" + ] + }, + "hostedUI": false, + "userPoolGroupList": [ + "storeLocatorAdmin" + ], + "serviceName": "Cognito", + "usernameCaseSensitive": false, + "useEnabledMfas": true, + "authRoleArn": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + }, + "unauthRoleArn": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + }, + "breakCircularDependency": true, + "dependsOn": [ + { + "category": "function", + "resourceName": "storelocator41a9495f41a9495fPostConfirmation", + "triggerProvider": "Cognito", + "attributes": [ + "Arn", + "Name" + ] + } + ], + "permissions": [ + "{\"policyName\":\"AddToGroupCognito\",\"trigger\":\"PostConfirmation\",\"effect\":\"Allow\",\"actions\":[\"cognito-idp:AdminAddUserToGroup\",\"cognito-idp:GetGroup\",\"cognito-idp:CreateGroup\"],\"resource\":{\"paramType\":\"!GetAtt\",\"keys\":[\"UserPool\",\"Arn\"]}}" + ], + "authTriggerConnections": [ + "{\"triggerType\":\"PostConfirmation\",\"lambdaFunctionName\":\"storelocator41a9495f41a9495fPostConfirmation\"}" + ] + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/auth/userPoolGroups/build/parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/auth/userPoolGroups/build/parameters.json new file mode 100644 index 00000000000..48115bd5cd6 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/auth/userPoolGroups/build/parameters.json @@ -0,0 +1,14 @@ +{ + "AuthRoleArn": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + }, + "UnauthRoleArn": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json new file mode 100644 index 00000000000..5edc3def07d --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json @@ -0,0 +1,109 @@ +{ + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"auth-Cognito-UserPool-Groups\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "env": { + "Type": "String" + }, + "AuthRoleArn": { + "Type": "String" + }, + "UnauthRoleArn": { + "Type": "String" + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Type": "String", + "Default": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "authstorelocator41a9495f41a9495fIdentityPoolId": { + "Type": "String", + "Default": "authstorelocator41a9495f41a9495fIdentityPoolId" + }, + "authstorelocator41a9495f41a9495fAppClientID": { + "Type": "String", + "Default": "authstorelocator41a9495f41a9495fAppClientID" + }, + "authstorelocator41a9495f41a9495fAppClientIDWeb": { + "Type": "String", + "Default": "authstorelocator41a9495f41a9495fAppClientIDWeb" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + }, + "Resources": { + "storeLocatorAdminGroup": { + "Type": "AWS::Cognito::UserPoolGroup", + "Properties": { + "Description": "override success", + "GroupName": "storeLocatorAdmin", + "Precedence": 1, + "RoleArn": { + "Fn::GetAtt": [ + "storeLocatorAdminGroupRole", + "Arn" + ] + }, + "UserPoolId": { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + } + } + }, + "storeLocatorAdminGroupRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Allow", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + }, + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringEquals": { + "cognito-identity.amazonaws.com:aud": { + "Ref": "authstorelocator41a9495f41a9495fIdentityPoolId" + } + }, + "ForAnyValue:StringLike": { + "cognito-identity.amazonaws.com:amr": "authenticated" + } + } + } + ] + }, + "RoleName": { + "Fn::Join": [ + "", + [ + { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "-storeLocatorAdminGroupRole" + ] + ] + } + } + } + }, + "Outputs": { + "storeLocatorAdminGroupRole": { + "Value": { + "Fn::GetAtt": [ + "storeLocatorAdminGroupRole", + "Arn" + ] + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/auth/userPoolGroups/user-pool-group-precedence.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/auth/userPoolGroups/user-pool-group-precedence.json new file mode 100644 index 00000000000..bcc9738de65 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/auth/userPoolGroups/user-pool-group-precedence.json @@ -0,0 +1,6 @@ +[ + { + "groupName": "storeLocatorAdmin", + "precedence": 1 + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/awscloudformation/build/auth/storelocator41a9495f41a9495f/build/storelocator41a9495f41a9495f-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/awscloudformation/build/auth/storelocator41a9495f41a9495f/build/storelocator41a9495f41a9495f-cloudformation-template.json new file mode 100644 index 00000000000..32f0ad747e9 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/awscloudformation/build/auth/storelocator41a9495f41a9495f/build/storelocator41a9495f41a9495f-cloudformation-template.json @@ -0,0 +1,486 @@ +{ + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"auth-Cognito\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "env": { + "Type": "String" + }, + "functionstorelocator41a9495f41a9495fPostConfirmationArn": { + "Type": "String", + "Default": "functionstorelocator41a9495f41a9495fPostConfirmationArn" + }, + "functionstorelocator41a9495f41a9495fPostConfirmationName": { + "Type": "String", + "Default": "functionstorelocator41a9495f41a9495fPostConfirmationName" + }, + "identityPoolName": { + "Type": "String" + }, + "allowUnauthenticatedIdentities": { + "Type": "String" + }, + "resourceNameTruncated": { + "Type": "String" + }, + "userPoolName": { + "Type": "String" + }, + "autoVerifiedAttributes": { + "Type": "CommaDelimitedList" + }, + "mfaConfiguration": { + "Type": "String" + }, + "mfaTypes": { + "Type": "CommaDelimitedList" + }, + "smsAuthenticationMessage": { + "Type": "String" + }, + "smsVerificationMessage": { + "Type": "String" + }, + "emailVerificationSubject": { + "Type": "String" + }, + "emailVerificationMessage": { + "Type": "String" + }, + "defaultPasswordPolicy": { + "Type": "String" + }, + "passwordPolicyMinLength": { + "Type": "String" + }, + "passwordPolicyCharacters": { + "Type": "CommaDelimitedList" + }, + "requiredAttributes": { + "Type": "CommaDelimitedList" + }, + "aliasAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientGenerateSecret": { + "Type": "String" + }, + "userpoolClientRefreshTokenValidity": { + "Type": "String" + }, + "userpoolClientWriteAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientReadAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientLambdaRole": { + "Type": "String" + }, + "userpoolClientSetAttributes": { + "Type": "String" + }, + "sharedId": { + "Type": "String" + }, + "resourceName": { + "Type": "String" + }, + "authSelections": { + "Type": "String" + }, + "useDefault": { + "Type": "String" + }, + "thirdPartyAuth": { + "Type": "String" + }, + "usernameAttributes": { + "Type": "CommaDelimitedList" + }, + "userPoolGroups": { + "Type": "String" + }, + "adminQueries": { + "Type": "String" + }, + "triggers": { + "Type": "String" + }, + "hostedUI": { + "Type": "String" + }, + "userPoolGroupList": { + "Type": "CommaDelimitedList" + }, + "serviceName": { + "Type": "String" + }, + "usernameCaseSensitive": { + "Type": "String" + }, + "useEnabledMfas": { + "Type": "String" + }, + "authRoleArn": { + "Type": "String" + }, + "unauthRoleArn": { + "Type": "String" + }, + "breakCircularDependency": { + "Type": "String" + }, + "dependsOn": { + "Type": "CommaDelimitedList" + }, + "permissions": { + "Type": "CommaDelimitedList" + }, + "authTriggerConnections": { + "Type": "CommaDelimitedList" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + }, + "Resources": { + "UserPool": { + "Type": "AWS::Cognito::UserPool", + "Properties": { + "AutoVerifiedAttributes": [ + "email" + ], + "EmailVerificationMessage": { + "Ref": "emailVerificationMessage" + }, + "EmailVerificationSubject": { + "Ref": "emailVerificationSubject" + }, + "MfaConfiguration": { + "Ref": "mfaConfiguration" + }, + "Policies": { + "PasswordPolicy": { + "MinimumLength": { + "Ref": "passwordPolicyMinLength" + }, + "RequireLowercase": false, + "RequireNumbers": false, + "RequireSymbols": false, + "RequireUppercase": false + } + }, + "Schema": [ + { + "Mutable": true, + "Name": "email", + "Required": true + } + ], + "UserAttributeUpdateSettings": { + "AttributesRequireVerificationBeforeUpdate": [ + "email" + ] + }, + "UserPoolName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + { + "Ref": "userPoolName" + }, + { + "Fn::Join": [ + "", + [ + { + "Ref": "userPoolName" + }, + "-", + { + "Ref": "env" + } + ] + ] + } + ] + }, + "UsernameAttributes": { + "Ref": "usernameAttributes" + }, + "UsernameConfiguration": { + "CaseSensitive": false + } + } + }, + "UserPoolClientWeb": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "ClientName": "storel41a9495f_app_clientWeb", + "RefreshTokenValidity": { + "Ref": "userpoolClientRefreshTokenValidity" + }, + "TokenValidityUnits": { + "RefreshToken": "days" + }, + "UserPoolId": { + "Ref": "UserPool" + } + }, + "DependsOn": [ + "UserPool" + ] + }, + "UserPoolClient": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "ClientName": "storel41a9495f_app_client", + "GenerateSecret": { + "Ref": "userpoolClientGenerateSecret" + }, + "RefreshTokenValidity": { + "Ref": "userpoolClientRefreshTokenValidity" + }, + "TokenValidityUnits": { + "RefreshToken": "days" + }, + "UserPoolId": { + "Ref": "UserPool" + } + }, + "DependsOn": [ + "UserPool" + ] + }, + "UserPoolClientRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + }, + "Action": "sts:AssumeRole" + } + ] + }, + "RoleName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + { + "Ref": "userpoolClientLambdaRole" + }, + { + "Fn::Join": [ + "", + [ + "upClientLambdaRole41a9495f", + { + "Fn::Select": [ + 3, + { + "Fn::Split": [ + "-", + { + "Ref": "AWS::StackName" + } + ] + } + ] + }, + "-", + { + "Ref": "env" + } + ] + ] + } + ] + } + } + }, + "IdentityPool": { + "Type": "AWS::Cognito::IdentityPool", + "Properties": { + "AllowUnauthenticatedIdentities": { + "Ref": "allowUnauthenticatedIdentities" + }, + "CognitoIdentityProviders": [ + { + "ClientId": { + "Ref": "UserPoolClient" + }, + "ProviderName": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "client": { + "Ref": "UserPool" + } + } + ] + } + }, + { + "ClientId": { + "Ref": "UserPoolClientWeb" + }, + "ProviderName": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "client": { + "Ref": "UserPool" + } + } + ] + } + } + ], + "IdentityPoolName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "storelocator41a9495f_identitypool_41a9495f", + { + "Fn::Join": [ + "", + [ + "storelocator41a9495f_identitypool_41a9495f__", + { + "Ref": "env" + } + ] + ] + } + ] + } + } + }, + "IdentityPoolRoleMap": { + "Type": "AWS::Cognito::IdentityPoolRoleAttachment", + "Properties": { + "IdentityPoolId": { + "Ref": "IdentityPool" + }, + "RoleMappings": { + "UserPoolClientRoleMapping": { + "AmbiguousRoleResolution": "AuthenticatedRole", + "IdentityProvider": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${userPool}:${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "userPool": { + "Ref": "UserPool" + }, + "client": { + "Ref": "UserPoolClient" + } + } + ] + }, + "Type": "Token" + }, + "UserPoolWebClientRoleMapping": { + "AmbiguousRoleResolution": "AuthenticatedRole", + "IdentityProvider": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${userPool}:${webClient}", + { + "region": { + "Ref": "AWS::Region" + }, + "userPool": { + "Ref": "UserPool" + }, + "webClient": { + "Ref": "UserPoolClientWeb" + } + } + ] + }, + "Type": "Token" + } + }, + "Roles": { + "unauthenticated": { + "Ref": "unauthRoleArn" + }, + "authenticated": { + "Ref": "authRoleArn" + } + } + }, + "DependsOn": [ + "IdentityPool", + "UserPoolClient", + "UserPoolClientWeb" + ] + } + }, + "Outputs": { + "IdentityPoolId": { + "Description": "Id for the identity pool", + "Value": { + "Ref": "IdentityPool" + } + }, + "IdentityPoolName": { + "Value": { + "Fn::GetAtt": [ + "IdentityPool", + "Name" + ] + } + }, + "UserPoolId": { + "Description": "Id for the user pool", + "Value": { + "Ref": "UserPool" + } + }, + "UserPoolArn": { + "Description": "Arn for the user pool", + "Value": { + "Fn::GetAtt": [ + "UserPool", + "Arn" + ] + } + }, + "UserPoolName": { + "Value": { + "Ref": "userPoolName" + } + }, + "AppClientIDWeb": { + "Description": "The user pool app client id for web", + "Value": { + "Ref": "UserPoolClientWeb" + } + }, + "AppClientID": { + "Description": "The user pool app client id", + "Value": { + "Ref": "UserPoolClient" + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/awscloudformation/build/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/awscloudformation/build/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json new file mode 100644 index 00000000000..5edc3def07d --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/awscloudformation/build/auth/userPoolGroups/build/userPoolGroups-cloudformation-template.json @@ -0,0 +1,109 @@ +{ + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"auth-Cognito-UserPool-Groups\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "env": { + "Type": "String" + }, + "AuthRoleArn": { + "Type": "String" + }, + "UnauthRoleArn": { + "Type": "String" + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Type": "String", + "Default": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "authstorelocator41a9495f41a9495fIdentityPoolId": { + "Type": "String", + "Default": "authstorelocator41a9495f41a9495fIdentityPoolId" + }, + "authstorelocator41a9495f41a9495fAppClientID": { + "Type": "String", + "Default": "authstorelocator41a9495f41a9495fAppClientID" + }, + "authstorelocator41a9495f41a9495fAppClientIDWeb": { + "Type": "String", + "Default": "authstorelocator41a9495f41a9495fAppClientIDWeb" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + }, + "Resources": { + "storeLocatorAdminGroup": { + "Type": "AWS::Cognito::UserPoolGroup", + "Properties": { + "Description": "override success", + "GroupName": "storeLocatorAdmin", + "Precedence": 1, + "RoleArn": { + "Fn::GetAtt": [ + "storeLocatorAdminGroupRole", + "Arn" + ] + }, + "UserPoolId": { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + } + } + }, + "storeLocatorAdminGroupRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Allow", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + }, + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringEquals": { + "cognito-identity.amazonaws.com:aud": { + "Ref": "authstorelocator41a9495f41a9495fIdentityPoolId" + } + }, + "ForAnyValue:StringLike": { + "cognito-identity.amazonaws.com:amr": "authenticated" + } + } + } + ] + }, + "RoleName": { + "Fn::Join": [ + "", + [ + { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "-storeLocatorAdminGroupRole" + ] + ] + } + } + } + }, + "Outputs": { + "storeLocatorAdminGroupRole": { + "Value": { + "Fn::GetAtt": [ + "storeLocatorAdminGroupRole", + "Arn" + ] + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/awscloudformation/build/awscloudformation/build/root-cloudformation-stack.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/awscloudformation/build/awscloudformation/build/root-cloudformation-stack.json new file mode 100644 index 00000000000..1b8df321c23 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/awscloudformation/build/awscloudformation/build/root-cloudformation-stack.json @@ -0,0 +1,653 @@ +{ + "Description": "Root Stack for AWS Amplify CLI", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "DeploymentBucketName": { + "Type": "String", + "Default": "DeploymentBucket", + "Description": "Name of the common deployment bucket provided by the parent stack" + }, + "AuthRoleName": { + "Type": "String", + "Default": "AuthRoleName", + "Description": "Name of the common deployment bucket provided by the parent stack" + }, + "UnauthRoleName": { + "Type": "String", + "Default": "UnAuthRoleName", + "Description": "Name of the common deployment bucket provided by the parent stack" + } + }, + "Outputs": { + "Region": { + "Description": "CloudFormation provider root stack Region", + "Value": { + "Ref": "AWS::Region" + }, + "Export": { + "Name": { + "Fn::Sub": "${AWS::StackName}-Region" + } + } + }, + "StackName": { + "Description": "CloudFormation provider root stack ID", + "Value": { + "Ref": "AWS::StackName" + }, + "Export": { + "Name": { + "Fn::Sub": "${AWS::StackName}-StackName" + } + } + }, + "StackId": { + "Description": "CloudFormation provider root stack name", + "Value": { + "Ref": "AWS::StackId" + }, + "Export": { + "Name": { + "Fn::Sub": "${AWS::StackName}-StackId" + } + } + }, + "AuthRoleArn": { + "Value": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + } + }, + "UnauthRoleArn": { + "Value": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + } + }, + "DeploymentBucketName": { + "Description": "CloudFormation provider root stack deployment bucket name", + "Value": { + "Ref": "DeploymentBucketName" + }, + "Export": { + "Name": { + "Fn::Sub": "${AWS::StackName}-DeploymentBucketName" + } + } + }, + "AuthRoleName": { + "Value": { + "Ref": "AuthRole" + } + }, + "UnauthRoleName": { + "Value": { + "Ref": "UnauthRole" + } + } + }, + "Resources": { + "DeploymentBucket": { + "Type": "AWS::S3::Bucket", + "Properties": { + "BucketName": { + "Ref": "DeploymentBucketName" + }, + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { + "SSEAlgorithm": "AES256" + } + } + ] + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "DeploymentBucketBlockHTTP": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "DeploymentBucketName" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": "s3:*", + "Effect": "Deny", + "Principal": "*", + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:aws:s3:::", + { + "Ref": "DeploymentBucketName" + }, + "/*" + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:aws:s3:::", + { + "Ref": "DeploymentBucketName" + } + ] + ] + } + ], + "Condition": { + "Bool": { + "aws:SecureTransport": false + } + } + } + ] + } + } + }, + "AuthRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Deny", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + }, + "Action": "sts:AssumeRoleWithWebIdentity" + } + ] + }, + "RoleName": { + "Ref": "AuthRoleName" + } + } + }, + "UnauthRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Deny", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + }, + "Action": "sts:AssumeRoleWithWebIdentity" + } + ] + }, + "RoleName": { + "Ref": "UnauthRoleName" + } + } + }, + "AuthTriggerCustomLambdaStack": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/auth/auth-trigger-cloudformation-template.json", + "Parameters": { + "env": "main", + "userpoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "userpoolArn": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolArn" + ] + }, + "functionstorelocator41a9495f41a9495fPostConfirmationLambdaExecutionRole": { + "Fn::GetAtt": [ + "functionstorelocator41a9495f41a9495fPostConfirmation", + "Outputs.LambdaExecutionRoleArn" + ] + }, + "functionstorelocator41a9495f41a9495fPostConfirmationArn": { + "Fn::GetAtt": [ + "functionstorelocator41a9495f41a9495fPostConfirmation", + "Outputs.Arn" + ] + }, + "functionstorelocator41a9495f41a9495fPostConfirmationName": { + "Fn::GetAtt": [ + "functionstorelocator41a9495f41a9495fPostConfirmation", + "Outputs.Name" + ] + } + } + }, + "DependsOn": [ + "authstorelocator41a9495f41a9495f", + "functionstorelocator41a9495f41a9495fPostConfirmation" + ] + }, + "authuserPoolGroups": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/auth/userPoolGroups-cloudformation-template.json", + "Parameters": { + "AuthRoleArn": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + }, + "UnauthRoleArn": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "authstorelocator41a9495f41a9495fAppClientIDWeb": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.AppClientIDWeb" + ] + }, + "authstorelocator41a9495f41a9495fAppClientID": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.AppClientID" + ] + }, + "authstorelocator41a9495f41a9495fIdentityPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.IdentityPoolId" + ] + }, + "env": "main" + } + } + }, + "authstorelocator41a9495f41a9495f": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/auth/storelocator41a9495f41a9495f-cloudformation-template.json", + "Parameters": { + "identityPoolName": "storelocator41a9495f_identitypool_41a9495f", + "allowUnauthenticatedIdentities": true, + "resourceNameTruncated": "storel41a9495f", + "userPoolName": "storelocator41a9495f_userpool_41a9495f", + "autoVerifiedAttributes": "email", + "mfaConfiguration": "OFF", + "mfaTypes": "SMS Text Message", + "smsAuthenticationMessage": "Your authentication code is {####}", + "smsVerificationMessage": "Your verification code is {####}", + "emailVerificationSubject": "Your verification code", + "emailVerificationMessage": "Your verification code is {####}", + "defaultPasswordPolicy": false, + "passwordPolicyMinLength": 8, + "passwordPolicyCharacters": "", + "requiredAttributes": "email", + "aliasAttributes": "", + "userpoolClientGenerateSecret": false, + "userpoolClientRefreshTokenValidity": "100", + "userpoolClientWriteAttributes": "email", + "userpoolClientReadAttributes": "email", + "userpoolClientLambdaRole": "storel41a9495f_userpoolclient_lambda_role", + "userpoolClientSetAttributes": false, + "sharedId": "41a9495f", + "resourceName": "storelocator41a9495f41a9495f", + "authSelections": "identityPoolAndUserPool", + "useDefault": "manual", + "thirdPartyAuth": false, + "usernameAttributes": "email", + "userPoolGroups": true, + "adminQueries": false, + "triggers": "{\"PostConfirmation\":[\"add-to-group\"]}", + "hostedUI": false, + "userPoolGroupList": "storeLocatorAdmin", + "serviceName": "Cognito", + "usernameCaseSensitive": false, + "useEnabledMfas": true, + "authRoleArn": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + }, + "unauthRoleArn": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + }, + "breakCircularDependency": true, + "dependsOn": "[object Object]", + "permissions": "{\"policyName\":\"AddToGroupCognito\",\"trigger\":\"PostConfirmation\",\"effect\":\"Allow\",\"actions\":[\"cognito-idp:AdminAddUserToGroup\",\"cognito-idp:GetGroup\",\"cognito-idp:CreateGroup\"],\"resource\":{\"paramType\":\"!GetAtt\",\"keys\":[\"UserPool\",\"Arn\"]}}", + "authTriggerConnections": "{\"triggerType\":\"PostConfirmation\",\"lambdaFunctionName\":\"storelocator41a9495f41a9495fPostConfirmation\"}", + "env": "main" + } + } + }, + "functionstorelocator41a9495f41a9495fPostConfirmation": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/function/storelocator41a9495f41a9495fPostConfirmation-cloudformation-template.json", + "Parameters": { + "modules": "add-to-group", + "resourceName": "storelocator41a9495f41a9495fPostConfirmation", + "GROUP": "storeLocatorAdmin", + "deploymentBucketName": "amplify-storelocator-main-f9ca7-deployment", + "s3Key": "amplify-builds/storelocator41a9495f41a9495fPostConfirmation-6a6c746d4739755a384a-build.zip", + "env": "main" + } + } + }, + "geostoreLocatorMap": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/geo/storeLocatorMap-cloudformation-template.json", + "Parameters": { + "authRoleName": { + "Ref": "AuthRoleName" + }, + "unauthRoleName": { + "Ref": "UnauthRoleName" + }, + "mapName": "storeLocatorMap", + "mapStyle": "VectorEsriStreets", + "isDefault": true, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Fn::GetAtt": [ + "authuserPoolGroups", + "Outputs.storeLocatorAdminGroupRole" + ] + }, + "env": "main" + } + } + }, + "geostoreLocatorSearch": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/geo/storeLocatorSearch-cloudformation-template.json", + "Parameters": { + "authRoleName": { + "Ref": "AuthRoleName" + }, + "unauthRoleName": { + "Ref": "UnauthRoleName" + }, + "indexName": "storeLocatorSearch", + "dataProvider": "Here", + "dataSourceIntendedUse": "SingleUse", + "isDefault": true, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Fn::GetAtt": [ + "authuserPoolGroups", + "Outputs.storeLocatorAdminGroupRole" + ] + }, + "env": "main" + } + } + }, + "geostoreLocatorGeofence": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/geo/storeLocatorGeofence-cloudformation-template.json", + "Parameters": { + "collectionName": "storeLocatorGeofence", + "isDefault": true, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Fn::GetAtt": [ + "authuserPoolGroups", + "Outputs.storeLocatorAdminGroupRole" + ] + }, + "env": "main" + } + } + }, + "UpdateRolesWithIDPFunction": { + "DependsOn": [ + "AuthRole", + "UnauthRole", + "authstorelocator41a9495f41a9495f" + ], + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": { + "Fn::Join": [ + "\n", + [ + "const response = require('cfn-response');", + "const { IAMClient, GetRoleCommand, UpdateAssumeRolePolicyCommand } = require('@aws-sdk/client-iam');", + "exports.handler = function(event, context) {", + " // Don't return promise, response.send() marks context as done internally", + " const ignoredPromise = handleEvent(event, context)", + "};", + "async function handleEvent(event, context) {", + " try {", + " let authRoleName = event.ResourceProperties.authRoleName;", + " let unauthRoleName = event.ResourceProperties.unauthRoleName;", + " let idpId = event.ResourceProperties.idpId;", + " let authParamsJson = {", + " 'Version': '2012-10-17',", + " 'Statement': [{", + " 'Effect': 'Allow',", + " 'Principal': {'Federated': 'cognito-identity.amazonaws.com'},", + " 'Action': 'sts:AssumeRoleWithWebIdentity',", + " 'Condition': {", + " 'StringEquals': {'cognito-identity.amazonaws.com:aud': idpId},", + " 'ForAnyValue:StringLike': {'cognito-identity.amazonaws.com:amr': 'authenticated'}", + " }", + " }]", + " };", + " let unauthParamsJson = {", + " 'Version': '2012-10-17',", + " 'Statement': [{", + " 'Effect': 'Allow',", + " 'Principal': {'Federated': 'cognito-identity.amazonaws.com'},", + " 'Action': 'sts:AssumeRoleWithWebIdentity',", + " 'Condition': {", + " 'StringEquals': {'cognito-identity.amazonaws.com:aud': idpId},", + " 'ForAnyValue:StringLike': {'cognito-identity.amazonaws.com:amr': 'unauthenticated'}", + " }", + " }]", + " };", + " if (event.RequestType === 'Delete') {", + " try {", + " delete authParamsJson.Statement[0].Condition;", + " delete unauthParamsJson.Statement[0].Condition;", + " authParamsJson.Statement[0].Effect = 'Deny'", + " unauthParamsJson.Statement[0].Effect = 'Deny'", + " let authParams = {PolicyDocument: JSON.stringify(authParamsJson), RoleName: authRoleName};", + " let unauthParams = {PolicyDocument: JSON.stringify(unauthParamsJson), RoleName: unauthRoleName};", + " const iam = new IAMClient({region: event.ResourceProperties.region});", + " let res = await Promise.all([", + " iam.send(new GetRoleCommand({RoleName: authParams.RoleName})),", + " iam.send(new GetRoleCommand({RoleName: unauthParams.RoleName}))", + " ]);", + " res = await Promise.all([", + " iam.send(new UpdateAssumeRolePolicyCommand(authParams)),", + " iam.send(new UpdateAssumeRolePolicyCommand(unauthParams))", + " ]);", + " response.send(event, context, response.SUCCESS, {});", + " } catch (err) {", + " console.log(err.stack);", + " response.send(event, context, response.SUCCESS, {Error: err});", + " }", + " } else if (event.RequestType === 'Update' || event.RequestType === 'Create') {", + " const iam = new IAMClient({region: event.ResourceProperties.region});", + " let authParams = {PolicyDocument: JSON.stringify(authParamsJson), RoleName: authRoleName};", + " let unauthParams = {PolicyDocument: JSON.stringify(unauthParamsJson), RoleName: unauthRoleName};", + " const res = await Promise.all([", + " iam.send(new UpdateAssumeRolePolicyCommand(authParams)),", + " iam.send(new UpdateAssumeRolePolicyCommand(unauthParams))", + " ]);", + " response.send(event, context, response.SUCCESS, {});", + " }", + " } catch (err) {", + " console.log(err.stack);", + " response.send(event, context, response.FAILED, {Error: err});", + " }", + "};" + ] + ] + } + }, + "Handler": "index.handler", + "Runtime": "nodejs22.x", + "Timeout": 300, + "Role": { + "Fn::GetAtt": [ + "UpdateRolesWithIDPFunctionRole", + "Arn" + ] + } + } + }, + "UpdateRolesWithIDPFunctionOutputs": { + "Type": "Custom::LambdaCallout", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "UpdateRolesWithIDPFunction", + "Arn" + ] + }, + "region": { + "Ref": "AWS::Region" + }, + "idpId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.IdentityPoolId" + ] + }, + "authRoleName": { + "Ref": "AuthRole" + }, + "unauthRoleName": { + "Ref": "UnauthRole" + } + } + }, + "UpdateRolesWithIDPFunctionRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "RoleName": { + "Fn::Join": [ + "", + [ + { + "Ref": "AuthRole" + }, + "-idp" + ] + ] + }, + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + }, + "Action": [ + "sts:AssumeRole" + ] + } + ] + }, + "Policies": [ + { + "PolicyName": "UpdateRolesWithIDPFunctionPolicy", + "PolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Resource": "arn:aws:logs:*:*:*" + }, + { + "Effect": "Allow", + "Action": [ + "iam:UpdateAssumeRolePolicy", + "iam:GetRole" + ], + "Resource": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + } + }, + { + "Effect": "Allow", + "Action": [ + "iam:UpdateAssumeRolePolicy", + "iam:GetRole" + ], + "Resource": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + } + } + ] + } + } + ] + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/awscloudformation/build/function/storelocator41a9495f41a9495fPostConfirmation/storelocator41a9495f41a9495fPostConfirmation-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/awscloudformation/build/function/storelocator41a9495f41a9495fPostConfirmation/storelocator41a9495f41a9495fPostConfirmation-cloudformation-template.json new file mode 100644 index 00000000000..192bbea9292 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/awscloudformation/build/function/storelocator41a9495f41a9495fPostConfirmation/storelocator41a9495f41a9495fPostConfirmation-cloudformation-template.json @@ -0,0 +1,235 @@ +{ + "AWSTemplateFormatVersion": "2010-09-09", + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"function-Lambda\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "Parameters": { + "GROUP": { + "Type": "String", + "Default": "" + }, + "modules": { + "Type": "String", + "Default": "", + "Description": "Comma-delimited list of modules to be executed by a lambda trigger. Sent to resource as an env variable." + }, + "resourceName": { + "Type": "String", + "Default": "" + }, + "trigger": { + "Type": "String", + "Default": "true" + }, + "functionName": { + "Type": "String", + "Default": "" + }, + "roleName": { + "Type": "String", + "Default": "" + }, + "parentResource": { + "Type": "String", + "Default": "" + }, + "parentStack": { + "Type": "String", + "Default": "" + }, + "env": { + "Type": "String" + }, + "deploymentBucketName": { + "Type": "String" + }, + "s3Key": { + "Type": "String" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + }, + "Resources": { + "LambdaFunction": { + "Type": "AWS::Lambda::Function", + "Metadata": { + "aws:asset:path": "./src", + "aws:asset:property": "Code" + }, + "Properties": { + "Handler": "index.handler", + "FunctionName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "storelocator41a9495f41a9495fPostConfirmation", + { + "Fn::Join": [ + "", + [ + "storelocator41a9495f41a9495fPostConfirmation", + "-", + { + "Ref": "env" + } + ] + ] + } + ] + }, + "Environment": { + "Variables": { + "ENV": { + "Ref": "env" + }, + "MODULES": { + "Ref": "modules" + }, + "REGION": { + "Ref": "AWS::Region" + }, + "GROUP": { + "Ref": "GROUP" + } + } + }, + "Role": { + "Fn::GetAtt": [ + "LambdaExecutionRole", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Timeout": 25, + "Code": { + "S3Bucket": { + "Ref": "deploymentBucketName" + }, + "S3Key": { + "Ref": "s3Key" + } + } + } + }, + "LambdaExecutionRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "RoleName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "storelocator41a9495f41a9495fPostConfirmation", + { + "Fn::Join": [ + "", + [ + "storelocator41a9495f41a9495fPostConfirmation", + "-", + { + "Ref": "env" + } + ] + ] + } + ] + }, + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + }, + "Action": [ + "sts:AssumeRole" + ] + } + ] + } + } + }, + "lambdaexecutionpolicy": { + "DependsOn": [ + "LambdaExecutionRole" + ], + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyName": "lambda-execution-policy", + "Roles": [ + { + "Ref": "LambdaExecutionRole" + } + ], + "PolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Resource": { + "Fn::Sub": [ + "arn:aws:logs:${region}:${account}:log-group:/aws/lambda/${lambda}:log-stream:*", + { + "region": { + "Ref": "AWS::Region" + }, + "account": { + "Ref": "AWS::AccountId" + }, + "lambda": { + "Ref": "LambdaFunction" + } + } + ] + } + } + ] + } + } + } + }, + "Outputs": { + "Name": { + "Value": { + "Ref": "LambdaFunction" + } + }, + "Arn": { + "Value": { + "Fn::GetAtt": [ + "LambdaFunction", + "Arn" + ] + } + }, + "LambdaExecutionRole": { + "Value": { + "Ref": "LambdaExecutionRole" + } + }, + "LambdaExecutionRoleArn": { + "Value": { + "Fn::GetAtt": [ + "LambdaExecutionRole", + "Arn" + ] + } + }, + "Region": { + "Value": { + "Ref": "AWS::Region" + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/awscloudformation/build/geo/storeLocatorGeofence/storeLocatorGeofence-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/awscloudformation/build/geo/storeLocatorGeofence/storeLocatorGeofence-cloudformation-template.json new file mode 100644 index 00000000000..17020d54719 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/awscloudformation/build/geo/storeLocatorGeofence/storeLocatorGeofence-cloudformation-template.json @@ -0,0 +1,364 @@ +{ + "Mappings": { + "RegionMapping": { + "us-east-1": { + "locationServiceRegion": "us-east-1" + }, + "us-east-2": { + "locationServiceRegion": "us-east-2" + }, + "us-west-2": { + "locationServiceRegion": "us-west-2" + }, + "ap-southeast-1": { + "locationServiceRegion": "ap-southeast-1" + }, + "ap-southeast-2": { + "locationServiceRegion": "ap-southeast-2" + }, + "ap-northeast-1": { + "locationServiceRegion": "ap-northeast-1" + }, + "eu-central-1": { + "locationServiceRegion": "eu-central-1" + }, + "eu-north-1": { + "locationServiceRegion": "eu-north-1" + }, + "eu-west-1": { + "locationServiceRegion": "eu-west-1" + }, + "sa-east-1": { + "locationServiceRegion": "us-east-1" + }, + "ca-central-1": { + "locationServiceRegion": "us-east-1" + }, + "us-west-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-north-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-northwest-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-south-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-3": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-2": { + "locationServiceRegion": "us-west-2" + }, + "eu-west-2": { + "locationServiceRegion": "eu-west-1" + }, + "eu-west-3": { + "locationServiceRegion": "eu-west-1" + }, + "me-south-1": { + "locationServiceRegion": "ap-southeast-1" + } + } + }, + "Parameters": { + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Type": "String" + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Type": "String" + }, + "collectionName": { + "Type": "String" + }, + "env": { + "Type": "String" + }, + "isDefault": { + "Type": "String" + } + }, + "Resources": { + "CustomGeofenceCollectionLambdaServiceRole9040D551": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + } + }, + "CustomGeofenceCollectionLambdaServiceRoleDefaultPolicy0A18B369": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "geo:CreateGeofenceCollection", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "geo:UpdateGeofenceCollection", + "geo:DeleteGeofenceCollection" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:geofence-collection/${collectionName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "collectionName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "collectionName" + }, + { + "Ref": "env" + } + ] + ] + } + } + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "CustomGeofenceCollectionLambdaServiceRoleDefaultPolicy0A18B369", + "Roles": [ + { + "Ref": "CustomGeofenceCollectionLambdaServiceRole9040D551" + } + ] + } + }, + "CustomGeofenceCollectionLambdaCA3D002B": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "const response = require('cfn-response');\nconst {\n LocationClient,\n CreateGeofenceCollectionCommand,\n DeleteGeofenceCollectionCommand,\n UpdateGeofenceCollectionCommand,\n} = require('@aws-sdk/client-location');\nexports.handler = async function (event, context) {\n try {\n console.log('REQUEST RECEIVED:' + JSON.stringify(event));\n const pricingPlan = 'RequestBasedUsage';\n if (event.RequestType === 'Create') {\n const params = {\n CollectionName: event.ResourceProperties.collectionName,\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new CreateGeofenceCollectionCommand(params));\n console.log('create resource response data' + JSON.stringify(res));\n if (res.CollectionName && res.CollectionArn) {\n await response.send(event, context, response.SUCCESS, res, params.CollectionName);\n } else {\n await response.send(event, context, response.FAILED, res, params.CollectionName);\n }\n }\n if (event.RequestType === 'Update') {\n const params = {\n CollectionName: event.ResourceProperties.collectionName,\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new UpdateGeofenceCollectionCommand(params));\n console.log('update resource response data' + JSON.stringify(res));\n if (res.CollectionName) {\n await response.send(event, context, response.SUCCESS, res, params.CollectionName);\n } else {\n await response.send(event, context, response.FAILED, res, params.CollectionName);\n }\n }\n if (event.RequestType === 'Delete') {\n const params = {\n CollectionName: event.ResourceProperties.collectionName,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new DeleteGeofenceCollectionCommand(params));\n console.log('delete resource response data' + JSON.stringify(res));\n await response.send(event, context, response.SUCCESS, res, params.CollectionName);\n }\n } catch (err) {\n console.log(err.stack);\n const res = { Error: err };\n await response.send(event, context, response.FAILED, res, event.ResourceProperties.collectionName);\n throw err;\n }\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "CustomGeofenceCollectionLambdaServiceRole9040D551", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Timeout": 300 + }, + "DependsOn": [ + "CustomGeofenceCollectionLambdaServiceRoleDefaultPolicy0A18B369", + "CustomGeofenceCollectionLambdaServiceRole9040D551" + ] + }, + "CustomGeofenceCollection": { + "Type": "Custom::LambdaCallout", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "CustomGeofenceCollectionLambdaCA3D002B", + "Arn" + ] + }, + "collectionName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "collectionName" + }, + { + "Ref": "env" + } + ] + ] + }, + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "env": { + "Ref": "env" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "storeLocatorAdminGeofenceCollectionPolicy": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "geo:GetGeofence", + "geo:PutGeofence", + "geo:BatchPutGeofence", + "geo:BatchDeleteGeofence", + "geo:ListGeofences" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:geofence-collection/${collectionName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "collectionName": { + "Fn::GetAtt": [ + "CustomGeofenceCollection", + "CollectionName" + ] + } + } + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": { + "Fn::Join": [ + "", + [ + "storeLocatorAdmin", + { + "Fn::Join": [ + "-", + [ + { + "Ref": "collectionName" + }, + { + "Ref": "env" + } + ] + ] + }, + "Policy" + ] + ] + }, + "Roles": [ + { + "Fn::Join": [ + "-", + [ + { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "storeLocatorAdminGroupRole" + ] + ] + } + ] + } + } + }, + "Outputs": { + "Name": { + "Value": { + "Fn::GetAtt": [ + "CustomGeofenceCollection", + "CollectionName" + ] + } + }, + "Region": { + "Value": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + } + }, + "Arn": { + "Value": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:geofence-collection/${collectionName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "collectionName": { + "Fn::GetAtt": [ + "CustomGeofenceCollection", + "CollectionName" + ] + } + } + ] + } + } + }, + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"geo-GeofenceCollection\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}" +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/awscloudformation/build/geo/storeLocatorMap/storeLocatorMap-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/awscloudformation/build/geo/storeLocatorMap/storeLocatorMap-cloudformation-template.json new file mode 100644 index 00000000000..bf53b69ff23 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/awscloudformation/build/geo/storeLocatorMap/storeLocatorMap-cloudformation-template.json @@ -0,0 +1,347 @@ +{ + "Mappings": { + "RegionMapping": { + "us-east-1": { + "locationServiceRegion": "us-east-1" + }, + "us-east-2": { + "locationServiceRegion": "us-east-2" + }, + "us-west-2": { + "locationServiceRegion": "us-west-2" + }, + "ap-southeast-1": { + "locationServiceRegion": "ap-southeast-1" + }, + "ap-southeast-2": { + "locationServiceRegion": "ap-southeast-2" + }, + "ap-northeast-1": { + "locationServiceRegion": "ap-northeast-1" + }, + "eu-central-1": { + "locationServiceRegion": "eu-central-1" + }, + "eu-north-1": { + "locationServiceRegion": "eu-north-1" + }, + "eu-west-1": { + "locationServiceRegion": "eu-west-1" + }, + "sa-east-1": { + "locationServiceRegion": "us-east-1" + }, + "ca-central-1": { + "locationServiceRegion": "us-east-1" + }, + "us-west-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-north-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-northwest-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-south-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-3": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-2": { + "locationServiceRegion": "us-west-2" + }, + "eu-west-2": { + "locationServiceRegion": "eu-west-1" + }, + "eu-west-3": { + "locationServiceRegion": "eu-west-1" + }, + "me-south-1": { + "locationServiceRegion": "ap-southeast-1" + } + } + }, + "Parameters": { + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Type": "String" + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Type": "String" + }, + "authRoleName": { + "Type": "String" + }, + "unauthRoleName": { + "Type": "String" + }, + "mapName": { + "Type": "String" + }, + "mapStyle": { + "Type": "String" + }, + "env": { + "Type": "String" + }, + "isDefault": { + "Type": "String" + } + }, + "Resources": { + "CustomMapLambdaServiceRole4EE7732C": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + } + }, + "CustomMapLambdaServiceRoleDefaultPolicy983FDD4E": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "geo:CreateMap", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "geo:UpdateMap", + "geo:DeleteMap" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:map/${mapName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "mapName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "mapName" + }, + { + "Ref": "env" + } + ] + ] + } + } + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "CustomMapLambdaServiceRoleDefaultPolicy983FDD4E", + "Roles": [ + { + "Ref": "CustomMapLambdaServiceRole4EE7732C" + } + ] + } + }, + "CustomMapLambda51D5D430": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "const response = require('cfn-response');\nconst { LocationClient, CreateMapCommand, DeleteMapCommand, UpdateMapCommand } = require('@aws-sdk/client-location');\nexports.handler = async function (event, context) {\n try {\n console.log('REQUEST RECEIVED:' + JSON.stringify(event));\n const pricingPlan = 'RequestBasedUsage';\n if (event.RequestType === 'Create') {\n let params = {\n MapName: event.ResourceProperties.mapName,\n Configuration: {\n Style: event.ResourceProperties.mapStyle,\n },\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new CreateMapCommand(params));\n console.log('create resource response data' + JSON.stringify(res));\n if (res.MapName && res.MapArn) {\n await response.send(event, context, response.SUCCESS, res, params.MapName);\n } else {\n await response.send(event, context, response.FAILED, res, params.MapName);\n }\n }\n if (event.RequestType === 'Update') {\n let params = {\n MapName: event.ResourceProperties.mapName,\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new UpdateMapCommand(params));\n console.log('update resource response data' + JSON.stringify(res));\n if (res.MapName && res.MapArn) {\n await response.send(event, context, response.SUCCESS, res, params.MapName);\n } else {\n await response.send(event, context, response.FAILED, res, params.MapName);\n }\n }\n if (event.RequestType === 'Delete') {\n let params = {\n MapName: event.ResourceProperties.mapName,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new DeleteMapCommand(params));\n console.log('delete resource response data' + JSON.stringify(res));\n await response.send(event, context, response.SUCCESS, res, params.MapName);\n }\n } catch (err) {\n console.log(err.stack);\n const res = { Error: err };\n await response.send(event, context, response.FAILED, res, event.ResourceProperties.mapName);\n throw err;\n }\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "CustomMapLambdaServiceRole4EE7732C", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Timeout": 300 + }, + "DependsOn": [ + "CustomMapLambdaServiceRoleDefaultPolicy983FDD4E", + "CustomMapLambdaServiceRole4EE7732C" + ] + }, + "CustomMap": { + "Type": "Custom::LambdaCallout", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "CustomMapLambda51D5D430", + "Arn" + ] + }, + "mapName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "mapName" + }, + { + "Ref": "env" + } + ] + ] + }, + "mapStyle": { + "Ref": "mapStyle" + }, + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "env": { + "Ref": "env" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "MapPolicy": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "geo:GetMapStyleDescriptor", + "geo:GetMapGlyphs", + "geo:GetMapSprites", + "geo:GetMapTile" + ], + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "CustomMap", + "MapArn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": { + "Fn::Join": [ + "", + [ + { + "Fn::Join": [ + "-", + [ + { + "Ref": "mapName" + }, + { + "Ref": "env" + } + ] + ] + }, + "Policy" + ] + ] + }, + "Roles": [ + { + "Ref": "authRoleName" + }, + { + "Ref": "unauthRoleName" + }, + { + "Fn::Join": [ + "-", + [ + { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "storeLocatorAdminGroupRole" + ] + ] + } + ] + } + } + }, + "Outputs": { + "Name": { + "Value": { + "Fn::GetAtt": [ + "CustomMap", + "MapName" + ] + } + }, + "Style": { + "Value": { + "Ref": "mapStyle" + } + }, + "Region": { + "Value": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + } + }, + "Arn": { + "Value": { + "Fn::GetAtt": [ + "CustomMap", + "MapArn" + ] + } + } + }, + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"geo-Map\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}" +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/awscloudformation/build/geo/storeLocatorSearch/storeLocatorSearch-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/awscloudformation/build/geo/storeLocatorSearch/storeLocatorSearch-cloudformation-template.json new file mode 100644 index 00000000000..1ef40f17717 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/awscloudformation/build/geo/storeLocatorSearch/storeLocatorSearch-cloudformation-template.json @@ -0,0 +1,348 @@ +{ + "Mappings": { + "RegionMapping": { + "us-east-1": { + "locationServiceRegion": "us-east-1" + }, + "us-east-2": { + "locationServiceRegion": "us-east-2" + }, + "us-west-2": { + "locationServiceRegion": "us-west-2" + }, + "ap-southeast-1": { + "locationServiceRegion": "ap-southeast-1" + }, + "ap-southeast-2": { + "locationServiceRegion": "ap-southeast-2" + }, + "ap-northeast-1": { + "locationServiceRegion": "ap-northeast-1" + }, + "eu-central-1": { + "locationServiceRegion": "eu-central-1" + }, + "eu-north-1": { + "locationServiceRegion": "eu-north-1" + }, + "eu-west-1": { + "locationServiceRegion": "eu-west-1" + }, + "sa-east-1": { + "locationServiceRegion": "us-east-1" + }, + "ca-central-1": { + "locationServiceRegion": "us-east-1" + }, + "us-west-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-north-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-northwest-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-south-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-3": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-2": { + "locationServiceRegion": "us-west-2" + }, + "eu-west-2": { + "locationServiceRegion": "eu-west-1" + }, + "eu-west-3": { + "locationServiceRegion": "eu-west-1" + }, + "me-south-1": { + "locationServiceRegion": "ap-southeast-1" + } + } + }, + "Parameters": { + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Type": "String" + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Type": "String" + }, + "authRoleName": { + "Type": "String" + }, + "unauthRoleName": { + "Type": "String" + }, + "indexName": { + "Type": "String" + }, + "dataProvider": { + "Type": "String" + }, + "dataSourceIntendedUse": { + "Type": "String" + }, + "env": { + "Type": "String" + }, + "isDefault": { + "Type": "String" + } + }, + "Resources": { + "CustomPlaceIndexLambdaServiceRoleFD2F3C9D": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + } + }, + "CustomPlaceIndexLambdaServiceRoleDefaultPolicy818068B1": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "geo:CreatePlaceIndex", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "geo:UpdatePlaceIndex", + "geo:DeletePlaceIndex" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:place-index/${indexName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "indexName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "indexName" + }, + { + "Ref": "env" + } + ] + ] + } + } + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "CustomPlaceIndexLambdaServiceRoleDefaultPolicy818068B1", + "Roles": [ + { + "Ref": "CustomPlaceIndexLambdaServiceRoleFD2F3C9D" + } + ] + } + }, + "CustomPlaceIndexLambda79813BB9": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "const response = require('cfn-response');\nconst { LocationClient, CreatePlaceIndexCommand, DeletePlaceIndexCommand, UpdatePlaceIndexCommand } = require('@aws-sdk/client-location');\nexports.handler = async function (event, context) {\n try {\n console.log('REQUEST RECEIVED:' + JSON.stringify(event));\n const pricingPlan = 'RequestBasedUsage';\n if (event.RequestType === 'Create') {\n const params = {\n IndexName: event.ResourceProperties.indexName,\n DataSource: event.ResourceProperties.dataSource,\n DataSourceConfiguration: {\n IntendedUse: event.ResourceProperties.dataSourceIntendedUse,\n },\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new CreatePlaceIndexCommand(params));\n console.log('create resource response data' + JSON.stringify(res));\n if (res.IndexName && res.IndexArn) {\n event.PhysicalResourceId = res.IndexName;\n await response.send(event, context, response.SUCCESS, res, params.IndexName);\n } else {\n await response.send(event, context, response.FAILED, res, params.IndexName);\n }\n }\n if (event.RequestType === 'Update') {\n const params = {\n IndexName: event.ResourceProperties.indexName,\n DataSourceConfiguration: {\n IntendedUse: event.ResourceProperties.dataSourceIntendedUse,\n },\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new UpdatePlaceIndexCommand(params));\n console.log('update resource response data' + JSON.stringify(res));\n if (res.IndexName && res.IndexArn) {\n event.PhysicalResourceId = res.IndexName;\n await response.send(event, context, response.SUCCESS, res, params.IndexName);\n } else {\n await response.send(event, context, response.FAILED, res, params.IndexName);\n }\n }\n if (event.RequestType === 'Delete') {\n const params = {\n IndexName: event.ResourceProperties.indexName,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new DeletePlaceIndexCommand(params));\n event.PhysicalResourceId = event.ResourceProperties.indexName;\n console.log('delete resource response data' + JSON.stringify(res));\n await response.send(event, context, response.SUCCESS, res, params.IndexName);\n }\n } catch (err) {\n console.log(err.stack);\n const res = { Error: err };\n await response.send(event, context, response.FAILED, res, event.ResourceProperties.indexName);\n throw err;\n }\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "CustomPlaceIndexLambdaServiceRoleFD2F3C9D", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Timeout": 300 + }, + "DependsOn": [ + "CustomPlaceIndexLambdaServiceRoleDefaultPolicy818068B1", + "CustomPlaceIndexLambdaServiceRoleFD2F3C9D" + ] + }, + "CustomPlaceIndex": { + "Type": "Custom::LambdaCallout", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "CustomPlaceIndexLambda79813BB9", + "Arn" + ] + }, + "indexName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "indexName" + }, + { + "Ref": "env" + } + ] + ] + }, + "dataSource": { + "Ref": "dataProvider" + }, + "dataSourceIntendedUse": { + "Ref": "dataSourceIntendedUse" + }, + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "env": { + "Ref": "env" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "PlaceIndexPolicy": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "geo:SearchPlaceIndexForPosition", + "geo:SearchPlaceIndexForText", + "geo:SearchPlaceIndexForSuggestions", + "geo:GetPlace" + ], + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "CustomPlaceIndex", + "IndexArn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": { + "Fn::Join": [ + "", + [ + { + "Fn::Join": [ + "-", + [ + { + "Ref": "indexName" + }, + { + "Ref": "env" + } + ] + ] + }, + "Policy" + ] + ] + }, + "Roles": [ + { + "Ref": "authRoleName" + }, + { + "Ref": "unauthRoleName" + }, + { + "Fn::Join": [ + "-", + [ + { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "storeLocatorAdminGroupRole" + ] + ] + } + ] + } + } + }, + "Outputs": { + "Name": { + "Value": { + "Fn::GetAtt": [ + "CustomPlaceIndex", + "IndexName" + ] + } + }, + "Region": { + "Value": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + } + }, + "Arn": { + "Value": { + "Fn::GetAtt": [ + "CustomPlaceIndex", + "IndexArn" + ] + } + } + }, + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"geo-PlaceIndex\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}" +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/awscloudformation/build/root-cloudformation-stack.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/awscloudformation/build/root-cloudformation-stack.json new file mode 100644 index 00000000000..1b8df321c23 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/awscloudformation/build/root-cloudformation-stack.json @@ -0,0 +1,653 @@ +{ + "Description": "Root Stack for AWS Amplify CLI", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "DeploymentBucketName": { + "Type": "String", + "Default": "DeploymentBucket", + "Description": "Name of the common deployment bucket provided by the parent stack" + }, + "AuthRoleName": { + "Type": "String", + "Default": "AuthRoleName", + "Description": "Name of the common deployment bucket provided by the parent stack" + }, + "UnauthRoleName": { + "Type": "String", + "Default": "UnAuthRoleName", + "Description": "Name of the common deployment bucket provided by the parent stack" + } + }, + "Outputs": { + "Region": { + "Description": "CloudFormation provider root stack Region", + "Value": { + "Ref": "AWS::Region" + }, + "Export": { + "Name": { + "Fn::Sub": "${AWS::StackName}-Region" + } + } + }, + "StackName": { + "Description": "CloudFormation provider root stack ID", + "Value": { + "Ref": "AWS::StackName" + }, + "Export": { + "Name": { + "Fn::Sub": "${AWS::StackName}-StackName" + } + } + }, + "StackId": { + "Description": "CloudFormation provider root stack name", + "Value": { + "Ref": "AWS::StackId" + }, + "Export": { + "Name": { + "Fn::Sub": "${AWS::StackName}-StackId" + } + } + }, + "AuthRoleArn": { + "Value": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + } + }, + "UnauthRoleArn": { + "Value": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + } + }, + "DeploymentBucketName": { + "Description": "CloudFormation provider root stack deployment bucket name", + "Value": { + "Ref": "DeploymentBucketName" + }, + "Export": { + "Name": { + "Fn::Sub": "${AWS::StackName}-DeploymentBucketName" + } + } + }, + "AuthRoleName": { + "Value": { + "Ref": "AuthRole" + } + }, + "UnauthRoleName": { + "Value": { + "Ref": "UnauthRole" + } + } + }, + "Resources": { + "DeploymentBucket": { + "Type": "AWS::S3::Bucket", + "Properties": { + "BucketName": { + "Ref": "DeploymentBucketName" + }, + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { + "SSEAlgorithm": "AES256" + } + } + ] + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "DeploymentBucketBlockHTTP": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "DeploymentBucketName" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": "s3:*", + "Effect": "Deny", + "Principal": "*", + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:aws:s3:::", + { + "Ref": "DeploymentBucketName" + }, + "/*" + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:aws:s3:::", + { + "Ref": "DeploymentBucketName" + } + ] + ] + } + ], + "Condition": { + "Bool": { + "aws:SecureTransport": false + } + } + } + ] + } + } + }, + "AuthRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Deny", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + }, + "Action": "sts:AssumeRoleWithWebIdentity" + } + ] + }, + "RoleName": { + "Ref": "AuthRoleName" + } + } + }, + "UnauthRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Deny", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + }, + "Action": "sts:AssumeRoleWithWebIdentity" + } + ] + }, + "RoleName": { + "Ref": "UnauthRoleName" + } + } + }, + "AuthTriggerCustomLambdaStack": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/auth/auth-trigger-cloudformation-template.json", + "Parameters": { + "env": "main", + "userpoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "userpoolArn": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolArn" + ] + }, + "functionstorelocator41a9495f41a9495fPostConfirmationLambdaExecutionRole": { + "Fn::GetAtt": [ + "functionstorelocator41a9495f41a9495fPostConfirmation", + "Outputs.LambdaExecutionRoleArn" + ] + }, + "functionstorelocator41a9495f41a9495fPostConfirmationArn": { + "Fn::GetAtt": [ + "functionstorelocator41a9495f41a9495fPostConfirmation", + "Outputs.Arn" + ] + }, + "functionstorelocator41a9495f41a9495fPostConfirmationName": { + "Fn::GetAtt": [ + "functionstorelocator41a9495f41a9495fPostConfirmation", + "Outputs.Name" + ] + } + } + }, + "DependsOn": [ + "authstorelocator41a9495f41a9495f", + "functionstorelocator41a9495f41a9495fPostConfirmation" + ] + }, + "authuserPoolGroups": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/auth/userPoolGroups-cloudformation-template.json", + "Parameters": { + "AuthRoleArn": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + }, + "UnauthRoleArn": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "authstorelocator41a9495f41a9495fAppClientIDWeb": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.AppClientIDWeb" + ] + }, + "authstorelocator41a9495f41a9495fAppClientID": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.AppClientID" + ] + }, + "authstorelocator41a9495f41a9495fIdentityPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.IdentityPoolId" + ] + }, + "env": "main" + } + } + }, + "authstorelocator41a9495f41a9495f": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/auth/storelocator41a9495f41a9495f-cloudformation-template.json", + "Parameters": { + "identityPoolName": "storelocator41a9495f_identitypool_41a9495f", + "allowUnauthenticatedIdentities": true, + "resourceNameTruncated": "storel41a9495f", + "userPoolName": "storelocator41a9495f_userpool_41a9495f", + "autoVerifiedAttributes": "email", + "mfaConfiguration": "OFF", + "mfaTypes": "SMS Text Message", + "smsAuthenticationMessage": "Your authentication code is {####}", + "smsVerificationMessage": "Your verification code is {####}", + "emailVerificationSubject": "Your verification code", + "emailVerificationMessage": "Your verification code is {####}", + "defaultPasswordPolicy": false, + "passwordPolicyMinLength": 8, + "passwordPolicyCharacters": "", + "requiredAttributes": "email", + "aliasAttributes": "", + "userpoolClientGenerateSecret": false, + "userpoolClientRefreshTokenValidity": "100", + "userpoolClientWriteAttributes": "email", + "userpoolClientReadAttributes": "email", + "userpoolClientLambdaRole": "storel41a9495f_userpoolclient_lambda_role", + "userpoolClientSetAttributes": false, + "sharedId": "41a9495f", + "resourceName": "storelocator41a9495f41a9495f", + "authSelections": "identityPoolAndUserPool", + "useDefault": "manual", + "thirdPartyAuth": false, + "usernameAttributes": "email", + "userPoolGroups": true, + "adminQueries": false, + "triggers": "{\"PostConfirmation\":[\"add-to-group\"]}", + "hostedUI": false, + "userPoolGroupList": "storeLocatorAdmin", + "serviceName": "Cognito", + "usernameCaseSensitive": false, + "useEnabledMfas": true, + "authRoleArn": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + }, + "unauthRoleArn": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + }, + "breakCircularDependency": true, + "dependsOn": "[object Object]", + "permissions": "{\"policyName\":\"AddToGroupCognito\",\"trigger\":\"PostConfirmation\",\"effect\":\"Allow\",\"actions\":[\"cognito-idp:AdminAddUserToGroup\",\"cognito-idp:GetGroup\",\"cognito-idp:CreateGroup\"],\"resource\":{\"paramType\":\"!GetAtt\",\"keys\":[\"UserPool\",\"Arn\"]}}", + "authTriggerConnections": "{\"triggerType\":\"PostConfirmation\",\"lambdaFunctionName\":\"storelocator41a9495f41a9495fPostConfirmation\"}", + "env": "main" + } + } + }, + "functionstorelocator41a9495f41a9495fPostConfirmation": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/function/storelocator41a9495f41a9495fPostConfirmation-cloudformation-template.json", + "Parameters": { + "modules": "add-to-group", + "resourceName": "storelocator41a9495f41a9495fPostConfirmation", + "GROUP": "storeLocatorAdmin", + "deploymentBucketName": "amplify-storelocator-main-f9ca7-deployment", + "s3Key": "amplify-builds/storelocator41a9495f41a9495fPostConfirmation-6a6c746d4739755a384a-build.zip", + "env": "main" + } + } + }, + "geostoreLocatorMap": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/geo/storeLocatorMap-cloudformation-template.json", + "Parameters": { + "authRoleName": { + "Ref": "AuthRoleName" + }, + "unauthRoleName": { + "Ref": "UnauthRoleName" + }, + "mapName": "storeLocatorMap", + "mapStyle": "VectorEsriStreets", + "isDefault": true, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Fn::GetAtt": [ + "authuserPoolGroups", + "Outputs.storeLocatorAdminGroupRole" + ] + }, + "env": "main" + } + } + }, + "geostoreLocatorSearch": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/geo/storeLocatorSearch-cloudformation-template.json", + "Parameters": { + "authRoleName": { + "Ref": "AuthRoleName" + }, + "unauthRoleName": { + "Ref": "UnauthRoleName" + }, + "indexName": "storeLocatorSearch", + "dataProvider": "Here", + "dataSourceIntendedUse": "SingleUse", + "isDefault": true, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Fn::GetAtt": [ + "authuserPoolGroups", + "Outputs.storeLocatorAdminGroupRole" + ] + }, + "env": "main" + } + } + }, + "geostoreLocatorGeofence": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/geo/storeLocatorGeofence-cloudformation-template.json", + "Parameters": { + "collectionName": "storeLocatorGeofence", + "isDefault": true, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Fn::GetAtt": [ + "authuserPoolGroups", + "Outputs.storeLocatorAdminGroupRole" + ] + }, + "env": "main" + } + } + }, + "UpdateRolesWithIDPFunction": { + "DependsOn": [ + "AuthRole", + "UnauthRole", + "authstorelocator41a9495f41a9495f" + ], + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": { + "Fn::Join": [ + "\n", + [ + "const response = require('cfn-response');", + "const { IAMClient, GetRoleCommand, UpdateAssumeRolePolicyCommand } = require('@aws-sdk/client-iam');", + "exports.handler = function(event, context) {", + " // Don't return promise, response.send() marks context as done internally", + " const ignoredPromise = handleEvent(event, context)", + "};", + "async function handleEvent(event, context) {", + " try {", + " let authRoleName = event.ResourceProperties.authRoleName;", + " let unauthRoleName = event.ResourceProperties.unauthRoleName;", + " let idpId = event.ResourceProperties.idpId;", + " let authParamsJson = {", + " 'Version': '2012-10-17',", + " 'Statement': [{", + " 'Effect': 'Allow',", + " 'Principal': {'Federated': 'cognito-identity.amazonaws.com'},", + " 'Action': 'sts:AssumeRoleWithWebIdentity',", + " 'Condition': {", + " 'StringEquals': {'cognito-identity.amazonaws.com:aud': idpId},", + " 'ForAnyValue:StringLike': {'cognito-identity.amazonaws.com:amr': 'authenticated'}", + " }", + " }]", + " };", + " let unauthParamsJson = {", + " 'Version': '2012-10-17',", + " 'Statement': [{", + " 'Effect': 'Allow',", + " 'Principal': {'Federated': 'cognito-identity.amazonaws.com'},", + " 'Action': 'sts:AssumeRoleWithWebIdentity',", + " 'Condition': {", + " 'StringEquals': {'cognito-identity.amazonaws.com:aud': idpId},", + " 'ForAnyValue:StringLike': {'cognito-identity.amazonaws.com:amr': 'unauthenticated'}", + " }", + " }]", + " };", + " if (event.RequestType === 'Delete') {", + " try {", + " delete authParamsJson.Statement[0].Condition;", + " delete unauthParamsJson.Statement[0].Condition;", + " authParamsJson.Statement[0].Effect = 'Deny'", + " unauthParamsJson.Statement[0].Effect = 'Deny'", + " let authParams = {PolicyDocument: JSON.stringify(authParamsJson), RoleName: authRoleName};", + " let unauthParams = {PolicyDocument: JSON.stringify(unauthParamsJson), RoleName: unauthRoleName};", + " const iam = new IAMClient({region: event.ResourceProperties.region});", + " let res = await Promise.all([", + " iam.send(new GetRoleCommand({RoleName: authParams.RoleName})),", + " iam.send(new GetRoleCommand({RoleName: unauthParams.RoleName}))", + " ]);", + " res = await Promise.all([", + " iam.send(new UpdateAssumeRolePolicyCommand(authParams)),", + " iam.send(new UpdateAssumeRolePolicyCommand(unauthParams))", + " ]);", + " response.send(event, context, response.SUCCESS, {});", + " } catch (err) {", + " console.log(err.stack);", + " response.send(event, context, response.SUCCESS, {Error: err});", + " }", + " } else if (event.RequestType === 'Update' || event.RequestType === 'Create') {", + " const iam = new IAMClient({region: event.ResourceProperties.region});", + " let authParams = {PolicyDocument: JSON.stringify(authParamsJson), RoleName: authRoleName};", + " let unauthParams = {PolicyDocument: JSON.stringify(unauthParamsJson), RoleName: unauthRoleName};", + " const res = await Promise.all([", + " iam.send(new UpdateAssumeRolePolicyCommand(authParams)),", + " iam.send(new UpdateAssumeRolePolicyCommand(unauthParams))", + " ]);", + " response.send(event, context, response.SUCCESS, {});", + " }", + " } catch (err) {", + " console.log(err.stack);", + " response.send(event, context, response.FAILED, {Error: err});", + " }", + "};" + ] + ] + } + }, + "Handler": "index.handler", + "Runtime": "nodejs22.x", + "Timeout": 300, + "Role": { + "Fn::GetAtt": [ + "UpdateRolesWithIDPFunctionRole", + "Arn" + ] + } + } + }, + "UpdateRolesWithIDPFunctionOutputs": { + "Type": "Custom::LambdaCallout", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "UpdateRolesWithIDPFunction", + "Arn" + ] + }, + "region": { + "Ref": "AWS::Region" + }, + "idpId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.IdentityPoolId" + ] + }, + "authRoleName": { + "Ref": "AuthRole" + }, + "unauthRoleName": { + "Ref": "UnauthRole" + } + } + }, + "UpdateRolesWithIDPFunctionRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "RoleName": { + "Fn::Join": [ + "", + [ + { + "Ref": "AuthRole" + }, + "-idp" + ] + ] + }, + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + }, + "Action": [ + "sts:AssumeRole" + ] + } + ] + }, + "Policies": [ + { + "PolicyName": "UpdateRolesWithIDPFunctionPolicy", + "PolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Resource": "arn:aws:logs:*:*:*" + }, + { + "Effect": "Allow", + "Action": [ + "iam:UpdateAssumeRolePolicy", + "iam:GetRole" + ], + "Resource": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + } + }, + { + "Effect": "Allow", + "Action": [ + "iam:UpdateAssumeRolePolicy", + "iam:GetRole" + ], + "Resource": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + } + } + ] + } + } + ] + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/backend-config.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/backend-config.json new file mode 100644 index 00000000000..6b7a962cd2d --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/backend-config.json @@ -0,0 +1,160 @@ +{ + "auth": { + "storelocator41a9495f41a9495f": { + "customAuth": false, + "dependsOn": [ + { + "attributes": [ + "Arn", + "Name" + ], + "category": "function", + "resourceName": "storelocator41a9495f41a9495fPostConfirmation", + "triggerProvider": "Cognito" + } + ], + "frontendAuthConfig": { + "mfaConfiguration": "OFF", + "mfaTypes": [ + "SMS" + ], + "passwordProtectionSettings": { + "passwordPolicyCharacters": [], + "passwordPolicyMinLength": 8 + }, + "signupAttributes": [ + "EMAIL" + ], + "socialProviders": [], + "usernameAttributes": [ + "EMAIL" + ], + "verificationMechanisms": [ + "EMAIL" + ] + }, + "providerPlugin": "awscloudformation", + "service": "Cognito" + }, + "userPoolGroups": { + "dependsOn": [ + { + "attributes": [ + "UserPoolId", + "AppClientIDWeb", + "AppClientID", + "IdentityPoolId" + ], + "category": "auth", + "resourceName": "storelocator41a9495f41a9495f" + } + ], + "providerPlugin": "awscloudformation", + "service": "Cognito-UserPool-Groups" + } + }, + "function": { + "storelocator41a9495f41a9495fPostConfirmation": { + "build": true, + "providerPlugin": "awscloudformation", + "service": "Lambda" + } + }, + "geo": { + "storeLocatorGeofence": { + "accessType": "CognitoGroups", + "dependsOn": [ + { + "attributes": [ + "UserPoolId" + ], + "category": "auth", + "resourceName": "storelocator41a9495f41a9495f" + }, + { + "attributes": [ + "storeLocatorAdminGroupRole" + ], + "category": "auth", + "resourceName": "userPoolGroups" + } + ], + "isDefault": true, + "providerPlugin": "awscloudformation", + "service": "GeofenceCollection" + }, + "storeLocatorMap": { + "accessType": "AuthorizedAndGuestUsers", + "dependsOn": [ + { + "attributes": [ + "UserPoolId" + ], + "category": "auth", + "resourceName": "storelocator41a9495f41a9495f" + }, + { + "attributes": [ + "storeLocatorAdminGroupRole" + ], + "category": "auth", + "resourceName": "userPoolGroups" + } + ], + "isDefault": true, + "mapStyle": "VectorEsriStreets", + "providerPlugin": "awscloudformation", + "service": "Map" + }, + "storeLocatorSearch": { + "accessType": "AuthorizedAndGuestUsers", + "dataProvider": "HERE", + "dataSourceIntendedUse": "SingleUse", + "dependsOn": [ + { + "attributes": [ + "UserPoolId" + ], + "category": "auth", + "resourceName": "storelocator41a9495f41a9495f" + }, + { + "attributes": [ + "storeLocatorAdminGroupRole" + ], + "category": "auth", + "resourceName": "userPoolGroups" + } + ], + "isDefault": true, + "providerPlugin": "awscloudformation", + "service": "PlaceIndex" + } + }, + "parameters": { + "AMPLIFY_function_storelocator41a9495f41a9495fPostConfirmation_GROUP": { + "usedBy": [ + { + "category": "function", + "resourceName": "storelocator41a9495f41a9495fPostConfirmation" + } + ] + }, + "AMPLIFY_function_storelocator41a9495f41a9495fPostConfirmation_deploymentBucketName": { + "usedBy": [ + { + "category": "function", + "resourceName": "storelocator41a9495f41a9495fPostConfirmation" + } + ] + }, + "AMPLIFY_function_storelocator41a9495f41a9495fPostConfirmation_s3Key": { + "usedBy": [ + { + "category": "function", + "resourceName": "storelocator41a9495f41a9495fPostConfirmation" + } + ] + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/amplify.state b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/amplify.state new file mode 100644 index 00000000000..0c3efe04706 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/amplify.state @@ -0,0 +1,6 @@ +{ + "pluginId": "amplify-nodejs-function-runtime-provider", + "functionRuntime": "nodejs", + "useLegacyBuild": true, + "defaultEditorFile": "src/index.js" +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/custom-policies.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/custom-policies.json new file mode 100644 index 00000000000..528c94f2f26 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/custom-policies.json @@ -0,0 +1,6 @@ +[ + { + "Action": [], + "Resource": [] + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/function-parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/function-parameters.json new file mode 100644 index 00000000000..4c07c063c1d --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/function-parameters.json @@ -0,0 +1,16 @@ +{ + "trigger": true, + "modules": [ + "add-to-group" + ], + "parentResource": "storelocator41a9495f41a9495f", + "functionName": "storelocator41a9495f41a9495fPostConfirmation", + "resourceName": "storelocator41a9495f41a9495fPostConfirmation", + "parentStack": "auth", + "triggerEnvs": "[]", + "triggerDir": "/snapshot/amplify-cli/build/node_modules/@aws-amplify/amplify-category-auth/provider-utils/awscloudformation/triggers/PostConfirmation", + "triggerTemplate": "PostConfirmation.json.ejs", + "triggerEventPath": "PostConfirmation.event.json", + "roleName": "storelocator41a9495f41a9495fPostConfirmation", + "skipEdit": true +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/parameters.json new file mode 100644 index 00000000000..82c0ad73bb2 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/parameters.json @@ -0,0 +1,4 @@ +{ + "modules": "add-to-group", + "resourceName": "storelocator41a9495f41a9495fPostConfirmation" +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/src/add-to-group.js b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/src/add-to-group.js new file mode 100644 index 00000000000..b8920ac2104 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/src/add-to-group.js @@ -0,0 +1,37 @@ +const { + CognitoIdentityProviderClient, + AdminAddUserToGroupCommand, + GetGroupCommand, + CreateGroupCommand, +} = require('@aws-sdk/client-cognito-identity-provider'); + +const cognitoIdentityServiceProvider = new CognitoIdentityProviderClient({}); + +/** + * @type {import('@types/aws-lambda').PostConfirmationTriggerHandler} + */ +exports.handler = async (event) => { + const groupParams = { + GroupName: process.env.GROUP, + UserPoolId: event.userPoolId, + }; + const addUserParams = { + GroupName: process.env.GROUP, + UserPoolId: event.userPoolId, + Username: event.userName, + }; + /** + * Check if the group exists; if it doesn't, create it. + */ + try { + await cognitoIdentityServiceProvider.send(new GetGroupCommand(groupParams)); + } catch (e) { + await cognitoIdentityServiceProvider.send(new CreateGroupCommand(groupParams)); + } + /** + * Then, add the user to the group. + */ + await cognitoIdentityServiceProvider.send(new AdminAddUserToGroupCommand(addUserParams)); + + return event; +}; diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/src/event.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/src/event.json new file mode 100644 index 00000000000..5eafe06ea53 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/src/event.json @@ -0,0 +1,7 @@ +{ + "request": { + "userPoolId": "testID", + "userName": "testUser" + }, + "response": {} +} diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/src/index.js b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/src/index.js new file mode 100644 index 00000000000..876a0cedec6 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/src/index.js @@ -0,0 +1,33 @@ +/** + * @fileoverview + * + * This CloudFormation Trigger creates a handler which awaits the other handlers + * specified in the `MODULES` env var, located at `./${MODULE}`. + */ + +/** + * The names of modules to load are stored as a comma-delimited string in the + * `MODULES` env var. + */ +const moduleNames = process.env.MODULES.split(','); +/** + * The array of imported modules. + */ +const modules = moduleNames.map((name) => require(`./${name}`)); + +/** + * This async handler iterates over the given modules and awaits them. + * + * @see https://docs.aws.amazon.com/lambda/latest/dg/nodejs-handler.html#nodejs-handler-async + * @type {import('@types/aws-lambda').APIGatewayProxyHandler} + * + */ +exports.handler = async (event, context) => { + /** + * Instead of naively iterating over all handlers, run them concurrently with + * `await Promise.all(...)`. This would otherwise just be determined by the + * order of names in the `MODULES` var. + */ + await Promise.all(modules.map((module) => module.handler(event, context))); + return event; +}; diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/src/package.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/src/package.json new file mode 100644 index 00000000000..97ed774298a --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/src/package.json @@ -0,0 +1,13 @@ +{ + "name": "storelocator41a9495f41a9495fPostConfirmation", + "version": "2.0.0", + "description": "Lambda function generated by Amplify", + "main": "index.js", + "license": "Apache-2.0", + "dependencies": { + "axios": "latest" + }, + "devDependencies": { + "@types/aws-lambda": "^8.10.92" + } +} diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/src/yarn.lock b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/src/yarn.lock new file mode 100644 index 00000000000..74757081d71 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/src/yarn.lock @@ -0,0 +1,169 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@types/aws-lambda@^8.10.92": + version "8.10.161" + resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.161.tgz#36d95723ec46d3d555bf0684f83cf4d4369a28ad" + integrity sha512-rUYdp+MQwSFocxIOcSsYSF3YYYC/uUpMbCY/mbO21vGqfrEYvNSoPyKYDj6RhXXpPfS0KstW9RwG3qXh9sL7FQ== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +axios@latest: + version "1.13.6" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.13.6.tgz#c3f92da917dc209a15dd29936d20d5089b6b6c98" + integrity sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ== + dependencies: + follow-redirects "^1.15.11" + form-data "^4.0.5" + proxy-from-env "^1.1.0" + +call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + +es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" + integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" + integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== + dependencies: + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + has-tostringtag "^1.0.2" + hasown "^2.0.2" + +follow-redirects@^1.15.11: + version "1.15.11" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340" + integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== + +form-data@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.5.tgz#b49e48858045ff4cbf6b03e1805cebcad3679053" + integrity sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + es-set-tostringtag "^2.1.0" + hasown "^2.0.2" + mime-types "^2.1.12" + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +get-intrinsic@^1.2.6: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== + dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + function-bind "^1.1.2" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" + +get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" + +gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== + +has-symbols@^1.0.3, has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== + +has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/storelocator41a9495f41a9495fPostConfirmation-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/storelocator41a9495f41a9495fPostConfirmation-cloudformation-template.json new file mode 100644 index 00000000000..192bbea9292 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/function/storelocator41a9495f41a9495fPostConfirmation/storelocator41a9495f41a9495fPostConfirmation-cloudformation-template.json @@ -0,0 +1,235 @@ +{ + "AWSTemplateFormatVersion": "2010-09-09", + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"function-Lambda\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "Parameters": { + "GROUP": { + "Type": "String", + "Default": "" + }, + "modules": { + "Type": "String", + "Default": "", + "Description": "Comma-delimited list of modules to be executed by a lambda trigger. Sent to resource as an env variable." + }, + "resourceName": { + "Type": "String", + "Default": "" + }, + "trigger": { + "Type": "String", + "Default": "true" + }, + "functionName": { + "Type": "String", + "Default": "" + }, + "roleName": { + "Type": "String", + "Default": "" + }, + "parentResource": { + "Type": "String", + "Default": "" + }, + "parentStack": { + "Type": "String", + "Default": "" + }, + "env": { + "Type": "String" + }, + "deploymentBucketName": { + "Type": "String" + }, + "s3Key": { + "Type": "String" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + }, + "Resources": { + "LambdaFunction": { + "Type": "AWS::Lambda::Function", + "Metadata": { + "aws:asset:path": "./src", + "aws:asset:property": "Code" + }, + "Properties": { + "Handler": "index.handler", + "FunctionName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "storelocator41a9495f41a9495fPostConfirmation", + { + "Fn::Join": [ + "", + [ + "storelocator41a9495f41a9495fPostConfirmation", + "-", + { + "Ref": "env" + } + ] + ] + } + ] + }, + "Environment": { + "Variables": { + "ENV": { + "Ref": "env" + }, + "MODULES": { + "Ref": "modules" + }, + "REGION": { + "Ref": "AWS::Region" + }, + "GROUP": { + "Ref": "GROUP" + } + } + }, + "Role": { + "Fn::GetAtt": [ + "LambdaExecutionRole", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Timeout": 25, + "Code": { + "S3Bucket": { + "Ref": "deploymentBucketName" + }, + "S3Key": { + "Ref": "s3Key" + } + } + } + }, + "LambdaExecutionRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "RoleName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "storelocator41a9495f41a9495fPostConfirmation", + { + "Fn::Join": [ + "", + [ + "storelocator41a9495f41a9495fPostConfirmation", + "-", + { + "Ref": "env" + } + ] + ] + } + ] + }, + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + }, + "Action": [ + "sts:AssumeRole" + ] + } + ] + } + } + }, + "lambdaexecutionpolicy": { + "DependsOn": [ + "LambdaExecutionRole" + ], + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyName": "lambda-execution-policy", + "Roles": [ + { + "Ref": "LambdaExecutionRole" + } + ], + "PolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Resource": { + "Fn::Sub": [ + "arn:aws:logs:${region}:${account}:log-group:/aws/lambda/${lambda}:log-stream:*", + { + "region": { + "Ref": "AWS::Region" + }, + "account": { + "Ref": "AWS::AccountId" + }, + "lambda": { + "Ref": "LambdaFunction" + } + } + ] + } + } + ] + } + } + } + }, + "Outputs": { + "Name": { + "Value": { + "Ref": "LambdaFunction" + } + }, + "Arn": { + "Value": { + "Fn::GetAtt": [ + "LambdaFunction", + "Arn" + ] + } + }, + "LambdaExecutionRole": { + "Value": { + "Ref": "LambdaExecutionRole" + } + }, + "LambdaExecutionRoleArn": { + "Value": { + "Fn::GetAtt": [ + "LambdaExecutionRole", + "Arn" + ] + } + }, + "Region": { + "Value": { + "Ref": "AWS::Region" + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorGeofence/cli-inputs.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorGeofence/cli-inputs.json new file mode 100644 index 00000000000..3bb50128864 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorGeofence/cli-inputs.json @@ -0,0 +1,10 @@ +{ + "groupPermissions": { + "storeLocatorAdmin": [ + "Read geofence", + "Create/Update geofence", + "Delete geofence", + "List geofences" + ] + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorGeofence/parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorGeofence/parameters.json new file mode 100644 index 00000000000..7ae714ed5ee --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorGeofence/parameters.json @@ -0,0 +1,4 @@ +{ + "collectionName": "storeLocatorGeofence", + "isDefault": true +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorGeofence/storeLocatorGeofence-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorGeofence/storeLocatorGeofence-cloudformation-template.json new file mode 100644 index 00000000000..17020d54719 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorGeofence/storeLocatorGeofence-cloudformation-template.json @@ -0,0 +1,364 @@ +{ + "Mappings": { + "RegionMapping": { + "us-east-1": { + "locationServiceRegion": "us-east-1" + }, + "us-east-2": { + "locationServiceRegion": "us-east-2" + }, + "us-west-2": { + "locationServiceRegion": "us-west-2" + }, + "ap-southeast-1": { + "locationServiceRegion": "ap-southeast-1" + }, + "ap-southeast-2": { + "locationServiceRegion": "ap-southeast-2" + }, + "ap-northeast-1": { + "locationServiceRegion": "ap-northeast-1" + }, + "eu-central-1": { + "locationServiceRegion": "eu-central-1" + }, + "eu-north-1": { + "locationServiceRegion": "eu-north-1" + }, + "eu-west-1": { + "locationServiceRegion": "eu-west-1" + }, + "sa-east-1": { + "locationServiceRegion": "us-east-1" + }, + "ca-central-1": { + "locationServiceRegion": "us-east-1" + }, + "us-west-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-north-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-northwest-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-south-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-3": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-2": { + "locationServiceRegion": "us-west-2" + }, + "eu-west-2": { + "locationServiceRegion": "eu-west-1" + }, + "eu-west-3": { + "locationServiceRegion": "eu-west-1" + }, + "me-south-1": { + "locationServiceRegion": "ap-southeast-1" + } + } + }, + "Parameters": { + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Type": "String" + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Type": "String" + }, + "collectionName": { + "Type": "String" + }, + "env": { + "Type": "String" + }, + "isDefault": { + "Type": "String" + } + }, + "Resources": { + "CustomGeofenceCollectionLambdaServiceRole9040D551": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + } + }, + "CustomGeofenceCollectionLambdaServiceRoleDefaultPolicy0A18B369": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "geo:CreateGeofenceCollection", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "geo:UpdateGeofenceCollection", + "geo:DeleteGeofenceCollection" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:geofence-collection/${collectionName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "collectionName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "collectionName" + }, + { + "Ref": "env" + } + ] + ] + } + } + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "CustomGeofenceCollectionLambdaServiceRoleDefaultPolicy0A18B369", + "Roles": [ + { + "Ref": "CustomGeofenceCollectionLambdaServiceRole9040D551" + } + ] + } + }, + "CustomGeofenceCollectionLambdaCA3D002B": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "const response = require('cfn-response');\nconst {\n LocationClient,\n CreateGeofenceCollectionCommand,\n DeleteGeofenceCollectionCommand,\n UpdateGeofenceCollectionCommand,\n} = require('@aws-sdk/client-location');\nexports.handler = async function (event, context) {\n try {\n console.log('REQUEST RECEIVED:' + JSON.stringify(event));\n const pricingPlan = 'RequestBasedUsage';\n if (event.RequestType === 'Create') {\n const params = {\n CollectionName: event.ResourceProperties.collectionName,\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new CreateGeofenceCollectionCommand(params));\n console.log('create resource response data' + JSON.stringify(res));\n if (res.CollectionName && res.CollectionArn) {\n await response.send(event, context, response.SUCCESS, res, params.CollectionName);\n } else {\n await response.send(event, context, response.FAILED, res, params.CollectionName);\n }\n }\n if (event.RequestType === 'Update') {\n const params = {\n CollectionName: event.ResourceProperties.collectionName,\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new UpdateGeofenceCollectionCommand(params));\n console.log('update resource response data' + JSON.stringify(res));\n if (res.CollectionName) {\n await response.send(event, context, response.SUCCESS, res, params.CollectionName);\n } else {\n await response.send(event, context, response.FAILED, res, params.CollectionName);\n }\n }\n if (event.RequestType === 'Delete') {\n const params = {\n CollectionName: event.ResourceProperties.collectionName,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new DeleteGeofenceCollectionCommand(params));\n console.log('delete resource response data' + JSON.stringify(res));\n await response.send(event, context, response.SUCCESS, res, params.CollectionName);\n }\n } catch (err) {\n console.log(err.stack);\n const res = { Error: err };\n await response.send(event, context, response.FAILED, res, event.ResourceProperties.collectionName);\n throw err;\n }\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "CustomGeofenceCollectionLambdaServiceRole9040D551", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Timeout": 300 + }, + "DependsOn": [ + "CustomGeofenceCollectionLambdaServiceRoleDefaultPolicy0A18B369", + "CustomGeofenceCollectionLambdaServiceRole9040D551" + ] + }, + "CustomGeofenceCollection": { + "Type": "Custom::LambdaCallout", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "CustomGeofenceCollectionLambdaCA3D002B", + "Arn" + ] + }, + "collectionName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "collectionName" + }, + { + "Ref": "env" + } + ] + ] + }, + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "env": { + "Ref": "env" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "storeLocatorAdminGeofenceCollectionPolicy": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "geo:GetGeofence", + "geo:PutGeofence", + "geo:BatchPutGeofence", + "geo:BatchDeleteGeofence", + "geo:ListGeofences" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:geofence-collection/${collectionName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "collectionName": { + "Fn::GetAtt": [ + "CustomGeofenceCollection", + "CollectionName" + ] + } + } + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": { + "Fn::Join": [ + "", + [ + "storeLocatorAdmin", + { + "Fn::Join": [ + "-", + [ + { + "Ref": "collectionName" + }, + { + "Ref": "env" + } + ] + ] + }, + "Policy" + ] + ] + }, + "Roles": [ + { + "Fn::Join": [ + "-", + [ + { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "storeLocatorAdminGroupRole" + ] + ] + } + ] + } + } + }, + "Outputs": { + "Name": { + "Value": { + "Fn::GetAtt": [ + "CustomGeofenceCollection", + "CollectionName" + ] + } + }, + "Region": { + "Value": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + } + }, + "Arn": { + "Value": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:geofence-collection/${collectionName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "collectionName": { + "Fn::GetAtt": [ + "CustomGeofenceCollection", + "CollectionName" + ] + } + } + ] + } + } + }, + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"geo-GeofenceCollection\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}" +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorMap/cli-inputs.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorMap/cli-inputs.json new file mode 100644 index 00000000000..89c77968423 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorMap/cli-inputs.json @@ -0,0 +1,5 @@ +{ + "groupPermissions": [ + "storeLocatorAdmin" + ] +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorMap/parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorMap/parameters.json new file mode 100644 index 00000000000..00f849451a2 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorMap/parameters.json @@ -0,0 +1,11 @@ +{ + "authRoleName": { + "Ref": "AuthRoleName" + }, + "unauthRoleName": { + "Ref": "UnauthRoleName" + }, + "mapName": "storeLocatorMap", + "mapStyle": "VectorEsriStreets", + "isDefault": true +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorMap/storeLocatorMap-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorMap/storeLocatorMap-cloudformation-template.json new file mode 100644 index 00000000000..bf53b69ff23 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorMap/storeLocatorMap-cloudformation-template.json @@ -0,0 +1,347 @@ +{ + "Mappings": { + "RegionMapping": { + "us-east-1": { + "locationServiceRegion": "us-east-1" + }, + "us-east-2": { + "locationServiceRegion": "us-east-2" + }, + "us-west-2": { + "locationServiceRegion": "us-west-2" + }, + "ap-southeast-1": { + "locationServiceRegion": "ap-southeast-1" + }, + "ap-southeast-2": { + "locationServiceRegion": "ap-southeast-2" + }, + "ap-northeast-1": { + "locationServiceRegion": "ap-northeast-1" + }, + "eu-central-1": { + "locationServiceRegion": "eu-central-1" + }, + "eu-north-1": { + "locationServiceRegion": "eu-north-1" + }, + "eu-west-1": { + "locationServiceRegion": "eu-west-1" + }, + "sa-east-1": { + "locationServiceRegion": "us-east-1" + }, + "ca-central-1": { + "locationServiceRegion": "us-east-1" + }, + "us-west-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-north-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-northwest-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-south-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-3": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-2": { + "locationServiceRegion": "us-west-2" + }, + "eu-west-2": { + "locationServiceRegion": "eu-west-1" + }, + "eu-west-3": { + "locationServiceRegion": "eu-west-1" + }, + "me-south-1": { + "locationServiceRegion": "ap-southeast-1" + } + } + }, + "Parameters": { + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Type": "String" + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Type": "String" + }, + "authRoleName": { + "Type": "String" + }, + "unauthRoleName": { + "Type": "String" + }, + "mapName": { + "Type": "String" + }, + "mapStyle": { + "Type": "String" + }, + "env": { + "Type": "String" + }, + "isDefault": { + "Type": "String" + } + }, + "Resources": { + "CustomMapLambdaServiceRole4EE7732C": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + } + }, + "CustomMapLambdaServiceRoleDefaultPolicy983FDD4E": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "geo:CreateMap", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "geo:UpdateMap", + "geo:DeleteMap" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:map/${mapName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "mapName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "mapName" + }, + { + "Ref": "env" + } + ] + ] + } + } + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "CustomMapLambdaServiceRoleDefaultPolicy983FDD4E", + "Roles": [ + { + "Ref": "CustomMapLambdaServiceRole4EE7732C" + } + ] + } + }, + "CustomMapLambda51D5D430": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "const response = require('cfn-response');\nconst { LocationClient, CreateMapCommand, DeleteMapCommand, UpdateMapCommand } = require('@aws-sdk/client-location');\nexports.handler = async function (event, context) {\n try {\n console.log('REQUEST RECEIVED:' + JSON.stringify(event));\n const pricingPlan = 'RequestBasedUsage';\n if (event.RequestType === 'Create') {\n let params = {\n MapName: event.ResourceProperties.mapName,\n Configuration: {\n Style: event.ResourceProperties.mapStyle,\n },\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new CreateMapCommand(params));\n console.log('create resource response data' + JSON.stringify(res));\n if (res.MapName && res.MapArn) {\n await response.send(event, context, response.SUCCESS, res, params.MapName);\n } else {\n await response.send(event, context, response.FAILED, res, params.MapName);\n }\n }\n if (event.RequestType === 'Update') {\n let params = {\n MapName: event.ResourceProperties.mapName,\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new UpdateMapCommand(params));\n console.log('update resource response data' + JSON.stringify(res));\n if (res.MapName && res.MapArn) {\n await response.send(event, context, response.SUCCESS, res, params.MapName);\n } else {\n await response.send(event, context, response.FAILED, res, params.MapName);\n }\n }\n if (event.RequestType === 'Delete') {\n let params = {\n MapName: event.ResourceProperties.mapName,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new DeleteMapCommand(params));\n console.log('delete resource response data' + JSON.stringify(res));\n await response.send(event, context, response.SUCCESS, res, params.MapName);\n }\n } catch (err) {\n console.log(err.stack);\n const res = { Error: err };\n await response.send(event, context, response.FAILED, res, event.ResourceProperties.mapName);\n throw err;\n }\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "CustomMapLambdaServiceRole4EE7732C", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Timeout": 300 + }, + "DependsOn": [ + "CustomMapLambdaServiceRoleDefaultPolicy983FDD4E", + "CustomMapLambdaServiceRole4EE7732C" + ] + }, + "CustomMap": { + "Type": "Custom::LambdaCallout", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "CustomMapLambda51D5D430", + "Arn" + ] + }, + "mapName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "mapName" + }, + { + "Ref": "env" + } + ] + ] + }, + "mapStyle": { + "Ref": "mapStyle" + }, + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "env": { + "Ref": "env" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "MapPolicy": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "geo:GetMapStyleDescriptor", + "geo:GetMapGlyphs", + "geo:GetMapSprites", + "geo:GetMapTile" + ], + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "CustomMap", + "MapArn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": { + "Fn::Join": [ + "", + [ + { + "Fn::Join": [ + "-", + [ + { + "Ref": "mapName" + }, + { + "Ref": "env" + } + ] + ] + }, + "Policy" + ] + ] + }, + "Roles": [ + { + "Ref": "authRoleName" + }, + { + "Ref": "unauthRoleName" + }, + { + "Fn::Join": [ + "-", + [ + { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "storeLocatorAdminGroupRole" + ] + ] + } + ] + } + } + }, + "Outputs": { + "Name": { + "Value": { + "Fn::GetAtt": [ + "CustomMap", + "MapName" + ] + } + }, + "Style": { + "Value": { + "Ref": "mapStyle" + } + }, + "Region": { + "Value": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + } + }, + "Arn": { + "Value": { + "Fn::GetAtt": [ + "CustomMap", + "MapArn" + ] + } + } + }, + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"geo-Map\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}" +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorSearch/cli-inputs.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorSearch/cli-inputs.json new file mode 100644 index 00000000000..89c77968423 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorSearch/cli-inputs.json @@ -0,0 +1,5 @@ +{ + "groupPermissions": [ + "storeLocatorAdmin" + ] +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorSearch/parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorSearch/parameters.json new file mode 100644 index 00000000000..a1ac3acce3c --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorSearch/parameters.json @@ -0,0 +1,12 @@ +{ + "authRoleName": { + "Ref": "AuthRoleName" + }, + "unauthRoleName": { + "Ref": "UnauthRoleName" + }, + "indexName": "storeLocatorSearch", + "dataProvider": "Here", + "dataSourceIntendedUse": "SingleUse", + "isDefault": true +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorSearch/storeLocatorSearch-cloudformation-template.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorSearch/storeLocatorSearch-cloudformation-template.json new file mode 100644 index 00000000000..1ef40f17717 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/geo/storeLocatorSearch/storeLocatorSearch-cloudformation-template.json @@ -0,0 +1,348 @@ +{ + "Mappings": { + "RegionMapping": { + "us-east-1": { + "locationServiceRegion": "us-east-1" + }, + "us-east-2": { + "locationServiceRegion": "us-east-2" + }, + "us-west-2": { + "locationServiceRegion": "us-west-2" + }, + "ap-southeast-1": { + "locationServiceRegion": "ap-southeast-1" + }, + "ap-southeast-2": { + "locationServiceRegion": "ap-southeast-2" + }, + "ap-northeast-1": { + "locationServiceRegion": "ap-northeast-1" + }, + "eu-central-1": { + "locationServiceRegion": "eu-central-1" + }, + "eu-north-1": { + "locationServiceRegion": "eu-north-1" + }, + "eu-west-1": { + "locationServiceRegion": "eu-west-1" + }, + "sa-east-1": { + "locationServiceRegion": "us-east-1" + }, + "ca-central-1": { + "locationServiceRegion": "us-east-1" + }, + "us-west-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-north-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-northwest-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-south-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-3": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-2": { + "locationServiceRegion": "us-west-2" + }, + "eu-west-2": { + "locationServiceRegion": "eu-west-1" + }, + "eu-west-3": { + "locationServiceRegion": "eu-west-1" + }, + "me-south-1": { + "locationServiceRegion": "ap-southeast-1" + } + } + }, + "Parameters": { + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Type": "String" + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Type": "String" + }, + "authRoleName": { + "Type": "String" + }, + "unauthRoleName": { + "Type": "String" + }, + "indexName": { + "Type": "String" + }, + "dataProvider": { + "Type": "String" + }, + "dataSourceIntendedUse": { + "Type": "String" + }, + "env": { + "Type": "String" + }, + "isDefault": { + "Type": "String" + } + }, + "Resources": { + "CustomPlaceIndexLambdaServiceRoleFD2F3C9D": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + } + }, + "CustomPlaceIndexLambdaServiceRoleDefaultPolicy818068B1": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "geo:CreatePlaceIndex", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "geo:UpdatePlaceIndex", + "geo:DeletePlaceIndex" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:place-index/${indexName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "indexName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "indexName" + }, + { + "Ref": "env" + } + ] + ] + } + } + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "CustomPlaceIndexLambdaServiceRoleDefaultPolicy818068B1", + "Roles": [ + { + "Ref": "CustomPlaceIndexLambdaServiceRoleFD2F3C9D" + } + ] + } + }, + "CustomPlaceIndexLambda79813BB9": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "const response = require('cfn-response');\nconst { LocationClient, CreatePlaceIndexCommand, DeletePlaceIndexCommand, UpdatePlaceIndexCommand } = require('@aws-sdk/client-location');\nexports.handler = async function (event, context) {\n try {\n console.log('REQUEST RECEIVED:' + JSON.stringify(event));\n const pricingPlan = 'RequestBasedUsage';\n if (event.RequestType === 'Create') {\n const params = {\n IndexName: event.ResourceProperties.indexName,\n DataSource: event.ResourceProperties.dataSource,\n DataSourceConfiguration: {\n IntendedUse: event.ResourceProperties.dataSourceIntendedUse,\n },\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new CreatePlaceIndexCommand(params));\n console.log('create resource response data' + JSON.stringify(res));\n if (res.IndexName && res.IndexArn) {\n event.PhysicalResourceId = res.IndexName;\n await response.send(event, context, response.SUCCESS, res, params.IndexName);\n } else {\n await response.send(event, context, response.FAILED, res, params.IndexName);\n }\n }\n if (event.RequestType === 'Update') {\n const params = {\n IndexName: event.ResourceProperties.indexName,\n DataSourceConfiguration: {\n IntendedUse: event.ResourceProperties.dataSourceIntendedUse,\n },\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new UpdatePlaceIndexCommand(params));\n console.log('update resource response data' + JSON.stringify(res));\n if (res.IndexName && res.IndexArn) {\n event.PhysicalResourceId = res.IndexName;\n await response.send(event, context, response.SUCCESS, res, params.IndexName);\n } else {\n await response.send(event, context, response.FAILED, res, params.IndexName);\n }\n }\n if (event.RequestType === 'Delete') {\n const params = {\n IndexName: event.ResourceProperties.indexName,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new DeletePlaceIndexCommand(params));\n event.PhysicalResourceId = event.ResourceProperties.indexName;\n console.log('delete resource response data' + JSON.stringify(res));\n await response.send(event, context, response.SUCCESS, res, params.IndexName);\n }\n } catch (err) {\n console.log(err.stack);\n const res = { Error: err };\n await response.send(event, context, response.FAILED, res, event.ResourceProperties.indexName);\n throw err;\n }\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "CustomPlaceIndexLambdaServiceRoleFD2F3C9D", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Timeout": 300 + }, + "DependsOn": [ + "CustomPlaceIndexLambdaServiceRoleDefaultPolicy818068B1", + "CustomPlaceIndexLambdaServiceRoleFD2F3C9D" + ] + }, + "CustomPlaceIndex": { + "Type": "Custom::LambdaCallout", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "CustomPlaceIndexLambda79813BB9", + "Arn" + ] + }, + "indexName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "indexName" + }, + { + "Ref": "env" + } + ] + ] + }, + "dataSource": { + "Ref": "dataProvider" + }, + "dataSourceIntendedUse": { + "Ref": "dataSourceIntendedUse" + }, + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "env": { + "Ref": "env" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "PlaceIndexPolicy": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "geo:SearchPlaceIndexForPosition", + "geo:SearchPlaceIndexForText", + "geo:SearchPlaceIndexForSuggestions", + "geo:GetPlace" + ], + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "CustomPlaceIndex", + "IndexArn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": { + "Fn::Join": [ + "", + [ + { + "Fn::Join": [ + "-", + [ + { + "Ref": "indexName" + }, + { + "Ref": "env" + } + ] + ] + }, + "Policy" + ] + ] + }, + "Roles": [ + { + "Ref": "authRoleName" + }, + { + "Ref": "unauthRoleName" + }, + { + "Fn::Join": [ + "-", + [ + { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "storeLocatorAdminGroupRole" + ] + ] + } + ] + } + } + }, + "Outputs": { + "Name": { + "Value": { + "Fn::GetAtt": [ + "CustomPlaceIndex", + "IndexName" + ] + } + }, + "Region": { + "Value": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + } + }, + "Arn": { + "Value": { + "Fn::GetAtt": [ + "CustomPlaceIndex", + "IndexArn" + ] + } + } + }, + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"geo-PlaceIndex\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}" +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/tags.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/tags.json new file mode 100644 index 00000000000..b9321d71b83 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/tags.json @@ -0,0 +1,10 @@ +[ + { + "Key": "user:Stack", + "Value": "{project-env}" + }, + { + "Key": "user:Application", + "Value": "{project-name}" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/types/amplify-dependent-resources-ref.d.ts b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/types/amplify-dependent-resources-ref.d.ts new file mode 100644 index 00000000000..3e359cb4006 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/backend/types/amplify-dependent-resources-ref.d.ts @@ -0,0 +1,43 @@ +export type AmplifyDependentResourcesAttributes = { + "auth": { + "storelocator41a9495f41a9495f": { + "AppClientID": "string", + "AppClientIDWeb": "string", + "IdentityPoolId": "string", + "IdentityPoolName": "string", + "UserPoolArn": "string", + "UserPoolId": "string", + "UserPoolName": "string" + }, + "userPoolGroups": { + "storeLocatorAdminGroupRole": "string" + } + }, + "function": { + "storelocator41a9495f41a9495fPostConfirmation": { + "Arn": "string", + "LambdaExecutionRole": "string", + "LambdaExecutionRoleArn": "string", + "Name": "string", + "Region": "string" + } + }, + "geo": { + "storeLocatorGeofence": { + "Arn": "string", + "Name": "string", + "Region": "string" + }, + "storeLocatorMap": { + "Arn": "string", + "Name": "string", + "Region": "string", + "Style": "string" + }, + "storeLocatorSearch": { + "Arn": "string", + "Name": "string", + "Region": "string" + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/cli.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/cli.json new file mode 100644 index 00000000000..11dc8ca0f7d --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/cli.json @@ -0,0 +1,65 @@ +{ + "features": { + "graphqltransformer": { + "addmissingownerfields": true, + "improvepluralization": false, + "validatetypenamereservedwords": true, + "useexperimentalpipelinedtransformer": true, + "enableiterativegsiupdates": true, + "secondarykeyasgsi": true, + "skipoverridemutationinputtypes": true, + "transformerversion": 2, + "suppressschemamigrationprompt": true, + "securityenhancementnotification": false, + "showfieldauthnotification": false, + "usesubusernamefordefaultidentityclaim": true, + "usefieldnameforprimarykeyconnectionfield": false, + "enableautoindexquerynames": true, + "respectprimarykeyattributesonconnectionfield": true, + "shoulddeepmergedirectiveconfigdefaults": false, + "populateownerfieldforstaticgroupauth": true, + "subscriptionsinheritprimaryauth": false, + "enablegen2migration": false + }, + "frontend-ios": { + "enablexcodeintegration": true + }, + "auth": { + "enablecaseinsensitivity": true, + "useinclusiveterminology": true, + "breakcirculardependency": true, + "forcealiasattributes": false, + "useenabledmfas": true + }, + "codegen": { + "useappsyncmodelgenplugin": true, + "usedocsgeneratorplugin": true, + "usetypesgeneratorplugin": true, + "cleangeneratedmodelsdirectory": true, + "retaincasestyle": true, + "addtimestampfields": true, + "handlelistnullabilitytransparently": true, + "emitauthprovider": true, + "generateindexrules": true, + "enabledartnullsafety": true, + "generatemodelsforlazyloadandcustomselectionset": false + }, + "appsync": { + "generategraphqlpermissions": true + }, + "latestregionsupport": { + "pinpoint": 1, + "translate": 1, + "transcribe": 1, + "rekognition": 1, + "textract": 1, + "comprehend": 1 + }, + "project": { + "overrides": true + } + }, + "debug": { + "shareProjectConfig": false + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/hooks/README.md b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/hooks/README.md new file mode 100644 index 00000000000..8fb601eaebe --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/hooks/README.md @@ -0,0 +1,7 @@ +# Command Hooks + +Command hooks can be used to run custom scripts upon Amplify CLI lifecycle events like pre-push, post-add-function, etc. + +To get started, add your script files based on the expected naming convention in this directory. + +Learn more about the script file naming convention, hook parameters, third party dependencies, and advanced configurations at https://docs.amplify.aws/cli/usage/command-hooks diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/team-provider-info.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/team-provider-info.json new file mode 100644 index 00000000000..5d3c96a9e20 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/amplify/team-provider-info.json @@ -0,0 +1,34 @@ +{ + "main": { + "awscloudformation": { + "AuthRoleName": "amplify-storelocator-main-f9ca7-authRole", + "UnauthRoleArn": "arn:aws:iam::123456789012:role/amplify-storelocator-main-f9ca7-unauthRole", + "AuthRoleArn": "arn:aws:iam::123456789012:role/amplify-storelocator-main-f9ca7-authRole", + "Region": "us-east-1", + "DeploymentBucketName": "amplify-storelocator-main-f9ca7-deployment", + "UnauthRoleName": "amplify-storelocator-main-f9ca7-unauthRole", + "StackName": "amplify-storelocator-main-f9ca7", + "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/amplify-storelocator-main-f9ca7/06c2ecf0-279e-11f1-a161-0ea0286337e9", + "AmplifyAppId": "storelocator", + "AuthTriggerTemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/auth/auth-trigger-cloudformation-template.json" + }, + "categories": { + "auth": { + "storelocator41a9495f41a9495f": {}, + "userPoolGroups": {} + }, + "function": { + "storelocator41a9495f41a9495fPostConfirmation": { + "GROUP": "storeLocatorAdmin", + "deploymentBucketName": "amplify-storelocator-main-f9ca7-deployment", + "s3Key": "amplify-builds/storelocator41a9495f41a9495fPostConfirmation-6a6c746d4739755a384a-build.zip" + } + }, + "geo": { + "storeLocatorMap": {}, + "storeLocatorSearch": {}, + "storeLocatorGeofence": {} + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.generate/package.json b/amplify-migration-apps/store-locator/_snapshot.pre.generate/package.json new file mode 100644 index 00000000000..9abc47b5c30 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.generate/package.json @@ -0,0 +1,42 @@ +{ + "name": "@amplify-migration-apps/store-locator", + "private": true, + "version": "0.0.0", + "type": "module", + "installConfig": { + "hoistingLimits": "workspaces" + }, + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview", + "sanitize": "tsx ../sanitize.ts", + "typecheck": "cd _snapshot.post.generate/amplify && npx tsc --noEmit" + }, + "dependencies": { + "@aws-sdk/client-cognito-identity-provider": "^3.1016.0", + "@aws-amplify/geo": "^3.0.92", + "@aws-amplify/ui-react": "^6.13.2", + "@aws-amplify/ui-react-geo": "^2.2.13", + "aws-amplify": "^6.16.0", + "maplibre-gl": "^2.4.0", + "maplibre-gl-js-amplify": "^4.0.2", + "react": "^19.2.0", + "react-dom": "^19.2.0" + }, + "devDependencies": { + "@eslint/js": "^9.39.1", + "@types/node": "^24.10.1", + "@types/react": "^19.2.5", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^5.1.1", + "eslint": "^9.39.1", + "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-react-refresh": "^0.4.24", + "globals": "^16.5.0", + "typescript": "~5.9.3", + "typescript-eslint": "^8.46.4", + "vite": "^7.2.4" + } +} diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-auth179371D7-1UWZNDSHOH9AL.description.txt b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-auth179371D7-1UWZNDSHOH9AL.description.txt new file mode 100644 index 00000000000..72751282334 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-auth179371D7-1UWZNDSHOH9AL.description.txt @@ -0,0 +1 @@ +{"createdOn":"Linux","createdBy":"AmplifyPipelineDeploy","createdWith":"1.11.2","stackType":"auth-Cognito","metadata":{}} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-auth179371D7-1UWZNDSHOH9AL.outputs.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-auth179371D7-1UWZNDSHOH9AL.outputs.json new file mode 100644 index 00000000000..706f54737a6 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-auth179371D7-1UWZNDSHOH9AL.outputs.json @@ -0,0 +1,30 @@ +[ + { + "OutputKey": "amplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthstoreLocatorAdminGroupRole237CDBFDRef", + "OutputValue": "amplify-storelocator-ge-amplifyAuthstoreLocatorAd-o18wwJFGuDoS" + }, + { + "OutputKey": "amplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthauthenticatedUserRoleE47B81E2Ref", + "OutputValue": "amplify-storelocator-ge-amplifyAuthauthenticatedU-9OqjoXZMGmQf" + }, + { + "OutputKey": "amplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthUserPoolE0F0BF85Ref", + "OutputValue": "us-east-1_AeAJNVPgB" + }, + { + "OutputKey": "amplifystorelocatorgen2mainbranch62d6167d4cauthstorelocator41a9495f41a9495fPostConfirmationgen2mainlambda5D769661Ref", + "OutputValue": "storelocator41a9495f41a9495fPostConfirmation-gen2-main" + }, + { + "OutputKey": "amplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthIdentityPool537188CARef", + "OutputValue": "us-east-1:cbd1c99c-bad6-4aff-8d75-a63d582714ee" + }, + { + "OutputKey": "amplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthUserPoolAppClientA8D9B6FBRef", + "OutputValue": "1t7et22n9m68741vh3pmv2nmfq" + }, + { + "OutputKey": "amplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthunauthenticatedUserRole91ACCEF4Ref", + "OutputValue": "amplify-storelocator-ge-amplifyAuthunauthenticate-lXWiZUp3FtNM" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-auth179371D7-1UWZNDSHOH9AL.parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-auth179371D7-1UWZNDSHOH9AL.parameters.json new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-auth179371D7-1UWZNDSHOH9AL.parameters.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-auth179371D7-1UWZNDSHOH9AL.template.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-auth179371D7-1UWZNDSHOH9AL.template.json new file mode 100644 index 00000000000..cd5decd6ce0 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-auth179371D7-1UWZNDSHOH9AL.template.json @@ -0,0 +1,980 @@ +{ + "Description": "{\"createdOn\":\"Linux\",\"createdBy\":\"AmplifyPipelineDeploy\",\"createdWith\":\"1.11.2\",\"stackType\":\"auth-Cognito\",\"metadata\":{}}", + "Resources": { + "amplifyAuthUserPool4BA7F805": { + "Type": "AWS::Cognito::UserPool", + "Properties": { + "AccountRecoverySetting": { + "RecoveryMechanisms": [ + { + "Name": "verified_email", + "Priority": 1 + } + ] + }, + "AdminCreateUserConfig": { + "AllowAdminCreateUserOnly": false + }, + "AutoVerifiedAttributes": [ + "email" + ], + "EmailVerificationMessage": "Your verification code is {####}", + "EmailVerificationSubject": "Your verification code", + "LambdaConfig": { + "PostConfirmation": { + "Fn::GetAtt": [ + "storelocator41a9495f41a9495fPostConfirmationgen2mainlambdaB4C1234A", + "Arn" + ] + } + }, + "MfaConfiguration": "OFF", + "Policies": { + "PasswordPolicy": { + "MinimumLength": 8, + "RequireLowercase": false, + "RequireNumbers": false, + "RequireSymbols": false, + "RequireUppercase": false, + "TemporaryPasswordValidityDays": 7 + } + }, + "Schema": [ + { + "Mutable": true, + "Name": "email", + "Required": true + } + ], + "SmsVerificationMessage": "The verification code to your new account is {####}", + "UserAttributeUpdateSettings": { + "AttributesRequireVerificationBeforeUpdate": [ + "email" + ] + }, + "UserPoolTags": { + "amplify:app-id": "storelocator", + "amplify:branch-name": "gen2-main", + "amplify:deployment-type": "branch", + "amplify:friendly-name": "amplifyAuth", + "created-by": "amplify" + }, + "UsernameAttributes": [ + "email" + ], + "UsernameConfiguration": { + "CaseSensitive": false + }, + "VerificationMessageTemplate": { + "DefaultEmailOption": "CONFIRM_WITH_CODE", + "EmailMessage": "Your verification code is {####}", + "EmailSubject": "Your verification code", + "SmsMessage": "The verification code to your new account is {####}" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete", + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/auth/amplifyAuth/UserPool/Resource" + } + }, + "amplifyAuthUserPoolPostConfirmationCognitoE7E727CF": { + "Type": "AWS::Lambda::Permission", + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "storelocator41a9495f41a9495fPostConfirmationgen2mainlambdaB4C1234A", + "Arn" + ] + }, + "Principal": "cognito-idp.amazonaws.com", + "SourceArn": { + "Fn::GetAtt": [ + "amplifyAuthUserPool4BA7F805", + "Arn" + ] + } + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/auth/amplifyAuth/UserPool/PostConfirmationCognito" + } + }, + "amplifyAuthUserPoolNativeAppClient79534448": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "AllowedOAuthFlowsUserPoolClient": false, + "AuthSessionValidity": 3, + "EnablePropagateAdditionalUserContextData": false, + "EnableTokenRevocation": true, + "GenerateSecret": false, + "RefreshTokenValidity": 144000, + "SupportedIdentityProviders": [ + "COGNITO" + ], + "TokenValidityUnits": { + "RefreshToken": "minutes" + }, + "UserPoolId": { + "Ref": "amplifyAuthUserPool4BA7F805" + } + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/auth/amplifyAuth/UserPool/NativeAppClient/Resource" + } + }, + "amplifyAuthUserPoolAppClient2626C6F8": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "AllowedOAuthFlows": [ + "code" + ], + "AllowedOAuthFlowsUserPoolClient": true, + "AllowedOAuthScopes": [ + "profile", + "phone", + "email", + "openid", + "aws.cognito.signin.user.admin" + ], + "CallbackURLs": [ + "https://example.com" + ], + "ExplicitAuthFlows": [ + "ALLOW_CUSTOM_AUTH", + "ALLOW_USER_SRP_AUTH", + "ALLOW_REFRESH_TOKEN_AUTH" + ], + "PreventUserExistenceErrors": "ENABLED", + "SupportedIdentityProviders": [ + "COGNITO" + ], + "UserPoolId": { + "Ref": "amplifyAuthUserPool4BA7F805" + } + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/auth/amplifyAuth/UserPoolAppClient/Resource" + } + }, + "amplifyAuthIdentityPool3FDE84CC": { + "Type": "AWS::Cognito::IdentityPool", + "Properties": { + "AllowUnauthenticatedIdentities": true, + "CognitoIdentityProviders": [ + { + "ClientId": { + "Ref": "amplifyAuthUserPoolAppClient2626C6F8" + }, + "ProviderName": { + "Fn::Join": [ + "", + [ + "cognito-idp.", + { + "Ref": "AWS::Region" + }, + ".amazonaws.com/", + { + "Ref": "amplifyAuthUserPool4BA7F805" + } + ] + ] + } + } + ], + "IdentityPoolTags": [ + { + "Key": "amplify:app-id", + "Value": "storelocator" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "amplifyAuth" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ], + "SupportedLoginProviders": {} + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/auth/amplifyAuth/IdentityPool" + } + }, + "amplifyAuthauthenticatedUserRoleD8DA3689": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringEquals": { + "cognito-identity.amazonaws.com:aud": { + "Ref": "amplifyAuthIdentityPool3FDE84CC" + } + }, + "ForAnyValue:StringLike": { + "cognito-identity.amazonaws.com:amr": "authenticated" + } + }, + "Effect": "Allow", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "storelocator" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "amplifyAuth" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/auth/amplifyAuth/authenticatedUserRole/Resource" + } + }, + "amplifyAuthunauthenticatedUserRole2B524D9E": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringEquals": { + "cognito-identity.amazonaws.com:aud": { + "Ref": "amplifyAuthIdentityPool3FDE84CC" + } + }, + "ForAnyValue:StringLike": { + "cognito-identity.amazonaws.com:amr": "unauthenticated" + } + }, + "Effect": "Allow", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "storelocator" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "amplifyAuth" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/auth/amplifyAuth/unauthenticatedUserRole/Resource" + } + }, + "amplifyAuthIdentityPoolRoleAttachment045F17C8": { + "Type": "AWS::Cognito::IdentityPoolRoleAttachment", + "Properties": { + "IdentityPoolId": { + "Ref": "amplifyAuthIdentityPool3FDE84CC" + }, + "RoleMappings": { + "UserPoolWebClientRoleMapping": { + "AmbiguousRoleResolution": "AuthenticatedRole", + "IdentityProvider": { + "Fn::Join": [ + "", + [ + "cognito-idp.", + { + "Ref": "AWS::Region" + }, + ".amazonaws.com/", + { + "Ref": "amplifyAuthUserPool4BA7F805" + }, + ":", + { + "Ref": "amplifyAuthUserPoolAppClient2626C6F8" + } + ] + ] + }, + "Type": "Token" + } + }, + "Roles": { + "unauthenticated": { + "Fn::GetAtt": [ + "amplifyAuthunauthenticatedUserRole2B524D9E", + "Arn" + ] + }, + "authenticated": { + "Fn::GetAtt": [ + "amplifyAuthauthenticatedUserRoleD8DA3689", + "Arn" + ] + } + } + }, + "DependsOn": [ + "amplifyAuthIdentityPool3FDE84CC", + "amplifyAuthUserPoolAppClient2626C6F8" + ], + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/auth/amplifyAuth/IdentityPoolRoleAttachment" + } + }, + "amplifyAuthstoreLocatorAdminGroupRoleDECAB489": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringEquals": { + "cognito-identity.amazonaws.com:aud": { + "Ref": "amplifyAuthIdentityPool3FDE84CC" + } + }, + "ForAnyValue:StringLike": { + "cognito-identity.amazonaws.com:amr": "authenticated" + } + }, + "Effect": "Allow", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "storelocator" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "amplifyAuth" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/auth/amplifyAuth/storeLocatorAdminGroupRole/Resource" + } + }, + "amplifyAuthstoreLocatorAdminGroup85B78B77": { + "Type": "AWS::Cognito::UserPoolGroup", + "Properties": { + "GroupName": "storeLocatorAdmin", + "Precedence": 0, + "RoleArn": { + "Fn::GetAtt": [ + "amplifyAuthstoreLocatorAdminGroupRoleDECAB489", + "Arn" + ] + }, + "UserPoolId": { + "Ref": "amplifyAuthUserPool4BA7F805" + } + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/auth/amplifyAuth/storeLocatorAdminGroup" + } + }, + "storelocator41a9495f41a9495fPostConfirmationgen2mainlambdaServiceRole87050722": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ], + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "storelocator" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "storelocator41a9495f41a9495fPostConfirmation-gen2-main" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/auth/storelocator41a9495f41a9495fPostConfirmation-gen2-main-lambda/ServiceRole/Resource" + } + }, + "storelocator41a9495f41a9495fPostConfirmationgen2mainlambdaServiceRoleDefaultPolicyD1FAD8E3": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "ssm:GetParameters", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":ssm:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":parameter/amplify/resource_reference/storelocator/gen2main-branch-62d6167d4c/AMPLIFY_AUTH_USERPOOL_ID" + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "storelocator41a9495f41a9495fPostConfirmationgen2mainlambdaServiceRoleDefaultPolicyD1FAD8E3", + "Roles": [ + { + "Ref": "storelocator41a9495f41a9495fPostConfirmationgen2mainlambdaServiceRole87050722" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/auth/storelocator41a9495f41a9495fPostConfirmation-gen2-main-lambda/ServiceRole/DefaultPolicy/Resource" + } + }, + "storelocator41a9495f41a9495fPostConfirmationgen2mainlambdaB4C1234A": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Architectures": [ + "x86_64" + ], + "Code": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "34e0fef1a944e90a1fa37e3e87c4349d006db1c0017d5da1ee07c0449531c263.zip" + }, + "Environment": { + "Variables": { + "GROUP": "storeLocatorAdmin", + "MODULES": "add-to-group", + "ENV": "gen2-main", + "REGION": "us-east-1", + "AMPLIFY_SSM_ENV_CONFIG": "{\"AMPLIFY_AUTH_USERPOOL_ID\":{\"path\":\"/amplify/resource_reference/storelocator/gen2main-branch-62d6167d4c/AMPLIFY_AUTH_USERPOOL_ID\"}}", + "AMPLIFY_AUTH_USERPOOL_ID": "" + } + }, + "EphemeralStorage": { + "Size": 512 + }, + "FunctionName": "storelocator41a9495f41a9495fPostConfirmation-gen2-main", + "Handler": "index.handler", + "MemorySize": 512, + "Role": { + "Fn::GetAtt": [ + "storelocator41a9495f41a9495fPostConfirmationgen2mainlambdaServiceRole87050722", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "storelocator" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "amplify:friendly-name", + "Value": "storelocator41a9495f41a9495fPostConfirmation-gen2-main" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ], + "Timeout": 25 + }, + "DependsOn": [ + "storelocator41a9495f41a9495fPostConfirmationgen2mainlambdaServiceRole87050722" + ], + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/auth/storelocator41a9495f41a9495fPostConfirmation-gen2-main-lambda/Resource", + "aws:asset:path": "asset.34e0fef1a944e90a1fa37e3e87c4349d006db1c0017d5da1ee07c0449531c263", + "aws:asset:is-bundled": true, + "aws:asset:property": "Code" + } + }, + "AMPLIFYAUTHUSERPOOLIDParameterCC466CA3": { + "Type": "AWS::SSM::Parameter", + "Properties": { + "Name": "/amplify/resource_reference/storelocator/gen2main-branch-62d6167d4c/AMPLIFY_AUTH_USERPOOL_ID", + "Tags": { + "amplify:app-id": "storelocator", + "amplify:branch-name": "gen2-main", + "amplify:deployment-type": "branch", + "created-by": "amplify" + }, + "Type": "String", + "Value": { + "Ref": "amplifyAuthUserPool4BA7F805" + } + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/auth/AMPLIFY_AUTH_USERPOOL_IDParameter/Resource" + } + }, + "userpoolAccess13FEE5419": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "cognito-idp:AdminAddUserToGroup", + "cognito-idp:GetGroup", + "cognito-idp:ListGroups", + "cognito-idp:CreateGroup", + "cognito-idp:DeleteGroup", + "cognito-idp:UpdateGroup" + ], + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "amplifyAuthUserPool4BA7F805", + "Arn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "userpoolAccess13FEE5419", + "Roles": [ + { + "Ref": "storelocator41a9495f41a9495fPostConfirmationgen2mainlambdaServiceRole87050722" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/auth/userpoolAccess1/Resource" + } + }, + "CDKMetadata": { + "Type": "AWS::CDK::Metadata", + "Properties": { + "Analytics": "v2:deflate64:H4sIAAAAAAAA/12NzW7CQAyEn4X74tLAoVeI1KoXFBH1HC0bkzrZn2rtFKFV3r3aoLSop5mxPZ8LKHY72Kz0ldemHdaWzpCOyIJtLdoMSl+5SSZ0niRA+mCMVQhWlRf/6xdTWkIvj6u/yXuLXkhuS/kxn4LFvYg2n+5f/y2G8WtSVrtzqyGVF19hdMRMwee719EboeAnRdpByqA8nrUKlswtx7tbMI0PLfYMx1kWguJto5lRGPZZFG/hMJoB5aAZFbODVEsk31U6aoeCcUYvYZrU3KtFd+S7SeUv0PPTd1HA8wtsVj0TrePohRzC6a4/caZnM34BAAA=" + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/auth/CDKMetadata/Default" + }, + "Condition": "CDKMetadataAvailable" + } + }, + "Conditions": { + "CDKMetadataAvailable": { + "Fn::Or": [ + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "af-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-3" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-south-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-3" + ] + } + ] + }, + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-4" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ca-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ca-west-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "cn-north-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "cn-northwest-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-central-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-north-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-south-2" + ] + } + ] + }, + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-3" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "il-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "me-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "me-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "sa-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-east-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-west-1" + ] + } + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-west-2" + ] + } + ] + } + }, + "Outputs": { + "amplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthUserPoolE0F0BF85Ref": { + "Value": { + "Ref": "amplifyAuthUserPool4BA7F805" + } + }, + "amplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthUserPoolAppClientA8D9B6FBRef": { + "Value": { + "Ref": "amplifyAuthUserPoolAppClient2626C6F8" + } + }, + "amplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthIdentityPool537188CARef": { + "Value": { + "Ref": "amplifyAuthIdentityPool3FDE84CC" + } + }, + "amplifystorelocatorgen2mainbranch62d6167d4cauthstorelocator41a9495f41a9495fPostConfirmationgen2mainlambda5D769661Ref": { + "Value": { + "Ref": "storelocator41a9495f41a9495fPostConfirmationgen2mainlambdaB4C1234A" + } + }, + "amplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthstoreLocatorAdminGroupRole237CDBFDRef": { + "Value": { + "Ref": "amplifyAuthstoreLocatorAdminGroupRoleDECAB489" + } + }, + "amplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthauthenticatedUserRoleE47B81E2Ref": { + "Value": { + "Ref": "amplifyAuthauthenticatedUserRoleD8DA3689" + } + }, + "amplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthunauthenticatedUserRole91ACCEF4Ref": { + "Value": { + "Ref": "amplifyAuthunauthenticatedUserRole2B524D9E" + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorGeofenceEAAC8D05-17RAOM3PY1E9K.description.txt b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorGeofenceEAAC8D05-17RAOM3PY1E9K.description.txt new file mode 100644 index 00000000000..1e3215c63d9 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorGeofenceEAAC8D05-17RAOM3PY1E9K.description.txt @@ -0,0 +1 @@ +{"createdOn":"Linux","createdBy":"AmplifyPipelineDeploy","createdWith":"1.21.1","stackType":"custom","metadata":{}} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorGeofenceEAAC8D05-17RAOM3PY1E9K.outputs.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorGeofenceEAAC8D05-17RAOM3PY1E9K.outputs.json new file mode 100644 index 00000000000..d0f3d98fe35 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorGeofenceEAAC8D05-17RAOM3PY1E9K.outputs.json @@ -0,0 +1,18 @@ +[ + { + "OutputKey": "amplifystorelocatorgen2mainbranch62d6167d4cgeostoreLocatorGeofenceCustomGeofenceCollectionF2914E55CollectionName", + "OutputValue": "storeLocatorGeofence-gen2-main" + }, + { + "OutputKey": "Region", + "OutputValue": "us-east-1" + }, + { + "OutputKey": "Arn", + "OutputValue": "arn:aws:geo:us-east-1:123456789012:geofence-collection/storeLocatorGeofence-gen2-main" + }, + { + "OutputKey": "Name", + "OutputValue": "storeLocatorGeofence-gen2-main" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorGeofenceEAAC8D05-17RAOM3PY1E9K.parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorGeofenceEAAC8D05-17RAOM3PY1E9K.parameters.json new file mode 100644 index 00000000000..2a93a404467 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorGeofenceEAAC8D05-17RAOM3PY1E9K.parameters.json @@ -0,0 +1,6 @@ +[ + { + "ParameterKey": "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthstoreLocatorAdminGroupRole237CDBFDRef", + "ParameterValue": "amplify-storelocator-ge-amplifyAuthstoreLocatorAd-o18wwJFGuDoS" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorGeofenceEAAC8D05-17RAOM3PY1E9K.template.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorGeofenceEAAC8D05-17RAOM3PY1E9K.template.json new file mode 100644 index 00000000000..e38b07e1f04 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorGeofenceEAAC8D05-17RAOM3PY1E9K.template.json @@ -0,0 +1,639 @@ +{ + "Description": "{\"createdOn\":\"Linux\",\"createdBy\":\"AmplifyPipelineDeploy\",\"createdWith\":\"1.21.1\",\"stackType\":\"custom\",\"metadata\":{}}", + "Mappings": { + "storeLocatorGeofenceRegionMapping9D9BCEA8": { + "us-east-1": { + "locationServiceRegion": "us-east-1" + }, + "us-east-2": { + "locationServiceRegion": "us-east-2" + }, + "us-west-2": { + "locationServiceRegion": "us-west-2" + }, + "ap-southeast-1": { + "locationServiceRegion": "ap-southeast-1" + }, + "ap-southeast-2": { + "locationServiceRegion": "ap-southeast-2" + }, + "ap-northeast-1": { + "locationServiceRegion": "ap-northeast-1" + }, + "eu-central-1": { + "locationServiceRegion": "eu-central-1" + }, + "eu-north-1": { + "locationServiceRegion": "eu-north-1" + }, + "eu-west-1": { + "locationServiceRegion": "eu-west-1" + }, + "sa-east-1": { + "locationServiceRegion": "us-east-1" + }, + "ca-central-1": { + "locationServiceRegion": "us-east-1" + }, + "us-west-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-north-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-northwest-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-south-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-3": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-2": { + "locationServiceRegion": "us-west-2" + }, + "eu-west-2": { + "locationServiceRegion": "eu-west-1" + }, + "eu-west-3": { + "locationServiceRegion": "eu-west-1" + }, + "me-south-1": { + "locationServiceRegion": "ap-southeast-1" + } + } + }, + "Resources": { + "storeLocatorGeofenceCustomGeofenceCollectionLambdaServiceRole9040D5514E15B340": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ], + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "storelocator" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/geostoreLocatorGeofence/storeLocatorGeofence/CustomGeofenceCollectionLambdaServiceRole9040D551" + } + }, + "storeLocatorGeofenceCustomGeofenceCollectionLambdaServiceRoleDefaultPolicy0A18B369D308393B": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "geo:CreateGeofenceCollection", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "geo:UpdateGeofenceCollection", + "geo:DeleteGeofenceCollection" + ], + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:aws:geo:", + { + "Fn::FindInMap": [ + "storeLocatorGeofenceRegionMapping9D9BCEA8", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":geofence-collection/storeLocatorGeofence-gen2-main" + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "CustomGeofenceCollectionLambdaServiceRoleDefaultPolicy0A18B369", + "Roles": [ + { + "Ref": "storeLocatorGeofenceCustomGeofenceCollectionLambdaServiceRole9040D5514E15B340" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/geostoreLocatorGeofence/storeLocatorGeofence/CustomGeofenceCollectionLambdaServiceRoleDefaultPolicy0A18B369" + } + }, + "storeLocatorGeofenceCustomGeofenceCollectionLambdaCA3D002BC8592787": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "const response = require('cfn-response');\nconst {\n LocationClient,\n CreateGeofenceCollectionCommand,\n DeleteGeofenceCollectionCommand,\n UpdateGeofenceCollectionCommand,\n} = require('@aws-sdk/client-location');\nexports.handler = async function (event, context) {\n try {\n console.log('REQUEST RECEIVED:' + JSON.stringify(event));\n const pricingPlan = 'RequestBasedUsage';\n if (event.RequestType === 'Create') {\n const params = {\n CollectionName: event.ResourceProperties.collectionName,\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new CreateGeofenceCollectionCommand(params));\n console.log('create resource response data' + JSON.stringify(res));\n if (res.CollectionName && res.CollectionArn) {\n await response.send(event, context, response.SUCCESS, res, params.CollectionName);\n } else {\n await response.send(event, context, response.FAILED, res, params.CollectionName);\n }\n }\n if (event.RequestType === 'Update') {\n const params = {\n CollectionName: event.ResourceProperties.collectionName,\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new UpdateGeofenceCollectionCommand(params));\n console.log('update resource response data' + JSON.stringify(res));\n if (res.CollectionName) {\n await response.send(event, context, response.SUCCESS, res, params.CollectionName);\n } else {\n await response.send(event, context, response.FAILED, res, params.CollectionName);\n }\n }\n if (event.RequestType === 'Delete') {\n const params = {\n CollectionName: event.ResourceProperties.collectionName,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new DeleteGeofenceCollectionCommand(params));\n console.log('delete resource response data' + JSON.stringify(res));\n await response.send(event, context, response.SUCCESS, res, params.CollectionName);\n }\n } catch (err) {\n console.log(err.stack);\n const res = { Error: err };\n await response.send(event, context, response.FAILED, res, event.ResourceProperties.collectionName);\n throw err;\n }\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "storeLocatorGeofenceCustomGeofenceCollectionLambdaServiceRole9040D5514E15B340", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "storelocator" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ], + "Timeout": 300 + }, + "DependsOn": [ + "storeLocatorGeofenceCustomGeofenceCollectionLambdaServiceRole9040D5514E15B340", + "storeLocatorGeofenceCustomGeofenceCollectionLambdaServiceRoleDefaultPolicy0A18B369D308393B" + ], + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/geostoreLocatorGeofence/storeLocatorGeofence/CustomGeofenceCollectionLambdaCA3D002B" + } + }, + "storeLocatorGeofenceCustomGeofenceCollectionB76AA26D": { + "Type": "Custom::LambdaCallout", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "storeLocatorGeofenceCustomGeofenceCollectionLambdaCA3D002BC8592787", + "Arn" + ] + }, + "collectionName": "storeLocatorGeofence-gen2-main", + "region": { + "Fn::FindInMap": [ + "storeLocatorGeofenceRegionMapping9D9BCEA8", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "env": "gen2-main" + }, + "DeletionPolicy": "Delete", + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/geostoreLocatorGeofence/storeLocatorGeofence/CustomGeofenceCollection" + } + }, + "storeLocatorGeofencestoreLocatorAdminGeofenceCollectionPolicy34A5CD0F": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "geo:GetGeofence", + "geo:PutGeofence", + "geo:BatchPutGeofence", + "geo:BatchDeleteGeofence", + "geo:ListGeofences" + ], + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:aws:geo:", + { + "Fn::FindInMap": [ + "storeLocatorGeofenceRegionMapping9D9BCEA8", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":geofence-collection/", + { + "Fn::GetAtt": [ + "storeLocatorGeofenceCustomGeofenceCollectionB76AA26D", + "CollectionName" + ] + } + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "storeLocatorAdminstoreLocatorGeofence-gen2-mainPolicy", + "Roles": [ + { + "Ref": "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthstoreLocatorAdminGroupRole237CDBFDRef" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/geostoreLocatorGeofence/storeLocatorGeofence/storeLocatorAdminGeofenceCollectionPolicy" + } + }, + "CDKMetadata": { + "Type": "AWS::CDK::Metadata", + "Properties": { + "Analytics": "v2:deflate64:H4sIAAAAAAAA/yXLTQ6DIBBA4bO4x6klLron6a4/sQdoRsBmFAYiUNMY797Yrt7iy5Mg2xaaCpdUazPVjnpYrzZlax4Z9STUwBeMkfglcEnPldDDqgbugrM73oMj/dmEQ98bBDXwubDOFHjbWZWUg+9sCmXWv+FWcix5ExyMhTEd3lLC8QRNNSaiei6cyVvo/v0C08sIKp8AAAA=" + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/geostoreLocatorGeofence/CDKMetadata/Default" + }, + "Condition": "CDKMetadataAvailable" + } + }, + "Outputs": { + "Name": { + "Value": { + "Fn::GetAtt": [ + "storeLocatorGeofenceCustomGeofenceCollectionB76AA26D", + "CollectionName" + ] + } + }, + "Region": { + "Value": { + "Fn::FindInMap": [ + "storeLocatorGeofenceRegionMapping9D9BCEA8", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + } + }, + "Arn": { + "Value": { + "Fn::Join": [ + "", + [ + "arn:aws:geo:", + { + "Fn::FindInMap": [ + "storeLocatorGeofenceRegionMapping9D9BCEA8", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":geofence-collection/", + { + "Fn::GetAtt": [ + "storeLocatorGeofenceCustomGeofenceCollectionB76AA26D", + "CollectionName" + ] + } + ] + ] + } + }, + "amplifystorelocatorgen2mainbranch62d6167d4cgeostoreLocatorGeofenceCustomGeofenceCollectionF2914E55CollectionName": { + "Value": { + "Fn::GetAtt": [ + "storeLocatorGeofenceCustomGeofenceCollectionB76AA26D", + "CollectionName" + ] + } + } + }, + "Conditions": { + "CDKMetadataAvailable": { + "Fn::Or": [ + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "af-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-3" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-south-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-3" + ] + } + ] + }, + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-4" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ca-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ca-west-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "cn-north-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "cn-northwest-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-central-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-north-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-south-2" + ] + } + ] + }, + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-3" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "il-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "me-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "me-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "sa-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-east-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-west-1" + ] + } + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-west-2" + ] + } + ] + } + }, + "Parameters": { + "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthstoreLocatorAdminGroupRole237CDBFDRef": { + "Type": "String" + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorMap6A22ACC1-8ERJEQ7R4WPN.description.txt b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorMap6A22ACC1-8ERJEQ7R4WPN.description.txt new file mode 100644 index 00000000000..1e3215c63d9 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorMap6A22ACC1-8ERJEQ7R4WPN.description.txt @@ -0,0 +1 @@ +{"createdOn":"Linux","createdBy":"AmplifyPipelineDeploy","createdWith":"1.21.1","stackType":"custom","metadata":{}} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorMap6A22ACC1-8ERJEQ7R4WPN.outputs.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorMap6A22ACC1-8ERJEQ7R4WPN.outputs.json new file mode 100644 index 00000000000..a8fdcfffbc4 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorMap6A22ACC1-8ERJEQ7R4WPN.outputs.json @@ -0,0 +1,22 @@ +[ + { + "OutputKey": "Style", + "OutputValue": "VectorEsriStreets" + }, + { + "OutputKey": "Region", + "OutputValue": "us-east-1" + }, + { + "OutputKey": "amplifystorelocatorgen2mainbranch62d6167d4cgeostoreLocatorMapCustomMap41EB8E23MapName", + "OutputValue": "storeLocatorMap-gen2-main" + }, + { + "OutputKey": "Arn", + "OutputValue": "arn:aws:geo:us-east-1:123456789012:map/storeLocatorMap-gen2-main" + }, + { + "OutputKey": "Name", + "OutputValue": "storeLocatorMap-gen2-main" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorMap6A22ACC1-8ERJEQ7R4WPN.parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorMap6A22ACC1-8ERJEQ7R4WPN.parameters.json new file mode 100644 index 00000000000..8e6d6f64984 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorMap6A22ACC1-8ERJEQ7R4WPN.parameters.json @@ -0,0 +1,14 @@ +[ + { + "ParameterKey": "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthunauthenticatedUserRole91ACCEF4Ref", + "ParameterValue": "amplify-storelocator-ge-amplifyAuthunauthenticate-lXWiZUp3FtNM" + }, + { + "ParameterKey": "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthauthenticatedUserRoleE47B81E2Ref", + "ParameterValue": "amplify-storelocator-ge-amplifyAuthauthenticatedU-9OqjoXZMGmQf" + }, + { + "ParameterKey": "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthstoreLocatorAdminGroupRole237CDBFDRef", + "ParameterValue": "amplify-storelocator-ge-amplifyAuthstoreLocatorAd-o18wwJFGuDoS" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorMap6A22ACC1-8ERJEQ7R4WPN.template.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorMap6A22ACC1-8ERJEQ7R4WPN.template.json new file mode 100644 index 00000000000..ebf1268cc9a --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorMap6A22ACC1-8ERJEQ7R4WPN.template.json @@ -0,0 +1,610 @@ +{ + "Description": "{\"createdOn\":\"Linux\",\"createdBy\":\"AmplifyPipelineDeploy\",\"createdWith\":\"1.21.1\",\"stackType\":\"custom\",\"metadata\":{}}", + "Mappings": { + "storeLocatorMapRegionMapping7E708396": { + "us-east-1": { + "locationServiceRegion": "us-east-1" + }, + "us-east-2": { + "locationServiceRegion": "us-east-2" + }, + "us-west-2": { + "locationServiceRegion": "us-west-2" + }, + "ap-southeast-1": { + "locationServiceRegion": "ap-southeast-1" + }, + "ap-southeast-2": { + "locationServiceRegion": "ap-southeast-2" + }, + "ap-northeast-1": { + "locationServiceRegion": "ap-northeast-1" + }, + "eu-central-1": { + "locationServiceRegion": "eu-central-1" + }, + "eu-north-1": { + "locationServiceRegion": "eu-north-1" + }, + "eu-west-1": { + "locationServiceRegion": "eu-west-1" + }, + "sa-east-1": { + "locationServiceRegion": "us-east-1" + }, + "ca-central-1": { + "locationServiceRegion": "us-east-1" + }, + "us-west-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-north-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-northwest-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-south-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-3": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-2": { + "locationServiceRegion": "us-west-2" + }, + "eu-west-2": { + "locationServiceRegion": "eu-west-1" + }, + "eu-west-3": { + "locationServiceRegion": "eu-west-1" + }, + "me-south-1": { + "locationServiceRegion": "ap-southeast-1" + } + } + }, + "Resources": { + "storeLocatorMapCustomMapLambdaServiceRole4EE7732C2405A734": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ], + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "storelocator" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/geostoreLocatorMap/storeLocatorMap/CustomMapLambdaServiceRole4EE7732C" + } + }, + "storeLocatorMapCustomMapLambdaServiceRoleDefaultPolicy983FDD4ECEADC647": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "geo:CreateMap", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "geo:UpdateMap", + "geo:DeleteMap" + ], + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:aws:geo:", + { + "Fn::FindInMap": [ + "storeLocatorMapRegionMapping7E708396", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":map/storeLocatorMap-gen2-main" + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "CustomMapLambdaServiceRoleDefaultPolicy983FDD4E", + "Roles": [ + { + "Ref": "storeLocatorMapCustomMapLambdaServiceRole4EE7732C2405A734" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/geostoreLocatorMap/storeLocatorMap/CustomMapLambdaServiceRoleDefaultPolicy983FDD4E" + } + }, + "storeLocatorMapCustomMapLambda51D5D43019B4B7E6": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "const response = require('cfn-response');\nconst { LocationClient, CreateMapCommand, DeleteMapCommand, UpdateMapCommand } = require('@aws-sdk/client-location');\nexports.handler = async function (event, context) {\n try {\n console.log('REQUEST RECEIVED:' + JSON.stringify(event));\n const pricingPlan = 'RequestBasedUsage';\n if (event.RequestType === 'Create') {\n let params = {\n MapName: event.ResourceProperties.mapName,\n Configuration: {\n Style: event.ResourceProperties.mapStyle,\n },\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new CreateMapCommand(params));\n console.log('create resource response data' + JSON.stringify(res));\n if (res.MapName && res.MapArn) {\n await response.send(event, context, response.SUCCESS, res, params.MapName);\n } else {\n await response.send(event, context, response.FAILED, res, params.MapName);\n }\n }\n if (event.RequestType === 'Update') {\n let params = {\n MapName: event.ResourceProperties.mapName,\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new UpdateMapCommand(params));\n console.log('update resource response data' + JSON.stringify(res));\n if (res.MapName && res.MapArn) {\n await response.send(event, context, response.SUCCESS, res, params.MapName);\n } else {\n await response.send(event, context, response.FAILED, res, params.MapName);\n }\n }\n if (event.RequestType === 'Delete') {\n let params = {\n MapName: event.ResourceProperties.mapName,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new DeleteMapCommand(params));\n console.log('delete resource response data' + JSON.stringify(res));\n await response.send(event, context, response.SUCCESS, res, params.MapName);\n }\n } catch (err) {\n console.log(err.stack);\n const res = { Error: err };\n await response.send(event, context, response.FAILED, res, event.ResourceProperties.mapName);\n throw err;\n }\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "storeLocatorMapCustomMapLambdaServiceRole4EE7732C2405A734", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "storelocator" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ], + "Timeout": 300 + }, + "DependsOn": [ + "storeLocatorMapCustomMapLambdaServiceRole4EE7732C2405A734", + "storeLocatorMapCustomMapLambdaServiceRoleDefaultPolicy983FDD4ECEADC647" + ], + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/geostoreLocatorMap/storeLocatorMap/CustomMapLambda51D5D430" + } + }, + "storeLocatorMapCustomMap3D69EC7C": { + "Type": "Custom::LambdaCallout", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "storeLocatorMapCustomMapLambda51D5D43019B4B7E6", + "Arn" + ] + }, + "mapName": "storeLocatorMap-gen2-main", + "mapStyle": "VectorEsriStreets", + "region": { + "Fn::FindInMap": [ + "storeLocatorMapRegionMapping7E708396", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "env": "gen2-main" + }, + "DeletionPolicy": "Delete", + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/geostoreLocatorMap/storeLocatorMap/CustomMap" + } + }, + "storeLocatorMapMapPolicy388540F3": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "geo:GetMapStyleDescriptor", + "geo:GetMapGlyphs", + "geo:GetMapSprites", + "geo:GetMapTile" + ], + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "storeLocatorMapCustomMap3D69EC7C", + "MapArn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "storeLocatorMap-gen2-mainPolicy", + "Roles": [ + { + "Ref": "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthauthenticatedUserRoleE47B81E2Ref" + }, + { + "Ref": "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthunauthenticatedUserRole91ACCEF4Ref" + }, + { + "Ref": "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthstoreLocatorAdminGroupRole237CDBFDRef" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/geostoreLocatorMap/storeLocatorMap/MapPolicy" + } + }, + "CDKMetadata": { + "Type": "AWS::CDK::Metadata", + "Properties": { + "Analytics": "v2:deflate64:H4sIAAAAAAAA/yXLTQ6DIBBA4bO4x6klLron6a4/sQdoRsBmFAYiUNMY797Yrt7iy5Mg2xaaCpdUazPVjnpYrzZlax4Z9STUwBeMkfglcEnPldDDqgbugrM73oMj/dmEQ98bBDXwubDOFHjbWZWUg+9sCmXWv+FWcix5ExyMhTEd3lLC8QRNNSaiei6cyVvo/v0C08sIKp8AAAA=" + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/geostoreLocatorMap/CDKMetadata/Default" + }, + "Condition": "CDKMetadataAvailable" + } + }, + "Outputs": { + "Name": { + "Value": { + "Fn::GetAtt": [ + "storeLocatorMapCustomMap3D69EC7C", + "MapName" + ] + } + }, + "Style": { + "Value": "VectorEsriStreets" + }, + "Region": { + "Value": { + "Fn::FindInMap": [ + "storeLocatorMapRegionMapping7E708396", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + } + }, + "Arn": { + "Value": { + "Fn::GetAtt": [ + "storeLocatorMapCustomMap3D69EC7C", + "MapArn" + ] + } + }, + "amplifystorelocatorgen2mainbranch62d6167d4cgeostoreLocatorMapCustomMap41EB8E23MapName": { + "Value": { + "Fn::GetAtt": [ + "storeLocatorMapCustomMap3D69EC7C", + "MapName" + ] + } + } + }, + "Conditions": { + "CDKMetadataAvailable": { + "Fn::Or": [ + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "af-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-3" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-south-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-3" + ] + } + ] + }, + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-4" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ca-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ca-west-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "cn-north-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "cn-northwest-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-central-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-north-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-south-2" + ] + } + ] + }, + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-3" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "il-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "me-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "me-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "sa-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-east-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-west-1" + ] + } + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-west-2" + ] + } + ] + } + }, + "Parameters": { + "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthauthenticatedUserRoleE47B81E2Ref": { + "Type": "String" + }, + "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthunauthenticatedUserRole91ACCEF4Ref": { + "Type": "String" + }, + "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthstoreLocatorAdminGroupRole237CDBFDRef": { + "Type": "String" + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorSearch516CF59F-10BDIX52ZDQV2.description.txt b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorSearch516CF59F-10BDIX52ZDQV2.description.txt new file mode 100644 index 00000000000..1e3215c63d9 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorSearch516CF59F-10BDIX52ZDQV2.description.txt @@ -0,0 +1 @@ +{"createdOn":"Linux","createdBy":"AmplifyPipelineDeploy","createdWith":"1.21.1","stackType":"custom","metadata":{}} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorSearch516CF59F-10BDIX52ZDQV2.outputs.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorSearch516CF59F-10BDIX52ZDQV2.outputs.json new file mode 100644 index 00000000000..03e129e8fd3 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorSearch516CF59F-10BDIX52ZDQV2.outputs.json @@ -0,0 +1,18 @@ +[ + { + "OutputKey": "Region", + "OutputValue": "us-east-1" + }, + { + "OutputKey": "Arn", + "OutputValue": "arn:aws:geo:us-east-1:123456789012:place-index/storeLocatorSearch-gen2-main" + }, + { + "OutputKey": "amplifystorelocatorgen2mainbranch62d6167d4cgeostoreLocatorSearchCustomPlaceIndexAEDF2721IndexName", + "OutputValue": "storeLocatorSearch-gen2-main" + }, + { + "OutputKey": "Name", + "OutputValue": "storeLocatorSearch-gen2-main" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorSearch516CF59F-10BDIX52ZDQV2.parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorSearch516CF59F-10BDIX52ZDQV2.parameters.json new file mode 100644 index 00000000000..8e6d6f64984 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorSearch516CF59F-10BDIX52ZDQV2.parameters.json @@ -0,0 +1,14 @@ +[ + { + "ParameterKey": "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthunauthenticatedUserRole91ACCEF4Ref", + "ParameterValue": "amplify-storelocator-ge-amplifyAuthunauthenticate-lXWiZUp3FtNM" + }, + { + "ParameterKey": "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthauthenticatedUserRoleE47B81E2Ref", + "ParameterValue": "amplify-storelocator-ge-amplifyAuthauthenticatedU-9OqjoXZMGmQf" + }, + { + "ParameterKey": "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthstoreLocatorAdminGroupRole237CDBFDRef", + "ParameterValue": "amplify-storelocator-ge-amplifyAuthstoreLocatorAd-o18wwJFGuDoS" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorSearch516CF59F-10BDIX52ZDQV2.template.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorSearch516CF59F-10BDIX52ZDQV2.template.json new file mode 100644 index 00000000000..60985dad427 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c-geostoreLocatorSearch516CF59F-10BDIX52ZDQV2.template.json @@ -0,0 +1,608 @@ +{ + "Description": "{\"createdOn\":\"Linux\",\"createdBy\":\"AmplifyPipelineDeploy\",\"createdWith\":\"1.21.1\",\"stackType\":\"custom\",\"metadata\":{}}", + "Mappings": { + "storeLocatorSearchRegionMappingA7DF4548": { + "us-east-1": { + "locationServiceRegion": "us-east-1" + }, + "us-east-2": { + "locationServiceRegion": "us-east-2" + }, + "us-west-2": { + "locationServiceRegion": "us-west-2" + }, + "ap-southeast-1": { + "locationServiceRegion": "ap-southeast-1" + }, + "ap-southeast-2": { + "locationServiceRegion": "ap-southeast-2" + }, + "ap-northeast-1": { + "locationServiceRegion": "ap-northeast-1" + }, + "eu-central-1": { + "locationServiceRegion": "eu-central-1" + }, + "eu-north-1": { + "locationServiceRegion": "eu-north-1" + }, + "eu-west-1": { + "locationServiceRegion": "eu-west-1" + }, + "sa-east-1": { + "locationServiceRegion": "us-east-1" + }, + "ca-central-1": { + "locationServiceRegion": "us-east-1" + }, + "us-west-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-north-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-northwest-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-south-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-3": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-2": { + "locationServiceRegion": "us-west-2" + }, + "eu-west-2": { + "locationServiceRegion": "eu-west-1" + }, + "eu-west-3": { + "locationServiceRegion": "eu-west-1" + }, + "me-south-1": { + "locationServiceRegion": "ap-southeast-1" + } + } + }, + "Resources": { + "storeLocatorSearchCustomPlaceIndexLambdaServiceRoleFD2F3C9D9AAF5F9F": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ], + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "storelocator" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/geostoreLocatorSearch/storeLocatorSearch/CustomPlaceIndexLambdaServiceRoleFD2F3C9D" + } + }, + "storeLocatorSearchCustomPlaceIndexLambdaServiceRoleDefaultPolicy818068B11998631C": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "geo:CreatePlaceIndex", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "geo:UpdatePlaceIndex", + "geo:DeletePlaceIndex" + ], + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:aws:geo:", + { + "Fn::FindInMap": [ + "storeLocatorSearchRegionMappingA7DF4548", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":place-index/storeLocatorSearch-gen2-main" + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "CustomPlaceIndexLambdaServiceRoleDefaultPolicy818068B1", + "Roles": [ + { + "Ref": "storeLocatorSearchCustomPlaceIndexLambdaServiceRoleFD2F3C9D9AAF5F9F" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/geostoreLocatorSearch/storeLocatorSearch/CustomPlaceIndexLambdaServiceRoleDefaultPolicy818068B1" + } + }, + "storeLocatorSearchCustomPlaceIndexLambda79813BB9A2F450FE": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "const response = require('cfn-response');\nconst { LocationClient, CreatePlaceIndexCommand, DeletePlaceIndexCommand, UpdatePlaceIndexCommand } = require('@aws-sdk/client-location');\nexports.handler = async function (event, context) {\n try {\n console.log('REQUEST RECEIVED:' + JSON.stringify(event));\n const pricingPlan = 'RequestBasedUsage';\n if (event.RequestType === 'Create') {\n const params = {\n IndexName: event.ResourceProperties.indexName,\n DataSource: event.ResourceProperties.dataSource,\n DataSourceConfiguration: {\n IntendedUse: event.ResourceProperties.dataSourceIntendedUse,\n },\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new CreatePlaceIndexCommand(params));\n console.log('create resource response data' + JSON.stringify(res));\n if (res.IndexName && res.IndexArn) {\n event.PhysicalResourceId = res.IndexName;\n await response.send(event, context, response.SUCCESS, res, params.IndexName);\n } else {\n await response.send(event, context, response.FAILED, res, params.IndexName);\n }\n }\n if (event.RequestType === 'Update') {\n const params = {\n IndexName: event.ResourceProperties.indexName,\n DataSourceConfiguration: {\n IntendedUse: event.ResourceProperties.dataSourceIntendedUse,\n },\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new UpdatePlaceIndexCommand(params));\n console.log('update resource response data' + JSON.stringify(res));\n if (res.IndexName && res.IndexArn) {\n event.PhysicalResourceId = res.IndexName;\n await response.send(event, context, response.SUCCESS, res, params.IndexName);\n } else {\n await response.send(event, context, response.FAILED, res, params.IndexName);\n }\n }\n if (event.RequestType === 'Delete') {\n const params = {\n IndexName: event.ResourceProperties.indexName,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new DeletePlaceIndexCommand(params));\n event.PhysicalResourceId = event.ResourceProperties.indexName;\n console.log('delete resource response data' + JSON.stringify(res));\n await response.send(event, context, response.SUCCESS, res, params.IndexName);\n }\n } catch (err) {\n console.log(err.stack);\n const res = { Error: err };\n await response.send(event, context, response.FAILED, res, event.ResourceProperties.indexName);\n throw err;\n }\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "storeLocatorSearchCustomPlaceIndexLambdaServiceRoleFD2F3C9D9AAF5F9F", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "storelocator" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ], + "Timeout": 300 + }, + "DependsOn": [ + "storeLocatorSearchCustomPlaceIndexLambdaServiceRoleDefaultPolicy818068B11998631C", + "storeLocatorSearchCustomPlaceIndexLambdaServiceRoleFD2F3C9D9AAF5F9F" + ], + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/geostoreLocatorSearch/storeLocatorSearch/CustomPlaceIndexLambda79813BB9" + } + }, + "storeLocatorSearchCustomPlaceIndexF0192882": { + "Type": "Custom::LambdaCallout", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "storeLocatorSearchCustomPlaceIndexLambda79813BB9A2F450FE", + "Arn" + ] + }, + "indexName": "storeLocatorSearch-gen2-main", + "dataSource": "Here", + "dataSourceIntendedUse": "SingleUse", + "region": { + "Fn::FindInMap": [ + "storeLocatorSearchRegionMappingA7DF4548", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "env": "gen2-main" + }, + "DeletionPolicy": "Delete", + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/geostoreLocatorSearch/storeLocatorSearch/CustomPlaceIndex" + } + }, + "storeLocatorSearchPlaceIndexPolicy9E8EFC93": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "geo:SearchPlaceIndexForPosition", + "geo:SearchPlaceIndexForText", + "geo:SearchPlaceIndexForSuggestions", + "geo:GetPlace" + ], + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "storeLocatorSearchCustomPlaceIndexF0192882", + "IndexArn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "storeLocatorSearch-gen2-mainPolicy", + "Roles": [ + { + "Ref": "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthauthenticatedUserRoleE47B81E2Ref" + }, + { + "Ref": "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthunauthenticatedUserRole91ACCEF4Ref" + }, + { + "Ref": "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthstoreLocatorAdminGroupRole237CDBFDRef" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/geostoreLocatorSearch/storeLocatorSearch/PlaceIndexPolicy" + } + }, + "CDKMetadata": { + "Type": "AWS::CDK::Metadata", + "Properties": { + "Analytics": "v2:deflate64:H4sIAAAAAAAA/yXLTQ6DIBBA4bO4x6klLron6a4/sQdoRsBmFAYiUNMY797Yrt7iy5Mg2xaaCpdUazPVjnpYrzZlax4Z9STUwBeMkfglcEnPldDDqgbugrM73oMj/dmEQ98bBDXwubDOFHjbWZWUg+9sCmXWv+FWcix5ExyMhTEd3lLC8QRNNSaiei6cyVvo/v0C08sIKp8AAAA=" + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/geostoreLocatorSearch/CDKMetadata/Default" + }, + "Condition": "CDKMetadataAvailable" + } + }, + "Outputs": { + "Name": { + "Value": { + "Fn::GetAtt": [ + "storeLocatorSearchCustomPlaceIndexF0192882", + "IndexName" + ] + } + }, + "Region": { + "Value": { + "Fn::FindInMap": [ + "storeLocatorSearchRegionMappingA7DF4548", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + } + }, + "Arn": { + "Value": { + "Fn::GetAtt": [ + "storeLocatorSearchCustomPlaceIndexF0192882", + "IndexArn" + ] + } + }, + "amplifystorelocatorgen2mainbranch62d6167d4cgeostoreLocatorSearchCustomPlaceIndexAEDF2721IndexName": { + "Value": { + "Fn::GetAtt": [ + "storeLocatorSearchCustomPlaceIndexF0192882", + "IndexName" + ] + } + } + }, + "Conditions": { + "CDKMetadataAvailable": { + "Fn::Or": [ + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "af-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-3" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-south-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-3" + ] + } + ] + }, + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-4" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ca-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ca-west-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "cn-north-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "cn-northwest-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-central-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-north-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-south-2" + ] + } + ] + }, + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-3" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "il-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "me-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "me-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "sa-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-east-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-west-1" + ] + } + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-west-2" + ] + } + ] + } + }, + "Parameters": { + "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthauthenticatedUserRoleE47B81E2Ref": { + "Type": "String" + }, + "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthunauthenticatedUserRole91ACCEF4Ref": { + "Type": "String" + }, + "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthstoreLocatorAdminGroupRole237CDBFDRef": { + "Type": "String" + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c.description.txt b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c.description.txt new file mode 100644 index 00000000000..afc6ec23957 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c.description.txt @@ -0,0 +1 @@ +{"createdOn":"Linux","createdBy":"AmplifyPipelineDeploy","createdWith":"1.21.1","stackType":"root","metadata":{}} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c.outputs.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c.outputs.json new file mode 100644 index 00000000000..d6f6c8d2aff --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c.outputs.json @@ -0,0 +1,102 @@ +[ + { + "OutputKey": "webClientId", + "OutputValue": "1t7et22n9m68741vh3pmv2nmfq" + }, + { + "OutputKey": "socialProviders", + "OutputValue": "" + }, + { + "OutputKey": "usernameAttributes", + "OutputValue": "[\"email\"]" + }, + { + "OutputKey": "signupAttributes", + "OutputValue": "[\"email\"]" + }, + { + "OutputKey": "oauthClientId", + "OutputValue": "1t7et22n9m68741vh3pmv2nmfq" + }, + { + "OutputKey": "allowUnauthenticatedIdentities", + "OutputValue": "true" + }, + { + "OutputKey": "oauthCognitoDomain", + "OutputValue": "" + }, + { + "OutputKey": "oauthScope", + "OutputValue": "[\"profile\",\"phone\",\"email\",\"openid\",\"aws.cognito.signin.user.admin\"]" + }, + { + "OutputKey": "oauthRedirectSignOut", + "OutputValue": "" + }, + { + "OutputKey": "mfaTypes", + "OutputValue": "[]" + }, + { + "OutputKey": "mfaConfiguration", + "OutputValue": "OFF" + }, + { + "OutputKey": "oauthResponseType", + "OutputValue": "code" + }, + { + "OutputKey": "customOutputs", + "OutputValue": "{\"geo\":{\"aws_region\":\"us-east-1\",\"maps\":{\"items\":{\"storeLocatorMap-gen2-main\":{\"style\":\"VectorEsriStreets\"}},\"default\":\"storeLocatorMap-gen2-main\"},\"search_indices\":{\"items\":[\"storeLocatorSearch-gen2-main\"],\"default\":\"storeLocatorSearch-gen2-main\"},\"geofence_collections\":{\"items\":[\"storeLocatorGeofence-gen2-main\"],\"default\":\"storeLocatorGeofence-gen2-main\"}},\"version\":\"1.4\"}" + }, + { + "OutputKey": "oauthRedirectSignIn", + "OutputValue": "https://example.com" + }, + { + "OutputKey": "passwordPolicyMinLength", + "OutputValue": "8" + }, + { + "OutputKey": "authRegion", + "OutputValue": "us-east-1" + }, + { + "OutputKey": "groups", + "OutputValue": "[{\"storeLocatorAdmin\":{\"precedence\":0}}]" + }, + { + "OutputKey": "definedFunctions", + "OutputValue": "[\"storelocator41a9495f41a9495fPostConfirmation-gen2-main\"]" + }, + { + "OutputKey": "passwordlessOptions", + "OutputValue": "" + }, + { + "OutputKey": "deploymentType", + "OutputValue": "branch" + }, + { + "OutputKey": "passwordPolicyRequirements", + "OutputValue": "[]" + }, + { + "OutputKey": "region", + "OutputValue": "us-east-1" + }, + { + "OutputKey": "userPoolId", + "OutputValue": "us-east-1_AeAJNVPgB" + }, + { + "OutputKey": "identityPoolId", + "OutputValue": "us-east-1:cbd1c99c-bad6-4aff-8d75-a63d582714ee" + }, + { + "OutputKey": "verificationMechanisms", + "OutputValue": "[\"email\"]" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c.parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c.parameters.json new file mode 100644 index 00000000000..74596fb6f32 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c.parameters.json @@ -0,0 +1,7 @@ +[ + { + "ParameterKey": "BootstrapVersion", + "ParameterValue": "/cdk-bootstrap/hnb659fds/version", + "ResolvedValue": "30" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c.template.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c.template.json new file mode 100644 index 00000000000..7b7b114bb42 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-gen2main-branch-62d6167d4c.template.json @@ -0,0 +1,1163 @@ +{ + "Description": "{\"createdOn\":\"Linux\",\"createdBy\":\"AmplifyPipelineDeploy\",\"createdWith\":\"1.21.1\",\"stackType\":\"root\",\"metadata\":{}}", + "Metadata": { + "AWS::Amplify::Platform": { + "version": "1", + "stackOutputs": [ + "deploymentType", + "region" + ] + }, + "AWS::Amplify::Auth": { + "version": "1", + "stackOutputs": [ + "userPoolId", + "webClientId", + "identityPoolId", + "authRegion", + "allowUnauthenticatedIdentities", + "signupAttributes", + "usernameAttributes", + "verificationMechanisms", + "passwordPolicyMinLength", + "passwordPolicyRequirements", + "mfaConfiguration", + "mfaTypes", + "passwordlessOptions", + "socialProviders", + "oauthCognitoDomain", + "oauthScope", + "oauthRedirectSignIn", + "oauthRedirectSignOut", + "oauthResponseType", + "oauthClientId", + "groups" + ] + }, + "AWS::Amplify::Function": { + "version": "1", + "stackOutputs": [ + "definedFunctions" + ] + }, + "AWS::Amplify::Custom": { + "version": "1", + "stackOutputs": [ + "customOutputs" + ] + } + }, + "Outputs": { + "deploymentType": { + "Value": "branch" + }, + "region": { + "Value": { + "Ref": "AWS::Region" + } + }, + "userPoolId": { + "Value": { + "Fn::GetAtt": [ + "auth179371D7", + "Outputs.amplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthUserPoolE0F0BF85Ref" + ] + } + }, + "webClientId": { + "Value": { + "Fn::GetAtt": [ + "auth179371D7", + "Outputs.amplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthUserPoolAppClientA8D9B6FBRef" + ] + } + }, + "identityPoolId": { + "Value": { + "Fn::GetAtt": [ + "auth179371D7", + "Outputs.amplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthIdentityPool537188CARef" + ] + } + }, + "authRegion": { + "Value": { + "Ref": "AWS::Region" + } + }, + "allowUnauthenticatedIdentities": { + "Value": "true" + }, + "signupAttributes": { + "Value": "[\"email\"]" + }, + "usernameAttributes": { + "Value": "[\"email\"]" + }, + "verificationMechanisms": { + "Value": "[\"email\"]" + }, + "passwordPolicyMinLength": { + "Value": "8" + }, + "passwordPolicyRequirements": { + "Value": "[]" + }, + "mfaConfiguration": { + "Value": "OFF" + }, + "mfaTypes": { + "Value": "[]" + }, + "passwordlessOptions": { + "Value": "" + }, + "socialProviders": { + "Value": "" + }, + "oauthCognitoDomain": { + "Value": "" + }, + "oauthScope": { + "Value": "[\"profile\",\"phone\",\"email\",\"openid\",\"aws.cognito.signin.user.admin\"]" + }, + "oauthRedirectSignIn": { + "Value": "https://example.com" + }, + "oauthRedirectSignOut": { + "Value": "" + }, + "oauthResponseType": { + "Value": "code" + }, + "oauthClientId": { + "Value": { + "Fn::GetAtt": [ + "auth179371D7", + "Outputs.amplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthUserPoolAppClientA8D9B6FBRef" + ] + } + }, + "groups": { + "Value": "[{\"storeLocatorAdmin\":{\"precedence\":0}}]" + }, + "definedFunctions": { + "Value": { + "Fn::Join": [ + "", + [ + "[\"", + { + "Fn::GetAtt": [ + "auth179371D7", + "Outputs.amplifystorelocatorgen2mainbranch62d6167d4cauthstorelocator41a9495f41a9495fPostConfirmationgen2mainlambda5D769661Ref" + ] + }, + "\"]" + ] + ] + } + }, + "customOutputs": { + "Value": { + "Fn::Join": [ + "", + [ + "{\"geo\":{\"aws_region\":\"", + { + "Fn::FindInMap": [ + "MappingCopyRegionMappingc899bf01def5cbc849691ab5f6733a851ecaaf8d34", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "\",\"maps\":{\"items\":{\"", + { + "Fn::GetAtt": [ + "geostoreLocatorMap6A22ACC1", + "Outputs.amplifystorelocatorgen2mainbranch62d6167d4cgeostoreLocatorMapCustomMap41EB8E23MapName" + ] + }, + "\":{\"style\":\"VectorEsriStreets\"}},\"default\":\"", + { + "Fn::GetAtt": [ + "geostoreLocatorMap6A22ACC1", + "Outputs.amplifystorelocatorgen2mainbranch62d6167d4cgeostoreLocatorMapCustomMap41EB8E23MapName" + ] + }, + "\"},\"search_indices\":{\"items\":[\"", + { + "Fn::GetAtt": [ + "geostoreLocatorSearch516CF59F", + "Outputs.amplifystorelocatorgen2mainbranch62d6167d4cgeostoreLocatorSearchCustomPlaceIndexAEDF2721IndexName" + ] + }, + "\"],\"default\":\"", + { + "Fn::GetAtt": [ + "geostoreLocatorSearch516CF59F", + "Outputs.amplifystorelocatorgen2mainbranch62d6167d4cgeostoreLocatorSearchCustomPlaceIndexAEDF2721IndexName" + ] + }, + "\"},\"geofence_collections\":{\"items\":[\"", + { + "Fn::GetAtt": [ + "geostoreLocatorGeofenceEAAC8D05", + "Outputs.amplifystorelocatorgen2mainbranch62d6167d4cgeostoreLocatorGeofenceCustomGeofenceCollectionF2914E55CollectionName" + ] + }, + "\"],\"default\":\"", + { + "Fn::GetAtt": [ + "geostoreLocatorGeofenceEAAC8D05", + "Outputs.amplifystorelocatorgen2mainbranch62d6167d4cgeostoreLocatorGeofenceCustomGeofenceCollectionF2914E55CollectionName" + ] + }, + "\"}},\"version\":\"1.4\"}" + ] + ] + } + } + }, + "Resources": { + "AmplifyBranchLinkerCustomResourceLambdaServiceRole3DDCBC03": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ], + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "storelocator" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/AmplifyBranchLinker/CustomResourceLambda/ServiceRole/Resource" + } + }, + "AmplifyBranchLinkerCustomResourceLambdaServiceRoleDefaultPolicy86099CA1": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "amplify:GetBranch", + "amplify:UpdateBranch" + ], + "Effect": "Allow", + "Resource": "arn:aws:amplify:*:*:apps/storelocator/branches/gen2-main" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "AmplifyBranchLinkerCustomResourceLambdaServiceRoleDefaultPolicy86099CA1", + "Roles": [ + { + "Ref": "AmplifyBranchLinkerCustomResourceLambdaServiceRole3DDCBC03" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/AmplifyBranchLinker/CustomResourceLambda/ServiceRole/DefaultPolicy/Resource" + } + }, + "AmplifyBranchLinkerCustomResourceLambda582AC093": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "59635e07adb5fb948b68e22ccd96205d87940fdcdfb7993bddf9639acde4f941.zip" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "AmplifyBranchLinkerCustomResourceLambdaServiceRole3DDCBC03", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "storelocator" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ], + "Timeout": 10 + }, + "DependsOn": [ + "AmplifyBranchLinkerCustomResourceLambdaServiceRoleDefaultPolicy86099CA1", + "AmplifyBranchLinkerCustomResourceLambdaServiceRole3DDCBC03" + ], + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/AmplifyBranchLinker/CustomResourceLambda/Resource", + "aws:asset:path": "asset.59635e07adb5fb948b68e22ccd96205d87940fdcdfb7993bddf9639acde4f941", + "aws:asset:is-bundled": true, + "aws:asset:property": "Code" + } + }, + "AmplifyBranchLinkerCustomResourceProviderframeworkonEventServiceRole92A035EB": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ], + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "storelocator" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/AmplifyBranchLinker/CustomResourceProvider/framework-onEvent/ServiceRole/Resource" + } + }, + "AmplifyBranchLinkerCustomResourceProviderframeworkonEventServiceRoleDefaultPolicy38AAE412": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "lambda:InvokeFunction", + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "AmplifyBranchLinkerCustomResourceLambda582AC093", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "AmplifyBranchLinkerCustomResourceLambda582AC093", + "Arn" + ] + }, + ":*" + ] + ] + } + ] + }, + { + "Action": "lambda:GetFunction", + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "AmplifyBranchLinkerCustomResourceLambda582AC093", + "Arn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "AmplifyBranchLinkerCustomResourceProviderframeworkonEventServiceRoleDefaultPolicy38AAE412", + "Roles": [ + { + "Ref": "AmplifyBranchLinkerCustomResourceProviderframeworkonEventServiceRole92A035EB" + } + ] + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/AmplifyBranchLinker/CustomResourceProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource" + } + }, + "AmplifyBranchLinkerCustomResourceProviderframeworkonEvent3B23F900": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "07a90cc3efdfc34da22208dcd9d211f06f5b0e01b21e778edc7c3966b1f61d57.zip" + }, + "Description": "AWS CDK resource provider framework - onEvent (amplify-storelocator-gen2main-branch-62d6167d4c/AmplifyBranchLinker/CustomResourceProvider)", + "Environment": { + "Variables": { + "USER_ON_EVENT_FUNCTION_ARN": { + "Fn::GetAtt": [ + "AmplifyBranchLinkerCustomResourceLambda582AC093", + "Arn" + ] + } + } + }, + "Handler": "framework.onEvent", + "LoggingConfig": { + "ApplicationLogLevel": "FATAL", + "LogFormat": "JSON" + }, + "Role": { + "Fn::GetAtt": [ + "AmplifyBranchLinkerCustomResourceProviderframeworkonEventServiceRole92A035EB", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "storelocator" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ], + "Timeout": 900 + }, + "DependsOn": [ + "AmplifyBranchLinkerCustomResourceProviderframeworkonEventServiceRoleDefaultPolicy38AAE412", + "AmplifyBranchLinkerCustomResourceProviderframeworkonEventServiceRole92A035EB" + ], + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/AmplifyBranchLinker/CustomResourceProvider/framework-onEvent/Resource", + "aws:asset:path": "asset.07a90cc3efdfc34da22208dcd9d211f06f5b0e01b21e778edc7c3966b1f61d57", + "aws:asset:is-bundled": false, + "aws:asset:property": "Code" + } + }, + "AmplifyBranchLinkerCustomResource96E36FC1": { + "Type": "Custom::AmplifyBranchLinkerResource", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "AmplifyBranchLinkerCustomResourceProviderframeworkonEvent3B23F900", + "Arn" + ] + }, + "appId": "storelocator", + "branchName": "gen2-main" + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete", + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/AmplifyBranchLinker/CustomResource/Default" + } + }, + "auth179371D7": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "storelocator" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ], + "TemplateURL": { + "Fn::Join": [ + "", + [ + "https://s3.", + { + "Ref": "AWS::Region" + }, + ".", + { + "Ref": "AWS::URLSuffix" + }, + "/", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "/f156fe04791fb3f78f6b0818c75bef22dc8486f70ba0ee1d8bb703e3740d5052.json" + ] + ] + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete", + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/auth.NestedStack/auth.NestedStackResource", + "aws:asset:path": "amplifystorelocatorgen2mainbranch62d6167d4cauthBE445115.nested.template.json", + "aws:asset:property": "TemplateURL" + } + }, + "geostoreLocatorGeofenceEAAC8D05": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "Parameters": { + "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthstoreLocatorAdminGroupRole237CDBFDRef": { + "Fn::GetAtt": [ + "auth179371D7", + "Outputs.amplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthstoreLocatorAdminGroupRole237CDBFDRef" + ] + } + }, + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "storelocator" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ], + "TemplateURL": { + "Fn::Join": [ + "", + [ + "https://s3.", + { + "Ref": "AWS::Region" + }, + ".", + { + "Ref": "AWS::URLSuffix" + }, + "/", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "/61b8b993a358f371215f7600a3c9ac3262c1ff852a651decd16e924e24648542.json" + ] + ] + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete", + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/geostoreLocatorGeofence.NestedStack/geostoreLocatorGeofence.NestedStackResource", + "aws:asset:path": "amplifystorelocatorgen2mainbranch62d6167d4cgeostoreLocatorGeofenceC4B4AC70.nested.template.json", + "aws:asset:property": "TemplateURL" + } + }, + "geostoreLocatorMap6A22ACC1": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "Parameters": { + "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthauthenticatedUserRoleE47B81E2Ref": { + "Fn::GetAtt": [ + "auth179371D7", + "Outputs.amplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthauthenticatedUserRoleE47B81E2Ref" + ] + }, + "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthunauthenticatedUserRole91ACCEF4Ref": { + "Fn::GetAtt": [ + "auth179371D7", + "Outputs.amplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthunauthenticatedUserRole91ACCEF4Ref" + ] + }, + "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthstoreLocatorAdminGroupRole237CDBFDRef": { + "Fn::GetAtt": [ + "auth179371D7", + "Outputs.amplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthstoreLocatorAdminGroupRole237CDBFDRef" + ] + } + }, + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "storelocator" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ], + "TemplateURL": { + "Fn::Join": [ + "", + [ + "https://s3.", + { + "Ref": "AWS::Region" + }, + ".", + { + "Ref": "AWS::URLSuffix" + }, + "/", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "/c61568e1890b3f3be2d76768068a5d7b209d6090eaae0ead003a6f15762d014e.json" + ] + ] + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete", + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/geostoreLocatorMap.NestedStack/geostoreLocatorMap.NestedStackResource", + "aws:asset:path": "amplifystorelocatorgen2mainbranch62d6167d4cgeostoreLocatorMap6456EB66.nested.template.json", + "aws:asset:property": "TemplateURL" + } + }, + "geostoreLocatorSearch516CF59F": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "Parameters": { + "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthauthenticatedUserRoleE47B81E2Ref": { + "Fn::GetAtt": [ + "auth179371D7", + "Outputs.amplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthauthenticatedUserRoleE47B81E2Ref" + ] + }, + "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthunauthenticatedUserRole91ACCEF4Ref": { + "Fn::GetAtt": [ + "auth179371D7", + "Outputs.amplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthunauthenticatedUserRole91ACCEF4Ref" + ] + }, + "referencetoamplifystorelocatorgen2mainbranch62d6167d4cauthNestedStackauthNestedStackResourceFD19A2FDOutputsamplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthstoreLocatorAdminGroupRole237CDBFDRef": { + "Fn::GetAtt": [ + "auth179371D7", + "Outputs.amplifystorelocatorgen2mainbranch62d6167d4cauthamplifyAuthstoreLocatorAdminGroupRole237CDBFDRef" + ] + } + }, + "Tags": [ + { + "Key": "amplify:app-id", + "Value": "storelocator" + }, + { + "Key": "amplify:branch-name", + "Value": "gen2-main" + }, + { + "Key": "amplify:deployment-type", + "Value": "branch" + }, + { + "Key": "created-by", + "Value": "amplify" + } + ], + "TemplateURL": { + "Fn::Join": [ + "", + [ + "https://s3.", + { + "Ref": "AWS::Region" + }, + ".", + { + "Ref": "AWS::URLSuffix" + }, + "/", + { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "/8e1b00219260034f32364589cca2ec984d63c5300abf158dd9451370a7b43411.json" + ] + ] + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete", + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/geostoreLocatorSearch.NestedStack/geostoreLocatorSearch.NestedStackResource", + "aws:asset:path": "amplifystorelocatorgen2mainbranch62d6167d4cgeostoreLocatorSearchE6091B13.nested.template.json", + "aws:asset:property": "TemplateURL" + } + }, + "CDKMetadata": { + "Type": "AWS::CDK::Metadata", + "Properties": { + "Analytics": "v2:deflate64:H4sIAAAAAAAA/02PzWrDQAyEnyV3WU2dHHJtDD22wXkAo6yVIP/slpU2oRi/e/C6LT19I4YZNCWW+z1uN/TQwrV9McgFp7OR66G6+s9kX8mAHtpMA42XlhofWu4UPzLek3cmwYPQiFMdBl5SmacwiPtezlXNoLuGVNkU3xaA7vCYXM92JGVY63Gqrv6v9VfMM+TI2egm/gYuqYWxiawhRceKpxju0nKEKjv1j5Gf+afzrhmWCdjpy70s8fWA202nIkVM3mRkrFc+AXlCmgwZAQAA" + }, + "Metadata": { + "aws:cdk:path": "amplify-storelocator-gen2main-branch-62d6167d4c/CDKMetadata/Default" + }, + "Condition": "CDKMetadataAvailable" + } + }, + "Conditions": { + "CDKMetadataAvailable": { + "Fn::Or": [ + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "af-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-northeast-3" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-south-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-3" + ] + } + ] + }, + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ap-southeast-4" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ca-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "ca-west-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "cn-north-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "cn-northwest-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-central-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-north-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-south-2" + ] + } + ] + }, + { + "Fn::Or": [ + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "eu-west-3" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "il-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "me-central-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "me-south-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "sa-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-east-1" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-east-2" + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-west-1" + ] + } + ] + }, + { + "Fn::Equals": [ + { + "Ref": "AWS::Region" + }, + "us-west-2" + ] + } + ] + } + }, + "Mappings": { + "MappingCopyRegionMappingc899bf01def5cbc849691ab5f6733a851ecaaf8d34": { + "us-east-1": { + "locationServiceRegion": "us-east-1" + }, + "us-east-2": { + "locationServiceRegion": "us-east-2" + }, + "us-west-2": { + "locationServiceRegion": "us-west-2" + }, + "ap-southeast-1": { + "locationServiceRegion": "ap-southeast-1" + }, + "ap-southeast-2": { + "locationServiceRegion": "ap-southeast-2" + }, + "ap-northeast-1": { + "locationServiceRegion": "ap-northeast-1" + }, + "eu-central-1": { + "locationServiceRegion": "eu-central-1" + }, + "eu-north-1": { + "locationServiceRegion": "eu-north-1" + }, + "eu-west-1": { + "locationServiceRegion": "eu-west-1" + }, + "sa-east-1": { + "locationServiceRegion": "us-east-1" + }, + "ca-central-1": { + "locationServiceRegion": "us-east-1" + }, + "us-west-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-north-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-northwest-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-south-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-3": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-2": { + "locationServiceRegion": "us-west-2" + }, + "eu-west-2": { + "locationServiceRegion": "eu-west-1" + }, + "eu-west-3": { + "locationServiceRegion": "eu-west-1" + }, + "me-south-1": { + "locationServiceRegion": "ap-southeast-1" + } + } + }, + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-AuthTriggerCustomLambdaStack-SCPJHG15CQN7.description.txt b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-AuthTriggerCustomLambdaStack-SCPJHG15CQN7.description.txt new file mode 100644 index 00000000000..667d8b27f42 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-AuthTriggerCustomLambdaStack-SCPJHG15CQN7.description.txt @@ -0,0 +1 @@ +Custom Resource stack for Auth Trigger created using Amplify CLI \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-AuthTriggerCustomLambdaStack-SCPJHG15CQN7.outputs.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-AuthTriggerCustomLambdaStack-SCPJHG15CQN7.outputs.json new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-AuthTriggerCustomLambdaStack-SCPJHG15CQN7.outputs.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-AuthTriggerCustomLambdaStack-SCPJHG15CQN7.parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-AuthTriggerCustomLambdaStack-SCPJHG15CQN7.parameters.json new file mode 100644 index 00000000000..36ae928387f --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-AuthTriggerCustomLambdaStack-SCPJHG15CQN7.parameters.json @@ -0,0 +1,26 @@ +[ + { + "ParameterKey": "userpoolId", + "ParameterValue": "us-east-1_R1pdziFVe" + }, + { + "ParameterKey": "functionstorelocator41a9495f41a9495fPostConfirmationLambdaExecutionRole", + "ParameterValue": "arn:aws:iam::123456789012:role/storelocator41a9495f41a9495fPostConfirmation-main" + }, + { + "ParameterKey": "functionstorelocator41a9495f41a9495fPostConfirmationArn", + "ParameterValue": "arn:aws:lambda:us-east-1:123456789012:function:storelocator41a9495f41a9495fPostConfirmation-main" + }, + { + "ParameterKey": "env", + "ParameterValue": "main" + }, + { + "ParameterKey": "userpoolArn", + "ParameterValue": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_R1pdziFVe" + }, + { + "ParameterKey": "functionstorelocator41a9495f41a9495fPostConfirmationName", + "ParameterValue": "storelocator41a9495f41a9495fPostConfirmation-main" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-AuthTriggerCustomLambdaStack-SCPJHG15CQN7.template.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-AuthTriggerCustomLambdaStack-SCPJHG15CQN7.template.json new file mode 100644 index 00000000000..722ceef6ad7 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-AuthTriggerCustomLambdaStack-SCPJHG15CQN7.template.json @@ -0,0 +1,204 @@ +{ + "Description": "Custom Resource stack for Auth Trigger created using Amplify CLI", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "env": { + "Type": "String" + }, + "userpoolId": { + "Type": "String" + }, + "userpoolArn": { + "Type": "String" + }, + "functionstorelocator41a9495f41a9495fPostConfirmationName": { + "Type": "String" + }, + "functionstorelocator41a9495f41a9495fPostConfirmationArn": { + "Type": "String" + }, + "functionstorelocator41a9495f41a9495fPostConfirmationLambdaExecutionRole": { + "Type": "String" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + }, + "Resources": { + "UserPoolPostConfirmationLambdaInvokePermission": { + "Type": "AWS::Lambda::Permission", + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "functionstorelocator41a9495f41a9495fPostConfirmationName" + }, + "Principal": "cognito-idp.amazonaws.com", + "SourceArn": { + "Ref": "userpoolArn" + } + } + }, + "Amplifyfunctionstorelocator41a9495f41a9495fPostConfirmationNamePostConfirmationAddToGroupCognitoC0815C8F": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "cognito-idp:AdminAddUserToGroup", + "cognito-idp:GetGroup", + "cognito-idp:CreateGroup" + ], + "Effect": "Allow", + "Resource": { + "Ref": "userpoolArn" + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "AddToGroupCognito", + "Roles": [ + { + "Fn::Select": [ + 1, + { + "Fn::Split": [ + "/", + { + "Fn::Select": [ + 5, + { + "Fn::Split": [ + ":", + { + "Ref": "functionstorelocator41a9495f41a9495fPostConfirmationLambdaExecutionRole" + } + ] + } + ] + } + ] + } + ] + } + ] + } + }, + "authTriggerFnServiceRole08093B67": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + } + }, + "authTriggerFnServiceRoleDefaultPolicyEC9285A8": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "cognito-idp:DescribeUserPool", + "cognito-idp:UpdateUserPool" + ], + "Effect": "Allow", + "Resource": { + "Ref": "userpoolArn" + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "authTriggerFnServiceRoleDefaultPolicyEC9285A8", + "Roles": [ + { + "Ref": "authTriggerFnServiceRole08093B67" + } + ] + } + }, + "authTriggerFn7FCFA449": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "const response = require('cfn-response');\nconst {\n CognitoIdentityProviderClient,\n DescribeUserPoolCommand,\n UpdateUserPoolCommand,\n} = require('@aws-sdk/client-cognito-identity-provider');\n\nexports.handler = (event, context) => {\n // Don't return promise, response.send() marks context as done internally\n void tryHandleEvent(event, context);\n};\n\nasync function tryHandleEvent(event, context) {\n const physicalResourceId =\n event.RequestType === 'Update' ? event.PhysicalResourceId : `${event.LogicalResourceId}-${event.ResourceProperties.userpoolId}`;\n try {\n await handleEvent(event);\n response.send(event, context, response.SUCCESS, {}, physicalResourceId);\n } catch (err) {\n console.log(err.stack);\n response.send(event, context, response.FAILED, { err }, physicalResourceId);\n }\n}\n\nasync function handleEvent(event) {\n const userPoolId = event.ResourceProperties.userpoolId;\n const { lambdaConfig } = event.ResourceProperties;\n const config = {};\n const cognitoClient = new CognitoIdentityProviderClient({});\n const userPoolConfig = await cognitoClient.send(new DescribeUserPoolCommand({ UserPoolId: userPoolId }));\n const userPoolParams = userPoolConfig.UserPool;\n // update userPool params\n\n const updateUserPoolConfig = {\n UserPoolId: userPoolParams.Id,\n Policies: userPoolParams.Policies,\n SmsVerificationMessage: userPoolParams.SmsVerificationMessage,\n AccountRecoverySetting: userPoolParams.AccountRecoverySetting,\n AdminCreateUserConfig: userPoolParams.AdminCreateUserConfig,\n AutoVerifiedAttributes: userPoolParams.AutoVerifiedAttributes,\n EmailConfiguration: userPoolParams.EmailConfiguration,\n EmailVerificationMessage: userPoolParams.EmailVerificationMessage,\n EmailVerificationSubject: userPoolParams.EmailVerificationSubject,\n VerificationMessageTemplate: userPoolParams.VerificationMessageTemplate,\n SmsAuthenticationMessage: userPoolParams.SmsAuthenticationMessage,\n MfaConfiguration: userPoolParams.MfaConfiguration,\n DeviceConfiguration: userPoolParams.DeviceConfiguration,\n SmsConfiguration: userPoolParams.SmsConfiguration,\n UserPoolTags: userPoolParams.UserPoolTags,\n UserPoolAddOns: userPoolParams.UserPoolAddOns,\n };\n\n // removing undefined keys\n Object.keys(updateUserPoolConfig).forEach((key) => updateUserPoolConfig[key] === undefined && delete updateUserPoolConfig[key]);\n\n /* removing UnusedAccountValidityDays as deprecated\n InvalidParameterException: Please use TemporaryPasswordValidityDays in PasswordPolicy instead of UnusedAccountValidityDays\n */\n if (updateUserPoolConfig.AdminCreateUserConfig && updateUserPoolConfig.AdminCreateUserConfig.UnusedAccountValidityDays) {\n delete updateUserPoolConfig.AdminCreateUserConfig.UnusedAccountValidityDays;\n }\n lambdaConfig.forEach((lambda) => (config[`${lambda.triggerType}`] = lambda.lambdaFunctionArn));\n if (event.RequestType === 'Delete') {\n updateUserPoolConfig.LambdaConfig = {};\n console.log(`${event.RequestType}:`, JSON.stringify(updateUserPoolConfig));\n const result = await cognitoClient.send(new UpdateUserPoolCommand(updateUserPoolConfig));\n console.log(`delete response data ${JSON.stringify(result)}`);\n } else if (event.RequestType === 'Update' || event.RequestType === 'Create') {\n updateUserPoolConfig.LambdaConfig = config;\n const result = await cognitoClient.send(new UpdateUserPoolCommand(updateUserPoolConfig));\n console.log(`createOrUpdate response data ${JSON.stringify(result)}`);\n }\n}\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "authTriggerFnServiceRole08093B67", + "Arn" + ] + }, + "Runtime": "nodejs22.x" + }, + "DependsOn": [ + "authTriggerFnServiceRoleDefaultPolicyEC9285A8", + "authTriggerFnServiceRole08093B67" + ] + }, + "CustomAuthTriggerResource": { + "Type": "Custom::CustomAuthTriggerResourceOutputs", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "authTriggerFn7FCFA449", + "Arn" + ] + }, + "userpoolId": { + "Ref": "userpoolId" + }, + "lambdaConfig": [ + { + "triggerType": "PostConfirmation", + "lambdaFunctionName": "storelocator41a9495f41a9495fPostConfirmation", + "lambdaFunctionArn": { + "Ref": "functionstorelocator41a9495f41a9495fPostConfirmationArn" + } + } + ], + "nonce": "d121e6b9-f4d9-415d-a210-c1fc421ab66f" + }, + "DependsOn": [ + "authTriggerFn7FCFA449", + "authTriggerFnServiceRoleDefaultPolicyEC9285A8", + "authTriggerFnServiceRole08093B67" + ], + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-authstorelocator41a9495f41a9495f-1LQSABXDYQIJW.description.txt b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-authstorelocator41a9495f41a9495f-1LQSABXDYQIJW.description.txt new file mode 100644 index 00000000000..28ba956271c --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-authstorelocator41a9495f41a9495f-1LQSABXDYQIJW.description.txt @@ -0,0 +1 @@ +{"createdOn":"Mac","createdBy":"Amplify","createdWith":"14.2.5","stackType":"auth-Cognito","metadata":{"whyContinueWithGen1":"Prefer not to answer"}} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-authstorelocator41a9495f41a9495f-1LQSABXDYQIJW.outputs.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-authstorelocator41a9495f41a9495f-1LQSABXDYQIJW.outputs.json new file mode 100644 index 00000000000..d2f187e468e --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-authstorelocator41a9495f41a9495f-1LQSABXDYQIJW.outputs.json @@ -0,0 +1,35 @@ +[ + { + "OutputKey": "UserPoolId", + "OutputValue": "us-east-1_R1pdziFVe", + "Description": "Id for the user pool" + }, + { + "OutputKey": "AppClientIDWeb", + "OutputValue": "6am6ldh23n8ke819nuvk51cddq", + "Description": "The user pool app client id for web" + }, + { + "OutputKey": "AppClientID", + "OutputValue": "5ppvpdo9dmkrj55qi8h865lt34", + "Description": "The user pool app client id" + }, + { + "OutputKey": "IdentityPoolId", + "OutputValue": "us-east-1:4ea514e6-bc16-4990-a5ea-cefe84c3050d", + "Description": "Id for the identity pool" + }, + { + "OutputKey": "UserPoolArn", + "OutputValue": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_R1pdziFVe", + "Description": "Arn for the user pool" + }, + { + "OutputKey": "IdentityPoolName", + "OutputValue": "storelocator41a9495f_identitypool_41a9495f__main" + }, + { + "OutputKey": "UserPoolName", + "OutputValue": "storelocator41a9495f_userpool_41a9495f" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-authstorelocator41a9495f41a9495f-1LQSABXDYQIJW.parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-authstorelocator41a9495f41a9495f-1LQSABXDYQIJW.parameters.json new file mode 100644 index 00000000000..d52f69d2a99 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-authstorelocator41a9495f41a9495f-1LQSABXDYQIJW.parameters.json @@ -0,0 +1,182 @@ +[ + { + "ParameterKey": "usernameAttributes", + "ParameterValue": "email" + }, + { + "ParameterKey": "authRoleArn", + "ParameterValue": "arn:aws:iam::123456789012:role/amplify-storelocator-main-f9ca7-authRole" + }, + { + "ParameterKey": "autoVerifiedAttributes", + "ParameterValue": "email" + }, + { + "ParameterKey": "allowUnauthenticatedIdentities", + "ParameterValue": "true" + }, + { + "ParameterKey": "hostedUI", + "ParameterValue": "false" + }, + { + "ParameterKey": "smsVerificationMessage", + "ParameterValue": "Your verification code is {####}" + }, + { + "ParameterKey": "userpoolClientReadAttributes", + "ParameterValue": "email" + }, + { + "ParameterKey": "breakCircularDependency", + "ParameterValue": "true" + }, + { + "ParameterKey": "mfaTypes", + "ParameterValue": "SMS Text Message" + }, + { + "ParameterKey": "emailVerificationSubject", + "ParameterValue": "Your verification code" + }, + { + "ParameterKey": "sharedId", + "ParameterValue": "41a9495f" + }, + { + "ParameterKey": "useDefault", + "ParameterValue": "manual" + }, + { + "ParameterKey": "userpoolClientGenerateSecret", + "ParameterValue": "false" + }, + { + "ParameterKey": "mfaConfiguration", + "ParameterValue": "OFF" + }, + { + "ParameterKey": "identityPoolName", + "ParameterValue": "storelocator41a9495f_identitypool_41a9495f" + }, + { + "ParameterKey": "thirdPartyAuth", + "ParameterValue": "false" + }, + { + "ParameterKey": "userPoolGroupList", + "ParameterValue": "storeLocatorAdmin" + }, + { + "ParameterKey": "authSelections", + "ParameterValue": "identityPoolAndUserPool" + }, + { + "ParameterKey": "adminQueries", + "ParameterValue": "false" + }, + { + "ParameterKey": "permissions", + "ParameterValue": "{\"policyName\":\"AddToGroupCognito\",\"trigger\":\"PostConfirmation\",\"effect\":\"Allow\",\"actions\":[\"cognito-idp:AdminAddUserToGroup\",\"cognito-idp:GetGroup\",\"cognito-idp:CreateGroup\"],\"resource\":{\"paramType\":\"!GetAtt\",\"keys\":[\"UserPool\",\"Arn\"]}}" + }, + { + "ParameterKey": "resourceNameTruncated", + "ParameterValue": "storel41a9495f" + }, + { + "ParameterKey": "userPoolGroups", + "ParameterValue": "true" + }, + { + "ParameterKey": "smsAuthenticationMessage", + "ParameterValue": "Your authentication code is {####}" + }, + { + "ParameterKey": "functionstorelocator41a9495f41a9495fPostConfirmationArn", + "ParameterValue": "functionstorelocator41a9495f41a9495fPostConfirmationArn" + }, + { + "ParameterKey": "functionstorelocator41a9495f41a9495fPostConfirmationName", + "ParameterValue": "functionstorelocator41a9495f41a9495fPostConfirmationName" + }, + { + "ParameterKey": "passwordPolicyMinLength", + "ParameterValue": "8" + }, + { + "ParameterKey": "userPoolName", + "ParameterValue": "storelocator41a9495f_userpool_41a9495f" + }, + { + "ParameterKey": "userpoolClientWriteAttributes", + "ParameterValue": "email" + }, + { + "ParameterKey": "dependsOn", + "ParameterValue": "[object Object]" + }, + { + "ParameterKey": "useEnabledMfas", + "ParameterValue": "true" + }, + { + "ParameterKey": "usernameCaseSensitive", + "ParameterValue": "false" + }, + { + "ParameterKey": "resourceName", + "ParameterValue": "storelocator41a9495f41a9495f" + }, + { + "ParameterKey": "env", + "ParameterValue": "main" + }, + { + "ParameterKey": "triggers", + "ParameterValue": "{\"PostConfirmation\":[\"add-to-group\"]}" + }, + { + "ParameterKey": "serviceName", + "ParameterValue": "Cognito" + }, + { + "ParameterKey": "emailVerificationMessage", + "ParameterValue": "Your verification code is {####}" + }, + { + "ParameterKey": "userpoolClientRefreshTokenValidity", + "ParameterValue": "100" + }, + { + "ParameterKey": "userpoolClientSetAttributes", + "ParameterValue": "false" + }, + { + "ParameterKey": "unauthRoleArn", + "ParameterValue": "arn:aws:iam::123456789012:role/amplify-storelocator-main-f9ca7-unauthRole" + }, + { + "ParameterKey": "requiredAttributes", + "ParameterValue": "email" + }, + { + "ParameterKey": "passwordPolicyCharacters", + "ParameterValue": "" + }, + { + "ParameterKey": "authTriggerConnections", + "ParameterValue": "{\"triggerType\":\"PostConfirmation\",\"lambdaFunctionName\":\"storelocator41a9495f41a9495fPostConfirmation\"}" + }, + { + "ParameterKey": "aliasAttributes", + "ParameterValue": "" + }, + { + "ParameterKey": "userpoolClientLambdaRole", + "ParameterValue": "storel41a9495f_userpoolclient_lambda_role" + }, + { + "ParameterKey": "defaultPasswordPolicy", + "ParameterValue": "false" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-authstorelocator41a9495f41a9495f-1LQSABXDYQIJW.template.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-authstorelocator41a9495f41a9495f-1LQSABXDYQIJW.template.json new file mode 100644 index 00000000000..32f0ad747e9 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-authstorelocator41a9495f41a9495f-1LQSABXDYQIJW.template.json @@ -0,0 +1,486 @@ +{ + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"auth-Cognito\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "env": { + "Type": "String" + }, + "functionstorelocator41a9495f41a9495fPostConfirmationArn": { + "Type": "String", + "Default": "functionstorelocator41a9495f41a9495fPostConfirmationArn" + }, + "functionstorelocator41a9495f41a9495fPostConfirmationName": { + "Type": "String", + "Default": "functionstorelocator41a9495f41a9495fPostConfirmationName" + }, + "identityPoolName": { + "Type": "String" + }, + "allowUnauthenticatedIdentities": { + "Type": "String" + }, + "resourceNameTruncated": { + "Type": "String" + }, + "userPoolName": { + "Type": "String" + }, + "autoVerifiedAttributes": { + "Type": "CommaDelimitedList" + }, + "mfaConfiguration": { + "Type": "String" + }, + "mfaTypes": { + "Type": "CommaDelimitedList" + }, + "smsAuthenticationMessage": { + "Type": "String" + }, + "smsVerificationMessage": { + "Type": "String" + }, + "emailVerificationSubject": { + "Type": "String" + }, + "emailVerificationMessage": { + "Type": "String" + }, + "defaultPasswordPolicy": { + "Type": "String" + }, + "passwordPolicyMinLength": { + "Type": "String" + }, + "passwordPolicyCharacters": { + "Type": "CommaDelimitedList" + }, + "requiredAttributes": { + "Type": "CommaDelimitedList" + }, + "aliasAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientGenerateSecret": { + "Type": "String" + }, + "userpoolClientRefreshTokenValidity": { + "Type": "String" + }, + "userpoolClientWriteAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientReadAttributes": { + "Type": "CommaDelimitedList" + }, + "userpoolClientLambdaRole": { + "Type": "String" + }, + "userpoolClientSetAttributes": { + "Type": "String" + }, + "sharedId": { + "Type": "String" + }, + "resourceName": { + "Type": "String" + }, + "authSelections": { + "Type": "String" + }, + "useDefault": { + "Type": "String" + }, + "thirdPartyAuth": { + "Type": "String" + }, + "usernameAttributes": { + "Type": "CommaDelimitedList" + }, + "userPoolGroups": { + "Type": "String" + }, + "adminQueries": { + "Type": "String" + }, + "triggers": { + "Type": "String" + }, + "hostedUI": { + "Type": "String" + }, + "userPoolGroupList": { + "Type": "CommaDelimitedList" + }, + "serviceName": { + "Type": "String" + }, + "usernameCaseSensitive": { + "Type": "String" + }, + "useEnabledMfas": { + "Type": "String" + }, + "authRoleArn": { + "Type": "String" + }, + "unauthRoleArn": { + "Type": "String" + }, + "breakCircularDependency": { + "Type": "String" + }, + "dependsOn": { + "Type": "CommaDelimitedList" + }, + "permissions": { + "Type": "CommaDelimitedList" + }, + "authTriggerConnections": { + "Type": "CommaDelimitedList" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + }, + "Resources": { + "UserPool": { + "Type": "AWS::Cognito::UserPool", + "Properties": { + "AutoVerifiedAttributes": [ + "email" + ], + "EmailVerificationMessage": { + "Ref": "emailVerificationMessage" + }, + "EmailVerificationSubject": { + "Ref": "emailVerificationSubject" + }, + "MfaConfiguration": { + "Ref": "mfaConfiguration" + }, + "Policies": { + "PasswordPolicy": { + "MinimumLength": { + "Ref": "passwordPolicyMinLength" + }, + "RequireLowercase": false, + "RequireNumbers": false, + "RequireSymbols": false, + "RequireUppercase": false + } + }, + "Schema": [ + { + "Mutable": true, + "Name": "email", + "Required": true + } + ], + "UserAttributeUpdateSettings": { + "AttributesRequireVerificationBeforeUpdate": [ + "email" + ] + }, + "UserPoolName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + { + "Ref": "userPoolName" + }, + { + "Fn::Join": [ + "", + [ + { + "Ref": "userPoolName" + }, + "-", + { + "Ref": "env" + } + ] + ] + } + ] + }, + "UsernameAttributes": { + "Ref": "usernameAttributes" + }, + "UsernameConfiguration": { + "CaseSensitive": false + } + } + }, + "UserPoolClientWeb": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "ClientName": "storel41a9495f_app_clientWeb", + "RefreshTokenValidity": { + "Ref": "userpoolClientRefreshTokenValidity" + }, + "TokenValidityUnits": { + "RefreshToken": "days" + }, + "UserPoolId": { + "Ref": "UserPool" + } + }, + "DependsOn": [ + "UserPool" + ] + }, + "UserPoolClient": { + "Type": "AWS::Cognito::UserPoolClient", + "Properties": { + "ClientName": "storel41a9495f_app_client", + "GenerateSecret": { + "Ref": "userpoolClientGenerateSecret" + }, + "RefreshTokenValidity": { + "Ref": "userpoolClientRefreshTokenValidity" + }, + "TokenValidityUnits": { + "RefreshToken": "days" + }, + "UserPoolId": { + "Ref": "UserPool" + } + }, + "DependsOn": [ + "UserPool" + ] + }, + "UserPoolClientRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + }, + "Action": "sts:AssumeRole" + } + ] + }, + "RoleName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + { + "Ref": "userpoolClientLambdaRole" + }, + { + "Fn::Join": [ + "", + [ + "upClientLambdaRole41a9495f", + { + "Fn::Select": [ + 3, + { + "Fn::Split": [ + "-", + { + "Ref": "AWS::StackName" + } + ] + } + ] + }, + "-", + { + "Ref": "env" + } + ] + ] + } + ] + } + } + }, + "IdentityPool": { + "Type": "AWS::Cognito::IdentityPool", + "Properties": { + "AllowUnauthenticatedIdentities": { + "Ref": "allowUnauthenticatedIdentities" + }, + "CognitoIdentityProviders": [ + { + "ClientId": { + "Ref": "UserPoolClient" + }, + "ProviderName": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "client": { + "Ref": "UserPool" + } + } + ] + } + }, + { + "ClientId": { + "Ref": "UserPoolClientWeb" + }, + "ProviderName": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "client": { + "Ref": "UserPool" + } + } + ] + } + } + ], + "IdentityPoolName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "storelocator41a9495f_identitypool_41a9495f", + { + "Fn::Join": [ + "", + [ + "storelocator41a9495f_identitypool_41a9495f__", + { + "Ref": "env" + } + ] + ] + } + ] + } + } + }, + "IdentityPoolRoleMap": { + "Type": "AWS::Cognito::IdentityPoolRoleAttachment", + "Properties": { + "IdentityPoolId": { + "Ref": "IdentityPool" + }, + "RoleMappings": { + "UserPoolClientRoleMapping": { + "AmbiguousRoleResolution": "AuthenticatedRole", + "IdentityProvider": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${userPool}:${client}", + { + "region": { + "Ref": "AWS::Region" + }, + "userPool": { + "Ref": "UserPool" + }, + "client": { + "Ref": "UserPoolClient" + } + } + ] + }, + "Type": "Token" + }, + "UserPoolWebClientRoleMapping": { + "AmbiguousRoleResolution": "AuthenticatedRole", + "IdentityProvider": { + "Fn::Sub": [ + "cognito-idp.${region}.amazonaws.com/${userPool}:${webClient}", + { + "region": { + "Ref": "AWS::Region" + }, + "userPool": { + "Ref": "UserPool" + }, + "webClient": { + "Ref": "UserPoolClientWeb" + } + } + ] + }, + "Type": "Token" + } + }, + "Roles": { + "unauthenticated": { + "Ref": "unauthRoleArn" + }, + "authenticated": { + "Ref": "authRoleArn" + } + } + }, + "DependsOn": [ + "IdentityPool", + "UserPoolClient", + "UserPoolClientWeb" + ] + } + }, + "Outputs": { + "IdentityPoolId": { + "Description": "Id for the identity pool", + "Value": { + "Ref": "IdentityPool" + } + }, + "IdentityPoolName": { + "Value": { + "Fn::GetAtt": [ + "IdentityPool", + "Name" + ] + } + }, + "UserPoolId": { + "Description": "Id for the user pool", + "Value": { + "Ref": "UserPool" + } + }, + "UserPoolArn": { + "Description": "Arn for the user pool", + "Value": { + "Fn::GetAtt": [ + "UserPool", + "Arn" + ] + } + }, + "UserPoolName": { + "Value": { + "Ref": "userPoolName" + } + }, + "AppClientIDWeb": { + "Description": "The user pool app client id for web", + "Value": { + "Ref": "UserPoolClientWeb" + } + }, + "AppClientID": { + "Description": "The user pool app client id", + "Value": { + "Ref": "UserPoolClient" + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-authuserPoolGroups-1G3B0P2B6Q0ZH.description.txt b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-authuserPoolGroups-1G3B0P2B6Q0ZH.description.txt new file mode 100644 index 00000000000..aa91c019d71 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-authuserPoolGroups-1G3B0P2B6Q0ZH.description.txt @@ -0,0 +1 @@ +{"createdOn":"Mac","createdBy":"Amplify","createdWith":"14.2.5","stackType":"auth-Cognito-UserPool-Groups","metadata":{"whyContinueWithGen1":"Prefer not to answer"}} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-authuserPoolGroups-1G3B0P2B6Q0ZH.outputs.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-authuserPoolGroups-1G3B0P2B6Q0ZH.outputs.json new file mode 100644 index 00000000000..434cc24ea19 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-authuserPoolGroups-1G3B0P2B6Q0ZH.outputs.json @@ -0,0 +1,6 @@ +[ + { + "OutputKey": "storeLocatorAdminGroupRole", + "OutputValue": "arn:aws:iam::123456789012:role/us-east-1_R1pdziFVe-storeLocatorAdminGroupRole" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-authuserPoolGroups-1G3B0P2B6Q0ZH.parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-authuserPoolGroups-1G3B0P2B6Q0ZH.parameters.json new file mode 100644 index 00000000000..2e7645b29bc --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-authuserPoolGroups-1G3B0P2B6Q0ZH.parameters.json @@ -0,0 +1,30 @@ +[ + { + "ParameterKey": "UnauthRoleArn", + "ParameterValue": "arn:aws:iam::123456789012:role/amplify-storelocator-main-f9ca7-unauthRole" + }, + { + "ParameterKey": "authstorelocator41a9495f41a9495fAppClientID", + "ParameterValue": "5ppvpdo9dmkrj55qi8h865lt34" + }, + { + "ParameterKey": "authstorelocator41a9495f41a9495fIdentityPoolId", + "ParameterValue": "us-east-1:4ea514e6-bc16-4990-a5ea-cefe84c3050d" + }, + { + "ParameterKey": "AuthRoleArn", + "ParameterValue": "arn:aws:iam::123456789012:role/amplify-storelocator-main-f9ca7-authRole" + }, + { + "ParameterKey": "env", + "ParameterValue": "main" + }, + { + "ParameterKey": "authstorelocator41a9495f41a9495fAppClientIDWeb", + "ParameterValue": "6am6ldh23n8ke819nuvk51cddq" + }, + { + "ParameterKey": "authstorelocator41a9495f41a9495fUserPoolId", + "ParameterValue": "us-east-1_R1pdziFVe" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-authuserPoolGroups-1G3B0P2B6Q0ZH.template.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-authuserPoolGroups-1G3B0P2B6Q0ZH.template.json new file mode 100644 index 00000000000..5edc3def07d --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-authuserPoolGroups-1G3B0P2B6Q0ZH.template.json @@ -0,0 +1,109 @@ +{ + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"auth-Cognito-UserPool-Groups\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "env": { + "Type": "String" + }, + "AuthRoleArn": { + "Type": "String" + }, + "UnauthRoleArn": { + "Type": "String" + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Type": "String", + "Default": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "authstorelocator41a9495f41a9495fIdentityPoolId": { + "Type": "String", + "Default": "authstorelocator41a9495f41a9495fIdentityPoolId" + }, + "authstorelocator41a9495f41a9495fAppClientID": { + "Type": "String", + "Default": "authstorelocator41a9495f41a9495fAppClientID" + }, + "authstorelocator41a9495f41a9495fAppClientIDWeb": { + "Type": "String", + "Default": "authstorelocator41a9495f41a9495fAppClientIDWeb" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + }, + "Resources": { + "storeLocatorAdminGroup": { + "Type": "AWS::Cognito::UserPoolGroup", + "Properties": { + "Description": "override success", + "GroupName": "storeLocatorAdmin", + "Precedence": 1, + "RoleArn": { + "Fn::GetAtt": [ + "storeLocatorAdminGroupRole", + "Arn" + ] + }, + "UserPoolId": { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + } + } + }, + "storeLocatorAdminGroupRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Allow", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + }, + "Action": "sts:AssumeRoleWithWebIdentity", + "Condition": { + "StringEquals": { + "cognito-identity.amazonaws.com:aud": { + "Ref": "authstorelocator41a9495f41a9495fIdentityPoolId" + } + }, + "ForAnyValue:StringLike": { + "cognito-identity.amazonaws.com:amr": "authenticated" + } + } + } + ] + }, + "RoleName": { + "Fn::Join": [ + "", + [ + { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "-storeLocatorAdminGroupRole" + ] + ] + } + } + } + }, + "Outputs": { + "storeLocatorAdminGroupRole": { + "Value": { + "Fn::GetAtt": [ + "storeLocatorAdminGroupRole", + "Arn" + ] + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-functionstorelocator41a9495f41a9495fPostConfirmation-1VPC441AZ14I6.description.txt b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-functionstorelocator41a9495f41a9495fPostConfirmation-1VPC441AZ14I6.description.txt new file mode 100644 index 00000000000..445081e4df1 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-functionstorelocator41a9495f41a9495fPostConfirmation-1VPC441AZ14I6.description.txt @@ -0,0 +1 @@ +{"createdOn":"Mac","createdBy":"Amplify","createdWith":"14.2.5","stackType":"function-Lambda","metadata":{"whyContinueWithGen1":"Prefer not to answer"}} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-functionstorelocator41a9495f41a9495fPostConfirmation-1VPC441AZ14I6.outputs.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-functionstorelocator41a9495f41a9495fPostConfirmation-1VPC441AZ14I6.outputs.json new file mode 100644 index 00000000000..e6872c85811 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-functionstorelocator41a9495f41a9495fPostConfirmation-1VPC441AZ14I6.outputs.json @@ -0,0 +1,22 @@ +[ + { + "OutputKey": "LambdaExecutionRoleArn", + "OutputValue": "arn:aws:iam::123456789012:role/storelocator41a9495f41a9495fPostConfirmation-main" + }, + { + "OutputKey": "Region", + "OutputValue": "us-east-1" + }, + { + "OutputKey": "Arn", + "OutputValue": "arn:aws:lambda:us-east-1:123456789012:function:storelocator41a9495f41a9495fPostConfirmation-main" + }, + { + "OutputKey": "Name", + "OutputValue": "storelocator41a9495f41a9495fPostConfirmation-main" + }, + { + "OutputKey": "LambdaExecutionRole", + "OutputValue": "storelocator41a9495f41a9495fPostConfirmation-main" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-functionstorelocator41a9495f41a9495fPostConfirmation-1VPC441AZ14I6.parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-functionstorelocator41a9495f41a9495fPostConfirmation-1VPC441AZ14I6.parameters.json new file mode 100644 index 00000000000..6f043e3804d --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-functionstorelocator41a9495f41a9495fPostConfirmation-1VPC441AZ14I6.parameters.json @@ -0,0 +1,46 @@ +[ + { + "ParameterKey": "GROUP", + "ParameterValue": "storeLocatorAdmin" + }, + { + "ParameterKey": "parentResource", + "ParameterValue": "" + }, + { + "ParameterKey": "s3Key", + "ParameterValue": "amplify-builds/storelocator41a9495f41a9495fPostConfirmation-6a6c746d4739755a384a-build.zip" + }, + { + "ParameterKey": "functionName", + "ParameterValue": "" + }, + { + "ParameterKey": "parentStack", + "ParameterValue": "" + }, + { + "ParameterKey": "deploymentBucketName", + "ParameterValue": "amplify-storelocator-main-f9ca7-deployment" + }, + { + "ParameterKey": "roleName", + "ParameterValue": "" + }, + { + "ParameterKey": "resourceName", + "ParameterValue": "storelocator41a9495f41a9495fPostConfirmation" + }, + { + "ParameterKey": "trigger", + "ParameterValue": "true" + }, + { + "ParameterKey": "env", + "ParameterValue": "main" + }, + { + "ParameterKey": "modules", + "ParameterValue": "add-to-group" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-functionstorelocator41a9495f41a9495fPostConfirmation-1VPC441AZ14I6.template.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-functionstorelocator41a9495f41a9495fPostConfirmation-1VPC441AZ14I6.template.json new file mode 100644 index 00000000000..192bbea9292 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-functionstorelocator41a9495f41a9495fPostConfirmation-1VPC441AZ14I6.template.json @@ -0,0 +1,235 @@ +{ + "AWSTemplateFormatVersion": "2010-09-09", + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"function-Lambda\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}", + "Parameters": { + "GROUP": { + "Type": "String", + "Default": "" + }, + "modules": { + "Type": "String", + "Default": "", + "Description": "Comma-delimited list of modules to be executed by a lambda trigger. Sent to resource as an env variable." + }, + "resourceName": { + "Type": "String", + "Default": "" + }, + "trigger": { + "Type": "String", + "Default": "true" + }, + "functionName": { + "Type": "String", + "Default": "" + }, + "roleName": { + "Type": "String", + "Default": "" + }, + "parentResource": { + "Type": "String", + "Default": "" + }, + "parentStack": { + "Type": "String", + "Default": "" + }, + "env": { + "Type": "String" + }, + "deploymentBucketName": { + "Type": "String" + }, + "s3Key": { + "Type": "String" + } + }, + "Conditions": { + "ShouldNotCreateEnvResources": { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + }, + "Resources": { + "LambdaFunction": { + "Type": "AWS::Lambda::Function", + "Metadata": { + "aws:asset:path": "./src", + "aws:asset:property": "Code" + }, + "Properties": { + "Handler": "index.handler", + "FunctionName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "storelocator41a9495f41a9495fPostConfirmation", + { + "Fn::Join": [ + "", + [ + "storelocator41a9495f41a9495fPostConfirmation", + "-", + { + "Ref": "env" + } + ] + ] + } + ] + }, + "Environment": { + "Variables": { + "ENV": { + "Ref": "env" + }, + "MODULES": { + "Ref": "modules" + }, + "REGION": { + "Ref": "AWS::Region" + }, + "GROUP": { + "Ref": "GROUP" + } + } + }, + "Role": { + "Fn::GetAtt": [ + "LambdaExecutionRole", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Timeout": 25, + "Code": { + "S3Bucket": { + "Ref": "deploymentBucketName" + }, + "S3Key": { + "Ref": "s3Key" + } + } + } + }, + "LambdaExecutionRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "RoleName": { + "Fn::If": [ + "ShouldNotCreateEnvResources", + "storelocator41a9495f41a9495fPostConfirmation", + { + "Fn::Join": [ + "", + [ + "storelocator41a9495f41a9495fPostConfirmation", + "-", + { + "Ref": "env" + } + ] + ] + } + ] + }, + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + }, + "Action": [ + "sts:AssumeRole" + ] + } + ] + } + } + }, + "lambdaexecutionpolicy": { + "DependsOn": [ + "LambdaExecutionRole" + ], + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyName": "lambda-execution-policy", + "Roles": [ + { + "Ref": "LambdaExecutionRole" + } + ], + "PolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Resource": { + "Fn::Sub": [ + "arn:aws:logs:${region}:${account}:log-group:/aws/lambda/${lambda}:log-stream:*", + { + "region": { + "Ref": "AWS::Region" + }, + "account": { + "Ref": "AWS::AccountId" + }, + "lambda": { + "Ref": "LambdaFunction" + } + } + ] + } + } + ] + } + } + } + }, + "Outputs": { + "Name": { + "Value": { + "Ref": "LambdaFunction" + } + }, + "Arn": { + "Value": { + "Fn::GetAtt": [ + "LambdaFunction", + "Arn" + ] + } + }, + "LambdaExecutionRole": { + "Value": { + "Ref": "LambdaExecutionRole" + } + }, + "LambdaExecutionRoleArn": { + "Value": { + "Fn::GetAtt": [ + "LambdaExecutionRole", + "Arn" + ] + } + }, + "Region": { + "Value": { + "Ref": "AWS::Region" + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorGeofence-1L1TL0PS3DT8L.description.txt b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorGeofence-1L1TL0PS3DT8L.description.txt new file mode 100644 index 00000000000..49cef6381f7 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorGeofence-1L1TL0PS3DT8L.description.txt @@ -0,0 +1 @@ +{"createdOn":"Mac","createdBy":"Amplify","createdWith":"14.2.5","stackType":"geo-GeofenceCollection","metadata":{"whyContinueWithGen1":"Prefer not to answer"}} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorGeofence-1L1TL0PS3DT8L.outputs.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorGeofence-1L1TL0PS3DT8L.outputs.json new file mode 100644 index 00000000000..58f0ddedbcf --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorGeofence-1L1TL0PS3DT8L.outputs.json @@ -0,0 +1,14 @@ +[ + { + "OutputKey": "Region", + "OutputValue": "us-east-1" + }, + { + "OutputKey": "Arn", + "OutputValue": "arn:aws:geo:us-east-1:123456789012:geofence-collection/storeLocatorGeofence-main" + }, + { + "OutputKey": "Name", + "OutputValue": "storeLocatorGeofence-main" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorGeofence-1L1TL0PS3DT8L.parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorGeofence-1L1TL0PS3DT8L.parameters.json new file mode 100644 index 00000000000..b28f809dfe9 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorGeofence-1L1TL0PS3DT8L.parameters.json @@ -0,0 +1,22 @@ +[ + { + "ParameterKey": "authuserPoolGroupsstoreLocatorAdminGroupRole", + "ParameterValue": "arn:aws:iam::123456789012:role/us-east-1_R1pdziFVe-storeLocatorAdminGroupRole" + }, + { + "ParameterKey": "isDefault", + "ParameterValue": "true" + }, + { + "ParameterKey": "env", + "ParameterValue": "main" + }, + { + "ParameterKey": "authstorelocator41a9495f41a9495fUserPoolId", + "ParameterValue": "us-east-1_R1pdziFVe" + }, + { + "ParameterKey": "collectionName", + "ParameterValue": "storeLocatorGeofence" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorGeofence-1L1TL0PS3DT8L.template.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorGeofence-1L1TL0PS3DT8L.template.json new file mode 100644 index 00000000000..17020d54719 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorGeofence-1L1TL0PS3DT8L.template.json @@ -0,0 +1,364 @@ +{ + "Mappings": { + "RegionMapping": { + "us-east-1": { + "locationServiceRegion": "us-east-1" + }, + "us-east-2": { + "locationServiceRegion": "us-east-2" + }, + "us-west-2": { + "locationServiceRegion": "us-west-2" + }, + "ap-southeast-1": { + "locationServiceRegion": "ap-southeast-1" + }, + "ap-southeast-2": { + "locationServiceRegion": "ap-southeast-2" + }, + "ap-northeast-1": { + "locationServiceRegion": "ap-northeast-1" + }, + "eu-central-1": { + "locationServiceRegion": "eu-central-1" + }, + "eu-north-1": { + "locationServiceRegion": "eu-north-1" + }, + "eu-west-1": { + "locationServiceRegion": "eu-west-1" + }, + "sa-east-1": { + "locationServiceRegion": "us-east-1" + }, + "ca-central-1": { + "locationServiceRegion": "us-east-1" + }, + "us-west-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-north-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-northwest-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-south-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-3": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-2": { + "locationServiceRegion": "us-west-2" + }, + "eu-west-2": { + "locationServiceRegion": "eu-west-1" + }, + "eu-west-3": { + "locationServiceRegion": "eu-west-1" + }, + "me-south-1": { + "locationServiceRegion": "ap-southeast-1" + } + } + }, + "Parameters": { + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Type": "String" + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Type": "String" + }, + "collectionName": { + "Type": "String" + }, + "env": { + "Type": "String" + }, + "isDefault": { + "Type": "String" + } + }, + "Resources": { + "CustomGeofenceCollectionLambdaServiceRole9040D551": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + } + }, + "CustomGeofenceCollectionLambdaServiceRoleDefaultPolicy0A18B369": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "geo:CreateGeofenceCollection", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "geo:UpdateGeofenceCollection", + "geo:DeleteGeofenceCollection" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:geofence-collection/${collectionName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "collectionName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "collectionName" + }, + { + "Ref": "env" + } + ] + ] + } + } + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "CustomGeofenceCollectionLambdaServiceRoleDefaultPolicy0A18B369", + "Roles": [ + { + "Ref": "CustomGeofenceCollectionLambdaServiceRole9040D551" + } + ] + } + }, + "CustomGeofenceCollectionLambdaCA3D002B": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "const response = require('cfn-response');\nconst {\n LocationClient,\n CreateGeofenceCollectionCommand,\n DeleteGeofenceCollectionCommand,\n UpdateGeofenceCollectionCommand,\n} = require('@aws-sdk/client-location');\nexports.handler = async function (event, context) {\n try {\n console.log('REQUEST RECEIVED:' + JSON.stringify(event));\n const pricingPlan = 'RequestBasedUsage';\n if (event.RequestType === 'Create') {\n const params = {\n CollectionName: event.ResourceProperties.collectionName,\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new CreateGeofenceCollectionCommand(params));\n console.log('create resource response data' + JSON.stringify(res));\n if (res.CollectionName && res.CollectionArn) {\n await response.send(event, context, response.SUCCESS, res, params.CollectionName);\n } else {\n await response.send(event, context, response.FAILED, res, params.CollectionName);\n }\n }\n if (event.RequestType === 'Update') {\n const params = {\n CollectionName: event.ResourceProperties.collectionName,\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new UpdateGeofenceCollectionCommand(params));\n console.log('update resource response data' + JSON.stringify(res));\n if (res.CollectionName) {\n await response.send(event, context, response.SUCCESS, res, params.CollectionName);\n } else {\n await response.send(event, context, response.FAILED, res, params.CollectionName);\n }\n }\n if (event.RequestType === 'Delete') {\n const params = {\n CollectionName: event.ResourceProperties.collectionName,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new DeleteGeofenceCollectionCommand(params));\n console.log('delete resource response data' + JSON.stringify(res));\n await response.send(event, context, response.SUCCESS, res, params.CollectionName);\n }\n } catch (err) {\n console.log(err.stack);\n const res = { Error: err };\n await response.send(event, context, response.FAILED, res, event.ResourceProperties.collectionName);\n throw err;\n }\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "CustomGeofenceCollectionLambdaServiceRole9040D551", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Timeout": 300 + }, + "DependsOn": [ + "CustomGeofenceCollectionLambdaServiceRoleDefaultPolicy0A18B369", + "CustomGeofenceCollectionLambdaServiceRole9040D551" + ] + }, + "CustomGeofenceCollection": { + "Type": "Custom::LambdaCallout", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "CustomGeofenceCollectionLambdaCA3D002B", + "Arn" + ] + }, + "collectionName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "collectionName" + }, + { + "Ref": "env" + } + ] + ] + }, + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "env": { + "Ref": "env" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "storeLocatorAdminGeofenceCollectionPolicy": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "geo:GetGeofence", + "geo:PutGeofence", + "geo:BatchPutGeofence", + "geo:BatchDeleteGeofence", + "geo:ListGeofences" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:geofence-collection/${collectionName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "collectionName": { + "Fn::GetAtt": [ + "CustomGeofenceCollection", + "CollectionName" + ] + } + } + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": { + "Fn::Join": [ + "", + [ + "storeLocatorAdmin", + { + "Fn::Join": [ + "-", + [ + { + "Ref": "collectionName" + }, + { + "Ref": "env" + } + ] + ] + }, + "Policy" + ] + ] + }, + "Roles": [ + { + "Fn::Join": [ + "-", + [ + { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "storeLocatorAdminGroupRole" + ] + ] + } + ] + } + } + }, + "Outputs": { + "Name": { + "Value": { + "Fn::GetAtt": [ + "CustomGeofenceCollection", + "CollectionName" + ] + } + }, + "Region": { + "Value": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + } + }, + "Arn": { + "Value": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:geofence-collection/${collectionName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "collectionName": { + "Fn::GetAtt": [ + "CustomGeofenceCollection", + "CollectionName" + ] + } + } + ] + } + } + }, + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"geo-GeofenceCollection\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}" +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorMap-1CK1VG37JGFHH.description.txt b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorMap-1CK1VG37JGFHH.description.txt new file mode 100644 index 00000000000..f8224820c34 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorMap-1CK1VG37JGFHH.description.txt @@ -0,0 +1 @@ +{"createdOn":"Mac","createdBy":"Amplify","createdWith":"14.2.5","stackType":"geo-Map","metadata":{"whyContinueWithGen1":"Prefer not to answer"}} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorMap-1CK1VG37JGFHH.outputs.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorMap-1CK1VG37JGFHH.outputs.json new file mode 100644 index 00000000000..20df3948c53 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorMap-1CK1VG37JGFHH.outputs.json @@ -0,0 +1,18 @@ +[ + { + "OutputKey": "Style", + "OutputValue": "VectorEsriStreets" + }, + { + "OutputKey": "Region", + "OutputValue": "us-east-1" + }, + { + "OutputKey": "Arn", + "OutputValue": "arn:aws:geo:us-east-1:123456789012:map/storeLocatorMap-main" + }, + { + "OutputKey": "Name", + "OutputValue": "storeLocatorMap-main" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorMap-1CK1VG37JGFHH.parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorMap-1CK1VG37JGFHH.parameters.json new file mode 100644 index 00000000000..037f17b4597 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorMap-1CK1VG37JGFHH.parameters.json @@ -0,0 +1,34 @@ +[ + { + "ParameterKey": "authuserPoolGroupsstoreLocatorAdminGroupRole", + "ParameterValue": "arn:aws:iam::123456789012:role/us-east-1_R1pdziFVe-storeLocatorAdminGroupRole" + }, + { + "ParameterKey": "isDefault", + "ParameterValue": "true" + }, + { + "ParameterKey": "authRoleName", + "ParameterValue": "amplify-storelocator-main-f9ca7-authRole" + }, + { + "ParameterKey": "unauthRoleName", + "ParameterValue": "amplify-storelocator-main-f9ca7-unauthRole" + }, + { + "ParameterKey": "mapStyle", + "ParameterValue": "VectorEsriStreets" + }, + { + "ParameterKey": "mapName", + "ParameterValue": "storeLocatorMap" + }, + { + "ParameterKey": "env", + "ParameterValue": "main" + }, + { + "ParameterKey": "authstorelocator41a9495f41a9495fUserPoolId", + "ParameterValue": "us-east-1_R1pdziFVe" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorMap-1CK1VG37JGFHH.template.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorMap-1CK1VG37JGFHH.template.json new file mode 100644 index 00000000000..bf53b69ff23 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorMap-1CK1VG37JGFHH.template.json @@ -0,0 +1,347 @@ +{ + "Mappings": { + "RegionMapping": { + "us-east-1": { + "locationServiceRegion": "us-east-1" + }, + "us-east-2": { + "locationServiceRegion": "us-east-2" + }, + "us-west-2": { + "locationServiceRegion": "us-west-2" + }, + "ap-southeast-1": { + "locationServiceRegion": "ap-southeast-1" + }, + "ap-southeast-2": { + "locationServiceRegion": "ap-southeast-2" + }, + "ap-northeast-1": { + "locationServiceRegion": "ap-northeast-1" + }, + "eu-central-1": { + "locationServiceRegion": "eu-central-1" + }, + "eu-north-1": { + "locationServiceRegion": "eu-north-1" + }, + "eu-west-1": { + "locationServiceRegion": "eu-west-1" + }, + "sa-east-1": { + "locationServiceRegion": "us-east-1" + }, + "ca-central-1": { + "locationServiceRegion": "us-east-1" + }, + "us-west-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-north-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-northwest-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-south-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-3": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-2": { + "locationServiceRegion": "us-west-2" + }, + "eu-west-2": { + "locationServiceRegion": "eu-west-1" + }, + "eu-west-3": { + "locationServiceRegion": "eu-west-1" + }, + "me-south-1": { + "locationServiceRegion": "ap-southeast-1" + } + } + }, + "Parameters": { + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Type": "String" + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Type": "String" + }, + "authRoleName": { + "Type": "String" + }, + "unauthRoleName": { + "Type": "String" + }, + "mapName": { + "Type": "String" + }, + "mapStyle": { + "Type": "String" + }, + "env": { + "Type": "String" + }, + "isDefault": { + "Type": "String" + } + }, + "Resources": { + "CustomMapLambdaServiceRole4EE7732C": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + } + }, + "CustomMapLambdaServiceRoleDefaultPolicy983FDD4E": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "geo:CreateMap", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "geo:UpdateMap", + "geo:DeleteMap" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:map/${mapName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "mapName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "mapName" + }, + { + "Ref": "env" + } + ] + ] + } + } + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "CustomMapLambdaServiceRoleDefaultPolicy983FDD4E", + "Roles": [ + { + "Ref": "CustomMapLambdaServiceRole4EE7732C" + } + ] + } + }, + "CustomMapLambda51D5D430": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "const response = require('cfn-response');\nconst { LocationClient, CreateMapCommand, DeleteMapCommand, UpdateMapCommand } = require('@aws-sdk/client-location');\nexports.handler = async function (event, context) {\n try {\n console.log('REQUEST RECEIVED:' + JSON.stringify(event));\n const pricingPlan = 'RequestBasedUsage';\n if (event.RequestType === 'Create') {\n let params = {\n MapName: event.ResourceProperties.mapName,\n Configuration: {\n Style: event.ResourceProperties.mapStyle,\n },\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new CreateMapCommand(params));\n console.log('create resource response data' + JSON.stringify(res));\n if (res.MapName && res.MapArn) {\n await response.send(event, context, response.SUCCESS, res, params.MapName);\n } else {\n await response.send(event, context, response.FAILED, res, params.MapName);\n }\n }\n if (event.RequestType === 'Update') {\n let params = {\n MapName: event.ResourceProperties.mapName,\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new UpdateMapCommand(params));\n console.log('update resource response data' + JSON.stringify(res));\n if (res.MapName && res.MapArn) {\n await response.send(event, context, response.SUCCESS, res, params.MapName);\n } else {\n await response.send(event, context, response.FAILED, res, params.MapName);\n }\n }\n if (event.RequestType === 'Delete') {\n let params = {\n MapName: event.ResourceProperties.mapName,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new DeleteMapCommand(params));\n console.log('delete resource response data' + JSON.stringify(res));\n await response.send(event, context, response.SUCCESS, res, params.MapName);\n }\n } catch (err) {\n console.log(err.stack);\n const res = { Error: err };\n await response.send(event, context, response.FAILED, res, event.ResourceProperties.mapName);\n throw err;\n }\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "CustomMapLambdaServiceRole4EE7732C", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Timeout": 300 + }, + "DependsOn": [ + "CustomMapLambdaServiceRoleDefaultPolicy983FDD4E", + "CustomMapLambdaServiceRole4EE7732C" + ] + }, + "CustomMap": { + "Type": "Custom::LambdaCallout", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "CustomMapLambda51D5D430", + "Arn" + ] + }, + "mapName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "mapName" + }, + { + "Ref": "env" + } + ] + ] + }, + "mapStyle": { + "Ref": "mapStyle" + }, + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "env": { + "Ref": "env" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "MapPolicy": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "geo:GetMapStyleDescriptor", + "geo:GetMapGlyphs", + "geo:GetMapSprites", + "geo:GetMapTile" + ], + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "CustomMap", + "MapArn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": { + "Fn::Join": [ + "", + [ + { + "Fn::Join": [ + "-", + [ + { + "Ref": "mapName" + }, + { + "Ref": "env" + } + ] + ] + }, + "Policy" + ] + ] + }, + "Roles": [ + { + "Ref": "authRoleName" + }, + { + "Ref": "unauthRoleName" + }, + { + "Fn::Join": [ + "-", + [ + { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "storeLocatorAdminGroupRole" + ] + ] + } + ] + } + } + }, + "Outputs": { + "Name": { + "Value": { + "Fn::GetAtt": [ + "CustomMap", + "MapName" + ] + } + }, + "Style": { + "Value": { + "Ref": "mapStyle" + } + }, + "Region": { + "Value": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + } + }, + "Arn": { + "Value": { + "Fn::GetAtt": [ + "CustomMap", + "MapArn" + ] + } + } + }, + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"geo-Map\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}" +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorSearch-1KBIBJ81FICL6.description.txt b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorSearch-1KBIBJ81FICL6.description.txt new file mode 100644 index 00000000000..255e1dac25d --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorSearch-1KBIBJ81FICL6.description.txt @@ -0,0 +1 @@ +{"createdOn":"Mac","createdBy":"Amplify","createdWith":"14.2.5","stackType":"geo-PlaceIndex","metadata":{"whyContinueWithGen1":"Prefer not to answer"}} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorSearch-1KBIBJ81FICL6.outputs.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorSearch-1KBIBJ81FICL6.outputs.json new file mode 100644 index 00000000000..244ec8691fa --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorSearch-1KBIBJ81FICL6.outputs.json @@ -0,0 +1,14 @@ +[ + { + "OutputKey": "Region", + "OutputValue": "us-east-1" + }, + { + "OutputKey": "Arn", + "OutputValue": "arn:aws:geo:us-east-1:123456789012:place-index/storeLocatorSearch-main" + }, + { + "OutputKey": "Name", + "OutputValue": "storeLocatorSearch-main" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorSearch-1KBIBJ81FICL6.parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorSearch-1KBIBJ81FICL6.parameters.json new file mode 100644 index 00000000000..8632772abd9 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorSearch-1KBIBJ81FICL6.parameters.json @@ -0,0 +1,38 @@ +[ + { + "ParameterKey": "authuserPoolGroupsstoreLocatorAdminGroupRole", + "ParameterValue": "arn:aws:iam::123456789012:role/us-east-1_R1pdziFVe-storeLocatorAdminGroupRole" + }, + { + "ParameterKey": "isDefault", + "ParameterValue": "true" + }, + { + "ParameterKey": "authRoleName", + "ParameterValue": "amplify-storelocator-main-f9ca7-authRole" + }, + { + "ParameterKey": "unauthRoleName", + "ParameterValue": "amplify-storelocator-main-f9ca7-unauthRole" + }, + { + "ParameterKey": "indexName", + "ParameterValue": "storeLocatorSearch" + }, + { + "ParameterKey": "dataProvider", + "ParameterValue": "Here" + }, + { + "ParameterKey": "dataSourceIntendedUse", + "ParameterValue": "SingleUse" + }, + { + "ParameterKey": "env", + "ParameterValue": "main" + }, + { + "ParameterKey": "authstorelocator41a9495f41a9495fUserPoolId", + "ParameterValue": "us-east-1_R1pdziFVe" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorSearch-1KBIBJ81FICL6.template.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorSearch-1KBIBJ81FICL6.template.json new file mode 100644 index 00000000000..1ef40f17717 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7-geostoreLocatorSearch-1KBIBJ81FICL6.template.json @@ -0,0 +1,348 @@ +{ + "Mappings": { + "RegionMapping": { + "us-east-1": { + "locationServiceRegion": "us-east-1" + }, + "us-east-2": { + "locationServiceRegion": "us-east-2" + }, + "us-west-2": { + "locationServiceRegion": "us-west-2" + }, + "ap-southeast-1": { + "locationServiceRegion": "ap-southeast-1" + }, + "ap-southeast-2": { + "locationServiceRegion": "ap-southeast-2" + }, + "ap-northeast-1": { + "locationServiceRegion": "ap-northeast-1" + }, + "eu-central-1": { + "locationServiceRegion": "eu-central-1" + }, + "eu-north-1": { + "locationServiceRegion": "eu-north-1" + }, + "eu-west-1": { + "locationServiceRegion": "eu-west-1" + }, + "sa-east-1": { + "locationServiceRegion": "us-east-1" + }, + "ca-central-1": { + "locationServiceRegion": "us-east-1" + }, + "us-west-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-north-1": { + "locationServiceRegion": "us-west-2" + }, + "cn-northwest-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-south-1": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-3": { + "locationServiceRegion": "us-west-2" + }, + "ap-northeast-2": { + "locationServiceRegion": "us-west-2" + }, + "eu-west-2": { + "locationServiceRegion": "eu-west-1" + }, + "eu-west-3": { + "locationServiceRegion": "eu-west-1" + }, + "me-south-1": { + "locationServiceRegion": "ap-southeast-1" + } + } + }, + "Parameters": { + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Type": "String" + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Type": "String" + }, + "authRoleName": { + "Type": "String" + }, + "unauthRoleName": { + "Type": "String" + }, + "indexName": { + "Type": "String" + }, + "dataProvider": { + "Type": "String" + }, + "dataSourceIntendedUse": { + "Type": "String" + }, + "env": { + "Type": "String" + }, + "isDefault": { + "Type": "String" + } + }, + "Resources": { + "CustomPlaceIndexLambdaServiceRoleFD2F3C9D": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + } + }, + "CustomPlaceIndexLambdaServiceRoleDefaultPolicy818068B1": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "geo:CreatePlaceIndex", + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "geo:UpdatePlaceIndex", + "geo:DeletePlaceIndex" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:aws:geo:${region}:${account}:place-index/${indexName}", + { + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "account": { + "Ref": "AWS::AccountId" + }, + "indexName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "indexName" + }, + { + "Ref": "env" + } + ] + ] + } + } + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "CustomPlaceIndexLambdaServiceRoleDefaultPolicy818068B1", + "Roles": [ + { + "Ref": "CustomPlaceIndexLambdaServiceRoleFD2F3C9D" + } + ] + } + }, + "CustomPlaceIndexLambda79813BB9": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "const response = require('cfn-response');\nconst { LocationClient, CreatePlaceIndexCommand, DeletePlaceIndexCommand, UpdatePlaceIndexCommand } = require('@aws-sdk/client-location');\nexports.handler = async function (event, context) {\n try {\n console.log('REQUEST RECEIVED:' + JSON.stringify(event));\n const pricingPlan = 'RequestBasedUsage';\n if (event.RequestType === 'Create') {\n const params = {\n IndexName: event.ResourceProperties.indexName,\n DataSource: event.ResourceProperties.dataSource,\n DataSourceConfiguration: {\n IntendedUse: event.ResourceProperties.dataSourceIntendedUse,\n },\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new CreatePlaceIndexCommand(params));\n console.log('create resource response data' + JSON.stringify(res));\n if (res.IndexName && res.IndexArn) {\n event.PhysicalResourceId = res.IndexName;\n await response.send(event, context, response.SUCCESS, res, params.IndexName);\n } else {\n await response.send(event, context, response.FAILED, res, params.IndexName);\n }\n }\n if (event.RequestType === 'Update') {\n const params = {\n IndexName: event.ResourceProperties.indexName,\n DataSourceConfiguration: {\n IntendedUse: event.ResourceProperties.dataSourceIntendedUse,\n },\n PricingPlan: pricingPlan,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new UpdatePlaceIndexCommand(params));\n console.log('update resource response data' + JSON.stringify(res));\n if (res.IndexName && res.IndexArn) {\n event.PhysicalResourceId = res.IndexName;\n await response.send(event, context, response.SUCCESS, res, params.IndexName);\n } else {\n await response.send(event, context, response.FAILED, res, params.IndexName);\n }\n }\n if (event.RequestType === 'Delete') {\n const params = {\n IndexName: event.ResourceProperties.indexName,\n };\n const locationClient = new LocationClient({ region: event.ResourceProperties.region });\n const res = await locationClient.send(new DeletePlaceIndexCommand(params));\n event.PhysicalResourceId = event.ResourceProperties.indexName;\n console.log('delete resource response data' + JSON.stringify(res));\n await response.send(event, context, response.SUCCESS, res, params.IndexName);\n }\n } catch (err) {\n console.log(err.stack);\n const res = { Error: err };\n await response.send(event, context, response.FAILED, res, event.ResourceProperties.indexName);\n throw err;\n }\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "CustomPlaceIndexLambdaServiceRoleFD2F3C9D", + "Arn" + ] + }, + "Runtime": "nodejs22.x", + "Timeout": 300 + }, + "DependsOn": [ + "CustomPlaceIndexLambdaServiceRoleDefaultPolicy818068B1", + "CustomPlaceIndexLambdaServiceRoleFD2F3C9D" + ] + }, + "CustomPlaceIndex": { + "Type": "Custom::LambdaCallout", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "CustomPlaceIndexLambda79813BB9", + "Arn" + ] + }, + "indexName": { + "Fn::Join": [ + "-", + [ + { + "Ref": "indexName" + }, + { + "Ref": "env" + } + ] + ] + }, + "dataSource": { + "Ref": "dataProvider" + }, + "dataSourceIntendedUse": { + "Ref": "dataSourceIntendedUse" + }, + "region": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + }, + "env": { + "Ref": "env" + } + }, + "UpdateReplacePolicy": "Delete", + "DeletionPolicy": "Delete" + }, + "PlaceIndexPolicy": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "geo:SearchPlaceIndexForPosition", + "geo:SearchPlaceIndexForText", + "geo:SearchPlaceIndexForSuggestions", + "geo:GetPlace" + ], + "Effect": "Allow", + "Resource": { + "Fn::GetAtt": [ + "CustomPlaceIndex", + "IndexArn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": { + "Fn::Join": [ + "", + [ + { + "Fn::Join": [ + "-", + [ + { + "Ref": "indexName" + }, + { + "Ref": "env" + } + ] + ] + }, + "Policy" + ] + ] + }, + "Roles": [ + { + "Ref": "authRoleName" + }, + { + "Ref": "unauthRoleName" + }, + { + "Fn::Join": [ + "-", + [ + { + "Ref": "authstorelocator41a9495f41a9495fUserPoolId" + }, + "storeLocatorAdminGroupRole" + ] + ] + } + ] + } + } + }, + "Outputs": { + "Name": { + "Value": { + "Fn::GetAtt": [ + "CustomPlaceIndex", + "IndexName" + ] + } + }, + "Region": { + "Value": { + "Fn::FindInMap": [ + "RegionMapping", + { + "Ref": "AWS::Region" + }, + "locationServiceRegion" + ] + } + }, + "Arn": { + "Value": { + "Fn::GetAtt": [ + "CustomPlaceIndex", + "IndexArn" + ] + } + } + }, + "Description": "{\"createdOn\":\"Mac\",\"createdBy\":\"Amplify\",\"createdWith\":\"14.2.5\",\"stackType\":\"geo-PlaceIndex\",\"metadata\":{\"whyContinueWithGen1\":\"Prefer not to answer\"}}" +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7.description.txt b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7.description.txt new file mode 100644 index 00000000000..daf66c0bc85 --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7.description.txt @@ -0,0 +1 @@ +Root Stack for AWS Amplify CLI \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7.outputs.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7.outputs.json new file mode 100644 index 00000000000..7adc659344c --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7.outputs.json @@ -0,0 +1,42 @@ +[ + { + "OutputKey": "AuthRoleName", + "OutputValue": "amplify-storelocator-main-f9ca7-authRole" + }, + { + "OutputKey": "UnauthRoleArn", + "OutputValue": "arn:aws:iam::123456789012:role/amplify-storelocator-main-f9ca7-unauthRole" + }, + { + "OutputKey": "AuthRoleArn", + "OutputValue": "arn:aws:iam::123456789012:role/amplify-storelocator-main-f9ca7-authRole" + }, + { + "OutputKey": "Region", + "OutputValue": "us-east-1", + "Description": "CloudFormation provider root stack Region", + "ExportName": "amplify-storelocator-main-f9ca7-Region" + }, + { + "OutputKey": "DeploymentBucketName", + "OutputValue": "amplify-storelocator-main-f9ca7-deployment", + "Description": "CloudFormation provider root stack deployment bucket name", + "ExportName": "amplify-storelocator-main-f9ca7-DeploymentBucketName" + }, + { + "OutputKey": "UnauthRoleName", + "OutputValue": "amplify-storelocator-main-f9ca7-unauthRole" + }, + { + "OutputKey": "StackName", + "OutputValue": "amplify-storelocator-main-f9ca7", + "Description": "CloudFormation provider root stack ID", + "ExportName": "amplify-storelocator-main-f9ca7-StackName" + }, + { + "OutputKey": "StackId", + "OutputValue": "arn:aws:cloudformation:us-east-1:123456789012:stack/amplify-storelocator-main-f9ca7/06c2ecf0-279e-11f1-a161-0ea0286337e9", + "Description": "CloudFormation provider root stack name", + "ExportName": "amplify-storelocator-main-f9ca7-StackId" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7.parameters.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7.parameters.json new file mode 100644 index 00000000000..4de99a17daa --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7.parameters.json @@ -0,0 +1,14 @@ +[ + { + "ParameterKey": "AuthRoleName", + "ParameterValue": "amplify-storelocator-main-f9ca7-authRole" + }, + { + "ParameterKey": "DeploymentBucketName", + "ParameterValue": "amplify-storelocator-main-f9ca7-deployment" + }, + { + "ParameterKey": "UnauthRoleName", + "ParameterValue": "amplify-storelocator-main-f9ca7-unauthRole" + } +] \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7.template.json b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7.template.json new file mode 100644 index 00000000000..d2b7054fe5b --- /dev/null +++ b/amplify-migration-apps/store-locator/_snapshot.pre.refactor/amplify-storelocator-main-f9ca7.template.json @@ -0,0 +1,653 @@ +{ + "Description": "Root Stack for AWS Amplify CLI", + "AWSTemplateFormatVersion": "2010-09-09", + "Parameters": { + "DeploymentBucketName": { + "Type": "String", + "Default": "DeploymentBucket", + "Description": "Name of the common deployment bucket provided by the parent stack" + }, + "AuthRoleName": { + "Type": "String", + "Default": "AuthRoleName", + "Description": "Name of the common deployment bucket provided by the parent stack" + }, + "UnauthRoleName": { + "Type": "String", + "Default": "UnAuthRoleName", + "Description": "Name of the common deployment bucket provided by the parent stack" + } + }, + "Outputs": { + "Region": { + "Description": "CloudFormation provider root stack Region", + "Value": { + "Ref": "AWS::Region" + }, + "Export": { + "Name": { + "Fn::Sub": "${AWS::StackName}-Region" + } + } + }, + "StackName": { + "Description": "CloudFormation provider root stack ID", + "Value": { + "Ref": "AWS::StackName" + }, + "Export": { + "Name": { + "Fn::Sub": "${AWS::StackName}-StackName" + } + } + }, + "StackId": { + "Description": "CloudFormation provider root stack name", + "Value": { + "Ref": "AWS::StackId" + }, + "Export": { + "Name": { + "Fn::Sub": "${AWS::StackName}-StackId" + } + } + }, + "AuthRoleArn": { + "Value": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + } + }, + "UnauthRoleArn": { + "Value": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + } + }, + "DeploymentBucketName": { + "Description": "CloudFormation provider root stack deployment bucket name", + "Value": { + "Ref": "DeploymentBucketName" + }, + "Export": { + "Name": { + "Fn::Sub": "${AWS::StackName}-DeploymentBucketName" + } + } + }, + "AuthRoleName": { + "Value": { + "Ref": "AuthRole" + } + }, + "UnauthRoleName": { + "Value": { + "Ref": "UnauthRole" + } + } + }, + "Resources": { + "DeploymentBucket": { + "Type": "AWS::S3::Bucket", + "Properties": { + "BucketName": { + "Ref": "DeploymentBucketName" + }, + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { + "SSEAlgorithm": "AES256" + } + } + ] + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "DeploymentBucketBlockHTTP": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "DeploymentBucketName" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": "s3:*", + "Effect": "Deny", + "Principal": "*", + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:aws:s3:::", + { + "Ref": "DeploymentBucketName" + }, + "/*" + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:aws:s3:::", + { + "Ref": "DeploymentBucketName" + } + ] + ] + } + ], + "Condition": { + "Bool": { + "aws:SecureTransport": false + } + } + } + ] + } + } + }, + "AuthRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Deny", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + }, + "Action": "sts:AssumeRoleWithWebIdentity" + } + ] + }, + "RoleName": { + "Ref": "AuthRoleName" + } + } + }, + "UnauthRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Deny", + "Principal": { + "Federated": "cognito-identity.amazonaws.com" + }, + "Action": "sts:AssumeRoleWithWebIdentity" + } + ] + }, + "RoleName": { + "Ref": "UnauthRoleName" + } + } + }, + "AuthTriggerCustomLambdaStack": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/auth/auth-trigger-cloudformation-template.json", + "Parameters": { + "env": "main", + "userpoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "userpoolArn": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolArn" + ] + }, + "functionstorelocator41a9495f41a9495fPostConfirmationLambdaExecutionRole": { + "Fn::GetAtt": [ + "functionstorelocator41a9495f41a9495fPostConfirmation", + "Outputs.LambdaExecutionRoleArn" + ] + }, + "functionstorelocator41a9495f41a9495fPostConfirmationArn": { + "Fn::GetAtt": [ + "functionstorelocator41a9495f41a9495fPostConfirmation", + "Outputs.Arn" + ] + }, + "functionstorelocator41a9495f41a9495fPostConfirmationName": { + "Fn::GetAtt": [ + "functionstorelocator41a9495f41a9495fPostConfirmation", + "Outputs.Name" + ] + } + } + }, + "DependsOn": [ + "authstorelocator41a9495f41a9495f", + "functionstorelocator41a9495f41a9495fPostConfirmation" + ] + }, + "authstorelocator41a9495f41a9495f": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/auth/storelocator41a9495f41a9495f-cloudformation-template.json", + "Parameters": { + "identityPoolName": "storelocator41a9495f_identitypool_41a9495f", + "allowUnauthenticatedIdentities": true, + "resourceNameTruncated": "storel41a9495f", + "userPoolName": "storelocator41a9495f_userpool_41a9495f", + "autoVerifiedAttributes": "email", + "mfaConfiguration": "OFF", + "mfaTypes": "SMS Text Message", + "smsAuthenticationMessage": "Your authentication code is {####}", + "smsVerificationMessage": "Your verification code is {####}", + "emailVerificationSubject": "Your verification code", + "emailVerificationMessage": "Your verification code is {####}", + "defaultPasswordPolicy": false, + "passwordPolicyMinLength": 8, + "passwordPolicyCharacters": "", + "requiredAttributes": "email", + "aliasAttributes": "", + "userpoolClientGenerateSecret": false, + "userpoolClientRefreshTokenValidity": "100", + "userpoolClientWriteAttributes": "email", + "userpoolClientReadAttributes": "email", + "userpoolClientLambdaRole": "storel41a9495f_userpoolclient_lambda_role", + "userpoolClientSetAttributes": false, + "sharedId": "41a9495f", + "resourceName": "storelocator41a9495f41a9495f", + "authSelections": "identityPoolAndUserPool", + "useDefault": "manual", + "thirdPartyAuth": false, + "usernameAttributes": "email", + "userPoolGroups": true, + "adminQueries": false, + "triggers": "{\"PostConfirmation\":[\"add-to-group\"]}", + "hostedUI": false, + "userPoolGroupList": "storeLocatorAdmin", + "serviceName": "Cognito", + "usernameCaseSensitive": false, + "useEnabledMfas": true, + "authRoleArn": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + }, + "unauthRoleArn": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + }, + "breakCircularDependency": true, + "dependsOn": "[object Object]", + "permissions": "{\"policyName\":\"AddToGroupCognito\",\"trigger\":\"PostConfirmation\",\"effect\":\"Allow\",\"actions\":[\"cognito-idp:AdminAddUserToGroup\",\"cognito-idp:GetGroup\",\"cognito-idp:CreateGroup\"],\"resource\":{\"paramType\":\"!GetAtt\",\"keys\":[\"UserPool\",\"Arn\"]}}", + "authTriggerConnections": "{\"triggerType\":\"PostConfirmation\",\"lambdaFunctionName\":\"storelocator41a9495f41a9495fPostConfirmation\"}", + "env": "main" + } + } + }, + "authuserPoolGroups": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/auth/userPoolGroups-cloudformation-template.json", + "Parameters": { + "AuthRoleArn": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + }, + "UnauthRoleArn": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + }, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "authstorelocator41a9495f41a9495fAppClientIDWeb": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.AppClientIDWeb" + ] + }, + "authstorelocator41a9495f41a9495fAppClientID": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.AppClientID" + ] + }, + "authstorelocator41a9495f41a9495fIdentityPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.IdentityPoolId" + ] + }, + "env": "main" + } + } + }, + "functionstorelocator41a9495f41a9495fPostConfirmation": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/function/storelocator41a9495f41a9495fPostConfirmation-cloudformation-template.json", + "Parameters": { + "modules": "add-to-group", + "resourceName": "storelocator41a9495f41a9495fPostConfirmation", + "GROUP": "storeLocatorAdmin", + "deploymentBucketName": "amplify-storelocator-main-f9ca7-deployment", + "s3Key": "amplify-builds/storelocator41a9495f41a9495fPostConfirmation-6a6c746d4739755a384a-build.zip", + "env": "main" + } + } + }, + "geostoreLocatorGeofence": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/geo/storeLocatorGeofence-cloudformation-template.json", + "Parameters": { + "collectionName": "storeLocatorGeofence", + "isDefault": true, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Fn::GetAtt": [ + "authuserPoolGroups", + "Outputs.storeLocatorAdminGroupRole" + ] + }, + "env": "main" + } + } + }, + "geostoreLocatorMap": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/geo/storeLocatorMap-cloudformation-template.json", + "Parameters": { + "authRoleName": { + "Ref": "AuthRoleName" + }, + "unauthRoleName": { + "Ref": "UnauthRoleName" + }, + "mapName": "storeLocatorMap", + "mapStyle": "VectorEsriStreets", + "isDefault": true, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Fn::GetAtt": [ + "authuserPoolGroups", + "Outputs.storeLocatorAdminGroupRole" + ] + }, + "env": "main" + } + } + }, + "geostoreLocatorSearch": { + "Type": "AWS::CloudFormation::Stack", + "Properties": { + "TemplateURL": "https://s3.amazonaws.com/amplify-storelocator-main-f9ca7-deployment/amplify-cfn-templates/geo/storeLocatorSearch-cloudformation-template.json", + "Parameters": { + "authRoleName": { + "Ref": "AuthRoleName" + }, + "unauthRoleName": { + "Ref": "UnauthRoleName" + }, + "indexName": "storeLocatorSearch", + "dataProvider": "Here", + "dataSourceIntendedUse": "SingleUse", + "isDefault": true, + "authstorelocator41a9495f41a9495fUserPoolId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.UserPoolId" + ] + }, + "authuserPoolGroupsstoreLocatorAdminGroupRole": { + "Fn::GetAtt": [ + "authuserPoolGroups", + "Outputs.storeLocatorAdminGroupRole" + ] + }, + "env": "main" + } + } + }, + "UpdateRolesWithIDPFunction": { + "DependsOn": [ + "AuthRole", + "UnauthRole", + "authstorelocator41a9495f41a9495f" + ], + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": { + "Fn::Join": [ + "\n", + [ + "const response = require('cfn-response');", + "const { IAMClient, GetRoleCommand, UpdateAssumeRolePolicyCommand } = require('@aws-sdk/client-iam');", + "exports.handler = function(event, context) {", + " // Don't return promise, response.send() marks context as done internally", + " const ignoredPromise = handleEvent(event, context)", + "};", + "async function handleEvent(event, context) {", + " try {", + " let authRoleName = event.ResourceProperties.authRoleName;", + " let unauthRoleName = event.ResourceProperties.unauthRoleName;", + " let idpId = event.ResourceProperties.idpId;", + " let authParamsJson = {", + " 'Version': '2012-10-17',", + " 'Statement': [{", + " 'Effect': 'Allow',", + " 'Principal': {'Federated': 'cognito-identity.amazonaws.com'},", + " 'Action': 'sts:AssumeRoleWithWebIdentity',", + " 'Condition': {", + " 'StringEquals': {'cognito-identity.amazonaws.com:aud': idpId},", + " 'ForAnyValue:StringLike': {'cognito-identity.amazonaws.com:amr': 'authenticated'}", + " }", + " }]", + " };", + " let unauthParamsJson = {", + " 'Version': '2012-10-17',", + " 'Statement': [{", + " 'Effect': 'Allow',", + " 'Principal': {'Federated': 'cognito-identity.amazonaws.com'},", + " 'Action': 'sts:AssumeRoleWithWebIdentity',", + " 'Condition': {", + " 'StringEquals': {'cognito-identity.amazonaws.com:aud': idpId},", + " 'ForAnyValue:StringLike': {'cognito-identity.amazonaws.com:amr': 'unauthenticated'}", + " }", + " }]", + " };", + " if (event.RequestType === 'Delete') {", + " try {", + " delete authParamsJson.Statement[0].Condition;", + " delete unauthParamsJson.Statement[0].Condition;", + " authParamsJson.Statement[0].Effect = 'Deny'", + " unauthParamsJson.Statement[0].Effect = 'Deny'", + " let authParams = {PolicyDocument: JSON.stringify(authParamsJson), RoleName: authRoleName};", + " let unauthParams = {PolicyDocument: JSON.stringify(unauthParamsJson), RoleName: unauthRoleName};", + " const iam = new IAMClient({region: event.ResourceProperties.region});", + " let res = await Promise.all([", + " iam.send(new GetRoleCommand({RoleName: authParams.RoleName})),", + " iam.send(new GetRoleCommand({RoleName: unauthParams.RoleName}))", + " ]);", + " res = await Promise.all([", + " iam.send(new UpdateAssumeRolePolicyCommand(authParams)),", + " iam.send(new UpdateAssumeRolePolicyCommand(unauthParams))", + " ]);", + " response.send(event, context, response.SUCCESS, {});", + " } catch (err) {", + " console.log(err.stack);", + " response.send(event, context, response.SUCCESS, {Error: err});", + " }", + " } else if (event.RequestType === 'Update' || event.RequestType === 'Create') {", + " const iam = new IAMClient({region: event.ResourceProperties.region});", + " let authParams = {PolicyDocument: JSON.stringify(authParamsJson), RoleName: authRoleName};", + " let unauthParams = {PolicyDocument: JSON.stringify(unauthParamsJson), RoleName: unauthRoleName};", + " const res = await Promise.all([", + " iam.send(new UpdateAssumeRolePolicyCommand(authParams)),", + " iam.send(new UpdateAssumeRolePolicyCommand(unauthParams))", + " ]);", + " response.send(event, context, response.SUCCESS, {});", + " }", + " } catch (err) {", + " console.log(err.stack);", + " response.send(event, context, response.FAILED, {Error: err});", + " }", + "};" + ] + ] + } + }, + "Handler": "index.handler", + "Runtime": "nodejs22.x", + "Timeout": 300, + "Role": { + "Fn::GetAtt": [ + "UpdateRolesWithIDPFunctionRole", + "Arn" + ] + } + } + }, + "UpdateRolesWithIDPFunctionOutputs": { + "Type": "Custom::LambdaCallout", + "Properties": { + "ServiceToken": { + "Fn::GetAtt": [ + "UpdateRolesWithIDPFunction", + "Arn" + ] + }, + "region": { + "Ref": "AWS::Region" + }, + "idpId": { + "Fn::GetAtt": [ + "authstorelocator41a9495f41a9495f", + "Outputs.IdentityPoolId" + ] + }, + "authRoleName": { + "Ref": "AuthRole" + }, + "unauthRoleName": { + "Ref": "UnauthRole" + } + } + }, + "UpdateRolesWithIDPFunctionRole": { + "Type": "AWS::IAM::Role", + "Properties": { + "RoleName": { + "Fn::Join": [ + "", + [ + { + "Ref": "AuthRole" + }, + "-idp" + ] + ] + }, + "AssumeRolePolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + }, + "Action": [ + "sts:AssumeRole" + ] + } + ] + }, + "Policies": [ + { + "PolicyName": "UpdateRolesWithIDPFunctionPolicy", + "PolicyDocument": { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Resource": "arn:aws:logs:*:*:*" + }, + { + "Effect": "Allow", + "Action": [ + "iam:UpdateAssumeRolePolicy", + "iam:GetRole" + ], + "Resource": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + } + }, + { + "Effect": "Allow", + "Action": [ + "iam:UpdateAssumeRolePolicy", + "iam:GetRole" + ], + "Resource": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + } + } + ] + } + } + ] + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/eslint.config.js b/amplify-migration-apps/store-locator/eslint.config.js new file mode 100644 index 00000000000..6f236359302 --- /dev/null +++ b/amplify-migration-apps/store-locator/eslint.config.js @@ -0,0 +1,18 @@ +import js from '@eslint/js'; +import globals from 'globals'; +import reactHooks from 'eslint-plugin-react-hooks'; +import reactRefresh from 'eslint-plugin-react-refresh'; +import tseslint from 'typescript-eslint'; +import { defineConfig, globalIgnores } from 'eslint/config'; + +export default defineConfig([ + globalIgnores(['dist']), + { + files: ['**/*.{ts,tsx}'], + extends: [js.configs.recommended, tseslint.configs.recommended, reactHooks.configs.flat.recommended, reactRefresh.configs.vite], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + }, + }, +]); diff --git a/amplify-migration-apps/store-locator/images/add-gen2-main-branch.png b/amplify-migration-apps/store-locator/images/add-gen2-main-branch.png new file mode 100644 index 00000000000..236c5d5a772 Binary files /dev/null and b/amplify-migration-apps/store-locator/images/add-gen2-main-branch.png differ diff --git a/amplify-migration-apps/store-locator/images/add-main-branch.png b/amplify-migration-apps/store-locator/images/add-main-branch.png new file mode 100644 index 00000000000..81f5676edb6 Binary files /dev/null and b/amplify-migration-apps/store-locator/images/add-main-branch.png differ diff --git a/amplify-migration-apps/store-locator/images/app.png b/amplify-migration-apps/store-locator/images/app.png new file mode 100644 index 00000000000..35a736603d7 Binary files /dev/null and b/amplify-migration-apps/store-locator/images/app.png differ diff --git a/amplify-migration-apps/store-locator/images/deploying-gen2-main-branch.png b/amplify-migration-apps/store-locator/images/deploying-gen2-main-branch.png new file mode 100644 index 00000000000..4be42e2231a Binary files /dev/null and b/amplify-migration-apps/store-locator/images/deploying-gen2-main-branch.png differ diff --git a/amplify-migration-apps/store-locator/images/deploying-main-branch.png b/amplify-migration-apps/store-locator/images/deploying-main-branch.png new file mode 100644 index 00000000000..0f19512dc15 Binary files /dev/null and b/amplify-migration-apps/store-locator/images/deploying-main-branch.png differ diff --git a/amplify-migration-apps/store-locator/images/find-gen2-stack.png b/amplify-migration-apps/store-locator/images/find-gen2-stack.png new file mode 100644 index 00000000000..6e62d9e9d1c Binary files /dev/null and b/amplify-migration-apps/store-locator/images/find-gen2-stack.png differ diff --git a/amplify-migration-apps/store-locator/images/hosting-get-started.png b/amplify-migration-apps/store-locator/images/hosting-get-started.png new file mode 100644 index 00000000000..498dfa66164 Binary files /dev/null and b/amplify-migration-apps/store-locator/images/hosting-get-started.png differ diff --git a/amplify-migration-apps/store-locator/index.html b/amplify-migration-apps/store-locator/index.html new file mode 100644 index 00000000000..6ed4c17060a --- /dev/null +++ b/amplify-migration-apps/store-locator/index.html @@ -0,0 +1,13 @@ + + + + + + + storelocator + + +
+ + + diff --git a/amplify-migration-apps/store-locator/package.json b/amplify-migration-apps/store-locator/package.json new file mode 100644 index 00000000000..9abc47b5c30 --- /dev/null +++ b/amplify-migration-apps/store-locator/package.json @@ -0,0 +1,42 @@ +{ + "name": "@amplify-migration-apps/store-locator", + "private": true, + "version": "0.0.0", + "type": "module", + "installConfig": { + "hoistingLimits": "workspaces" + }, + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview", + "sanitize": "tsx ../sanitize.ts", + "typecheck": "cd _snapshot.post.generate/amplify && npx tsc --noEmit" + }, + "dependencies": { + "@aws-sdk/client-cognito-identity-provider": "^3.1016.0", + "@aws-amplify/geo": "^3.0.92", + "@aws-amplify/ui-react": "^6.13.2", + "@aws-amplify/ui-react-geo": "^2.2.13", + "aws-amplify": "^6.16.0", + "maplibre-gl": "^2.4.0", + "maplibre-gl-js-amplify": "^4.0.2", + "react": "^19.2.0", + "react-dom": "^19.2.0" + }, + "devDependencies": { + "@eslint/js": "^9.39.1", + "@types/node": "^24.10.1", + "@types/react": "^19.2.5", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^5.1.1", + "eslint": "^9.39.1", + "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-react-refresh": "^0.4.24", + "globals": "^16.5.0", + "typescript": "~5.9.3", + "typescript-eslint": "^8.46.4", + "vite": "^7.2.4" + } +} diff --git a/amplify-migration-apps/store-locator/public/vite.svg b/amplify-migration-apps/store-locator/public/vite.svg new file mode 100644 index 00000000000..e7b8dfb1b2a --- /dev/null +++ b/amplify-migration-apps/store-locator/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/src/App.css b/amplify-migration-apps/store-locator/src/App.css new file mode 100644 index 00000000000..913eace8803 --- /dev/null +++ b/amplify-migration-apps/store-locator/src/App.css @@ -0,0 +1,158 @@ +.app { + height: 100%; + display: flex; + flex-direction: column; +} + +.header { + padding: 1rem; + background-color: #232f3e; + color: white; + position: relative; +} + +.header h1 { + margin: 0 0 0.5rem 0; + font-size: 1.5rem; + font-weight: 500; +} + +.search-form { + display: flex; + gap: 0.5rem; +} + +.search-input { + flex: 1; + padding: 0.5rem; + border: none; + border-radius: 4px; + font-size: 1rem; +} + +.search-button { + padding: 0.5rem 1rem; + background-color: #ff9900; + border: none; + border-radius: 4px; + color: #232f3e; + font-weight: 500; + cursor: pointer; +} + +.search-button:hover { + background-color: #ffac31; +} + +.search-button:disabled { + background-color: #ccc; + cursor: not-allowed; +} + +.search-results { + position: absolute; + top: 100%; + left: 1rem; + right: 1rem; + background: white; + color: #232f3e; + list-style: none; + margin: 0; + padding: 0; + border-radius: 0 0 4px 4px; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); + z-index: 1000; +} + +.search-results li { + padding: 0.75rem 1rem; + cursor: pointer; + border-bottom: 1px solid #eee; +} + +.search-results li:last-child { + border-bottom: none; +} + +.search-results li:hover { + background-color: #f5f5f5; +} + +.map-container { + flex: 1; + width: 100%; +} + + +/* Fix marker popup sizing */ +.maplibregl-popup-content { + padding: 10px !important; + box-sizing: border-box; + width: auto !important; + min-width: unset !important; + max-width: 250px !important; +} + +.maplibregl-popup { + max-width: none !important; +} + +.maplibregl-popup-content h3 { + margin: 0 0 5px 0; + font-size: 14px; +} + +.maplibregl-popup-content p { + margin: 0; + font-size: 12px; +} + + +/* Auth section styles */ +.header-top { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 0.5rem; +} + +.auth-section { + display: flex; + align-items: center; + gap: 0.5rem; +} + +.user-email { + font-size: 0.875rem; + opacity: 0.8; +} + +.sign-out-button { + padding: 0.25rem 0.5rem; + background-color: transparent; + border: 1px solid white; + border-radius: 4px; + color: white; + font-size: 0.75rem; + cursor: pointer; +} + +.sign-out-button:hover { + background-color: rgba(255, 255, 255, 0.1); +} + +/* Amplify Authenticator overrides */ +[data-amplify-authenticator] { + --amplify-components-button-primary-background-color: #ff9900; + --amplify-components-button-primary-hover-background-color: #ffac31; +} + + +/* Center the Authenticator */ +[data-amplify-authenticator] { + display: flex; + justify-content: center; + align-items: center; + min-height: 100vh; + background-color: #232f3e; +} diff --git a/amplify-migration-apps/store-locator/src/App.tsx b/amplify-migration-apps/store-locator/src/App.tsx new file mode 100644 index 00000000000..f4be171cb61 --- /dev/null +++ b/amplify-migration-apps/store-locator/src/App.tsx @@ -0,0 +1,208 @@ +import { useEffect, useRef, useState } from 'react'; +import { createMap, drawPoints, AmplifyGeofenceControl } from 'maplibre-gl-js-amplify'; +import maplibregl from 'maplibre-gl'; +import { Geo } from '@aws-amplify/geo'; +import { Authenticator } from '@aws-amplify/ui-react'; +import 'maplibre-gl/dist/maplibre-gl.css'; +import 'maplibre-gl-js-amplify/dist/public/amplify-map.css'; +import 'maplibre-gl-js-amplify/dist/public/amplify-ctrl-geofence.css'; +import '@aws-amplify/ui-react/styles.css'; +import './App.css'; + +// Sample store locations - New York +const storeLocations = [ + { + coordinates: [-73.9857, 40.7484] as [number, number], + title: 'Midtown Manhattan Store', + address: '350 5th Avenue, New York, NY', + }, + { + coordinates: [-73.9805, 40.787] as [number, number], + title: 'Upper West Side Store', + address: '2100 Broadway, New York, NY', + }, + { + coordinates: [-73.9442, 40.6782] as [number, number], + title: 'Brooklyn Store', + address: '445 Albee Square, Brooklyn, NY', + }, + { + coordinates: [-74.006, 40.7128] as [number, number], + title: 'Financial District Store', + address: '100 Wall Street, New York, NY', + }, + { + coordinates: [-73.9855, 40.758] as [number, number], + title: 'Times Square Store', + address: '1560 Broadway, New York, NY', + }, + { + coordinates: [-73.9654, 40.7829] as [number, number], + title: 'Central Park Store', + address: '10 Columbus Circle, New York, NY', + }, + { + coordinates: [-73.9934, 40.7505] as [number, number], + title: 'Hudson Yards Store', + address: '20 Hudson Yards, New York, NY', + }, + { + coordinates: [-73.9776, 40.7614] as [number, number], + title: 'Rockefeller Center Store', + address: '45 Rockefeller Plaza, New York, NY', + }, + { + coordinates: [-74.0445, 40.6892] as [number, number], + title: 'Staten Island Ferry Store', + address: '4 Whitehall Street, New York, NY', + }, + { + coordinates: [-73.9496, 40.6501] as [number, number], + title: 'Flatbush Store', + address: '900 Flatbush Avenue, Brooklyn, NY', + }, +]; + +interface SearchResult { + label?: string; + geometry?: { + point?: [number, number]; + }; +} + +interface StoreLocatorProps { + signOut: () => void; + user: { signInDetails?: { loginId?: string } }; +} + +function StoreLocator({ signOut, user }: StoreLocatorProps) { + const mapRef = useRef(null); + const markerRef = useRef(null); + const [searchQuery, setSearchQuery] = useState(''); + const [searchResults, setSearchResults] = useState([]); + const [isSearching, setIsSearching] = useState(false); + + useEffect(() => { + async function initializeMap() { + const map = await createMap({ + container: 'map', + center: [-73.9857, 40.7484], + zoom: 11, + }); + + mapRef.current = map; + + map.on('load', function () { + drawPoints('storeLocations', storeLocations, map, { + showCluster: true, + unclusteredOptions: { + showMarkerPopup: true, + }, + clusterOptions: { + showCount: true, + smCircleSize: 20, + mdCircleSize: 30, + lgCircleSize: 40, + clusterMaxZoom: 12, + }, + }); + + // Add geofence control + const geofenceControl = new AmplifyGeofenceControl(); + map.addControl(geofenceControl as unknown as maplibregl.IControl); + }); + } + + initializeMap(); + + return () => { + if (mapRef.current) { + mapRef.current.remove(); + } + }; + }, []); + + const handleSearch = async (e: React.FormEvent) => { + e.preventDefault(); + if (!searchQuery.trim()) return; + + setIsSearching(true); + try { + const results = await Geo.searchByText(searchQuery, { + maxResults: 5, + }); + setSearchResults(results); + } catch (error) { + console.error('Search error:', error); + setSearchResults([]); + } finally { + setIsSearching(false); + } + }; + + const handleResultClick = (result: SearchResult) => { + if (result.geometry?.point && mapRef.current) { + const [lng, lat] = result.geometry.point; + + if (markerRef.current) { + markerRef.current.remove(); + } + + markerRef.current = new maplibregl.Marker({ color: '#ff9900' }) + .setLngLat([lng, lat]) + .setPopup(new maplibregl.Popup().setHTML(`${result.label}`)) + .addTo(mapRef.current); + + mapRef.current.flyTo({ + center: [lng, lat], + zoom: 15, + }); + setSearchResults([]); + setSearchQuery(''); + } + }; + + return ( +
+
+
+

Store Locator

+
+ {user.signInDetails?.loginId} + +
+
+
+ setSearchQuery(e.target.value)} + className="search-input" + /> + +
+ {searchResults.length > 0 && ( +
    + {searchResults.map((result, index) => ( +
  • handleResultClick(result)}> + {result.label} +
  • + ))} +
+ )} +
+
+
+ ); +} + +function App() { + return {({ signOut, user }) => }; +} + +export default App; diff --git a/amplify-migration-apps/store-locator/src/amplifyconfiguration.json b/amplify-migration-apps/store-locator/src/amplifyconfiguration.json new file mode 100644 index 00000000000..a3e03b57894 --- /dev/null +++ b/amplify-migration-apps/store-locator/src/amplifyconfiguration.json @@ -0,0 +1,51 @@ +{ + "aws_project_region": "us-east-1", + "aws_cognito_identity_pool_id": "us-east-1:4ea514e6-bc16-4990-a5ea-cefe84c3050d", + "aws_cognito_region": "us-east-1", + "aws_user_pools_id": "us-east-1_R1pdziFVe", + "aws_user_pools_web_client_id": "6am6ldh23n8ke819nuvk51cddq", + "oauth": {}, + "aws_cognito_username_attributes": [ + "EMAIL" + ], + "aws_cognito_social_providers": [], + "aws_cognito_signup_attributes": [ + "EMAIL" + ], + "aws_cognito_mfa_configuration": "OFF", + "aws_cognito_mfa_types": [ + "SMS" + ], + "aws_cognito_password_protection_settings": { + "passwordPolicyMinLength": 8, + "passwordPolicyCharacters": [] + }, + "aws_cognito_verification_mechanisms": [ + "EMAIL" + ], + "geo": { + "amazon_location_service": { + "region": "us-east-1", + "maps": { + "items": { + "storeLocatorMap-main": { + "style": "VectorEsriStreets" + } + }, + "default": "storeLocatorMap-main" + }, + "search_indices": { + "items": [ + "storeLocatorSearch-main" + ], + "default": "storeLocatorSearch-main" + }, + "geofenceCollections": { + "items": [ + "storeLocatorGeofence-main" + ], + "default": "storeLocatorGeofence-main" + } + } + } +} \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/src/assets/react.svg b/amplify-migration-apps/store-locator/src/assets/react.svg new file mode 100644 index 00000000000..6c87de9bb33 --- /dev/null +++ b/amplify-migration-apps/store-locator/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/amplify-migration-apps/store-locator/src/aws-exports.js b/amplify-migration-apps/store-locator/src/aws-exports.js new file mode 100644 index 00000000000..2f8c052177d --- /dev/null +++ b/amplify-migration-apps/store-locator/src/aws-exports.js @@ -0,0 +1,57 @@ +/* eslint-disable */ +// WARNING: DO NOT EDIT. This file is automatically generated by AWS Amplify. It will be overwritten. + +const awsmobile = { + "aws_project_region": "us-east-1", + "aws_cognito_identity_pool_id": "us-east-1:4ea514e6-bc16-4990-a5ea-cefe84c3050d", + "aws_cognito_region": "us-east-1", + "aws_user_pools_id": "us-east-1_R1pdziFVe", + "aws_user_pools_web_client_id": "6am6ldh23n8ke819nuvk51cddq", + "oauth": {}, + "aws_cognito_username_attributes": [ + "EMAIL" + ], + "aws_cognito_social_providers": [], + "aws_cognito_signup_attributes": [ + "EMAIL" + ], + "aws_cognito_mfa_configuration": "OFF", + "aws_cognito_mfa_types": [ + "SMS" + ], + "aws_cognito_password_protection_settings": { + "passwordPolicyMinLength": 8, + "passwordPolicyCharacters": [] + }, + "aws_cognito_verification_mechanisms": [ + "EMAIL" + ], + "geo": { + "amazon_location_service": { + "region": "us-east-1", + "maps": { + "items": { + "storeLocatorMap-main": { + "style": "VectorEsriStreets" + } + }, + "default": "storeLocatorMap-main" + }, + "search_indices": { + "items": [ + "storeLocatorSearch-main" + ], + "default": "storeLocatorSearch-main" + }, + "geofenceCollections": { + "items": [ + "storeLocatorGeofence-main" + ], + "default": "storeLocatorGeofence-main" + } + } + } +}; + + +export default awsmobile; diff --git a/amplify-migration-apps/store-locator/src/index.css b/amplify-migration-apps/store-locator/src/index.css new file mode 100644 index 00000000000..5d5be76d5d0 --- /dev/null +++ b/amplify-migration-apps/store-locator/src/index.css @@ -0,0 +1,11 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html, +body, +#root { + height: 100%; +} diff --git a/amplify-migration-apps/store-locator/src/main.tsx b/amplify-migration-apps/store-locator/src/main.tsx new file mode 100644 index 00000000000..ff81d6c69dc --- /dev/null +++ b/amplify-migration-apps/store-locator/src/main.tsx @@ -0,0 +1,14 @@ +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; +import { Amplify } from 'aws-amplify'; +import './index.css'; +import App from './App.tsx'; +import amplifyconfig from './amplifyconfiguration.json'; + +Amplify.configure(amplifyconfig); + +createRoot(document.getElementById('root')!).render( + + + , +); diff --git a/amplify-migration-apps/store-locator/tsconfig.app.json b/amplify-migration-apps/store-locator/tsconfig.app.json new file mode 100644 index 00000000000..a9b5a59ca64 --- /dev/null +++ b/amplify-migration-apps/store-locator/tsconfig.app.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "ES2022", + "useDefineForClassFields": true, + "lib": ["ES2022", "DOM", "DOM.Iterable"], + "module": "ESNext", + "types": ["vite/client"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["src"] +} diff --git a/amplify-migration-apps/store-locator/tsconfig.json b/amplify-migration-apps/store-locator/tsconfig.json new file mode 100644 index 00000000000..1ffef600d95 --- /dev/null +++ b/amplify-migration-apps/store-locator/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/amplify-migration-apps/store-locator/tsconfig.node.json b/amplify-migration-apps/store-locator/tsconfig.node.json new file mode 100644 index 00000000000..8a67f62f4ce --- /dev/null +++ b/amplify-migration-apps/store-locator/tsconfig.node.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2023", + "lib": ["ES2023"], + "module": "ESNext", + "types": ["node"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/amplify-migration-apps/store-locator/vite.config.ts b/amplify-migration-apps/store-locator/vite.config.ts new file mode 100644 index 00000000000..8d84b235208 --- /dev/null +++ b/amplify-migration-apps/store-locator/vite.config.ts @@ -0,0 +1,15 @@ +import { defineConfig } from 'vite'; +import react from '@vitejs/plugin-react'; + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [react()], + define: { + global: 'globalThis', + }, + resolve: { + alias: { + './runtimeConfig': './runtimeConfig.browser', + }, + }, +}); diff --git a/docs/packages/amplify-cli/src/commands/gen2-migration/refactor.md b/docs/packages/amplify-cli/src/commands/gen2-migration/refactor.md index 68871b4f1dc..6e19e5f79e5 100644 --- a/docs/packages/amplify-cli/src/commands/gen2-migration/refactor.md +++ b/docs/packages/amplify-cli/src/commands/gen2-migration/refactor.md @@ -1,316 +1,198 @@ # refactor -The refactor module is a CloudFormation stack refactoring utility for moving stateful resources from AWS Amplify Gen1 stacks to Gen2 stacks. It uses the CloudFormation StackRefactor API to atomically transfer resource ownership between stacks without recreating resources, preserving data and avoiding service disruption during migration. - -During Amplify Gen1 to Gen2 migration, stateful resources like Cognito User Pools and S3 buckets cannot simply be deleted and recreated—this would result in data loss (user accounts, stored files). The refactor module solves this by using CloudFormation's stack refactor capability to transfer resource ownership between stacks while keeping the physical resources intact. The module provides an interactive workflow that assesses available resources, allows selective category migration, and generates the necessary CloudFormation templates. - -Primary consumers include the `AmplifyMigrationRefactorStep` in gen2-migration-core, Amplify CLI users running the refactor migration step, and DevOps engineers managing Amplify infrastructure transitions. - -## Key Responsibilities - -- Parse and validate Gen1 and Gen2 CloudFormation stack structures to identify category stacks (auth, storage) and their resources -- Assess available resources for migration with interactive category selection, displaying resource counts and types per category -- Generate pre-processed CloudFormation templates by resolving parameters, conditions, outputs, and dependencies for both source and destination stacks -- Execute CloudFormation stack refactor operations to atomically move resources between Gen1 and Gen2 stacks using resource mappings -- Handle OAuth provider credentials retrieval from SSM and Cognito for auth category migrations with social login providers +The refactor module moves stateful CloudFormation resources between Amplify Gen1 and Gen2 stacks using the CloudFormation StackRefactor API. Resources are transferred atomically without recreation, preserving data (user accounts, stored files, etc.) during migration. ## Architecture -The module uses a layered architecture with orchestration, template generation, and resolution layers. `AmplifyMigrationRefactorStep` orchestrates the workflow, `TemplateGenerator` manages category-level operations, `CategoryTemplateGenerator` handles resource-level transformations, and four resolver classes (Parameter, Condition, Dependency, Output) transform CloudFormation templates for refactoring. The module uses CloudFormation's `CreateStackRefactor` and `ExecuteStackRefactor` APIs for atomic resource transfers. +The module follows a plan-then-execute model. Each category (auth, storage, analytics) gets a `CategoryRefactorer` that produces a list of `AmplifyMigrationOperation`s during planning. Operations are collected into a `Plan`, presented to the user for confirmation, then executed sequentially. -```mermaid -flowchart TD - subgraph Orchestration - AMRS["AmplifyMigrationRefactorStep"] - end - - subgraph "Template Generation" - TG["TemplateGenerator"] - CTG["CategoryTemplateGenerator"] - end - - subgraph "Resolvers" - PR["CfnParameterResolver"] - OR["CfnOutputResolver"] - DR["CfnDependencyResolver"] - CR["CFNConditionResolver"] - end - - subgraph "Stack Operations" - CSU["cfn-stack-updater"] - CSRU["cfn-stack-refactor-updater"] - end - - subgraph "OAuth Support" - OVR["oauth-values-retriever"] - end - - AMRS -->|"orchestrates"| TG - TG -->|"per category"| CTG - CTG -->|"1. resolve params"| PR - PR -->|"2. resolve outputs"| OR - OR -->|"3. resolve deps"| DR - DR -->|"4. resolve conditions"| CR - CTG -->|"update stacks"| CSU - CTG -->|"refactor stacks"| CSRU - CTG -->|"auth with OAuth"| OVR +``` +AmplifyMigrationRefactorStep (refactor.ts) + ├── discovers resources via Gen1App + ├── creates shared Cfn instance + StackFacade per root stack + └── instantiates CategoryRefactorers per discovered resource + │ + ├── ForwardCategoryRefactorer (Gen1 → Gen2) + │ ├── auth/auth-cognito-forward.ts + │ ├── auth/auth-user-pool-groups-forward.ts + │ ├── storage/storage-forward.ts + │ ├── storage/storage-dynamo-forward.ts + │ └── analytics/analytics-forward.ts + │ + └── RollbackCategoryRefactorer (Gen2 → Gen1) + ├── auth/auth-cognito-rollback.ts + ├── auth/auth-user-pool-groups-rollback.ts + ├── storage/storage-rollback.ts + ├── storage/storage-dynamo-rollback.ts + └── analytics/analytics-rollback.ts ``` -| Component | File | Purpose | -| -------------------------------------- | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `AmplifyMigrationRefactorStep` | `refactor.ts` | Main orchestrator implementing `AmplifyMigrationStep` interface. Handles parameter extraction, resource mapping validation, interactive category selection, and delegates to TemplateGenerator for execution. | -| `TemplateGenerator` (internal) | `generators/template-generator.ts` | Core engine that parses category stacks from Gen1/Gen2 root stacks, initializes CategoryTemplateGenerators for each category, and coordinates the refactor process across categories. | -| `CategoryTemplateGenerator` (internal) | `generators/category-template-generator.ts` | Category-specific template processor that generates pre-processed templates for Gen1 and Gen2 stacks, builds logical ID mappings between stacks, and produces final refactor templates. | -| `CfnParameterResolver` (internal) | `resolvers/cfn-parameter-resolver.ts` | Resolves CloudFormation `Ref` expressions for parameters by substituting actual values. Handles `CommaDelimitedList` and `List` types, and `AWS::StackName` pseudo-parameter. | -| `CFNConditionResolver` | `resolvers/cfn-condition-resolver.ts` | Evaluates CloudFormation conditions (`Fn::Equals`, `Fn::Not`, `Fn::Or`, `Fn::And`) and resolves `Fn::If` expressions in resource properties. Removes resources with unmet conditions. | -| `CfnDependencyResolver` | `resolvers/cfn-dependency-resolver.ts` | Adjusts `DependsOn` relationships for resources being refactored. Ensures resources moving to Gen2 only depend on other moving resources. | -| `CfnOutputResolver` | `resolvers/cfn-output-resolver.ts` | Resolves `Ref` and `Fn::GetAtt` expressions using stack outputs and physical resource IDs. Constructs ARNs for S3, Cognito, IAM, SQS, and Lambda resources. | -| `cfn-stack-updater` | `cfn-stack-updater.ts` | CloudFormation stack update utilities with polling for completion state. Handles 'no updates' scenarios gracefully. | -| `cfn-stack-refactor-updater` | `cfn-stack-refactor-updater.ts` | CloudFormation stack refactor execution using `CreateStackRefactor` and `ExecuteStackRefactor` APIs. Polls for completion and validates both source and destination stack states. | -| `oauth-values-retriever` | `oauth-values-retriever.ts` | Retrieves OAuth provider credentials from Cognito (client_id, client_secret) and SSM (Sign In With Apple private key) for auth migrations with social login. | +### Key Components -## Interface +| Component | File | Purpose | +| ------------------------------ | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `AmplifyMigrationRefactorStep` | `refactor.ts` | Orchestrator. Creates infrastructure, discovers resources, instantiates refactorers, builds the plan. | +| `CategoryRefactorer` | `workflow/category-refactorer.ts` | Abstract base class. Implements the shared plan() workflow: resolve → build mappings → update → beforeMove → move → afterMove. | +| `ForwardCategoryRefactorer` | `workflow/forward-category-refactorer.ts` | Forward direction base. Resolves Gen1 source and Gen2 target templates. Moves Gen2 resources to a holding stack before the main refactor. | +| `RollbackCategoryRefactorer` | `workflow/rollback-category-refactorer.ts` | Rollback direction base. Resolves Gen2 source and Gen1 target. Restores holding stack resources back to Gen2 after the main refactor. | +| `Cfn` | `cfn.ts` | Shared CloudFormation client wrapper. Handles update, refactor, changeset, delete, and template fetch operations. Tracks update claims to prevent duplicate stack updates across refactorers. | +| `StackFacade` | `stack-facade.ts` | Read-only facade over a CloudFormation stack hierarchy. Fetches nested stacks, templates, stack descriptions, and resources. | +| Resolvers | `resolvers/` | Pure functions that transform CloudFormation templates: parameter substitution, output resolution, dependency stripping, condition evaluation. | +| `oauth-values-retriever` | `oauth-values-retriever.ts` | Retrieves OAuth provider credentials from Cognito and SSM for auth migrations with social login. | -### CLI Command +## Workflow -The refactor step is invoked as part of the gen2-migration workflow: +### Forward (Gen1 → Gen2) -```bash -amplify gen2-migration refactor --to [--resourceMappings file:///path/to/mappings.json] +```mermaid +flowchart TD + A[Resolve Gen1 source template] --> B[Resolve Gen2 target template] + B --> C[Build resource mappings by type] + C --> D[Add placeholder if source would be empty] + D --> E["Update Gen1 stack (resolve refs)"] + E --> F["Update Gen2 stack (resolve refs)"] + F --> G["Move Gen2 resources → holding stack (discovers from Gen2 template)"] + G --> H{mappings empty?} + H -- yes --> I[done] + H -- no --> J[Move Gen1 resources → Gen2 stack] ``` -| Option | Description | -| --------------------------- | ----------------------------------------------------------------------- | -| `--to ` | Required. Target Gen2 stack name for resource migration. | -| `--resourceMappings ` | Optional. Custom resource mappings file with `file://` protocol prefix. | +The forward workflow resolves both stack templates to replace `Ref`/`Fn::GetAtt` with literal values, then pushes those resolved templates via UpdateStack. This ensures no dangling references when resources are later removed. `beforeMove` independently fetches the Gen2 template and discovers which resources to move to the holding stack (preserving test data). The main move then transfers Gen1 resources into the Gen2 stack. -### Exports +### Rollback (Gen2 → Gen1) -| Export | Type | Signature | Description | -| ------------------------------ | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- | -| `AmplifyMigrationRefactorStep` | class | `forward(): Promise; rollback(): Promise; assess(assessment: Assessment): Promise` | Main entry point implementing the `AmplifyMigrationStep` interface. | -| `TemplateGenerator` | class | `initializeForAssessment(): Promise; getStackTemplate(stackId): Promise; getResourcesToMigrate(template, category): string[]; generateSelectedCategories(categories, resourceMap?): Promise` | Core template generation engine. | -| `CategoryTemplateGenerator` | class | `generateGen1PreProcessTemplate(): Promise; generateGen2PreProcessTemplate(): Promise; moveGen2ResourcesToHoldingStack(resolvedGen2Template: CFNTemplate): Promise; generateRefactorTemplates(...): CFNStackRefactorTemplates` | Category-specific template generator. | -| `tryRefactorStack` | function | `async (cfnClient, input, attempts?): Promise<[boolean, FailedRefactorResponse \| undefined]>` | Executes CloudFormation stack refactor operation with polling. | -| `tryUpdateStack` | function | `async (cfnClient, stackName, parameters, templateBody, attempts?): Promise` | Updates a CloudFormation stack with given template. | -| `CfnParameterResolver` | class | `resolve(parameters: Parameter[]): CFNTemplate` | Resolves CloudFormation parameter references. | -| `CFNConditionResolver` | class | `resolve(parameters: Parameter[]): CFNTemplate` | Resolves CloudFormation conditions. | -| `CfnDependencyResolver` | class | `resolve(resourcesToRefactor: string[]): CFNTemplate` | Resolves DependsOn relationships. | -| `CfnOutputResolver` | class | `resolve(logicalResourceIds, stackOutputs, stackResources): CFNTemplate` | Resolves Ref and Fn::GetAtt references. | -| `retrieveOAuthValues` | function | `async (params: RetrieveOAuthValuesParameters): Promise` | Retrieves OAuth provider credentials from Cognito and SSM. | - -### Supported Resource Types +```mermaid +flowchart TD + A[Resolve Gen2 source template] --> B[Resolve Gen1 target template] + B --> C[Build resource mappings by Gen1 logical IDs] + C --> D[Add placeholder if source would be empty] + D --> E["Update Gen2 stack (resolve refs)"] + E --> F["Update Gen1 stack (resolve refs)"] + F --> G{mappings empty?} + G -- yes --> H[skip main move] + G -- no --> I[Move Gen2 resources → Gen1 stack] + H --> J{holding stack exists?} + I --> J + J -- no --> K[done] + J -- yes --> L["Discover holding stack resources"] + L --> M[Add placeholder to holding stack] + M --> N[Move holding resources → Gen2 stack] +``` -The module supports migrating the following CloudFormation resource types: +The rollback workflow mirrors forward but in reverse. It resolves and updates both stacks (necessary if the Gen2 app was redeployed after forward, which introduces fresh `Fn::GetAtt` references). After moving resources back to Gen1, `afterMove` independently fetches the holding stack template and discovers which resources to restore back to Gen2. The holding stack is left with just a placeholder resource — cleanup is handled by `amplify gen2-migration decommission`. -| Category | Resource Types | Refactorer Class | -| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------- | -| `auth` | `AWS::Cognito::UserPool`, `AWS::Cognito::UserPoolClient`, `AWS::Cognito::IdentityPool`, `AWS::Cognito::IdentityPoolRoleAttachment`, `AWS::Cognito::UserPoolDomain` | `AuthCognitoForwardRefactorer` | -| `auth-user-pool-group` | `AWS::Cognito::UserPoolGroup` | (handled by AuthCognitoForwardRefactorer) | -| `storage` (S3) | `AWS::S3::Bucket` | `StorageS3ForwardRefactorer` | -| `storage` (DynamoDB) | `AWS::DynamoDB::Table` | `StorageDynamoForwardRefactorer` | -| `analytics` | `AWS::Kinesis::Stream` | `AnalyticsKinesisForwardRefactorer` | +### plan() Lifecycle -### Resource Discovery +Each `CategoryRefactorer.plan()` follows this sequence: -The refactor step uses `Gen1App.discover()` to iterate all resources from `amplify-meta.json` and dispatches by `resource.key` (a typed `ResourceKey`) via an exhaustive switch statement. The same switch is used by the `assess()` method to record support into an `Assessment` collector. +1. **Discover stacks**: `fetchSourceStackId()` / `fetchDestStackId()` find the nested stacks by logical ID prefix. +2. **Resolve templates**: `resolveSource()` / `resolveTarget()` fetch templates from CloudFormation and run the resolver chain to replace intrinsic functions with actual values. +3. **Build mappings**: `buildResourceMappings()` matches source resources to target resources by type (forward) or by known Gen1 logical IDs (rollback). Returns `ResourceMapping[]` (SDK type). +4. **Add placeholder**: If removing all mapped resources would leave the source stack empty, a `WaitConditionHandle` placeholder is added to the resolved template. +5. **Update stacks**: `updateSource()` / `updateTarget()` push the resolved templates to CloudFormation via `Cfn.update()`. This replaces `Ref`/`Fn::GetAtt` with literal values so resources can be safely removed later. Dedup: if a stack was already claimed by a previous refactorer, the update is skipped. +6. **Before move** (forward only): Independently fetches the Gen2 template, discovers matching resources, and moves them to a temporary holding stack via `Cfn.refactor()`. +7. **Move**: The main refactor — moves resources from source to target via `Cfn.refactor()`. Skipped if mappings are empty. +8. **After move** (rollback only): Independently fetches the holding stack template, discovers matching resources, and restores them back to Gen2. -Stateless categories (function, api) are skipped during refactoring — they have no stateful resources to move. +### Resource Mapping -### Multi-Resource Category Validation +Resource mappings determine which source resources move to which target logical IDs. The mapping strategy differs between forward and rollback. -Refactorers assume a single resource per category. The `validateSingleResourcePerCategory()` function throws `AmplifyError` if any refactorer category (auth, storage, analytics) has more than one resource. +**Forward** uses type-based matching. For each source resource, it scans the target stack for resources of the same CloudFormation type. Each target can only be matched once (tracked via a `usedTargetIds` set to prevent two source resources from claiming the same target). -## Dependencies +Happy paths: -**Internal:** - -- `gen2-migration-core` — `AmplifyMigrationStep` base class, `Plan` class, `SpinningLogger` class, `AmplifyGen2MigrationValidations` for lock status validation - -**External:** -| Package | Purpose | -|---------|---------| -| `@aws-sdk/client-cloudformation` | CloudFormation operations: DescribeStacks, DescribeStackResources, GetTemplate, UpdateStack, CreateStackRefactor, ExecuteStackRefactor, DescribeStackRefactor | -| `@aws-sdk/client-ssm` | SSM GetParameter for retrieving Sign In With Apple private key during OAuth migrations | -| `@aws-sdk/client-cognito-identity-provider` | DescribeIdentityProvider for retrieving OAuth provider details (client_id, client_secret) | -| `@aws-sdk/client-sts` | GetCallerIdentity for AWS account ID used in ARN construction | -| `@aws-amplify/amplify-cli-core` | AmplifyError for structured error handling, stateManager for project state | -| `@aws-amplify/amplify-prompts` | prompter for interactive category selection (yesOrNo) | -| `fs-extra` | File system operations for reading resource mappings JSON files | -| `node:fs/promises` | Creating templates output directory | -| `node:assert` | Runtime assertions for validation throughout the codebase | - -## Code Patterns - -### Resolver Chain Pattern - -Four resolver classes are applied sequentially to transform CloudFormation templates. Each resolver handles a specific aspect of template resolution, producing a fully resolved template ready for refactoring. The order matters because each resolver depends on previous transformations. - -```typescript -// Order: Parameter → Output → Dependency → Condition -const gen1ParametersResolvedTemplate = new CfnParameterResolver(oldGen1Template, stackName).resolve(Parameters); -const gen1TemplateWithOutputsResolved = new CfnOutputResolver(gen1ParametersResolvedTemplate, region, accountId).resolve( - logicalResourceIds, - Outputs, - stackResources, -); -const gen1TemplateWithDepsResolved = new CfnDependencyResolver(gen1TemplateWithOutputsResolved).resolve(logicalResourceIds); -const gen1TemplateWithConditionsResolved = new CFNConditionResolver(gen1TemplateWithDepsResolved).resolve(Parameters); -``` +- One source resource of type X, one target resource of type X → maps 1:1 +- Multiple source resources of different types, each with one target match → maps independently +- Source has no resources of the declared types → empty mappings, move is skipped -### Logical ID Mapping +Unhappy paths: -Maps Gen1 resource logical IDs to Gen2 equivalents based on resource type. Handles special cases like UserPoolClient (Web vs Native) and UserPoolGroup naming conventions. +- Source resource has zero matching targets → throws "has no corresponding target resource" +- Source resource has multiple matching targets → throws "has multiple corresponding target resources" +- Two source resources of the same type, one target → first claims the target, second throws "has no corresponding target resource" -```typescript -const GEN1_RESOURCE_TYPE_TO_LOGICAL_RESOURCE_IDS_MAP = new Map([ - [CFN_AUTH_TYPE.UserPool.valueOf(), 'UserPool'], - [CFN_AUTH_TYPE.UserPoolClient.valueOf(), 'UserPoolClientWeb'], - [CFN_AUTH_TYPE.IdentityPool.valueOf(), 'IdentityPool'], -]); -``` +Categories with multiple resources of the same type (e.g., auth with two `UserPoolClient` resources) must override `match()` to disambiguate. Auth Cognito uses the logical ID pattern (Web vs Native), and UserPoolGroups matches by `GroupName` property. -### Polling with Timeout +**Rollback** uses `targetLogicalId()` — each subclass maps Gen2 resource types to known Gen1 logical IDs (e.g., `AWS::Cognito::UserPool` → `UserPool`). Resources whose Gen1 logical ID already exists in the target stack are skipped (they were never moved, or were already rolled back). -CloudFormation operations are asynchronous. The module polls for completion state with configurable attempts and intervals. Stack updates poll every 1.5s for 60 attempts (90s), refactor operations poll every 12s for 300 attempts (60min). +### Template Resolution -```typescript -const POLL_ATTEMPTS = 300; -const POLL_INTERVAL_MS = 12000; -do { - const response = await cfnClient.send(new DescribeStackRefactorCommand({ StackRefactorId })); - if (exitCondition(response)) return response; - await new Promise((res) => setTimeout(() => res(''), POLL_INTERVAL_MS)); - attempts--; -} while (attempts > 0); -``` +Templates are resolved to replace CloudFormation intrinsic functions with literal values. This is necessary because the StackRefactor API submits new template bodies for both stacks, and any `Ref`/`Fn::GetAtt` pointing to a resource being moved would become a dangling reference. -### Category Configuration Map +**Forward (Gen1 source):** parameters → outputs → dependencies → conditions +**Forward (Gen2 target):** dependencies → outputs +**Rollback (Gen2 source):** parameters → outputs → dependencies +**Rollback (Gen1 target):** no resolution (template used as-is) -Uses a configuration object to define which CloudFormation resource types can be migrated for each category. This enables extensibility for new categories. +The dependency resolver unconditionally strips all `DependsOn` from templates. `DependsOn` only controls deployment ordering, which is irrelevant during refactor since all resources already exist. -```typescript -private readonly categoryGeneratorConfig = { - auth: { resourcesToRefactor: AUTH_RESOURCES_TO_REFACTOR }, - 'auth-user-pool-group': { resourcesToRefactor: AUTH_USER_POOL_GROUP_RESOURCES_TO_REFACTOR }, - storage: { resourcesToRefactor: STORAGE_RESOURCES_TO_REFACTOR }, -} as const; -``` +### Deferred Template Fetching -### ARN Construction +The `RefactorBlueprint` carries only mappings and stack IDs — no templates. Templates are fetched fresh at execution time inside each operation's `execute()` closure. This ensures that when multiple refactorers target the same stack (e.g., auth Cognito and auth UserPoolGroups both target the Gen2 auth stack), the second refactorer sees the stack as it actually is after the first refactorer has already modified it. -Constructs ARNs for various AWS resource types when resolving `Fn::GetAtt` references. Uses region and account ID from AWS context. +`updateSource`/`updateTarget` are the exception — they use plan-time resolved templates because they run before any moves and the templates are still fresh. -```typescript -case 'AWS::Cognito::UserPool': - return { Arn: `arn:aws:cognito-idp:${this.region}:${this.accountId}:userpool/${resourceIdentifier}` }; -case 'AWS::S3::Bucket': - return { Arn: `arn:aws:s3:::${resourceIdentifier}` }; -``` +### Update Deduplication -### Graceful No-Op Handling +When two refactorers share a stack (e.g., both auth refactorers target the same Gen2 auth stack), only the first one should update it. The shared `Cfn` instance tracks "update claims" — the first refactorer claims the stack at plan time, and the second sees it's already claimed and returns no update operations. -Stack update operations handle 'No updates are to be performed' responses gracefully, returning `UPDATE_COMPLETE` instead of throwing errors. +`Cfn.update()` also tracks completed updates so that the `isUpdateClaimed()` check reflects both plan-time claims and execution-time completions. -```typescript -try { - await cfnClient.send(new UpdateStackCommand({ ... })); - return pollStackForCompletionState(cfnClient, stackName, attempts); -} catch (e) { - if (e.message.includes('No updates are to be performed')) { - return UPDATE_COMPLETE; - } - throw e; -} -``` +### Cfn.refactor() Internals -### Resource Mapping File Protocol +`Cfn.refactor()` accepts `ResourceMapping[]` and handles all template manipulation internally: -Custom resource mappings must use `file://` protocol prefix for security and clarity. The module validates this prefix before reading the JSON file. +1. Checks if the target stack exists (only holding stacks may be absent — they're created by `EnableStackCreation`). +2. Fetches both stack templates (or uses an empty template for absent holding stacks). +3. Moves resources between templates based on the mappings. +4. Submits the refactor via `CreateStackRefactor` + `ExecuteStackRefactor`. +5. Waits for both stacks to reach their final state (update or create complete). -```typescript -if (!this.resourceMappings.startsWith(FILE_PROTOCOL_PREFIX)) { - throw new Error(`Resource mappings path must start with ${FILE_PROTOCOL_PREFIX}. Example: file:///path/to/mappings.json`); -} -const resourceMapPath = this.resourceMappings.split(FILE_PROTOCOL_PREFIX)[1]; -``` +## Holding Stack -## Known Limitations +During forward migration, Gen2 resources are moved to a temporary holding stack before Gen1 resources are moved into the Gen2 stack. This preserves Gen2 test data and enables rollback. -- Multiple resources of the same type (e.g., multiple DynamoDB tables) are matched arbitrarily by type alone—the mapping may not preserve correct resource correspondence without explicit `--resourceMappings` -- The `--resourceMappings` CLI option is currently disabled (commented out in code) -- Auth with OAuth providers is known to be broken—fails on deployment after refactor when trying to replace IdP that already exists -- The refactor operation has a 60-minute timeout (300 attempts × 12s)—very large stacks may timeout +**Naming:** `{gen2CategoryStackPrefix}-{cfnHashSuffix}-holding` (truncated to 128 chars). -## Holding Stack (Gen2 Resource Retention) +**Forward:** Gen2 resources → holding stack → Gen1 resources → Gen2 stack. +**Rollback:** Gen2 resources → Gen1 stack → holding resources → Gen2 stack → delete holding stack. -During forward migration, Gen2 stateful resources are moved to a temporary "holding stack" instead of being deleted. This preserves test data that customers may have created while testing the Gen2 deployment. +## Supported Categories -### How It Works +| Category | Resource Types | Forward Refactorer | Rollback Refactorer | +| ---------------------- | ---------------------------------------------------------------------------------- | ------------------------------------- | -------------------------------------- | +| auth (Cognito) | UserPool, UserPoolClient, IdentityPool, IdentityPoolRoleAttachment, UserPoolDomain | `AuthCognitoForwardRefactorer` | `AuthCognitoRollbackRefactorer` | +| auth (UserPool Groups) | UserPoolGroup | `AuthUserPoolGroupsForwardRefactorer` | `AuthUserPoolGroupsRollbackRefactorer` | +| storage (S3) | S3::Bucket | `StorageS3ForwardRefactorer` | `StorageS3RollbackRefactorer` | +| storage (DynamoDB) | DynamoDB::Table | `StorageDynamoForwardRefactorer` | `StorageDynamoRollbackRefactorer` | +| analytics (Kinesis) | Kinesis::Stream | `AnalyticsKinesisForwardRefactorer` | `AnalyticsKinesisRollbackRefactorer` | -**Forward Migration:** +Auth Cognito and UserPoolGroups are separate refactorers because they come from different Gen1 stacks but map to the same Gen2 auth stack. -1. Gen1 stack is pre-processed (references resolved) -2. A holding stack is created: `{gen2CategoryStackPrefix}-{cfnHashSuffix}-holding` (the CloudFormation hash suffix after the last dash is preserved for uniqueness; the prefix is truncated if the name would exceed 128 characters) -3. Gen2 stateful resources are moved to the holding stack via StackRefactor -4. Gen1 resources are moved to Gen2 stack via StackRefactor +## Validations -**Rollback:** +Before execution, the `Plan` runs a validation pass over all operations. Each operation can optionally return a validation check that runs before the user is asked to confirm. -1. Resources are moved from Gen2 back to Gen1 (existing logic) -2. If a holding stack exists, resources are restored from holding stack to Gen2 -3. The empty holding stack is deleted +| Validation | When | What it checks | +| ---------------------- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Lock status | Before all operations | Fetches the Gen1 root stack's CloudFormation stack policy via `GetStackPolicy` and verifies it matches the expected deny-all policy (`Deny Update:* on *`). This confirms the stack was locked by `amplify gen2-migration lock`, which prevents accidental `amplify push` operations from modifying the Gen1 stack during migration. Fails if no policy exists or if the policy doesn't match exactly. | +| Source stack changeset | Per updateSource operation | Creates a CloudFormation changeset with the resolved template and checks that it produces no unexpected changes. The resolved template should only differ from the deployed template in that intrinsic functions (`Ref`, `Fn::GetAtt`) are replaced with literal values — no resource additions, deletions, or property changes should appear. A non-empty changeset is flagged as a validation failure and the report is shown to the user. | +| Target stack changeset | Per updateTarget operation | Same as source — verifies the resolved target template introduces no unexpected changes. | -**Decommission:** -After successful migration, run `amplify gen2-migration decommission` to delete any remaining holding stacks. +Validations that fail are reported in a summary table. The user can choose to proceed despite failures, but the report gives visibility into what will change. -### Holding Stack Structure +## CLI -```yaml -AWSTemplateFormatVersion: '2010-09-09' -Description: 'Temporary holding stack for Gen2 migration' -Metadata: - AmplifyMigration: - SourceCategoryStack: 'arn:aws:cloudformation:...' - Category: 'auth' -Resources: - # Gen2 resources moved here via StackRefactor - UserPool: - Type: AWS::Cognito::UserPool - ... +```bash +amplify gen2-migration refactor --to ``` -### Key Design Decisions - -- **One holding stack per category**: Matches the per-category refactor flow -- **Logical IDs preserved**: Gen2 logical IDs are kept in the holding stack, simplifying rollback -- **Graceful rollback**: If holding stack is missing during rollback, a warning is logged and rollback continues -- **Standalone stack**: Not nested under Gen1 or Gen2 to avoid CDK interference - -### Related Files - -| File | Purpose | -| ------------------ | ------------------------------------------------------------ | -| `holding-stack.ts` | Utilities for creating, finding, and deleting holding stacks | -| `decommission.ts` | Decommission command implementation | - -## AI Development Notes - -**Important considerations:** - -- The module uses CloudFormation's StackRefactor API which atomically moves resources between stacks—this is a relatively new AWS feature and may have limitations not documented here -- Four resolver classes must be applied in the correct order: Parameter → Output → Dependency → Condition. The order matters because each resolver depends on previous transformations -- The logical ID mapping between Gen1 and Gen2 is critical—UserPoolClient has special handling (Web vs Native) and UserPoolGroup uses CDK hash suffixes that must be stripped -- OAuth migrations require credentials from both Cognito (client_id, client_secret) and SSM (Sign In With Apple private key)—ensure proper IAM permissions -- The module supports both forward migration (Gen1→Gen2) and rollback (Gen2→Gen1) operations, but rollback has different logical ID mapping logic -- Category stacks are identified by parsing the nested stack's `Description` field as JSON and checking the `stackType` property (e.g., `auth` vs `UserPool-Groups`). - -**Common pitfalls:** - -- The `--to` parameter is required and must point to a valid Gen2 stack name—`InputValidationError` is thrown if missing -- Resource mappings file must use `file://` protocol prefix (e.g., `file:///path/to/mappings.json`)—relative paths without protocol will fail -- User pool groups and auth resources are in the same stack in Gen2 but different stacks in Gen1—the module handles this with 'auth-user-pool-group' category -- Holding stacks must be cleaned up after successful migration using `amplify gen2-migration decommission` +## Dependencies -**Testing guidance:** -Test with deployed Amplify Gen1 projects that have auth and storage categories. Verify the assessment correctly identifies resources to migrate. Test with `--resourceMappings` to verify custom mapping support. Test OAuth migrations with social login providers (Google, Facebook, Sign In With Apple). Verify rollback behavior when refactor fails mid-operation. Test rollback operation (Gen2→Gen1) to ensure bidirectional support works. +| Package | Purpose | +| ------------------------------------------- | ----------------------------------------------------------------------------- | +| `@aws-sdk/client-cloudformation` | Stack operations: describe, update, refactor, changeset, delete, get template | +| `@aws-sdk/client-ssm` | Sign In With Apple private key retrieval | +| `@aws-sdk/client-cognito-identity-provider` | OAuth provider credential retrieval | +| `@aws-sdk/client-sts` | Account ID for ARN construction | diff --git a/packages/amplify-cli/package.json b/packages/amplify-cli/package.json index 89caa667a6d..5d311cf5d93 100644 --- a/packages/amplify-cli/package.json +++ b/packages/amplify-cli/package.json @@ -89,7 +89,7 @@ "amplify-python-function-runtime-provider": "2.4.54", "aws-cdk-lib": "~2.189.1", "bottleneck": "2.19.5", - "cdk-from-cfn": "^0.271.0", + "cdk-from-cfn": "^0.291.0", "chalk": "^4.1.1", "ci-info": "^3.8.0", "cli-table3": "^0.6.0", diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/_framework/clients/cloudformation.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/_framework/clients/cloudformation.ts index 4093eb66526..3f953fe3322 100644 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/_framework/clients/cloudformation.ts +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/_framework/clients/cloudformation.ts @@ -3,6 +3,7 @@ import * as cloudformation from '@aws-sdk/client-cloudformation'; import { MigrationApp } from '../app'; import { JSONUtilities } from '@aws-amplify/amplify-cli-core'; import * as fs from 'fs-extra'; +import * as path from 'path'; /** * Mock for the AWS CloudFormation service client (`@aws-sdk/client-cloudformation`). @@ -34,16 +35,25 @@ export class CloudFormationMock { public readonly mock; private readonly _stackNameForResource: Map = new Map(); - - private readonly _describeStackCounter: Map = new Map(); + private readonly _templateForStack: Map = new Map(); constructor(private readonly app: MigrationApp) { this.mock = mockClient(cloudformation.CloudFormationClient); + + const refactorInputPath = this.app.snapshots.refactor.props.inputPath; + for (const stackFile of fs.readdirSync(refactorInputPath).filter((f) => f.endsWith('.template.json'))) { + const stackName = stackFile.replace('.template.json', ''); + this._templateForStack.set(stackName, fs.readFileSync(path.join(refactorInputPath, stackFile), { encoding: 'utf-8' })); + } + this.mockDescribeStackResources(); this.mockDescribeStacks(); this.mockGetTemplate(); this.mockCreateStackRefactor(); this.mockDescribeStackRefactor(); + this.mockCreateChangeSet(); + this.mockDescribeChangeSet(); + this.mockUpdateStack(); } public stackNameForResource(physicalId: string) { @@ -99,47 +109,25 @@ export class CloudFormationMock { this.mock .on(cloudformation.DescribeStacksCommand) .callsFake(async (input: cloudformation.DescribeStacksInput): Promise => { - const invocationCount = this._describeStackCounter.get(input.StackName!) ?? 0; - this._describeStackCounter.set(input.StackName!, invocationCount + 1); - if (input.StackName!.endsWith('-holding')) { - switch (invocationCount) { - case 0: - // first time is before executing refactor when we check if it already - // exists. simulate a standard pre-refactor state where it doesn't. - throw new cloudformation.CloudFormationServiceException({ - name: 'ValidationError', - message: `stack ${input.StackName} does not exist`, - $fault: 'client', - $metadata: {}, - }); - case 1: - // second time is after we execute the refactor and CloudFormation is supposed - // to create the stack for us. all we need is a completion status here. - return { - Stacks: [ - { - StackName: input.StackName, - StackStatus: 'UPDATE_COMPLETE', - CreationTime: undefined, - }, - ], - }; - default: - throw new Error(`Unexpected invocation of DescribeStacks with input: ${JSON.stringify(input)}`); - } + if (!this._templateForStack.has(input.StackName!)) { + throw new cloudformation.CloudFormationServiceException({ + name: 'ValidationError', + message: `stack ${input.StackName} does not exist`, + $fault: 'client', + $metadata: {}, + }); } - const parameters = this.app.cfnParametersForStack(input.StackName!); - const outputs = this.app.cfnOutputsForStack(input.StackName!); - const description = this.app.cfnDescriptionForStack(input.StackName!); + + const preExistingStack = fs.existsSync(this.app.templatePathForStack(input.StackName!)); return { Stacks: [ { StackName: input.StackName!, - Parameters: parameters, - CreationTime: undefined, - StackStatus: 'UPDATE_COMPLETE', - Description: description, - Outputs: outputs, + CreationTime: new Date(), + StackStatus: cloudformation.StackStatus.UPDATE_COMPLETE, + Parameters: preExistingStack ? this.app.cfnParametersForStack(input.StackName!) : undefined, + Description: preExistingStack ? this.app.cfnDescriptionForStack(input.StackName!) : undefined, + Outputs: preExistingStack ? this.app.cfnOutputsForStack(input.StackName!) : undefined, }, ], }; @@ -150,9 +138,13 @@ export class CloudFormationMock { this.mock .on(cloudformation.GetTemplateCommand) .callsFake(async (input: cloudformation.GetTemplateCommandInput): Promise => { - const templatePath = this.app.templatePathForStack(input.StackName!); + const templateBody = this._templateForStack.get(input.StackName!); + if (!templateBody) { + throw new Error(`Unable to find template for stack ${input.StackName}`); + } return { - TemplateBody: fs.readFileSync(templatePath, { encoding: 'utf-8' }), + // create a clone so our code doesn't mutate the inner objects. + TemplateBody: JSON.stringify(JSON.parse(templateBody)), $metadata: {}, }; }); @@ -162,6 +154,10 @@ export class CloudFormationMock { this.mock.on(cloudformation.CreateStackRefactorCommand).callsFake( // eslint-disable-next-line @typescript-eslint/no-unused-vars async (input: cloudformation.CreateStackRefactorCommandInput): Promise => { + const source = input.StackDefinitions![0]; + const target = input.StackDefinitions![1]; + this._setTemplate(source.StackName!, source.TemplateBody!); + this._setTemplate(target.StackName!, target.TemplateBody!); return { StackRefactorId: `${Date.now()}`, $metadata: {} }; }, ); @@ -175,4 +171,35 @@ export class CloudFormationMock { }, ); } + + private mockCreateChangeSet() { + this.mock.on(cloudformation.CreateChangeSetCommand).callsFake( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + async (_input: cloudformation.CreateChangeSetCommandInput): Promise => { + return { $metadata: {} }; + }, + ); + } + + private mockDescribeChangeSet() { + this.mock.on(cloudformation.DescribeChangeSetCommand).callsFake( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + async (_input: cloudformation.DescribeChangeSetCommandInput): Promise => { + return { Status: 'CREATE_COMPLETE', Changes: [], $metadata: {} }; + }, + ); + } + + private mockUpdateStack() { + this.mock + .on(cloudformation.UpdateStackCommand) + .callsFake(async (input: cloudformation.UpdateStackCommandInput): Promise => { + this._setTemplate(input.StackName!, input.TemplateBody!); + return { StackId: input.StackName, $metadata: {} }; + }); + } + + private _setTemplate(stackName: string, templateBody: string) { + this._templateForStack.set(stackName, templateBody); + } } diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate.test.ts index d692cf96f55..41c5aa3ffb8 100644 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate.test.ts +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate.test.ts @@ -66,6 +66,10 @@ test('mood-board snapshot', async () => { await testSnapshot('mood-board', { buildSpec: BUILDSPEC }); }); +test('store-locator snapshot', async () => { + await testSnapshot('store-locator', { buildSpec: BUILDSPEC }); +}); + async function testSnapshot(appName: string, appOptions?: MigrationAppOptions, customize?: (app: MigrationApp) => Promise) { await MigrationApp.run( appName, diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/analytics/kinesis.generator.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/analytics/kinesis.generator.test.ts index ecfe9933b16..d17abb634af 100644 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/analytics/kinesis.generator.test.ts +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/analytics/kinesis.generator.test.ts @@ -38,7 +38,12 @@ describe('AnalyticsKinesisGenerator', () => { const gen1App = createMockGen1App(); (gen1App.meta as jest.Mock).mockReturnValue(undefined); - const generator = new AnalyticsKinesisGenerator(gen1App, backendGenerator, outputDir, 'myKinesis'); + const generator = new AnalyticsKinesisGenerator(gen1App, backendGenerator, outputDir, { + category: 'analytics', + resourceName: 'myKinesis', + service: 'Kinesis', + key: 'analytics:Kinesis', + }); await expect(generator.plan()).rejects.toThrow('not found in amplify-meta.json'); }); @@ -49,7 +54,12 @@ describe('AnalyticsKinesisGenerator', () => { otherResource: { service: 'Kinesis' }, }); - const generator = new AnalyticsKinesisGenerator(gen1App, backendGenerator, outputDir, 'myKinesis'); + const generator = new AnalyticsKinesisGenerator(gen1App, backendGenerator, outputDir, { + category: 'analytics', + resourceName: 'myKinesis', + service: 'Kinesis', + key: 'analytics:Kinesis', + }); await expect(generator.plan()).rejects.toThrow('not found in amplify-meta.json'); }); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/auth/auth.generator.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/auth/auth.generator.test.ts index c513082c4b1..74da9fb0617 100644 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/auth/auth.generator.test.ts +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/auth/auth.generator.test.ts @@ -83,7 +83,12 @@ describe('AuthGenerator', () => { throw new Error("Category 'auth' not found in amplify-meta.json"); }); - const generator = new AuthGenerator(gen1App, backendGenerator, outputDir); + const generator = new AuthGenerator(gen1App, backendGenerator, outputDir, { + category: 'auth', + resourceName: 'testAuth', + service: 'Cognito', + key: 'auth:Cognito', + }); await expect(generator.plan()).rejects.toThrow("Category 'auth' not found"); }); @@ -93,7 +98,12 @@ describe('AuthGenerator', () => { (gen1App.metaOutput as jest.Mock).mockReturnValue('us-east-1_abc123'); (gen1App.aws.fetchUserPool as jest.Mock).mockRejectedValue(new Error("User pool 'us-east-1_abc123' not found")); - const generator = new AuthGenerator(gen1App, backendGenerator, outputDir); + const generator = new AuthGenerator(gen1App, backendGenerator, outputDir, { + category: 'auth', + resourceName: 'testAuth', + service: 'Cognito', + key: 'auth:Cognito', + }); await expect(generator.plan()).rejects.toThrow("User pool 'us-east-1_abc123' not found"); }); @@ -122,7 +132,12 @@ describe('AuthGenerator', () => { const addImportSpy = jest.spyOn(backendGenerator, 'addImport'); const addPropertySpy = jest.spyOn(backendGenerator, 'addDefineBackendProperty'); - const generator = new AuthGenerator(gen1App, backendGenerator, outputDir); + const generator = new AuthGenerator(gen1App, backendGenerator, outputDir, { + category: 'auth', + resourceName: 'testAuth', + service: 'Cognito', + key: 'auth:Cognito', + }); const ops = await generator.plan(); expect(ops).toHaveLength(1); @@ -160,7 +175,12 @@ describe('AuthGenerator', () => { (gen1App.aws.fetchIdentityGroups as jest.Mock).mockResolvedValue([]); (gen1App.aws.fetchIdentityPool as jest.Mock).mockResolvedValue(undefined); - const generator = new AuthGenerator(gen1App, backendGenerator, outputDir); + const generator = new AuthGenerator(gen1App, backendGenerator, outputDir, { + category: 'auth', + resourceName: 'testAuth', + service: 'Cognito', + key: 'auth:Cognito', + }); generator.addFunctionAuthAccess({ resourceName: 'adminFunc', permissions: { manageUsers: true } }); const ops = await generator.plan(); @@ -201,7 +221,12 @@ describe('ReferenceAuthGenerator', () => { const addImportSpy = jest.spyOn(backendGenerator, 'addImport'); - const generator = new ReferenceAuthGenerator(gen1App, backendGenerator, outputDir); + const generator = new ReferenceAuthGenerator(gen1App, backendGenerator, outputDir, { + category: 'auth', + resourceName: 'testAuth', + service: 'Cognito', + key: 'auth:Cognito', + }); const ops = await generator.plan(); expect(ops).toHaveLength(1); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/backend.generator.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/backend.generator.test.ts index 9b379ae11a4..0c541332d4f 100644 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/backend.generator.test.ts +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/backend.generator.test.ts @@ -86,39 +86,6 @@ describe('BackendGenerator', () => { }); }); - describe('ensureStorageStack', () => { - it('emits storageStack from backend.storage.stack when S3 exists', () => { - const gen = new BackendGenerator(outputDir); - gen.addImport('./storage/resource', ['storage']); - gen.addDefineBackendProperty(factory.createShorthandPropertyAssignment('storage')); - gen.ensureStorageStack(true); - - return verifyBackendTs(gen, (content) => { - expect(content).toContain('backend.storage.stack'); - }); - }); - - it('emits storageStack via createStack when no S3', () => { - const gen = new BackendGenerator(outputDir); - gen.ensureStorageStack(false); - - return verifyBackendTs(gen, (content) => { - expect(content).toContain("backend.createStack('storage')"); - }); - }); - - it('emits storageStack exactly once', () => { - const gen = new BackendGenerator(outputDir); - gen.ensureStorageStack(false); - gen.ensureStorageStack(false); - - return verifyBackendTs(gen, (content) => { - const matches = content.match(/const storageStack/g) || []; - expect(matches).toHaveLength(1); - }); - }); - }); - describe('createDynamoDBStack', () => { it('returns unique variable names for different resources', () => { const gen = new BackendGenerator(outputDir); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/data/data.generator.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/data/data.generator.test.ts index 0edf8e3b1fc..09250a894e0 100644 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/data/data.generator.test.ts +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/data/data.generator.test.ts @@ -59,7 +59,12 @@ describe('DataGenerator', () => { throw new Error("Category 'api' not found"); }); - const generator = new DataGenerator(gen1App, backendGenerator, outputDir); + const generator = new DataGenerator(gen1App, backendGenerator, outputDir, { + category: 'api', + resourceName: 'testApi', + service: 'AppSync', + key: 'api:AppSync', + }); await expect(generator.plan()).rejects.toThrow("Category 'api' not found"); }); @@ -70,7 +75,12 @@ describe('DataGenerator', () => { throw new Error("Expected exactly one 'AppSync' resource"); }); - const generator = new DataGenerator(gen1App, backendGenerator, outputDir); + const generator = new DataGenerator(gen1App, backendGenerator, outputDir, { + category: 'api', + resourceName: 'testApi', + service: 'AppSync', + key: 'api:AppSync', + }); await expect(generator.plan()).rejects.toThrow("Expected exactly one 'AppSync' resource"); }); @@ -82,7 +92,12 @@ describe('DataGenerator', () => { throw new Error('no GraphQLAPIIdOutput'); }); - const generator = new DataGenerator(gen1App, backendGenerator, outputDir); + const generator = new DataGenerator(gen1App, backendGenerator, outputDir, { + category: 'api', + resourceName: 'testApi', + service: 'AppSync', + key: 'api:AppSync', + }); await expect(generator.plan()).rejects.toThrow('no GraphQLAPIIdOutput'); }); @@ -93,14 +108,24 @@ describe('DataGenerator', () => { (gen1App.metaOutput as jest.Mock).mockReturnValue('api-123'); (gen1App.aws.fetchGraphqlApi as jest.Mock).mockResolvedValue(undefined); - const generator = new DataGenerator(gen1App, backendGenerator, outputDir); + const generator = new DataGenerator(gen1App, backendGenerator, outputDir, { + category: 'api', + resourceName: 'testApi', + service: 'AppSync', + key: 'api:AppSync', + }); await expect(generator.plan()).rejects.toThrow("AppSync API 'api-123' not found"); }); it('constructs DataRenderer with envName', () => { const gen1App = createMockGen1App(); - new DataGenerator(gen1App, backendGenerator, outputDir); + new DataGenerator(gen1App, backendGenerator, outputDir, { + category: 'api', + resourceName: 'testApi', + service: 'AppSync', + key: 'api:AppSync', + }); expect(DataRenderer).toHaveBeenCalledWith('main'); }); @@ -127,7 +152,12 @@ describe('DataGenerator', () => { }); it('returns one operation describing data/resource.ts', async () => { - const generator = new DataGenerator(gen1App, backendGenerator, outputDir); + const generator = new DataGenerator(gen1App, backendGenerator, outputDir, { + category: 'api', + resourceName: 'testApi', + service: 'AppSync', + key: 'api:AppSync', + }); const ops = await generator.plan(); expect(ops).toHaveLength(1); @@ -136,7 +166,12 @@ describe('DataGenerator', () => { }); it('calls renderer.render with schema, tableMappings, authorizationModes, and logging', async () => { - const generator = new DataGenerator(gen1App, backendGenerator, outputDir); + const generator = new DataGenerator(gen1App, backendGenerator, outputDir, { + category: 'api', + resourceName: 'testApi', + service: 'AppSync', + key: 'api:AppSync', + }); const ops = await generator.plan(); await ops[0].execute(); @@ -157,7 +192,12 @@ describe('DataGenerator', () => { logConfig: { fieldLogLevel: 'ERROR', excludeVerboseContent: true }, }); - const generator = new DataGenerator(gen1App, backendGenerator, outputDir); + const generator = new DataGenerator(gen1App, backendGenerator, outputDir, { + category: 'api', + resourceName: 'testApi', + service: 'AppSync', + key: 'api:AppSync', + }); const ops = await generator.plan(); await ops[0].execute(); @@ -173,7 +213,12 @@ describe('DataGenerator', () => { logConfig: { fieldLogLevel: 'NONE' }, }); - const generator = new DataGenerator(gen1App, backendGenerator, outputDir); + const generator = new DataGenerator(gen1App, backendGenerator, outputDir, { + category: 'api', + resourceName: 'testApi', + service: 'AppSync', + key: 'api:AppSync', + }); const ops = await generator.plan(); await ops[0].execute(); @@ -182,7 +227,12 @@ describe('DataGenerator', () => { }); it('writes renderer output to amplify/data/resource.ts via printNodes', async () => { - const generator = new DataGenerator(gen1App, backendGenerator, outputDir); + const generator = new DataGenerator(gen1App, backendGenerator, outputDir, { + category: 'api', + resourceName: 'testApi', + service: 'AppSync', + key: 'api:AppSync', + }); const ops = await generator.plan(); await ops[0].execute(); @@ -195,7 +245,12 @@ describe('DataGenerator', () => { const addImportSpy = jest.spyOn(backendGenerator, 'addImport'); const addPropertySpy = jest.spyOn(backendGenerator, 'addDefineBackendProperty'); - const generator = new DataGenerator(gen1App, backendGenerator, outputDir); + const generator = new DataGenerator(gen1App, backendGenerator, outputDir, { + category: 'api', + resourceName: 'testApi', + service: 'AppSync', + key: 'api:AppSync', + }); const ops = await generator.plan(); await ops[0].execute(); @@ -216,7 +271,12 @@ describe('DataGenerator', () => { const addStatementSpy = jest.spyOn(backendGenerator, 'addStatement'); - const generator = new DataGenerator(gen1App, backendGenerator, outputDir); + const generator = new DataGenerator(gen1App, backendGenerator, outputDir, { + category: 'api', + resourceName: 'testApi', + service: 'AppSync', + key: 'api:AppSync', + }); const ops = await generator.plan(); await ops[0].execute(); @@ -233,7 +293,12 @@ describe('DataGenerator', () => { const addStatementSpy = jest.spyOn(backendGenerator, 'addStatement'); - const generator = new DataGenerator(gen1App, backendGenerator, outputDir); + const generator = new DataGenerator(gen1App, backendGenerator, outputDir, { + category: 'api', + resourceName: 'testApi', + service: 'AppSync', + key: 'api:AppSync', + }); const ops = await generator.plan(); await ops[0].execute(); @@ -248,7 +313,12 @@ describe('DataGenerator', () => { const addStatementSpy = jest.spyOn(backendGenerator, 'addStatement'); - const generator = new DataGenerator(gen1App, backendGenerator, outputDir); + const generator = new DataGenerator(gen1App, backendGenerator, outputDir, { + category: 'api', + resourceName: 'testApi', + service: 'AppSync', + key: 'api:AppSync', + }); const ops = await generator.plan(); await ops[0].execute(); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/function/function.generator.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/function/function.generator.test.ts index 041b2748f4f..21701ad68d4 100644 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/function/function.generator.test.ts +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/function/function.generator.test.ts @@ -73,7 +73,7 @@ function createFunctionGenerator(overrides: { backendGenerator: overrides.backendGenerator, packageJsonGenerator: overrides.packageJsonGenerator, outputDir: overrides.outputDir, - resourceName: overrides.resourceName ?? 'myFunc', + resource: { category: 'function', resourceName: overrides.resourceName ?? 'myFunc', service: 'Lambda', key: 'function:Lambda' }, category: 'function', }); } diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/rest-api/rest-api.generator.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/rest-api/rest-api.generator.test.ts index 4fc8d07c23c..fc62041718e 100644 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/rest-api/rest-api.generator.test.ts +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/rest-api/rest-api.generator.test.ts @@ -42,7 +42,12 @@ describe('RestApiGenerator', () => { (gen1App.meta as jest.Mock).mockImplementation((cat: string) => (cat === 'api' ? API_META : undefined)); (gen1App.cliInputs as jest.Mock).mockReturnValue(CLI_INPUTS); - const generator = new RestApiGenerator(gen1App, backendGenerator, 'myApi'); + const generator = new RestApiGenerator(gen1App, backendGenerator, { + category: 'api', + resourceName: 'myApi', + service: 'API Gateway', + key: 'api:API Gateway', + }); const ops = await generator.plan(); expect(ops).toHaveLength(1); @@ -59,7 +64,12 @@ describe('RestApiGenerator', () => { const addStatementSpy = jest.spyOn(backendGenerator, 'addStatement'); const ensureBranchNameSpy = jest.spyOn(backendGenerator, 'ensureBranchName'); - const generator = new RestApiGenerator(gen1App, backendGenerator, 'myApi'); + const generator = new RestApiGenerator(gen1App, backendGenerator, { + category: 'api', + resourceName: 'myApi', + service: 'API Gateway', + key: 'api:API Gateway', + }); const ops = await generator.plan(); await ops[0].execute(); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/storage/dynamodb.generator.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/storage/dynamodb.generator.test.ts index 0999b43e50b..4cf98102fb4 100644 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/storage/dynamodb.generator.test.ts +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/generate/amplify/storage/dynamodb.generator.test.ts @@ -23,7 +23,12 @@ describe('DynamoDBGenerator', () => { const gen1App = createMockGen1App(); (gen1App.meta as jest.Mock).mockReturnValue(undefined); - const generator = new DynamoDBGenerator(gen1App, backendGenerator, 'myTable', false); + const generator = new DynamoDBGenerator( + gen1App, + backendGenerator, + { category: 'storage', resourceName: 'myTable', service: 'DynamoDB', key: 'storage:DynamoDB' }, + false, + ); await expect(generator.plan()).rejects.toThrow(); }); @@ -34,7 +39,12 @@ describe('DynamoDBGenerator', () => { otherTable: { service: 'DynamoDB' }, }); - const generator = new DynamoDBGenerator(gen1App, backendGenerator, 'myTable', false); + const generator = new DynamoDBGenerator( + gen1App, + backendGenerator, + { category: 'storage', resourceName: 'myTable', service: 'DynamoDB', key: 'storage:DynamoDB' }, + false, + ); await expect(generator.plan()).rejects.toThrow(); }); @@ -54,7 +64,12 @@ describe('DynamoDBGenerator', () => { ProvisionedThroughput: {}, }); - const generator = new DynamoDBGenerator(gen1App, backendGenerator, 'myTable', false); + const generator = new DynamoDBGenerator( + gen1App, + backendGenerator, + { category: 'storage', resourceName: 'myTable', service: 'DynamoDB', key: 'storage:DynamoDB' }, + false, + ); const ops = await generator.plan(); expect(ops).toHaveLength(1); @@ -81,7 +96,12 @@ describe('DynamoDBGenerator', () => { const createDynamoDBStackSpy = jest.spyOn(backendGenerator, 'createDynamoDBStack'); const addEarlyStatementSpy = jest.spyOn(backendGenerator, 'addEarlyStatement'); - const generator = new DynamoDBGenerator(gen1App, backendGenerator, 'myTable', false); + const generator = new DynamoDBGenerator( + gen1App, + backendGenerator, + { category: 'storage', resourceName: 'myTable', service: 'DynamoDB', key: 'storage:DynamoDB' }, + false, + ); const ops = await generator.plan(); await ops[0].execute(); @@ -107,7 +127,12 @@ describe('DynamoDBGenerator', () => { const createDynamoDBStackSpy = jest.spyOn(backendGenerator, 'createDynamoDBStack'); - const generator = new DynamoDBGenerator(gen1App, backendGenerator, 'myTable', true); + const generator = new DynamoDBGenerator( + gen1App, + backendGenerator, + { category: 'storage', resourceName: 'myTable', service: 'DynamoDB', key: 'storage:DynamoDB' }, + true, + ); const ops = await generator.plan(); await ops[0].execute(); @@ -124,7 +149,12 @@ describe('DynamoDBGenerator', () => { }); (gen1App.aws.fetchTableDescription as jest.Mock).mockResolvedValue(undefined); - const generator = new DynamoDBGenerator(gen1App, backendGenerator, 'myTable', false); + const generator = new DynamoDBGenerator( + gen1App, + backendGenerator, + { category: 'storage', resourceName: 'myTable', service: 'DynamoDB', key: 'storage:DynamoDB' }, + false, + ); await expect(generator.plan()).rejects.toThrow("DynamoDB table 'myTable-abc123' not found"); }); @@ -155,7 +185,12 @@ describe('DynamoDBGenerator', () => { const addEarlyStatementSpy = jest.spyOn(backendGenerator, 'addEarlyStatement'); - const generator = new DynamoDBGenerator(gen1App, backendGenerator, 'myTable', false); + const generator = new DynamoDBGenerator( + gen1App, + backendGenerator, + { category: 'storage', resourceName: 'myTable', service: 'DynamoDB', key: 'storage:DynamoDB' }, + false, + ); const ops = await generator.plan(); await ops[0].execute(); @@ -185,8 +220,18 @@ describe('DynamoDBGenerator', () => { const createDynamoDBStackSpy = jest.spyOn(backendGenerator, 'createDynamoDBStack'); - const gen1 = new DynamoDBGenerator(gen1App, backendGenerator, 'activity', false); - const gen2 = new DynamoDBGenerator(gen1App, backendGenerator, 'bookmarks', false); + const gen1 = new DynamoDBGenerator( + gen1App, + backendGenerator, + { category: 'storage', resourceName: 'activity', service: 'DynamoDB', key: 'storage:DynamoDB' }, + false, + ); + const gen2 = new DynamoDBGenerator( + gen1App, + backendGenerator, + { category: 'storage', resourceName: 'bookmarks', service: 'DynamoDB', key: 'storage:DynamoDB' }, + false, + ); const ops1 = await gen1.plan(); await ops1[0].execute(); @@ -212,7 +257,12 @@ describe('DynamoDBGenerator', () => { ProvisionedThroughput: {}, }); - const generator = new DynamoDBGenerator(gen1App, backendGenerator, 'myTable', false); + const generator = new DynamoDBGenerator( + gen1App, + backendGenerator, + { category: 'storage', resourceName: 'myTable', service: 'DynamoDB', key: 'storage:DynamoDB' }, + false, + ); const ops = await generator.plan(); expect(ops).toHaveLength(1); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/analytics/analytics-rollback.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/analytics/analytics-rollback.test.ts new file mode 100644 index 00000000000..1d99d3e21a7 --- /dev/null +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/analytics/analytics-rollback.test.ts @@ -0,0 +1,28 @@ +import { AnalyticsKinesisRollbackRefactorer } from '../../../../../commands/gen2-migration/refactor/analytics/analytics-rollback'; +import { Cfn } from '../../../../../commands/gen2-migration/refactor/cfn'; +import { noOpLogger } from '../../_framework/logger'; + +describe('AnalyticsKinesisRollbackRefactorer.targetLogicalId', () => { + const refactorer = new (class extends AnalyticsKinesisRollbackRefactorer { + public testTargetLogicalId(type: string): string | undefined { + return this.targetLogicalId('anySourceId', { Type: type, Properties: {} }); + } + })( + null as any, + null as any, + null as any, + 'us-east-1', + '123', + noOpLogger(), + { category: 'analytics', resourceName: 'test', service: 'Kinesis', key: 'analytics:Kinesis' as const }, + null as unknown as Cfn, + ); + + it('maps Kinesis::Stream to KinesisStream', () => { + expect(refactorer.testTargetLogicalId('AWS::Kinesis::Stream')).toBe('KinesisStream'); + }); + + it('returns undefined for unknown resource type', () => { + expect(refactorer.testTargetLogicalId('AWS::Lambda::Function')).toBeUndefined(); + }); +}); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/auth-forward-mapping.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/auth-forward-mapping.test.ts deleted file mode 100644 index 8d8c7e0f9d1..00000000000 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/auth-forward-mapping.test.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { AuthCognitoForwardRefactorer } from '../../../../commands/gen2-migration/refactor/auth/auth-forward'; -import { CFNResource } from '../../../../commands/gen2-migration/cfn-template'; -import { AwsClients } from '../../../../commands/gen2-migration/aws-clients'; -import { StackFacade } from '../../../../commands/gen2-migration/refactor/stack-facade'; -import { MoveMapping } from '../../../../commands/gen2-migration/refactor/workflow/category-refactorer'; -import { noOpLogger } from '../_framework/logger'; - -/** Helper: convert MoveMapping[] to Map for easy assertions */ -function toIdMap(mappings: MoveMapping[]): Map { - return new Map(mappings.map((m) => [m.sourceId, m.targetId])); -} - -describe('AuthCognitoForwardRefactorer.buildResourceMappings - UserPoolClient disambiguation', () => { - function createRefactorer() { - const clients = new AwsClients({ region: 'us-east-1' }); - const gen1Env = new StackFacade(clients, 'gen1'); - const gen2Branch = new StackFacade(clients, 'gen2'); - return new (class extends AuthCognitoForwardRefactorer { - constructor() { - super(gen1Env, gen2Branch, clients, 'us-east-1', '123456789', noOpLogger(), 'appId', 'main'); - } - public testBuildResourceMappings(source: Map, target: Map): MoveMapping[] { - return this.buildResourceMappings(source, target); - } - })(); - } - - it('maps main auth resources with correct Web/Native disambiguation', () => { - const refactorer = createRefactorer(); - - const targetResources = new Map([ - ['amplifyAuthUserPool1234ABCD', { Type: 'AWS::Cognito::UserPool', Properties: {} }], - ['amplifyAuthUserPoolAppClient1234ABCD', { Type: 'AWS::Cognito::UserPoolClient', Properties: {} }], - ['amplifyAuthUserPoolNativeAppClient1234ABCD', { Type: 'AWS::Cognito::UserPoolClient', Properties: {} }], - ['amplifyAuthIdentityPool1234ABCD', { Type: 'AWS::Cognito::IdentityPool', Properties: {} }], - ['amplifyAuthIdentityPoolRoleMap1234ABCD', { Type: 'AWS::Cognito::IdentityPoolRoleAttachment', Properties: {} }], - ]); - - const mainAuthSource = new Map([ - ['UserPool', { Type: 'AWS::Cognito::UserPool', Properties: {} }], - ['UserPoolClientWeb', { Type: 'AWS::Cognito::UserPoolClient', Properties: {} }], - ['UserPoolClient', { Type: 'AWS::Cognito::UserPoolClient', Properties: {} }], - ['IdentityPool', { Type: 'AWS::Cognito::IdentityPool', Properties: {} }], - ['IdentityPoolRoleMap', { Type: 'AWS::Cognito::IdentityPoolRoleAttachment', Properties: {} }], - ]); - - const mappings = refactorer.testBuildResourceMappings(mainAuthSource, targetResources); - const map = toIdMap(mappings); - - // All source resources are mapped - expect(map.size).toBe(5); - - // UserPoolClient Web/Native disambiguation is correct - expect(map.get('UserPoolClientWeb')).toBe('amplifyAuthUserPoolAppClient1234ABCD'); - expect(map.get('UserPoolClient')).toBe('amplifyAuthUserPoolNativeAppClient1234ABCD'); - - // Other mappings - expect(map.get('UserPool')).toBe('amplifyAuthUserPool1234ABCD'); - }); -}); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/auth-rollback-plan.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/auth-rollback-plan.test.ts deleted file mode 100644 index 7c725bfe32e..00000000000 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/auth-rollback-plan.test.ts +++ /dev/null @@ -1,110 +0,0 @@ -import { AuthCognitoRollbackRefactorer } from '../../../../commands/gen2-migration/refactor/auth/auth-rollback'; -import { CFNTemplate } from '../../../../commands/gen2-migration/cfn-template'; -import { AwsClients } from '../../../../commands/gen2-migration/aws-clients'; -import { StackFacade } from '../../../../commands/gen2-migration/refactor/stack-facade'; -import { noOpLogger } from '../_framework/logger'; -import { mockClient } from 'aws-sdk-client-mock'; -import { - CloudFormationClient, - GetTemplateCommand, - DescribeStacksCommand, - DescribeStackResourcesCommand, - ResourceStatus, -} from '@aws-sdk/client-cloudformation'; - -const ts = new Date(); -const rs = ResourceStatus.CREATE_COMPLETE; - -const gen2AuthTemplate: CFNTemplate = { - AWSTemplateFormatVersion: '2010-09-09', - Description: 'gen2 auth', - Resources: { - amplifyAuthUserPool12345678: { Type: 'AWS::Cognito::UserPool', Properties: {} }, - amplifyAuthUserPoolClientWeb12345678: { Type: 'AWS::Cognito::UserPoolClient', Properties: {} }, - }, - Outputs: {}, -}; - -const gen1AuthTemplate: CFNTemplate = { - AWSTemplateFormatVersion: '2010-09-09', - Description: JSON.stringify({ stackType: 'auth-Cognito' }), - Resources: { UserPool: { Type: 'AWS::Cognito::UserPool', Properties: {} } }, - Outputs: {}, -}; - -describe('AuthCognitoRollbackRefactorer.plan()', () => { - let cfnMock: ReturnType; - beforeEach(() => { - cfnMock = mockClient(CloudFormationClient); - }); - afterEach(() => cfnMock.restore()); - - function setupBasicMocks() { - cfnMock.on(DescribeStacksCommand).resolves({ Stacks: [] }); - - cfnMock.on(DescribeStackResourcesCommand, { StackName: 'gen2-root' }).resolves({ - StackResources: [ - { - LogicalResourceId: 'authStack', - ResourceType: 'AWS::CloudFormation::Stack', - PhysicalResourceId: 'gen2-auth', - Timestamp: ts, - ResourceStatus: rs, - }, - ], - }); - cfnMock.on(DescribeStackResourcesCommand, { StackName: 'gen1-root' }).resolves({ - StackResources: [ - { - LogicalResourceId: 'authMain', - ResourceType: 'AWS::CloudFormation::Stack', - PhysicalResourceId: 'gen1-auth', - Timestamp: ts, - ResourceStatus: rs, - }, - ], - }); - cfnMock.on(DescribeStackResourcesCommand, { StackName: 'gen2-auth' }).resolves({ StackResources: [] }); - cfnMock.on(DescribeStackResourcesCommand, { StackName: 'gen1-auth' }).resolves({ StackResources: [] }); - - cfnMock.on(DescribeStacksCommand, { StackName: 'gen2-auth' }).resolves({ - Stacks: [{ StackName: 'gen2-auth', StackStatus: rs, CreationTime: ts, Parameters: [], Outputs: [] }], - }); - cfnMock.on(DescribeStacksCommand, { StackName: 'gen1-auth' }).resolves({ - Stacks: [ - { - StackName: 'gen1-auth', - StackStatus: rs, - CreationTime: ts, - Description: gen1AuthTemplate.Description, - Parameters: [], - Outputs: [], - }, - ], - }); - - cfnMock.on(GetTemplateCommand, { StackName: 'gen2-auth' }).resolves({ TemplateBody: JSON.stringify(gen2AuthTemplate) }); - cfnMock.on(GetTemplateCommand, { StackName: 'gen1-auth' }).resolves({ TemplateBody: JSON.stringify(gen1AuthTemplate) }); - } - - it('main auth only: produces move operations (no updateSource/updateTarget for rollback)', async () => { - setupBasicMocks(); - const clients = new AwsClients({ region: 'us-east-1' }); - (clients as any).cloudFormation = new CloudFormationClient({}); - const refactorer = new AuthCognitoRollbackRefactorer( - new StackFacade(clients, 'gen1-root'), - new StackFacade(clients, 'gen2-root'), - clients, - 'us-east-1', - '123', - noOpLogger(), - ); - - const ops = await refactorer.plan(); - const descriptions = (await Promise.all(ops.map((o) => o.describe()))).flat(); - - // Rollback: no updateSource/updateTarget, just move ops + afterMove - expect(descriptions.every((d) => !d.includes('Update source') && !d.includes('Update target'))).toBe(true); - expect(descriptions.some((d) => d.includes('Move'))).toBe(true); - }); -}); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/auth-utils.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/auth-utils.test.ts deleted file mode 100644 index 0d0e48d3de5..00000000000 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/auth-utils.test.ts +++ /dev/null @@ -1,122 +0,0 @@ -import { discoverGen1AuthStacks } from '../../../../commands/gen2-migration/refactor/auth/auth-utils'; -import { StackFacade } from '../../../../commands/gen2-migration/refactor/stack-facade'; -import { AwsClients } from '../../../../commands/gen2-migration/aws-clients'; -import { mockClient } from 'aws-sdk-client-mock'; -import { CloudFormationClient, DescribeStacksCommand, DescribeStackResourcesCommand, ResourceStatus } from '@aws-sdk/client-cloudformation'; - -const ts = new Date(); -const rs = ResourceStatus.CREATE_COMPLETE; - -describe('discoverGen1AuthStacks', () => { - let cfnMock: ReturnType; - beforeEach(() => { - cfnMock = mockClient(CloudFormationClient); - }); - afterEach(() => cfnMock.restore()); - - it('discovers main auth and user pool group stacks from Description JSON', async () => { - cfnMock.on(DescribeStackResourcesCommand).resolves({ - StackResources: [ - { - LogicalResourceId: 'authMain', - ResourceType: 'AWS::CloudFormation::Stack', - PhysicalResourceId: 'auth-main-id', - Timestamp: ts, - ResourceStatus: rs, - }, - { - LogicalResourceId: 'authUpg', - ResourceType: 'AWS::CloudFormation::Stack', - PhysicalResourceId: 'auth-upg-id', - Timestamp: ts, - ResourceStatus: rs, - }, - ], - }); - cfnMock.on(DescribeStacksCommand, { StackName: 'auth-main-id' }).resolves({ - Stacks: [ - { - StackName: 'auth-main', - StackStatus: 'CREATE_COMPLETE', - CreationTime: ts, - Description: JSON.stringify({ stackType: 'auth-Cognito' }), - }, - ], - }); - cfnMock.on(DescribeStacksCommand, { StackName: 'auth-upg-id' }).resolves({ - Stacks: [ - { - StackName: 'auth-upg', - StackStatus: 'CREATE_COMPLETE', - CreationTime: ts, - Description: JSON.stringify({ stackType: 'auth-Cognito-UserPool-Groups' }), - }, - ], - }); - - const clients = new AwsClients({ region: 'us-east-1' }); - (clients as any).cloudFormation = new CloudFormationClient({}); - const facade = new StackFacade(clients, 'root'); - const result = await discoverGen1AuthStacks(facade); - - expect(result.mainAuthStackId).toBe('auth-main-id'); - expect(result.userPoolGroupStackId).toBe('auth-upg-id'); - }); - - it('handles invalid JSON in stack Description gracefully', async () => { - cfnMock.on(DescribeStackResourcesCommand).resolves({ - StackResources: [ - { - LogicalResourceId: 'authBad', - ResourceType: 'AWS::CloudFormation::Stack', - PhysicalResourceId: 'auth-bad-id', - Timestamp: ts, - ResourceStatus: rs, - }, - ], - }); - cfnMock.on(DescribeStacksCommand, { StackName: 'auth-bad-id' }).resolves({ - Stacks: [{ StackName: 'auth-bad', StackStatus: 'CREATE_COMPLETE', CreationTime: ts, Description: 'not-json' }], - }); - - const clients = new AwsClients({ region: 'us-east-1' }); - (clients as any).cloudFormation = new CloudFormationClient({}); - const facade = new StackFacade(clients, 'root'); - const result = await discoverGen1AuthStacks(facade); - - expect(result.mainAuthStackId).toBeUndefined(); - expect(result.userPoolGroupStackId).toBeUndefined(); - }); - - it('ignores stacks with unknown stackType', async () => { - cfnMock.on(DescribeStackResourcesCommand).resolves({ - StackResources: [ - { - LogicalResourceId: 'authUnknown', - ResourceType: 'AWS::CloudFormation::Stack', - PhysicalResourceId: 'auth-unknown-id', - Timestamp: ts, - ResourceStatus: rs, - }, - ], - }); - cfnMock.on(DescribeStacksCommand, { StackName: 'auth-unknown-id' }).resolves({ - Stacks: [ - { - StackName: 'auth-unknown', - StackStatus: 'CREATE_COMPLETE', - CreationTime: ts, - Description: JSON.stringify({ stackType: 'auth-SomeOtherType' }), - }, - ], - }); - - const clients = new AwsClients({ region: 'us-east-1' }); - (clients as any).cloudFormation = new CloudFormationClient({}); - const facade = new StackFacade(clients, 'root'); - const result = await discoverGen1AuthStacks(facade); - - expect(result.mainAuthStackId).toBeUndefined(); - expect(result.userPoolGroupStackId).toBeUndefined(); - }); -}); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/auth-forward-plan.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/auth/auth-cognito-forward.test.ts similarity index 65% rename from packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/auth-forward-plan.test.ts rename to packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/auth/auth-cognito-forward.test.ts index 41e15b382c7..0b93f82949a 100644 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/auth-forward-plan.test.ts +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/auth/auth-cognito-forward.test.ts @@ -1,8 +1,8 @@ -import { AuthCognitoForwardRefactorer } from '../../../../commands/gen2-migration/refactor/auth/auth-forward'; -import { CFNTemplate } from '../../../../commands/gen2-migration/cfn-template'; -import { AwsClients } from '../../../../commands/gen2-migration/aws-clients'; -import { StackFacade } from '../../../../commands/gen2-migration/refactor/stack-facade'; -import { noOpLogger } from '../_framework/logger'; +import { AuthCognitoForwardRefactorer } from '../../../../../commands/gen2-migration/refactor/auth/auth-cognito-forward'; +import { CFNResource, CFNTemplate } from '../../../../../commands/gen2-migration/cfn-template'; +import { AwsClients } from '../../../../../commands/gen2-migration/aws-clients'; +import { StackFacade } from '../../../../../commands/gen2-migration/refactor/stack-facade'; +import { noOpLogger } from '../../_framework/logger'; import { mockClient } from 'aws-sdk-client-mock'; import { CloudFormationClient, @@ -10,9 +10,14 @@ import { DescribeStacksCommand, DescribeStackResourcesCommand, ResourceStatus, + CreateChangeSetCommand, + DescribeChangeSetCommand, + DeleteChangeSetCommand, + ResourceMapping, } from '@aws-sdk/client-cloudformation'; import { SSMClient } from '@aws-sdk/client-ssm'; import { CognitoIdentityProviderClient, DescribeIdentityProviderCommand } from '@aws-sdk/client-cognito-identity-provider'; +import { Cfn } from '../../../../../commands/gen2-migration/refactor/cfn'; const ts = new Date(); const rs = ResourceStatus.CREATE_COMPLETE; @@ -32,9 +37,12 @@ const gen2AuthTemplate: CFNTemplate = { }; function setupMocks(cfnMock: ReturnType) { + // Default: no stacks found (used by findStack for holding stacks) + cfnMock.on(DescribeStacksCommand).resolves({ Stacks: [] }); + const gen1NestedStacks = [ { - LogicalResourceId: 'authMainStack', + LogicalResourceId: 'authtestStack', ResourceType: 'AWS::CloudFormation::Stack', PhysicalResourceId: 'gen1-auth-stack', Timestamp: ts, @@ -75,6 +83,10 @@ function setupMocks(cfnMock: ReturnType) { cfnMock.on(GetTemplateCommand, { StackName: 'gen1-auth-stack' }).resolves({ TemplateBody: JSON.stringify(gen1AuthTemplate) }); cfnMock.on(GetTemplateCommand, { StackName: 'gen2-auth-stack' }).resolves({ TemplateBody: JSON.stringify(gen2AuthTemplate) }); + + cfnMock.on(CreateChangeSetCommand).resolves({}); + cfnMock.on(DescribeChangeSetCommand).resolves({ Status: 'CREATE_COMPLETE', Changes: [] }); + cfnMock.on(DeleteChangeSetCommand).resolves({}); } describe('AuthCognitoForwardRefactorer.plan() — operation sequence', () => { @@ -106,6 +118,8 @@ describe('AuthCognitoForwardRefactorer.plan() — operation sequence', () => { noOpLogger(), 'appId', 'main', + { category: 'auth', resourceName: 'test', service: 'Cognito', key: 'auth:Cognito' as const }, + new Cfn(new CloudFormationClient({}), noOpLogger()), ); const ops = await refactorer.plan(); @@ -116,7 +130,7 @@ describe('AuthCognitoForwardRefactorer.plan() — operation sequence', () => { expect(flat).toHaveLength(4); expect(flat[0]).toContain('Update source'); expect(flat[1]).toContain('Update target'); - expect(flat[2]).toContain('holding stack'); + expect(flat[2]).toContain('holding'); expect(flat[3]).toContain('Move'); }); @@ -129,10 +143,13 @@ describe('AuthCognitoForwardRefactorer.plan() — operation sequence', () => { }, }; + // Default: no stacks found (for holding stack lookup) + cfnMock.on(DescribeStacksCommand).resolves({ Stacks: [] }); + cfnMock.on(DescribeStackResourcesCommand, { StackName: 'gen1-root' }).resolves({ StackResources: [ { - LogicalResourceId: 'authMainStack', + LogicalResourceId: 'authtestStack', ResourceType: 'AWS::CloudFormation::Stack', PhysicalResourceId: 'gen1-auth-stack', Timestamp: ts, @@ -174,6 +191,9 @@ describe('AuthCognitoForwardRefactorer.plan() — operation sequence', () => { }); cfnMock.on(GetTemplateCommand, { StackName: 'gen1-auth-stack' }).resolves({ TemplateBody: JSON.stringify(oauthGen1Template) }); cfnMock.on(GetTemplateCommand, { StackName: 'gen2-auth-stack' }).resolves({ TemplateBody: JSON.stringify(gen2AuthTemplate) }); + cfnMock.on(CreateChangeSetCommand).resolves({}); + cfnMock.on(DescribeChangeSetCommand).resolves({ Status: 'CREATE_COMPLETE', Changes: [] }); + cfnMock.on(DeleteChangeSetCommand).resolves({}); const cognitoMock = mockClient(CognitoIdentityProviderClient); cognitoMock.on(DescribeIdentityProviderCommand).resolves({ @@ -194,6 +214,8 @@ describe('AuthCognitoForwardRefactorer.plan() — operation sequence', () => { noOpLogger(), 'appId', 'main', + { category: 'auth', resourceName: 'test', service: 'Cognito', key: 'auth:Cognito' as const }, + new Cfn(new CloudFormationClient({}), noOpLogger()), ); const ops = await refactorer.plan(); @@ -223,7 +245,7 @@ describe('AuthCognitoForwardRefactorer.plan() — operation sequence', () => { cfnMock.on(DescribeStackResourcesCommand, { StackName: 'gen1-root' }).resolves({ StackResources: [ { - LogicalResourceId: 'authMainStack', + LogicalResourceId: 'authtestStack', ResourceType: 'AWS::CloudFormation::Stack', PhysicalResourceId: 'gen1-auth-stack', Timestamp: ts, @@ -249,8 +271,77 @@ describe('AuthCognitoForwardRefactorer.plan() — operation sequence', () => { noOpLogger(), 'appId', 'main', + { category: 'auth', resourceName: 'test', service: 'Cognito', key: 'auth:Cognito' as const }, + new Cfn(new CloudFormationClient({}), noOpLogger()), ); - await expect(refactorer.plan()).rejects.toThrow('unable to find target stack'); + await expect(refactorer.plan()).rejects.toThrow('Unable to find target stack'); + }); +}); + +function toIdMap(mappings: ResourceMapping[]): Map { + return new Map(mappings.map((m) => [m.Source!.LogicalResourceId!, m.Destination!.LogicalResourceId!])); +} + +describe('AuthCognitoForwardRefactorer.buildResourceMappings — UserPoolClient disambiguation', () => { + function createRefactorer() { + const clients = new AwsClients({ region: 'us-east-1' }); + const gen1Env = new StackFacade(clients, 'gen1'); + const gen2Branch = new StackFacade(clients, 'gen2'); + return new (class extends AuthCognitoForwardRefactorer { + constructor() { + super( + gen1Env, + gen2Branch, + clients, + 'us-east-1', + '123456789', + noOpLogger(), + 'appId', + 'main', + { + category: 'auth', + resourceName: 'test', + service: 'Cognito', + key: 'auth:Cognito', + }, + null as unknown as Cfn, + ); + } + public async testBuildResourceMappings( + source: Map, + target: Map, + ): Promise { + return this.buildResourceMappings(source, target, 'gen1-auth', 'gen2-auth'); + } + })(); + } + + it('maps main auth resources with correct Web/Native disambiguation', async () => { + const refactorer = createRefactorer(); + + const targetResources = new Map([ + ['amplifyAuthUserPool1234ABCD', { Type: 'AWS::Cognito::UserPool', Properties: {} }], + ['amplifyAuthUserPoolAppClient1234ABCD', { Type: 'AWS::Cognito::UserPoolClient', Properties: {} }], + ['amplifyAuthUserPoolNativeAppClient1234ABCD', { Type: 'AWS::Cognito::UserPoolClient', Properties: {} }], + ['amplifyAuthIdentityPool1234ABCD', { Type: 'AWS::Cognito::IdentityPool', Properties: {} }], + ['amplifyAuthIdentityPoolRoleMap1234ABCD', { Type: 'AWS::Cognito::IdentityPoolRoleAttachment', Properties: {} }], + ]); + + const mainAuthSource = new Map([ + ['UserPool', { Type: 'AWS::Cognito::UserPool', Properties: {} }], + ['UserPoolClientWeb', { Type: 'AWS::Cognito::UserPoolClient', Properties: {} }], + ['UserPoolClient', { Type: 'AWS::Cognito::UserPoolClient', Properties: {} }], + ['IdentityPool', { Type: 'AWS::Cognito::IdentityPool', Properties: {} }], + ['IdentityPoolRoleMap', { Type: 'AWS::Cognito::IdentityPoolRoleAttachment', Properties: {} }], + ]); + + const mappings = await refactorer.testBuildResourceMappings(mainAuthSource, targetResources); + const map = toIdMap(mappings); + + expect(map.size).toBe(5); + expect(map.get('UserPoolClientWeb')).toBe('amplifyAuthUserPoolAppClient1234ABCD'); + expect(map.get('UserPoolClient')).toBe('amplifyAuthUserPoolNativeAppClient1234ABCD'); + expect(map.get('UserPool')).toBe('amplifyAuthUserPool1234ABCD'); }); }); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/auth/auth-cognito-rollback.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/auth/auth-cognito-rollback.test.ts new file mode 100644 index 00000000000..a6eeb680c86 --- /dev/null +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/auth/auth-cognito-rollback.test.ts @@ -0,0 +1,179 @@ +import { AuthCognitoRollbackRefactorer } from '../../../../../commands/gen2-migration/refactor/auth/auth-cognito-rollback'; +import { CFNTemplate } from '../../../../../commands/gen2-migration/cfn-template'; +import { AwsClients } from '../../../../../commands/gen2-migration/aws-clients'; +import { StackFacade } from '../../../../../commands/gen2-migration/refactor/stack-facade'; +import { noOpLogger } from '../../_framework/logger'; +import { mockClient } from 'aws-sdk-client-mock'; +import { + CloudFormationClient, + GetTemplateCommand, + DescribeStacksCommand, + DescribeStackResourcesCommand, + ResourceStatus, + CreateChangeSetCommand, + DescribeChangeSetCommand, + DeleteChangeSetCommand, +} from '@aws-sdk/client-cloudformation'; +import { Cfn } from '../../../../../commands/gen2-migration/refactor/cfn'; + +const ts = new Date(); +const rs = ResourceStatus.CREATE_COMPLETE; + +const gen2AuthTemplate: CFNTemplate = { + AWSTemplateFormatVersion: '2010-09-09', + Description: 'gen2 auth', + Resources: { + amplifyAuthUserPool12345678: { Type: 'AWS::Cognito::UserPool', Properties: {} }, + amplifyAuthUserPoolAppClient12345678: { Type: 'AWS::Cognito::UserPoolClient', Properties: {} }, + }, + Outputs: {}, +}; + +const gen1AuthTemplate: CFNTemplate = { + AWSTemplateFormatVersion: '2010-09-09', + Description: JSON.stringify({ stackType: 'auth-Cognito' }), + Resources: { UserPool: { Type: 'AWS::Cognito::UserPool', Properties: {} } }, + Outputs: {}, +}; + +describe('AuthCognitoRollbackRefactorer.plan()', () => { + let cfnMock: ReturnType; + beforeEach(() => { + cfnMock = mockClient(CloudFormationClient); + }); + afterEach(() => cfnMock.restore()); + + function setupBasicMocks() { + cfnMock.on(DescribeStacksCommand).resolves({ Stacks: [] }); + + cfnMock.on(DescribeStackResourcesCommand, { StackName: 'gen2-root' }).resolves({ + StackResources: [ + { + LogicalResourceId: 'authStack', + ResourceType: 'AWS::CloudFormation::Stack', + PhysicalResourceId: 'gen2-auth', + Timestamp: ts, + ResourceStatus: rs, + }, + ], + }); + cfnMock.on(DescribeStackResourcesCommand, { StackName: 'gen1-root' }).resolves({ + StackResources: [ + { + LogicalResourceId: 'authtestMain', + ResourceType: 'AWS::CloudFormation::Stack', + PhysicalResourceId: 'gen1-auth', + Timestamp: ts, + ResourceStatus: rs, + }, + ], + }); + cfnMock.on(DescribeStackResourcesCommand, { StackName: 'gen2-auth' }).resolves({ StackResources: [] }); + cfnMock.on(DescribeStackResourcesCommand, { StackName: 'gen1-auth' }).resolves({ StackResources: [] }); + + cfnMock.on(DescribeStacksCommand, { StackName: 'gen2-auth' }).resolves({ + Stacks: [{ StackName: 'gen2-auth', StackStatus: rs, CreationTime: ts, Parameters: [], Outputs: [] }], + }); + cfnMock.on(DescribeStacksCommand, { StackName: 'gen1-auth' }).resolves({ + Stacks: [ + { + StackName: 'gen1-auth', + StackStatus: rs, + CreationTime: ts, + Description: gen1AuthTemplate.Description, + Parameters: [], + Outputs: [], + }, + ], + }); + + cfnMock.on(GetTemplateCommand, { StackName: 'gen2-auth' }).resolves({ TemplateBody: JSON.stringify(gen2AuthTemplate) }); + cfnMock.on(GetTemplateCommand, { StackName: 'gen1-auth' }).resolves({ TemplateBody: JSON.stringify(gen1AuthTemplate) }); + + cfnMock.on(CreateChangeSetCommand).resolves({}); + cfnMock.on(DescribeChangeSetCommand).resolves({ Status: 'CREATE_COMPLETE', Changes: [] }); + cfnMock.on(DeleteChangeSetCommand).resolves({}); + } + + it('main auth: produces updateSource → updateTarget → move → afterMove', async () => { + setupBasicMocks(); + const clients = new AwsClients({ region: 'us-east-1' }); + (clients as any).cloudFormation = new CloudFormationClient({}); + const cfn = new Cfn(new CloudFormationClient({}), noOpLogger()); + const refactorer = new AuthCognitoRollbackRefactorer( + new StackFacade(clients, 'gen1-root'), + new StackFacade(clients, 'gen2-root'), + clients, + 'us-east-1', + '123', + noOpLogger(), + { category: 'auth', resourceName: 'test', service: 'Cognito', key: 'auth:Cognito' as const }, + cfn, + ); + + const ops = await refactorer.plan(); + const descriptions = (await Promise.all(ops.map((o) => o.describe()))).flat(); + + // Rollback now resolves and updates both stacks before moving + expect(descriptions.some((d) => d.includes('Update source'))).toBe(true); + expect(descriptions.some((d) => d.includes('Update target'))).toBe(true); + expect(descriptions.some((d) => d.includes('Move'))).toBe(true); + }); +}); + +describe('AuthCognitoRollbackRefactorer.targetLogicalId', () => { + function createRefactorer() { + return new (class extends AuthCognitoRollbackRefactorer { + public testTargetLogicalId(sourceId: string, type: string): string | undefined { + return this.targetLogicalId(sourceId, { Type: type, Properties: {} }); + } + })( + null as any, + null as any, + null as any, + 'us-east-1', + '123', + noOpLogger(), + { category: 'auth', resourceName: 'test', service: 'Cognito', key: 'auth:Cognito' as const }, + null as unknown as Cfn, + ); + } + + const refactorer = createRefactorer(); + + it('maps UserPool to UserPool', () => { + expect(refactorer.testTargetLogicalId('amplifyAuthUserPool1234', 'AWS::Cognito::UserPool')).toBe('UserPool'); + }); + + it('maps IdentityPool to IdentityPool', () => { + expect(refactorer.testTargetLogicalId('amplifyAuthIdentityPool1234', 'AWS::Cognito::IdentityPool')).toBe('IdentityPool'); + }); + + it('maps IdentityPoolRoleAttachment to IdentityPoolRoleMap', () => { + expect(refactorer.testTargetLogicalId('amplifyAuthIdentityPoolRoleAttachment1234', 'AWS::Cognito::IdentityPoolRoleAttachment')).toBe( + 'IdentityPoolRoleMap', + ); + }); + + it('maps UserPoolDomain to UserPoolDomain', () => { + expect(refactorer.testTargetLogicalId('amplifyAuthUserPoolDomain1234', 'AWS::Cognito::UserPoolDomain')).toBe('UserPoolDomain'); + }); + + it('maps NativeAppClient to UserPoolClient', () => { + expect(refactorer.testTargetLogicalId('amplifyAuthUserPoolNativeAppClient1234', 'AWS::Cognito::UserPoolClient')).toBe('UserPoolClient'); + }); + + it('maps AppClient (web) to UserPoolClientWeb', () => { + expect(refactorer.testTargetLogicalId('amplifyAuthUserPoolAppClient1234', 'AWS::Cognito::UserPoolClient')).toBe('UserPoolClientWeb'); + }); + + it('throws for unrecognized UserPoolClient logical ID', () => { + expect(() => refactorer.testTargetLogicalId('SomeRandomClient', 'AWS::Cognito::UserPoolClient')).toThrow( + 'Unable to determine Gen1 logical ID', + ); + }); + + it('returns undefined for unknown resource type', () => { + expect(refactorer.testTargetLogicalId('SomeResource', 'AWS::Lambda::Function')).toBeUndefined(); + }); +}); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/auth/auth-user-pool-groups-forward.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/auth/auth-user-pool-groups-forward.test.ts new file mode 100644 index 00000000000..5ef59cecdb4 --- /dev/null +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/auth/auth-user-pool-groups-forward.test.ts @@ -0,0 +1,70 @@ +import { AuthUserPoolGroupsForwardRefactorer } from '../../../../../commands/gen2-migration/refactor/auth/auth-user-pool-groups-forward'; +import { CFNResource } from '../../../../../commands/gen2-migration/cfn-template'; +import { Cfn } from '../../../../../commands/gen2-migration/refactor/cfn'; +import { ResourceMapping } from '@aws-sdk/client-cloudformation'; +import { noOpLogger } from '../../_framework/logger'; + +const r = (type: string, props: Record = {}): CFNResource => ({ Type: type, Properties: props }); + +describe('AuthUserPoolGroupsForwardRefactorer.buildResourceMappings — GroupName matching', () => { + function createRefactorer() { + return new (class extends AuthUserPoolGroupsForwardRefactorer { + public async testBuildResourceMappings( + source: Map, + target: Map, + ): Promise { + return this.buildResourceMappings(source, target, 'gen1-auth', 'gen2-auth'); + } + })( + null as any, + null as any, + null as any, + 'us-east-1', + '123', + noOpLogger(), + { + category: 'auth', + resourceName: 'userPoolGroups', + service: 'Cognito-UserPool-Groups', + key: 'auth:Cognito-UserPool-Groups' as const, + }, + null as unknown as Cfn, + ); + } + + it('matches groups by GroupName property', async () => { + const refactorer = createRefactorer(); + const mappings = await refactorer.testBuildResourceMappings( + new Map([['AdminGroup', r('AWS::Cognito::UserPoolGroup', { GroupName: 'Admin' })]]), + new Map([['amplifyAuthAdminGroup1234', r('AWS::Cognito::UserPoolGroup', { GroupName: 'Admin' })]]), + ); + expect(mappings).toHaveLength(1); + expect(mappings[0].Source.LogicalResourceId).toBe('AdminGroup'); + expect(mappings[0].Destination.LogicalResourceId).toBe('amplifyAuthAdminGroup1234'); + }); + + it('does not match groups with different GroupName', async () => { + const refactorer = createRefactorer(); + await expect( + refactorer.testBuildResourceMappings( + new Map([['AdminGroup', r('AWS::Cognito::UserPoolGroup', { GroupName: 'Admin' })]]), + new Map([['amplifyAuthEditorGroup1234', r('AWS::Cognito::UserPoolGroup', { GroupName: 'Editor' })]]), + ), + ).rejects.toThrow('has no corresponding target resource'); + }); + + it('matches multiple groups independently', async () => { + const refactorer = createRefactorer(); + const mappings = await refactorer.testBuildResourceMappings( + new Map([ + ['AdminGroup', r('AWS::Cognito::UserPoolGroup', { GroupName: 'Admin' })], + ['EditorGroup', r('AWS::Cognito::UserPoolGroup', { GroupName: 'Editor' })], + ]), + new Map([ + ['amplifyAuthAdminGroup1234', r('AWS::Cognito::UserPoolGroup', { GroupName: 'Admin' })], + ['amplifyAuthEditorGroup1234', r('AWS::Cognito::UserPoolGroup', { GroupName: 'Editor' })], + ]), + ); + expect(mappings).toHaveLength(2); + }); +}); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/auth/auth-user-pool-groups-rollback.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/auth/auth-user-pool-groups-rollback.test.ts new file mode 100644 index 00000000000..3961d049d65 --- /dev/null +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/auth/auth-user-pool-groups-rollback.test.ts @@ -0,0 +1,30 @@ +import { AuthUserPoolGroupsRollbackRefactorer } from '../../../../../commands/gen2-migration/refactor/auth/auth-user-pool-groups-rollback'; +import { Cfn } from '../../../../../commands/gen2-migration/refactor/cfn'; +import { noOpLogger } from '../../_framework/logger'; + +describe('AuthUserPoolGroupsRollbackRefactorer.targetLogicalId', () => { + const refactorer = new (class extends AuthUserPoolGroupsRollbackRefactorer { + public testTargetLogicalId(sourceId: string, type: string, props: Record): string | undefined { + return this.targetLogicalId(sourceId, { Type: type, Properties: props }); + } + })( + null as any, + null as any, + null as any, + 'us-east-1', + '123', + noOpLogger(), + { category: 'auth', resourceName: 'userPoolGroups', service: 'Cognito-UserPool-Groups', key: 'auth:Cognito-UserPool-Groups' as const }, + null as unknown as Cfn, + ); + + it('maps UserPoolGroup to {GroupName}Group', () => { + expect(refactorer.testTargetLogicalId('amplifyAuthAdminGroup1234', 'AWS::Cognito::UserPoolGroup', { GroupName: 'Admin' })).toBe( + 'AdminGroup', + ); + }); + + it('returns undefined for unknown resource type', () => { + expect(refactorer.testTargetLogicalId('SomeResource', 'AWS::Lambda::Function', {})).toBeUndefined(); + }); +}); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/build-refactor-templates.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/build-refactor-templates.test.ts deleted file mode 100644 index 83af72a07ec..00000000000 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/build-refactor-templates.test.ts +++ /dev/null @@ -1,183 +0,0 @@ -import { CFNResource, CFNTemplate } from '../../../../commands/gen2-migration/cfn-template'; -import { - CategoryRefactorer, - RefactorBlueprint, - ResolvedStack, - MoveMapping, - MIGRATION_PLACEHOLDER_LOGICAL_ID, -} from '../../../../commands/gen2-migration/refactor/workflow/category-refactorer'; -import { noOpLogger } from '../_framework/logger'; - -// Minimal concrete subclass to access protected methods -class TestRefactorer extends (CategoryRefactorer as any) { - private mappingsToReturn: MoveMapping[] = []; - - constructor() { - super(null, null, null, 'us-east-1', '123', noOpLogger()); - } - - setMappings(mappings: MoveMapping[]) { - this.mappingsToReturn = mappings; - } - - public testBuildBlueprint(source: ResolvedStack, target: ResolvedStack): RefactorBlueprint | undefined { - return (this as any).buildBlueprint(source, target); - } - - protected async fetchSourceStackId() { - return undefined; - } - protected async fetchDestStackId() { - return undefined; - } - protected resourceTypes() { - return ['AWS::S3::Bucket', 'AWS::DynamoDB::Table', 'AWS::S3::BucketPolicy', 'AWS::IAM::Policy']; - } - protected buildResourceMappings() { - return this.mappingsToReturn; - } - protected resolveSource() { - return Promise.resolve({} as any); - } - protected resolveTarget() { - return Promise.resolve({} as any); - } - protected beforeMovePlan() { - return []; - } - protected async afterMovePlan() { - return []; - } -} - -const makeTemplate = (resources: Record): CFNTemplate => ({ - AWSTemplateFormatVersion: '2010-09-09', - Description: 'test', - Resources: resources, - Outputs: {}, -}); - -describe('buildBlueprint', () => { - const refactorer = new TestRefactorer(); - - it('returns undefined when source has no matching resources', () => { - const source: ResolvedStack = { - stackId: 'source-stack', - resolvedTemplate: makeTemplate({ - Lambda: { Type: 'AWS::Lambda::Function', Properties: {} }, - }), - parameters: [], - }; - const target: ResolvedStack = { - stackId: 'target-stack', - resolvedTemplate: makeTemplate({}), - parameters: [], - }; - refactorer.setMappings([]); - expect(refactorer.testBuildBlueprint(source, target)).toBeUndefined(); - }); - - it('removes resources from source and adds them to target with remapped IDs', () => { - const bucket: CFNResource = { Type: 'AWS::S3::Bucket', Properties: { BucketName: 'my-bucket' } }; - const source: ResolvedStack = { - stackId: 'source-stack', - resolvedTemplate: makeTemplate({ - S3Bucket: bucket, - OtherResource: { Type: 'AWS::Lambda::Function', Properties: {} }, - }), - parameters: [], - }; - const target: ResolvedStack = { - stackId: 'target-stack', - resolvedTemplate: makeTemplate({ - amplifyStorageBucket12345678: { Type: 'AWS::S3::Bucket', Properties: {} }, - }), - parameters: [], - }; - refactorer.setMappings([{ sourceId: 'S3Bucket', targetId: 'amplifyStorageBucket12345678', resource: bucket }]); - - const blueprint = refactorer.testBuildBlueprint(source, target)!; - - // Source afterRemoval: S3Bucket removed, OtherResource stays - expect(blueprint.source.afterRemoval.Resources.S3Bucket).toBeUndefined(); - expect(blueprint.source.afterRemoval.Resources.OtherResource).toBeDefined(); - - // Target afterAddition: remapped ID, properties preserved - expect(blueprint.target.afterAddition.Resources.amplifyStorageBucket12345678).toBeDefined(); - expect(blueprint.target.afterAddition.Resources.amplifyStorageBucket12345678.Properties.BucketName).toBe('my-bucket'); - }); - - it('remaps DependsOn references (both string and array forms)', () => { - const bucket: CFNResource = { Type: 'AWS::S3::Bucket', Properties: {} }; - const bucketPolicy: CFNResource = { Type: 'AWS::S3::BucketPolicy', Properties: {}, DependsOn: 'S3Bucket' }; - const iamPolicy: CFNResource = { Type: 'AWS::IAM::Policy', Properties: {}, DependsOn: ['S3Bucket', 'UnmappedResource'] }; - - const source: ResolvedStack = { - stackId: 'source-stack', - resolvedTemplate: makeTemplate({ S3Bucket: bucket, BucketPolicy: bucketPolicy, IamPolicy: iamPolicy }), - parameters: [], - }; - const target: ResolvedStack = { - stackId: 'target-stack', - resolvedTemplate: makeTemplate({ - TargetBucket: { Type: 'AWS::S3::Bucket', Properties: {} }, - TargetBucketPolicy: { Type: 'AWS::S3::BucketPolicy', Properties: {} }, - TargetIamPolicy: { Type: 'AWS::IAM::Policy', Properties: {} }, - }), - parameters: [], - }; - refactorer.setMappings([ - { sourceId: 'S3Bucket', targetId: 'TargetBucket', resource: bucket }, - { sourceId: 'BucketPolicy', targetId: 'TargetBucketPolicy', resource: bucketPolicy }, - { sourceId: 'IamPolicy', targetId: 'TargetIamPolicy', resource: iamPolicy }, - ]); - - const blueprint = refactorer.testBuildBlueprint(source, target)!; - - // String DependsOn remapped to array with target ID - expect(blueprint.target.afterAddition.Resources.TargetBucketPolicy.DependsOn).toEqual(['TargetBucket']); - - // Array DependsOn: S3Bucket remapped, UnmappedResource kept as-is (fallback) - expect(blueprint.target.afterAddition.Resources.TargetIamPolicy.DependsOn).toEqual(['TargetBucket', 'UnmappedResource']); - }); - - it('adds placeholder to source.afterRemoval when all source resources are mapped', () => { - const bucket: CFNResource = { Type: 'AWS::S3::Bucket', Properties: {} }; - const source: ResolvedStack = { - stackId: 'source-stack', - resolvedTemplate: makeTemplate({ OnlyBucket: bucket }), - parameters: [], - }; - const target: ResolvedStack = { - stackId: 'target-stack', - resolvedTemplate: makeTemplate({ TargetBucket: { Type: 'AWS::S3::Bucket', Properties: {} } }), - parameters: [], - }; - refactorer.setMappings([{ sourceId: 'OnlyBucket', targetId: 'TargetBucket', resource: bucket }]); - - const blueprint = refactorer.testBuildBlueprint(source, target)!; - expect(blueprint.source.afterRemoval.Resources[MIGRATION_PLACEHOLDER_LOGICAL_ID]).toBeDefined(); - }); - - it('adds placeholder to target.afterRemoval when all target category resources are removed', () => { - const bucket: CFNResource = { Type: 'AWS::S3::Bucket', Properties: {} }; - const source: ResolvedStack = { - stackId: 'source-stack', - resolvedTemplate: makeTemplate({ - SourceBucket: bucket, - Lambda: { Type: 'AWS::Lambda::Function', Properties: {} }, - }), - parameters: [], - }; - const target: ResolvedStack = { - stackId: 'target-stack', - resolvedTemplate: makeTemplate({ TargetBucket: { Type: 'AWS::S3::Bucket', Properties: {} } }), - parameters: [], - }; - refactorer.setMappings([{ sourceId: 'SourceBucket', targetId: 'TargetBucket', resource: bucket }]); - - const blueprint = refactorer.testBuildBlueprint(source, target)!; - expect(blueprint.target.afterRemoval.Resources[MIGRATION_PLACEHOLDER_LOGICAL_ID]).toBeDefined(); - expect(blueprint.target.afterRemoval.Resources.TargetBucket).toBeUndefined(); - }); -}); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/cfn-dependency-resolver.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/cfn-dependency-resolver.test.ts deleted file mode 100644 index be333d60e2f..00000000000 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/cfn-dependency-resolver.test.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { resolveDependencies } from '../../../../commands/gen2-migration/refactor/resolvers/cfn-dependency-resolver'; -import { CFNTemplate } from '../../../../commands/gen2-migration/cfn-template'; - -const makeTemplate = (resources: Record): CFNTemplate => ({ - AWSTemplateFormatVersion: '2010-09-09', - Description: 'test', - Resources: Object.fromEntries(Object.entries(resources).map(([k, v]) => [k, { ...v, Properties: {} }])), - Outputs: {}, -}); - -describe('resolveDependencies', () => { - it('removes cross-boundary DependsOn from staying resources', () => { - const template = makeTemplate({ - StayingResource: { Type: 'AWS::Lambda::Function', DependsOn: ['MovingResource', 'OtherStaying'] }, - MovingResource: { Type: 'AWS::S3::Bucket' }, - OtherStaying: { Type: 'AWS::IAM::Role' }, - }); - - const result = resolveDependencies(template, ['MovingResource']); - // StayingResource should no longer depend on MovingResource - expect(result.Resources.StayingResource.DependsOn).toEqual(['OtherStaying']); - }); - - it('keeps within-boundary DependsOn for moving resources', () => { - const template = makeTemplate({ - MovingA: { Type: 'AWS::S3::Bucket', DependsOn: ['MovingB', 'StayingResource'] }, - MovingB: { Type: 'AWS::S3::BucketPolicy' }, - StayingResource: { Type: 'AWS::Lambda::Function' }, - }); - - const result = resolveDependencies(template, ['MovingA', 'MovingB']); - // MovingA keeps dep on MovingB (both moving), loses dep on StayingResource - expect(result.Resources.MovingA.DependsOn).toEqual(['MovingB']); - }); - - it('passes through resources without DependsOn unchanged', () => { - const template = makeTemplate({ - NoDeps: { Type: 'AWS::S3::Bucket' }, - Moving: { Type: 'AWS::DynamoDB::Table' }, - }); - - const result = resolveDependencies(template, ['Moving']); - expect(result.Resources.NoDeps.DependsOn).toBeUndefined(); - }); - - it('handles string DependsOn (not array) for staying resources', () => { - const template = makeTemplate({ - Staying: { Type: 'AWS::Lambda::Function', DependsOn: 'Moving' }, - Moving: { Type: 'AWS::S3::Bucket' }, - }); - - const result = resolveDependencies(template, ['Moving']); - // String normalized to array, then filtered — result is empty array (not undefined) - expect(result.Resources.Staying.DependsOn).toEqual([]); - }); - - it('leaves DependsOn unchanged when all resources are moving together', () => { - const template = makeTemplate({ - A: { Type: 'AWS::S3::Bucket', DependsOn: ['B'] }, - B: { Type: 'AWS::S3::BucketPolicy', DependsOn: ['C'] }, - C: { Type: 'AWS::IAM::Role' }, - }); - - const result = resolveDependencies(template, ['A', 'B', 'C']); - // Neither filter condition triggers — deps.length === depsInRefactor.length for all - expect(result.Resources.A.DependsOn).toEqual(['B']); - expect(result.Resources.B.DependsOn).toEqual(['C']); - expect(result.Resources.C.DependsOn).toBeUndefined(); - }); -}); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/cfn-stack-refactor-updater.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/cfn-stack-refactor-updater.test.ts deleted file mode 100644 index f561576c0b2..00000000000 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/cfn-stack-refactor-updater.test.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { tryRefactorStack, RefactorFailure } from '../../../../commands/gen2-migration/refactor/cfn-stack-refactor-updater'; -import { mockClient } from 'aws-sdk-client-mock'; -import { - CloudFormationClient, - CreateStackRefactorCommand, - DescribeStackRefactorCommand, - ExecuteStackRefactorCommand, - DescribeStacksCommand, - StackRefactorStatus, - StackRefactorExecutionStatus, -} from '@aws-sdk/client-cloudformation'; - -jest.mock('../../../../commands/gen2-migration/refactor/snap', () => ({ - preRefactorStack: jest.fn(), -})); - -const input = { - StackDefinitions: [ - { StackName: 'source-stack', TemplateBody: '{}' }, - { StackName: 'dest-stack', TemplateBody: '{}' }, - ], - ResourceMappings: [ - { Source: { StackName: 'source-stack', LogicalResourceId: 'A' }, Destination: { StackName: 'dest-stack', LogicalResourceId: 'B' } }, - ], -}; - -describe('tryRefactorStack', () => { - let cfnMock: ReturnType; - - beforeEach(() => { - cfnMock = mockClient(CloudFormationClient); - }); - afterEach(() => cfnMock.restore()); - - it('happy path: create → execute → poll stacks → success', async () => { - cfnMock.on(CreateStackRefactorCommand).resolves({ StackRefactorId: 'refactor-1' }); - cfnMock - .on(DescribeStackRefactorCommand) - .resolvesOnce({ Status: StackRefactorStatus.CREATE_COMPLETE }) - .resolvesOnce({ ExecutionStatus: StackRefactorExecutionStatus.EXECUTE_COMPLETE }); - cfnMock.on(ExecuteStackRefactorCommand).resolves({}); - cfnMock - .on(DescribeStacksCommand) - .resolvesOnce({ Stacks: [{ StackName: 'source-stack', StackStatus: 'UPDATE_COMPLETE', CreationTime: new Date() }] }) - .resolvesOnce({ Stacks: [{ StackName: 'dest-stack', StackStatus: 'UPDATE_COMPLETE', CreationTime: new Date() }] }); - - const result = await tryRefactorStack(new CloudFormationClient({}), input, 1); - expect(result.success).toBe(true); - }); - - it('returns failure when create lands on CREATE_FAILED', async () => { - cfnMock.on(CreateStackRefactorCommand).resolves({ StackRefactorId: 'refactor-1' }); - cfnMock.on(DescribeStackRefactorCommand).resolves({ - Status: StackRefactorStatus.CREATE_FAILED, - StatusReason: 'Update operations not permitted', - }); - - const result = await tryRefactorStack(new CloudFormationClient({}), input, 1); - expect(result.success).toBe(false); - if (!result.success) { - const failure = result as RefactorFailure; - expect(failure.reason).toContain('Update operations not permitted'); - expect(failure.stackRefactorId).toBe('refactor-1'); - } - }); - - it('returns failure when execute lands on EXECUTE_FAILED', async () => { - cfnMock.on(CreateStackRefactorCommand).resolves({ StackRefactorId: 'refactor-1' }); - cfnMock - .on(DescribeStackRefactorCommand) - .resolvesOnce({ Status: StackRefactorStatus.CREATE_COMPLETE }) - .resolvesOnce({ ExecutionStatus: StackRefactorExecutionStatus.EXECUTE_FAILED, ExecutionStatusReason: 'conflict' }); - cfnMock.on(ExecuteStackRefactorCommand).resolves({}); - - const result = await tryRefactorStack(new CloudFormationClient({}), input, 1); - expect(result.success).toBe(false); - if (!result.success) { - expect((result as RefactorFailure).reason).toContain('conflict'); - } - }); - - it('throws on polling timeout', async () => { - jest.useFakeTimers(); - cfnMock.on(CreateStackRefactorCommand).resolves({ StackRefactorId: 'refactor-1' }); - cfnMock.on(DescribeStackRefactorCommand).resolves({ Status: StackRefactorStatus.CREATE_IN_PROGRESS }); - - let error: Error | undefined; - const promise = tryRefactorStack(new CloudFormationClient({}), input, 1).catch((e) => { - error = e; - }); - // Flush all pending timers - await jest.runAllTimersAsync(); - await promise; - expect(error?.message).toContain('did not reach a completion state'); - jest.useRealTimers(); - }); - - it('throws when CreateStackRefactor returns no StackRefactorId', async () => { - cfnMock.on(CreateStackRefactorCommand).resolves({}); - - await expect(tryRefactorStack(new CloudFormationClient({}), input, 1)).rejects.toThrow('no StackRefactorId'); - }); -}); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/cfn-stack-updater.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/cfn-stack-updater.test.ts deleted file mode 100644 index 80a34cf0dee..00000000000 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/cfn-stack-updater.test.ts +++ /dev/null @@ -1,145 +0,0 @@ -import { tryUpdateStack, pollStackForCompletionState } from '../../../../commands/gen2-migration/refactor/cfn-stack-updater'; -import { mockClient } from 'aws-sdk-client-mock'; -import { CloudFormationClient, UpdateStackCommand, DescribeStacksCommand } from '@aws-sdk/client-cloudformation'; -import { CFNTemplate } from '../../../../commands/gen2-migration/cfn-template'; - -jest.mock('../../../../commands/gen2-migration/refactor/snap', () => ({ - preUpdateStack: jest.fn(), -})); - -const template: CFNTemplate = { - AWSTemplateFormatVersion: '2010-09-09', - Description: 'test', - Resources: { Bucket: { Type: 'AWS::S3::Bucket', Properties: {} } }, - Outputs: {}, -}; - -describe('tryUpdateStack', () => { - let cfnMock: ReturnType; - beforeEach(() => { - cfnMock = mockClient(CloudFormationClient); - }); - afterEach(() => cfnMock.restore()); - - it('updates stack and returns completion status', async () => { - cfnMock.on(UpdateStackCommand).resolves({}); - cfnMock.on(DescribeStacksCommand).resolves({ - Stacks: [{ StackName: 'my-stack', StackStatus: 'UPDATE_COMPLETE', CreationTime: new Date() }], - }); - - const result = await tryUpdateStack({ - cfnClient: new CloudFormationClient({}), - stackName: 'my-stack', - parameters: [], - templateBody: template, - attempts: 1, - }); - expect(result).toBe('UPDATE_COMPLETE'); - }); - - it('returns UPDATE_COMPLETE without polling when no updates needed', async () => { - cfnMock.on(UpdateStackCommand).rejects({ message: 'No updates are to be performed' }); - - const result = await tryUpdateStack({ - cfnClient: new CloudFormationClient({}), - stackName: 'my-stack', - parameters: [], - templateBody: template, - }); - expect(result).toBe('UPDATE_COMPLETE'); - expect(cfnMock.commandCalls(DescribeStacksCommand)).toHaveLength(0); - }); - - it('rethrows non-no-update errors', async () => { - cfnMock.on(UpdateStackCommand).rejects(new Error('Template format error')); - - await expect( - tryUpdateStack({ - cfnClient: new CloudFormationClient({}), - stackName: 'my-stack', - parameters: [], - templateBody: template, - }), - ).rejects.toThrow('Template format error'); - }); -}); - -describe('pollStackForCompletionState', () => { - let cfnMock: ReturnType; - beforeEach(() => { - cfnMock = mockClient(CloudFormationClient); - }); - afterEach(() => cfnMock.restore()); - - it('returns immediately when stack is already complete', async () => { - cfnMock.on(DescribeStacksCommand).resolves({ - Stacks: [{ StackName: 's', StackStatus: 'UPDATE_COMPLETE', CreationTime: new Date() }], - }); - - const result = await pollStackForCompletionState(new CloudFormationClient({}), 's', 1); - expect(result).toBe('UPDATE_COMPLETE'); - expect(cfnMock.commandCalls(DescribeStacksCommand)).toHaveLength(1); - }); - - it('polls through in-progress states until completion', async () => { - jest.useFakeTimers(); - cfnMock - .on(DescribeStacksCommand) - .resolvesOnce({ Stacks: [{ StackName: 's', StackStatus: 'UPDATE_IN_PROGRESS', CreationTime: new Date() }] }) - .resolvesOnce({ Stacks: [{ StackName: 's', StackStatus: 'UPDATE_COMPLETE', CreationTime: new Date() }] }); - - let result: string | undefined; - const promise = pollStackForCompletionState(new CloudFormationClient({}), 's', 2).then((r) => { - result = r; - }); - await jest.runAllTimersAsync(); - await promise; - - expect(result).toBe('UPDATE_COMPLETE'); - expect(cfnMock.commandCalls(DescribeStacksCommand)).toHaveLength(2); - jest.useRealTimers(); - }); - - it('returns non-UPDATE_COMPLETE completion states', async () => { - cfnMock.on(DescribeStacksCommand).resolves({ - Stacks: [{ StackName: 's', StackStatus: 'UPDATE_ROLLBACK_COMPLETE', CreationTime: new Date() }], - }); - - const result = await pollStackForCompletionState(new CloudFormationClient({}), 's', 1); - expect(result).toBe('UPDATE_ROLLBACK_COMPLETE'); - }); - - it('throws when stack not found during polling', async () => { - cfnMock.on(DescribeStacksCommand).resolves({ Stacks: [] }); - - await expect(pollStackForCompletionState(new CloudFormationClient({}), 'gone-stack', 1)).rejects.toThrow( - "Stack 'gone-stack' not found while polling", - ); - }); - - it('throws when stack has no status', async () => { - cfnMock.on(DescribeStacksCommand).resolves({ - Stacks: [{ StackName: 's', StackStatus: undefined, CreationTime: new Date() }], - }); - - await expect(pollStackForCompletionState(new CloudFormationClient({}), 's', 1)).rejects.toThrow('has no status'); - }); - - it('throws on polling timeout', async () => { - jest.useFakeTimers(); - cfnMock.on(DescribeStacksCommand).resolves({ - Stacks: [{ StackName: 's', StackStatus: 'UPDATE_IN_PROGRESS', CreationTime: new Date() }], - }); - - let error: Error | undefined; - const promise = pollStackForCompletionState(new CloudFormationClient({}), 's', 1).catch((e) => { - error = e; - }); - await jest.runAllTimersAsync(); - await promise; - - expect(error?.message).toContain('did not reach a completion state'); - expect(cfnMock.commandCalls(DescribeStacksCommand)).toHaveLength(1); - jest.useRealTimers(); - }); -}); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/default-resource-mappings.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/default-resource-mappings.test.ts deleted file mode 100644 index c9d4e2dd2a3..00000000000 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/default-resource-mappings.test.ts +++ /dev/null @@ -1,135 +0,0 @@ -import { ForwardCategoryRefactorer } from '../../../../commands/gen2-migration/refactor/workflow/forward-category-refactorer'; -import { RollbackCategoryRefactorer } from '../../../../commands/gen2-migration/refactor/workflow/rollback-category-refactorer'; -import { CFNResource } from '../../../../commands/gen2-migration/cfn-template'; -import { MoveMapping } from '../../../../commands/gen2-migration/refactor/workflow/category-refactorer'; -import { noOpLogger } from '../_framework/logger'; - -class TestForwardRefactorer extends ForwardCategoryRefactorer { - protected async fetchSourceStackId() { - return 'gen1-stack'; - } - protected async fetchDestStackId() { - return 'gen2-stack'; - } - protected resourceTypes() { - return ['AWS::S3::Bucket']; - } - public testBuildResourceMappings(source: Map, target: Map): MoveMapping[] { - return this.buildResourceMappings(source, target); - } -} - -class TestRollbackRefactorer extends RollbackCategoryRefactorer { - protected override readonly gen1LogicalIds: ReadonlyMap; - - constructor(ids: ReadonlyMap) { - super(null as any, null as any, null as any, 'us-east-1', '123', noOpLogger()); - this.gen1LogicalIds = ids; - } - protected async fetchSourceStackId() { - return 'gen2-stack'; - } - protected async fetchDestStackId() { - return 'gen1-stack'; - } - protected resourceTypes() { - return []; - } - public testBuildResourceMappings(source: Map, target: Map): MoveMapping[] { - return this.buildResourceMappings(source, target); - } -} - -const r = (type: string): CFNResource => ({ Type: type, Properties: {} }); - -/** Helper: convert MoveMapping[] to Map for easy assertions */ -function toIdMap(mappings: MoveMapping[]): Map { - return new Map(mappings.map((m) => [m.sourceId, m.targetId])); -} - -describe('ForwardCategoryRefactorer.buildResourceMappings (default type-matching)', () => { - const refactorer = new TestForwardRefactorer(null as any, null as any, null as any, 'us-east-1', '123', noOpLogger()); - - it('maps single resource per type', () => { - const mappings = refactorer.testBuildResourceMappings( - new Map([['S3Bucket', r('AWS::S3::Bucket')]]), - new Map([['amplifyBucket', r('AWS::S3::Bucket')]]), - ); - const map = toIdMap(mappings); - expect(map.size).toBe(1); - expect(map.get('S3Bucket')).toBe('amplifyBucket'); - }); - - it('maps multiple types independently', () => { - const mappings = refactorer.testBuildResourceMappings( - new Map([ - ['Bucket', r('AWS::S3::Bucket')], - ['Table', r('AWS::DynamoDB::Table')], - ]), - new Map([ - ['GenBucket', r('AWS::S3::Bucket')], - ['GenTable', r('AWS::DynamoDB::Table')], - ]), - ); - const map = toIdMap(mappings); - expect(map.size).toBe(2); - expect(map.get('Bucket')).toBe('GenBucket'); - expect(map.get('Table')).toBe('GenTable'); - }); - - it('throws when target has fewer resources of the same type', () => { - expect(() => - refactorer.testBuildResourceMappings( - new Map([ - ['BucketA', r('AWS::S3::Bucket')], - ['BucketB', r('AWS::S3::Bucket')], - ]), - new Map([['GenBucket', r('AWS::S3::Bucket')]]), - ), - ).toThrow("Source resource 'BucketB' (type 'AWS::S3::Bucket') has no corresponding target resource"); - }); - - it('throws when no types match', () => { - expect(() => - refactorer.testBuildResourceMappings(new Map([['Stream', r('AWS::Kinesis::Stream')]]), new Map([['Bucket', r('AWS::S3::Bucket')]])), - ).toThrow("Source resource 'Stream' (type 'AWS::Kinesis::Stream') has no corresponding target resource"); - }); - - it('includes resource in MoveMapping', () => { - const bucket = r('AWS::S3::Bucket'); - const mappings = refactorer.testBuildResourceMappings( - new Map([['S3Bucket', bucket]]), - new Map([['amplifyBucket', r('AWS::S3::Bucket')]]), - ); - expect(mappings[0].resource).toBe(bucket); - }); -}); - -describe('RollbackCategoryRefactorer.buildResourceMappings (gen1LogicalIds-based)', () => { - it('maps source resources to Gen1 logical IDs by type', () => { - const refactorer = new TestRollbackRefactorer( - new Map([ - ['AWS::S3::Bucket', 'S3Bucket'], - ['AWS::DynamoDB::Table', 'DynamoDBTable'], - ]), - ); - const mappings = refactorer.testBuildResourceMappings( - new Map([ - ['amplifyBucket', r('AWS::S3::Bucket')], - ['amplifyTable', r('AWS::DynamoDB::Table')], - ]), - new Map(), - ); - const map = toIdMap(mappings); - expect(map.size).toBe(2); - expect(map.get('amplifyBucket')).toBe('S3Bucket'); - expect(map.get('amplifyTable')).toBe('DynamoDBTable'); - }); - - it('throws for resource type not in gen1LogicalIds', () => { - const refactorer = new TestRollbackRefactorer(new Map([['AWS::S3::Bucket', 'S3Bucket']])); - expect(() => refactorer.testBuildResourceMappings(new Map([['amplifyTopic', r('AWS::SNS::Topic')]]), new Map())).toThrow( - "No known Gen1 logical ID for resource type 'AWS::SNS::Topic' (source: 'amplifyTopic')", - ); - }); -}); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/forward-beforemove.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/forward-beforemove.test.ts deleted file mode 100644 index 97b448c0e45..00000000000 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/forward-beforemove.test.ts +++ /dev/null @@ -1,172 +0,0 @@ -import { ForwardCategoryRefactorer } from '../../../../commands/gen2-migration/refactor/workflow/forward-category-refactorer'; -import { CFNResource, CFNTemplate } from '../../../../commands/gen2-migration/cfn-template'; -import { RefactorBlueprint, MoveMapping } from '../../../../commands/gen2-migration/refactor/workflow/category-refactorer'; -import { AwsClients } from '../../../../commands/gen2-migration/aws-clients'; -import { StackFacade } from '../../../../commands/gen2-migration/refactor/stack-facade'; -import { noOpLogger } from '../_framework/logger'; -import { mockClient } from 'aws-sdk-client-mock'; -import { - CloudFormationClient, - DescribeStacksCommand, - DescribeStackResourcesCommand, - CreateStackRefactorCommand, - DescribeStackRefactorCommand, - ExecuteStackRefactorCommand, - DeleteStackCommand, - StackRefactorStatus, - StackRefactorExecutionStatus, -} from '@aws-sdk/client-cloudformation'; - -class TestForwardRefactorer extends ForwardCategoryRefactorer { - protected async fetchSourceStackId() { - return 'gen1-stack'; - } - protected async fetchDestStackId() { - return 'gen2-stack'; - } - protected resourceTypes() { - return ['AWS::S3::Bucket']; - } -} - -function makeBlueprint(overrides: { - targetResolved?: Record; - targetAfterRemoval?: Record; - mappings?: MoveMapping[]; -}): RefactorBlueprint { - const sourceTemplate: CFNTemplate = { - AWSTemplateFormatVersion: '2010-09-09', - Description: 'source', - Resources: {}, - Outputs: {}, - }; - const targetResources = overrides.targetResolved ?? {}; - const targetTemplate: CFNTemplate = { - AWSTemplateFormatVersion: '2010-09-09', - Description: 'target', - Resources: targetResources, - Outputs: {}, - }; - const afterRemovalResources = overrides.targetAfterRemoval ?? {}; - const afterRemoval: CFNTemplate = { - AWSTemplateFormatVersion: '2010-09-09', - Description: 'target after removal', - Resources: afterRemovalResources, - Outputs: {}, - }; - - return { - source: { - stackId: 'gen1-stack', - parameters: [], - resolvedTemplate: sourceTemplate, - afterRemoval: sourceTemplate, - }, - target: { - stackId: 'gen2-stack', - parameters: [], - resolvedTemplate: targetTemplate, - afterRemoval, - afterAddition: afterRemoval, - }, - mappings: overrides.mappings ?? [], - }; -} - -describe('ForwardCategoryRefactorer.beforeMovePlan', () => { - let cfnMock: ReturnType; - - beforeEach(() => { - cfnMock = mockClient(CloudFormationClient); - }); - afterEach(() => cfnMock.restore()); - - it('returns empty operations when target has no category resources', () => { - const clients = new AwsClients({ region: 'us-east-1' }); - const refactorer = new TestForwardRefactorer( - new StackFacade(clients, 'g1'), - new StackFacade(clients, 'g2'), - clients, - 'us-east-1', - '123', - noOpLogger(), - ); - const blueprint = makeBlueprint({ - targetResolved: { Lambda: { Type: 'AWS::Lambda::Function', Properties: {} } }, - }); - - const operations = (refactorer as any).beforeMovePlan(blueprint); - expect(operations).toHaveLength(0); - }); - - it('creates holding stack operation when target has category resources', async () => { - cfnMock.on(DescribeStacksCommand).resolves({ Stacks: [] }); - cfnMock.on(CreateStackRefactorCommand).resolves({ StackRefactorId: 'r1' }); - cfnMock - .on(DescribeStackRefactorCommand) - .resolves({ Status: StackRefactorStatus.CREATE_COMPLETE, ExecutionStatus: StackRefactorExecutionStatus.EXECUTE_COMPLETE }); - cfnMock.on(ExecuteStackRefactorCommand).resolves({}); - cfnMock.on(DescribeStackResourcesCommand).resolves({ StackResources: [] }); - - const clients = new AwsClients({ region: 'us-east-1' }); - (clients as any).cloudFormation = new CloudFormationClient({}); - const refactorer = new TestForwardRefactorer( - new StackFacade(clients, 'g1'), - new StackFacade(clients, 'g2'), - clients, - 'us-east-1', - '123', - noOpLogger(), - ); - - const blueprint = makeBlueprint({ - targetResolved: { - MyBucket: { Type: 'AWS::S3::Bucket', Properties: {} }, - Other: { Type: 'AWS::Lambda::Function', Properties: {} }, - }, - targetAfterRemoval: { - Other: { Type: 'AWS::Lambda::Function', Properties: {} }, - }, - }); - - const operations = (refactorer as any).beforeMovePlan(blueprint); - expect(operations).toHaveLength(1); - expect(await operations[0].describe()).toEqual([expect.stringContaining('holding stack')]); - }); - - it('cleans up orphaned REVIEW_IN_PROGRESS holding stack before creating new one', async () => { - cfnMock - .on(DescribeStacksCommand) - .resolvesOnce({ Stacks: [{ StackName: 'holding', StackStatus: 'REVIEW_IN_PROGRESS', CreationTime: new Date() }] }) - .resolvesOnce({ Stacks: [{ StackName: 'holding', StackStatus: 'DELETE_COMPLETE', CreationTime: new Date() }] }) - .resolves({ Stacks: [{ StackName: 'stack', StackStatus: 'UPDATE_COMPLETE', CreationTime: new Date() }] }); - cfnMock.on(DeleteStackCommand).resolves({}); - cfnMock.on(CreateStackRefactorCommand).resolves({ StackRefactorId: 'r1' }); - cfnMock - .on(DescribeStackRefactorCommand) - .resolves({ Status: StackRefactorStatus.CREATE_COMPLETE, ExecutionStatus: StackRefactorExecutionStatus.EXECUTE_COMPLETE }); - cfnMock.on(ExecuteStackRefactorCommand).resolves({}); - cfnMock.on(DescribeStackResourcesCommand).resolves({ StackResources: [] }); - - const clients = new AwsClients({ region: 'us-east-1' }); - (clients as any).cloudFormation = new CloudFormationClient({}); - const refactorer = new TestForwardRefactorer( - new StackFacade(clients, 'g1'), - new StackFacade(clients, 'g2'), - clients, - 'us-east-1', - '123', - noOpLogger(), - ); - - const blueprint = makeBlueprint({ - targetResolved: { MyBucket: { Type: 'AWS::S3::Bucket', Properties: {} } }, - targetAfterRemoval: {}, - }); - - const operations = (refactorer as any).beforeMovePlan(blueprint); - await operations[0].execute(); - - expect(cfnMock.commandCalls(DeleteStackCommand).length).toBeGreaterThan(0); - }); -}); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/holding-stack.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/holding-stack.test.ts deleted file mode 100644 index 4ba4208e8e4..00000000000 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/holding-stack.test.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { getHoldingStackName, findHoldingStack } from '../../../../commands/gen2-migration/refactor/holding-stack'; -import { mockClient } from 'aws-sdk-client-mock'; -import { CloudFormationClient, DescribeStacksCommand } from '@aws-sdk/client-cloudformation'; - -describe('holding-stack', () => { - describe('getHoldingStackName', () => { - it('appends -holding after the hash suffix', () => { - const name = getHoldingStackName('amplify-app-main-auth-ABCD1234'); - expect(name).toBe('amplify-app-main-auth-ABCD1234-holding'); - }); - - it('truncates prefix when result would exceed 128 characters', () => { - const longPrefix = 'a'.repeat(120); - const stackId = `${longPrefix}-HASH1234`; - const name = getHoldingStackName(stackId); - expect(name.length).toBeLessThanOrEqual(128); - expect(name).toContain('-HASH1234-holding'); - }); - }); - - describe('findHoldingStack', () => { - let cfnMock: ReturnType; - beforeEach(() => { - cfnMock = mockClient(CloudFormationClient); - }); - afterEach(() => cfnMock.restore()); - - it('returns the stack when it exists', async () => { - cfnMock.on(DescribeStacksCommand).resolves({ - Stacks: [{ StackName: 'holding', StackStatus: 'CREATE_COMPLETE', CreationTime: new Date() }], - }); - const result = await findHoldingStack(new CloudFormationClient({}), 'holding'); - expect(result).not.toBeNull(); - expect(result?.StackName).toBe('holding'); - }); - - it('returns null when stack does not exist (ValidationError)', async () => { - // Mock returns empty stacks — findHoldingStack returns null - cfnMock.on(DescribeStacksCommand).resolves({ Stacks: [] }); - const result = await findHoldingStack(new CloudFormationClient({}), 'nonexistent'); - expect(result).toBeNull(); - }); - }); -}); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/legacy-custom-resource.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/legacy-custom-resource.test.ts deleted file mode 100644 index 50f82212a1a..00000000000 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/legacy-custom-resource.test.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { parseResourceMappings } from '../../../../commands/gen2-migration/refactor/legacy-custom-resource'; -import fs from 'fs-extra'; - -jest.mock('fs-extra'); -const mockFs = fs as jest.Mocked; - -describe('parseResourceMappings', () => { - afterEach(() => jest.restoreAllMocks()); - - it('parses valid resource mappings file', async () => { - const mappings = [{ Source: { StackName: 'src', LogicalResourceId: 'A' }, Destination: { StackName: 'dst', LogicalResourceId: 'B' } }]; - mockFs.pathExists.mockResolvedValue(true as never); - mockFs.readFile.mockResolvedValue(JSON.stringify(mappings) as never); - - const result = await parseResourceMappings('file:///path/to/mappings.json'); - expect(result).toEqual(mappings); - }); - - it('throws when path does not start with file://', async () => { - await expect(parseResourceMappings('/path/to/file.json')).rejects.toThrow('must start with file://'); - }); - - it('throws when path after file:// is empty', async () => { - await expect(parseResourceMappings('file://')).rejects.toThrow('Invalid resource mappings path'); - }); - - it('throws when file does not exist', async () => { - mockFs.pathExists.mockResolvedValue(false as never); - await expect(parseResourceMappings('file:///nonexistent.json')).rejects.toThrow('not found'); - }); - - it('throws when file contains invalid JSON', async () => { - mockFs.pathExists.mockResolvedValue(true as never); - mockFs.readFile.mockResolvedValue('not json' as never); - await expect(parseResourceMappings('file:///bad.json')).rejects.toThrow('Failed to parse JSON'); - }); - - it('throws when structure is invalid', async () => { - mockFs.pathExists.mockResolvedValue(true as never); - mockFs.readFile.mockResolvedValue(JSON.stringify([{ bad: 'shape' }]) as never); - await expect(parseResourceMappings('file:///invalid.json')).rejects.toThrow('Invalid resource mappings structure'); - }); -}); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/refactor.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/refactor.test.ts index 2b47c724b6a..19fb1885fc5 100644 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/refactor.test.ts +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/refactor.test.ts @@ -1,5 +1,5 @@ import { AmplifyMigrationRefactorStep } from '../../../../commands/gen2-migration/refactor'; -import { OUTPUT_DIRECTORY } from '../../../../commands/gen2-migration/refactor/snap'; +import { OUTPUT_DIRECTORY } from '../../../../commands/gen2-migration/refactor/cfn'; import { MigrationApp, MigrationAppOptions } from '../_framework/app'; import { Gen1App, DiscoveredResource } from '../../../../commands/gen2-migration/generate/_infra/gen1-app'; import { Assessment } from '../../../../commands/gen2-migration/_assessment'; @@ -13,6 +13,22 @@ const TIMEOUT_MINUTES = 60; jest.setTimeout(60 * 1000 * TIMEOUT_MINUTES); +// Mock SDK waiters to resolve immediately. The underlying DescribeStacks/DescribeStackRefactor +// mocks return the correct terminal status, but the SDK waiters have a 30-second minDelay +// between polls. With multiple refactor operations per test, this adds minutes of dead time. +jest.mock('@aws-sdk/client-cloudformation', () => { + const actual = jest.requireActual('@aws-sdk/client-cloudformation'); + return { + ...actual, + waitUntilStackUpdateComplete: jest.fn().mockResolvedValue({ state: 'SUCCESS' }), + waitUntilStackCreateComplete: jest.fn().mockResolvedValue({ state: 'SUCCESS' }), + waitUntilStackDeleteComplete: jest.fn().mockResolvedValue({ state: 'SUCCESS' }), + waitUntilStackRefactorCreateComplete: jest.fn().mockResolvedValue({ state: 'SUCCESS' }), + waitUntilStackRefactorExecuteComplete: jest.fn().mockResolvedValue({ state: 'SUCCESS' }), + waitUntilChangeSetCreateComplete: jest.fn().mockResolvedValue({ state: 'SUCCESS' }), + }; +}); + // fs-extra is (for some reason) globally mocked in tests via the __mocks__ directory. // unmock it because we actually need the proper implementation. // note that this must be declared in the top level since jest will hoist it such that it @@ -56,6 +72,10 @@ test('mood-board snapshot', async () => { await testSnapshot('mood-board'); }); +test('fitness-tracker snapshot', async () => { + await testSnapshot('fitness-tracker'); +}); + async function testSnapshot(appName: string, appOptions?: MigrationAppOptions, customize?: (app: MigrationApp) => Promise) { await MigrationApp.run( appName, @@ -175,7 +195,7 @@ describe('AmplifyMigrationRefactorStep', () => { recordSpy.mockRestore(); }); - it('records Cognito-UserPool-Groups as not supported', async () => { + it('records Cognito-UserPool-Groups as supported', async () => { createSpy = mockDiscover([ { category: 'auth', resourceName: 'userPoolGroups', service: 'Cognito-UserPool-Groups', key: 'auth:Cognito-UserPool-Groups' }, ]); @@ -185,7 +205,7 @@ describe('AmplifyMigrationRefactorStep', () => { await step.assess(new Assessment('test-app', 'dev')); expect(recordSpy).toHaveBeenCalledWith('refactor', expect.objectContaining({ resourceName: 'userPoolGroups' }), { - supported: false, + supported: true, }); recordSpy.mockRestore(); @@ -201,16 +221,6 @@ describe('AmplifyMigrationRefactorStep', () => { await expect(step.forward()).rejects.toThrow(/Unsupported resource 'push'/); }); - it('throws on Cognito-UserPool-Groups', async () => { - infraSpy = mockCreateInfrastructure(); - createSpy = mockDiscover([ - { category: 'auth', resourceName: 'userPoolGroups', service: 'Cognito-UserPool-Groups', key: 'auth:Cognito-UserPool-Groups' }, - ]); - - const step = createStep(); - await expect(step.forward()).rejects.toThrow(/Unsupported resource 'userPoolGroups'/); - }); - it('does not throw for stateless-only resources', async () => { infraSpy = mockCreateInfrastructure(); createSpy = mockDiscover([ @@ -222,17 +232,6 @@ describe('AmplifyMigrationRefactorStep', () => { const plan = await step.forward(); await plan.describe(); }); - - it('throws on multiple resources in the same refactor category', async () => { - infraSpy = mockCreateInfrastructure(); - createSpy = mockDiscover([ - { category: 'storage', resourceName: 'avatars', service: 'S3', key: 'storage:S3' }, - { category: 'storage', resourceName: 'avatars', service: 'S3', key: 'storage:S3' }, - ]); - - const step = createStep(); - await expect(step.forward()).rejects.toThrow(/Multiple resources map to stack 'storageavatars'/); - }); }); describe('rollback()', () => { @@ -244,16 +243,6 @@ describe('AmplifyMigrationRefactorStep', () => { await expect(step.rollback()).rejects.toThrow(/Unsupported resource 'push'/); }); - it('throws on Cognito-UserPool-Groups', async () => { - infraSpy = mockCreateInfrastructure(); - createSpy = mockDiscover([ - { category: 'auth', resourceName: 'userPoolGroups', service: 'Cognito-UserPool-Groups', key: 'auth:Cognito-UserPool-Groups' }, - ]); - - const step = createStep(); - await expect(step.rollback()).rejects.toThrow(/Unsupported resource 'userPoolGroups'/); - }); - it('does not throw for stateless-only resources', async () => { infraSpy = mockCreateInfrastructure(); createSpy = mockDiscover([ @@ -265,16 +254,5 @@ describe('AmplifyMigrationRefactorStep', () => { const plan = await step.rollback(); await plan.describe(); }); - - it('throws on multiple resources in the same refactor category', async () => { - infraSpy = mockCreateInfrastructure(); - createSpy = mockDiscover([ - { category: 'auth', resourceName: 'pool1', service: 'Cognito', key: 'auth:Cognito' }, - { category: 'auth', resourceName: 'pool2', service: 'Cognito', key: 'auth:Cognito' }, - ]); - - const step = createStep(); - await expect(step.rollback()).rejects.toThrow(/Multiple resources map to stack 'auth'/); - }); }); }); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/cfn-condition-resolver.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/resolvers/cfn-condition-resolver.test.ts similarity index 97% rename from packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/cfn-condition-resolver.test.ts rename to packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/resolvers/cfn-condition-resolver.test.ts index 8d821cca276..57979966a0c 100644 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/cfn-condition-resolver.test.ts +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/resolvers/cfn-condition-resolver.test.ts @@ -1,5 +1,5 @@ -import { resolveConditions } from '../../../../commands/gen2-migration/refactor/resolvers/cfn-condition-resolver'; -import { CFNTemplate } from '../../../../commands/gen2-migration/cfn-template'; +import { resolveConditions } from '../../../../../commands/gen2-migration/refactor/resolvers/cfn-condition-resolver'; +import { CFNTemplate } from '../../../../../commands/gen2-migration/cfn-template'; /** * Builds a template with one condition gating one resource. diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/resolvers/cfn-dependency-resolver.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/resolvers/cfn-dependency-resolver.test.ts new file mode 100644 index 00000000000..1ef045e91fd --- /dev/null +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/resolvers/cfn-dependency-resolver.test.ts @@ -0,0 +1,45 @@ +import { resolveDependencies } from '../../../../../commands/gen2-migration/refactor/resolvers/cfn-dependency-resolver'; +import { CFNTemplate } from '../../../../../commands/gen2-migration/cfn-template'; + +const makeTemplate = (resources: Record): CFNTemplate => ({ + AWSTemplateFormatVersion: '2010-09-09', + Description: 'test', + Resources: Object.fromEntries(Object.entries(resources).map(([k, v]) => [k, { ...v, Properties: {} }])), + Outputs: {}, +}); + +describe('resolveDependencies', () => { + it('strips all DependsOn from every resource', () => { + const template = makeTemplate({ + StayingResource: { Type: 'AWS::Lambda::Function', DependsOn: ['MovingResource', 'OtherStaying'] }, + MovingResource: { Type: 'AWS::S3::Bucket' }, + OtherStaying: { Type: 'AWS::IAM::Role', DependsOn: 'MovingResource' }, + }); + + const result = resolveDependencies(template); + expect(result.Resources.StayingResource.DependsOn).toBeUndefined(); + expect(result.Resources.MovingResource.DependsOn).toBeUndefined(); + expect(result.Resources.OtherStaying.DependsOn).toBeUndefined(); + }); + + it('passes through resources without DependsOn unchanged', () => { + const template = makeTemplate({ + NoDeps: { Type: 'AWS::S3::Bucket' }, + AlsoNoDeps: { Type: 'AWS::DynamoDB::Table' }, + }); + + const result = resolveDependencies(template); + expect(result.Resources.NoDeps.DependsOn).toBeUndefined(); + expect(result.Resources.AlsoNoDeps.DependsOn).toBeUndefined(); + }); + + it('does not mutate the input template', () => { + const template = makeTemplate({ + A: { Type: 'AWS::S3::Bucket', DependsOn: ['B'] }, + B: { Type: 'AWS::S3::BucketPolicy' }, + }); + + resolveDependencies(template); + expect(template.Resources.A.DependsOn).toEqual(['B']); + }); +}); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/cfn-output-resolver.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/resolvers/cfn-output-resolver.test.ts similarity index 98% rename from packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/cfn-output-resolver.test.ts rename to packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/resolvers/cfn-output-resolver.test.ts index dd917c4088e..c0f45f1ae05 100644 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/cfn-output-resolver.test.ts +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/resolvers/cfn-output-resolver.test.ts @@ -1,5 +1,5 @@ -import { resolveOutputs } from '../../../../commands/gen2-migration/refactor/resolvers/cfn-output-resolver'; -import { CFNTemplate } from '../../../../commands/gen2-migration/cfn-template'; +import { resolveOutputs } from '../../../../../commands/gen2-migration/refactor/resolvers/cfn-output-resolver'; +import { CFNTemplate } from '../../../../../commands/gen2-migration/cfn-template'; const baseTemplate: CFNTemplate = { AWSTemplateFormatVersion: '2010-09-09', diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/cfn-parameter-resolver.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/resolvers/cfn-parameter-resolver.test.ts similarity index 95% rename from packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/cfn-parameter-resolver.test.ts rename to packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/resolvers/cfn-parameter-resolver.test.ts index 5a508bf8519..90d458ff267 100644 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/cfn-parameter-resolver.test.ts +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/resolvers/cfn-parameter-resolver.test.ts @@ -1,5 +1,5 @@ -import { resolveParameters } from '../../../../commands/gen2-migration/refactor/resolvers/cfn-parameter-resolver'; -import { CFNTemplate } from '../../../../commands/gen2-migration/cfn-template'; +import { resolveParameters } from '../../../../../commands/gen2-migration/refactor/resolvers/cfn-parameter-resolver'; +import { CFNTemplate } from '../../../../../commands/gen2-migration/cfn-template'; const baseTemplate: CFNTemplate = { AWSTemplateFormatVersion: '2010-09-09', diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/cfn-tree-walker.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/resolvers/cfn-tree-walker.test.ts similarity index 93% rename from packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/cfn-tree-walker.test.ts rename to packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/resolvers/cfn-tree-walker.test.ts index 558f5076538..9292c2eb16d 100644 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/cfn-tree-walker.test.ts +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/resolvers/cfn-tree-walker.test.ts @@ -1,4 +1,4 @@ -import { walkCfnTree } from '../../../../commands/gen2-migration/refactor/resolvers/cfn-tree-walker'; +import { walkCfnTree } from '../../../../../commands/gen2-migration/refactor/resolvers/cfn-tree-walker'; describe('walkCfnTree', () => { it('returns primitives unchanged', () => { diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/rollback-aftermove.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/rollback-aftermove.test.ts deleted file mode 100644 index 2a54f3d36d3..00000000000 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/rollback-aftermove.test.ts +++ /dev/null @@ -1,170 +0,0 @@ -import { RollbackCategoryRefactorer } from '../../../../commands/gen2-migration/refactor/workflow/rollback-category-refactorer'; -import { CFNResource, CFNTemplate } from '../../../../commands/gen2-migration/cfn-template'; -import { RefactorBlueprint, MoveMapping } from '../../../../commands/gen2-migration/refactor/workflow/category-refactorer'; -import { AwsClients } from '../../../../commands/gen2-migration/aws-clients'; -import { StackFacade } from '../../../../commands/gen2-migration/refactor/stack-facade'; -import { noOpLogger } from '../_framework/logger'; -import { mockClient } from 'aws-sdk-client-mock'; -import { - CloudFormationClient, - GetTemplateCommand, - DescribeStacksCommand, - DescribeStackResourcesCommand, - DeleteStackCommand, - UpdateStackCommand, - CreateStackRefactorCommand, - DescribeStackRefactorCommand, - ExecuteStackRefactorCommand, - StackRefactorStatus, - StackRefactorExecutionStatus, -} from '@aws-sdk/client-cloudformation'; - -// Concrete test subclass -class TestRollbackRefactorer extends RollbackCategoryRefactorer { - protected async fetchSourceStackId() { - return 'gen2-stack-id'; - } - protected async fetchDestStackId() { - return 'gen1-stack-id'; - } - protected resourceTypes() { - return ['AWS::S3::Bucket']; - } - protected buildResourceMappings(source: Map) { - const mappings: MoveMapping[] = []; - for (const [id, resource] of source) mappings.push({ sourceId: id, targetId: 'S3Bucket', resource }); - return mappings; - } -} - -function makeBlueprint(sourceAfterRemoval: CFNTemplate): RefactorBlueprint { - const emptyTemplate: CFNTemplate = { - AWSTemplateFormatVersion: '2010-09-09', - Description: 'empty', - Resources: {}, - Outputs: {}, - }; - return { - source: { - stackId: 'gen2-auth-stack-id', - parameters: [], - resolvedTemplate: emptyTemplate, - afterRemoval: sourceAfterRemoval, - }, - target: { - stackId: 'gen1-stack-id', - parameters: [], - resolvedTemplate: emptyTemplate, - afterRemoval: emptyTemplate, - afterAddition: emptyTemplate, - }, - mappings: [], - }; -} - -/** - * afterMovePlan reads the holding stack template during plan() and returns - * 3 separate operations: (1) update holding stack with placeholder, - * (2) refactor resources back to Gen2, (3) delete holding stack. - */ -describe('RollbackCategoryRefactorer.afterMovePlan', () => { - let cfnMock: ReturnType; - - beforeEach(() => { - cfnMock = mockClient(CloudFormationClient); - }); - - afterEach(() => { - cfnMock.restore(); - }); - - it('reads holding stack during plan and splits into 3 operations', async () => { - const holdingTemplate: CFNTemplate = { - AWSTemplateFormatVersion: '2010-09-09', - Description: 'holding', - Resources: { - MyBucket: { Type: 'AWS::S3::Bucket', Properties: { BucketName: 'test-bucket' } }, - }, - Outputs: {}, - }; - - cfnMock.on(DescribeStacksCommand).resolves({ - Stacks: [{ StackName: 'holding', StackStatus: 'UPDATE_COMPLETE', CreationTime: new Date() }], - }); - cfnMock.on(GetTemplateCommand).resolves({ TemplateBody: JSON.stringify(holdingTemplate) }); - cfnMock.on(UpdateStackCommand).resolves({}); - cfnMock.on(CreateStackRefactorCommand).resolves({ StackRefactorId: 'refactor-123' }); - cfnMock.on(DescribeStackRefactorCommand).resolves({ - Status: StackRefactorStatus.CREATE_COMPLETE, - ExecutionStatus: StackRefactorExecutionStatus.EXECUTE_COMPLETE, - }); - cfnMock.on(ExecuteStackRefactorCommand).resolves({}); - cfnMock.on(DeleteStackCommand).resolves({}); - cfnMock.on(DescribeStackResourcesCommand).resolves({ StackResources: [] }); - - const clients = new AwsClients({ region: 'us-east-1' }); - (clients as any).cloudFormation = new CloudFormationClient({}); - const gen1Env = new StackFacade(clients, 'gen1-root'); - const gen2Branch = new StackFacade(clients, 'gen2-root'); - const refactorer = new TestRollbackRefactorer(gen1Env, gen2Branch, clients, 'us-east-1', '123456789', noOpLogger()); - - const sourceAfterRemoval: CFNTemplate = { - AWSTemplateFormatVersion: '2010-09-09', - Description: 'gen2 after move', - Resources: { OtherResource: { Type: 'AWS::Lambda::Function', Properties: {} } }, - Outputs: {}, - }; - - const blueprint = makeBlueprint(sourceAfterRemoval); - - const operations = await (refactorer as any).afterMovePlan(blueprint); - - // 3 operations: update holding with placeholder, refactor back, delete holding - expect(operations).toHaveLength(3); - - // Verify descriptions - expect(await operations[0].describe()).toEqual([expect.stringContaining('placeholder')]); - expect(await operations[1].describe()).toEqual([expect.stringContaining('Restore')]); - expect(await operations[2].describe()).toEqual([expect.stringContaining('Delete')]); - - // Execute all 3 operations - await operations[0].execute(); - await operations[1].execute(); - await operations[2].execute(); - - // Verify the restore template passed to CreateStackRefactor (op 2) - const refactorCalls = cfnMock.commandCalls(CreateStackRefactorCommand); - expect(refactorCalls.length).toBeGreaterThan(0); - - const destTemplate = JSON.parse(refactorCalls[0].args[0].input.StackDefinitions![1].TemplateBody!); - - // Restore template = source.afterRemoval + holding stack resources - expect(destTemplate.Resources.OtherResource).toBeDefined(); - expect(destTemplate.Resources.MyBucket).toBeDefined(); - expect(destTemplate.Resources.MyBucket.Properties.BucketName).toBe('test-bucket'); - - // Verify delete was called (op 3) - expect(cfnMock.commandCalls(DeleteStackCommand).length).toBeGreaterThan(0); - }); - - it('returns empty operations when no holding stack exists', async () => { - cfnMock.on(DescribeStacksCommand).resolves({ Stacks: [] }); - - const clients = new AwsClients({ region: 'us-east-1' }); - (clients as any).cloudFormation = new CloudFormationClient({}); - const gen1Env = new StackFacade(clients, 'gen1-root'); - const gen2Branch = new StackFacade(clients, 'gen2-root'); - const refactorer = new TestRollbackRefactorer(gen1Env, gen2Branch, clients, 'us-east-1', '123456789', noOpLogger()); - - const emptyTemplate: CFNTemplate = { - AWSTemplateFormatVersion: '2010-09-09', - Description: 'test', - Resources: {}, - Outputs: {}, - }; - const blueprint = makeBlueprint(emptyTemplate); - - const operations = await (refactorer as any).afterMovePlan(blueprint); - expect(operations).toHaveLength(0); - }); -}); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/stack-facade.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/stack-facade.test.ts index f6c875e7655..f3993221cf4 100644 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/stack-facade.test.ts +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/stack-facade.test.ts @@ -16,31 +16,20 @@ describe('StackFacade', () => { afterEach(() => cfnMock.restore()); - it('returns cached template on second call without hitting AWS', async () => { + it('fetches and parses template from CloudFormation', async () => { cfnMock.on(GetTemplateCommand).resolves({ TemplateBody: JSON.stringify({ AWSTemplateFormatVersion: '2010-09-09', Description: 'test', Resources: {}, Outputs: {} }), }); - const first = await facade.fetchTemplate('stack-1'); - const second = await facade.fetchTemplate('stack-1'); - - expect(first).toBe(second); + const result = await facade.fetchTemplate('stack-1'); + expect(result.Description).toBe('test'); expect(cfnMock.commandCalls(GetTemplateCommand)).toHaveLength(1); }); - it('evicts cache entry on rejection and retries on next call', async () => { - cfnMock - .on(GetTemplateCommand) - .rejectsOnce(new Error('throttle')) - .resolves({ - TemplateBody: JSON.stringify({ AWSTemplateFormatVersion: '2010-09-09', Description: 'ok', Resources: {}, Outputs: {} }), - }); + it('throws when template body is empty', async () => { + cfnMock.on(GetTemplateCommand).resolves({ TemplateBody: undefined }); - await expect(facade.fetchTemplate('stack-1')).rejects.toThrow('throttle'); - - const result = await facade.fetchTemplate('stack-1'); - expect(result.Description).toBe('ok'); - expect(cfnMock.commandCalls(GetTemplateCommand)).toHaveLength(2); + await expect(facade.fetchTemplate('stack-1')).rejects.toThrow('returned an empty template'); }); it('fetchNestedStacks filters to AWS::CloudFormation::Stack resources only', async () => { diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/storage/storage-dynamo-rollback.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/storage/storage-dynamo-rollback.test.ts new file mode 100644 index 00000000000..8365136e9f5 --- /dev/null +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/storage/storage-dynamo-rollback.test.ts @@ -0,0 +1,28 @@ +import { StorageDynamoRollbackRefactorer } from '../../../../../commands/gen2-migration/refactor/storage/storage-dynamo-rollback'; +import { Cfn } from '../../../../../commands/gen2-migration/refactor/cfn'; +import { noOpLogger } from '../../_framework/logger'; + +describe('StorageDynamoRollbackRefactorer.targetLogicalId', () => { + const refactorer = new (class extends StorageDynamoRollbackRefactorer { + public testTargetLogicalId(type: string): string | undefined { + return this.targetLogicalId('anySourceId', { Type: type, Properties: {} }); + } + })( + null as any, + null as any, + null as any, + 'us-east-1', + '123', + noOpLogger(), + { category: 'storage', resourceName: 'test', service: 'DynamoDB', key: 'storage:DynamoDB' as const }, + null as unknown as Cfn, + ); + + it('maps DynamoDB::Table to DynamoDBTable', () => { + expect(refactorer.testTargetLogicalId('AWS::DynamoDB::Table')).toBe('DynamoDBTable'); + }); + + it('returns undefined for unknown resource type', () => { + expect(refactorer.testTargetLogicalId('AWS::Lambda::Function')).toBeUndefined(); + }); +}); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/storage/storage-rollback.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/storage/storage-rollback.test.ts new file mode 100644 index 00000000000..1c96458847f --- /dev/null +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/storage/storage-rollback.test.ts @@ -0,0 +1,28 @@ +import { StorageS3RollbackRefactorer } from '../../../../../commands/gen2-migration/refactor/storage/storage-rollback'; +import { Cfn } from '../../../../../commands/gen2-migration/refactor/cfn'; +import { noOpLogger } from '../../_framework/logger'; + +describe('StorageS3RollbackRefactorer.targetLogicalId', () => { + const refactorer = new (class extends StorageS3RollbackRefactorer { + public testTargetLogicalId(type: string): string | undefined { + return this.targetLogicalId('anySourceId', { Type: type, Properties: {} }); + } + })( + null as any, + null as any, + null as any, + 'us-east-1', + '123', + noOpLogger(), + { category: 'storage', resourceName: 'test', service: 'S3', key: 'storage:S3' as const }, + null as unknown as Cfn, + ); + + it('maps S3::Bucket to S3Bucket', () => { + expect(refactorer.testTargetLogicalId('AWS::S3::Bucket')).toBe('S3Bucket'); + }); + + it('returns undefined for unknown resource type', () => { + expect(refactorer.testTargetLogicalId('AWS::Lambda::Function')).toBeUndefined(); + }); +}); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/category-plan-orchestration.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/workflow/category-refactorer.test.ts similarity index 60% rename from packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/category-plan-orchestration.test.ts rename to packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/workflow/category-refactorer.test.ts index c1938a23cac..417ea11c499 100644 --- a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/category-plan-orchestration.test.ts +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/workflow/category-refactorer.test.ts @@ -1,11 +1,11 @@ -import { StorageS3ForwardRefactorer } from '../../../../commands/gen2-migration/refactor/storage/storage-forward'; -import { StorageS3RollbackRefactorer } from '../../../../commands/gen2-migration/refactor/storage/storage-rollback'; -import { AnalyticsKinesisForwardRefactorer } from '../../../../commands/gen2-migration/refactor/analytics/analytics-forward'; -import { AnalyticsKinesisRollbackRefactorer } from '../../../../commands/gen2-migration/refactor/analytics/analytics-rollback'; -import { CFNTemplate } from '../../../../commands/gen2-migration/cfn-template'; -import { AwsClients } from '../../../../commands/gen2-migration/aws-clients'; -import { StackFacade } from '../../../../commands/gen2-migration/refactor/stack-facade'; -import { noOpLogger } from '../_framework/logger'; +import { StorageS3ForwardRefactorer } from '../../../../../commands/gen2-migration/refactor/storage/storage-forward'; +import { StorageS3RollbackRefactorer } from '../../../../../commands/gen2-migration/refactor/storage/storage-rollback'; +import { AnalyticsKinesisForwardRefactorer } from '../../../../../commands/gen2-migration/refactor/analytics/analytics-forward'; +import { AnalyticsKinesisRollbackRefactorer } from '../../../../../commands/gen2-migration/refactor/analytics/analytics-rollback'; +import { CFNTemplate } from '../../../../../commands/gen2-migration/cfn-template'; +import { AwsClients } from '../../../../../commands/gen2-migration/aws-clients'; +import { StackFacade } from '../../../../../commands/gen2-migration/refactor/stack-facade'; +import { noOpLogger } from '../../_framework/logger'; import { mockClient } from 'aws-sdk-client-mock'; import { CloudFormationClient, @@ -13,7 +13,11 @@ import { DescribeStacksCommand, DescribeStackResourcesCommand, ResourceStatus, + CreateChangeSetCommand, + DescribeChangeSetCommand, + DeleteChangeSetCommand, } from '@aws-sdk/client-cloudformation'; +import { Cfn } from '../../../../../commands/gen2-migration/refactor/cfn'; const ts = new Date(); const rs = ResourceStatus.CREATE_COMPLETE; @@ -63,13 +67,18 @@ function makeInstances() { (clients as any).cloudFormation = new CloudFormationClient({}); const gen1Env = new StackFacade(clients, 'gen1-root'); const gen2Branch = new StackFacade(clients, 'gen2-root'); - return { clients, gen1Env, gen2Branch }; + const cfn = new Cfn(new CloudFormationClient({}), noOpLogger()); + return { clients, gen1Env, gen2Branch, cfn }; } describe('CategoryRefactorer.plan() orchestration — via StorageS3ForwardRefactorer', () => { let cfnMock: ReturnType; beforeEach(() => { cfnMock = mockClient(CloudFormationClient); + cfnMock.on(CreateChangeSetCommand).resolves({}); + cfnMock.on(DescribeChangeSetCommand).resolves({ Status: 'CREATE_COMPLETE', Changes: [] }); + cfnMock.on(DeleteChangeSetCommand).resolves({}); + cfnMock.on(DescribeStacksCommand).resolves({ Stacks: [] }); }); afterEach(() => cfnMock.restore()); @@ -77,10 +86,24 @@ describe('CategoryRefactorer.plan() orchestration — via StorageS3ForwardRefact cfnMock.on(DescribeStackResourcesCommand, { StackName: 'gen1-root' }).resolves({ StackResources: [] }); cfnMock.on(DescribeStackResourcesCommand, { StackName: 'gen2-root' }).resolves({ StackResources: [] }); - const { clients, gen1Env, gen2Branch } = makeInstances(); + const { clients, gen1Env, gen2Branch, cfn } = makeInstances(); await expect( - new StorageS3ForwardRefactorer(gen1Env, gen2Branch, clients, 'us-east-1', '123', noOpLogger(), 'avatars').plan(), - ).rejects.toThrow('unable to find source stack'); + new StorageS3ForwardRefactorer( + gen1Env, + gen2Branch, + clients, + 'us-east-1', + '123', + noOpLogger(), + { + category: 'storage', + resourceName: 'avatars', + service: 'S3', + key: 'storage:S3' as const, + }, + cfn, + ).plan(), + ).rejects.toThrow('Unable to find source stack'); }); it('throws when source exists but destination does not (Path B)', async () => { @@ -89,10 +112,24 @@ describe('CategoryRefactorer.plan() orchestration — via StorageS3ForwardRefact }); cfnMock.on(DescribeStackResourcesCommand, { StackName: 'gen2-root' }).resolves({ StackResources: [] }); - const { clients, gen1Env, gen2Branch } = makeInstances(); + const { clients, gen1Env, gen2Branch, cfn } = makeInstances(); await expect( - new StorageS3ForwardRefactorer(gen1Env, gen2Branch, clients, 'us-east-1', '123', noOpLogger(), 'avatars').plan(), - ).rejects.toThrow('unable to find target stack'); + new StorageS3ForwardRefactorer( + gen1Env, + gen2Branch, + clients, + 'us-east-1', + '123', + noOpLogger(), + { + category: 'storage', + resourceName: 'avatars', + service: 'S3', + key: 'storage:S3' as const, + }, + cfn, + ).plan(), + ).rejects.toThrow('Unable to find target stack'); }); it('throws when destination exists but source does not (Path B reversed)', async () => { @@ -102,10 +139,24 @@ describe('CategoryRefactorer.plan() orchestration — via StorageS3ForwardRefact }); cfnMock.on(GetTemplateCommand, { StackName: 'gen2-storage-stack' }).resolves({ TemplateBody: JSON.stringify(gen2StorageTemplate) }); - const { clients, gen1Env, gen2Branch } = makeInstances(); + const { clients, gen1Env, gen2Branch, cfn } = makeInstances(); await expect( - new StorageS3ForwardRefactorer(gen1Env, gen2Branch, clients, 'us-east-1', '123', noOpLogger(), 'avatars').plan(), - ).rejects.toThrow('unable to find source stack'); + new StorageS3ForwardRefactorer( + gen1Env, + gen2Branch, + clients, + 'us-east-1', + '123', + noOpLogger(), + { + category: 'storage', + resourceName: 'avatars', + service: 'S3', + key: 'storage:S3' as const, + }, + cfn, + ).plan(), + ).rejects.toThrow('Unable to find source stack'); }); it('returns empty array when no matching resource types in source (Path D)', async () => { @@ -118,22 +169,50 @@ describe('CategoryRefactorer.plan() orchestration — via StorageS3ForwardRefact setupStorageMocks(cfnMock); cfnMock.on(GetTemplateCommand, { StackName: 'gen1-storage-stack' }).resolves({ TemplateBody: JSON.stringify(noStorageTemplate) }); - const { clients, gen1Env, gen2Branch } = makeInstances(); - const ops = await new StorageS3ForwardRefactorer(gen1Env, gen2Branch, clients, 'us-east-1', '123', noOpLogger(), 'avatars').plan(); - expect(ops).toEqual([]); + const { clients, gen1Env, gen2Branch, cfn } = makeInstances(); + const ops = await new StorageS3ForwardRefactorer( + gen1Env, + gen2Branch, + clients, + 'us-east-1', + '123', + noOpLogger(), + { + category: 'storage', + resourceName: 'avatars', + service: 'S3', + key: 'storage:S3' as const, + }, + cfn, + ).plan(); + expect(ops).toHaveLength(3); // updateSource + updateTarget + beforeMove (holding) }); it('produces updateSource → updateTarget → beforeMove → move for forward plan', async () => { setupStorageMocks(cfnMock); - const { clients, gen1Env, gen2Branch } = makeInstances(); - const ops = await new StorageS3ForwardRefactorer(gen1Env, gen2Branch, clients, 'us-east-1', '123', noOpLogger(), 'avatars').plan(); + const { clients, gen1Env, gen2Branch, cfn } = makeInstances(); + const ops = await new StorageS3ForwardRefactorer( + gen1Env, + gen2Branch, + clients, + 'us-east-1', + '123', + noOpLogger(), + { + category: 'storage', + resourceName: 'avatars', + service: 'S3', + key: 'storage:S3' as const, + }, + cfn, + ).plan(); const descriptions = (await Promise.all(ops.map((o) => o.describe()))).flat(); expect(descriptions).toHaveLength(4); expect(descriptions[0]).toContain('Update source'); expect(descriptions[1]).toContain('Update target'); - expect(descriptions[2]).toContain('holding stack'); + expect(descriptions[2]).toContain('holding'); expect(descriptions[3]).toContain('Move'); }); }); @@ -142,10 +221,14 @@ describe('StorageS3RollbackRefactorer.plan() — rollback without holding stack' let cfnMock: ReturnType; beforeEach(() => { cfnMock = mockClient(CloudFormationClient); + cfnMock.on(CreateChangeSetCommand).resolves({}); + cfnMock.on(DescribeChangeSetCommand).resolves({ Status: 'CREATE_COMPLETE', Changes: [] }); + cfnMock.on(DeleteChangeSetCommand).resolves({}); + cfnMock.on(DescribeStacksCommand).resolves({ Stacks: [] }); }); afterEach(() => cfnMock.restore()); - it('produces move only (no updateSource/updateTarget, no afterMove ops)', async () => { + it('produces no-op when resources already exist in target', async () => { // Default DescribeStacks returns empty (findHoldingStack → null) cfnMock.on(DescribeStacksCommand).resolves({ Stacks: [] }); @@ -172,14 +255,25 @@ describe('StorageS3RollbackRefactorer.plan() — rollback without holding stack' }); cfnMock.on(GetTemplateCommand, { StackName: 'gen1-storage-stack' }).resolves({ TemplateBody: JSON.stringify(gen1StorageTemplate) }); - const { clients, gen1Env, gen2Branch } = makeInstances(); - const ops = await new StorageS3RollbackRefactorer(gen1Env, gen2Branch, clients, 'us-east-1', '123', noOpLogger(), 'avatars').plan(); - const descriptions = (await Promise.all(ops.map((o) => o.describe()))).flat(); + const { clients, gen1Env, gen2Branch, cfn } = makeInstances(); + const ops = await new StorageS3RollbackRefactorer( + gen1Env, + gen2Branch, + clients, + 'us-east-1', + '123', + noOpLogger(), + { + category: 'storage', + resourceName: 'avatars', + service: 'S3', + key: 'storage:S3' as const, + }, + cfn, + ).plan(); - // Rollback: no updateSource/updateTarget, just move - expect(descriptions.every((d) => !d.includes('Update source') && !d.includes('Update target'))).toBe(true); - expect(descriptions.some((d) => d.includes('Move'))).toBe(true); - expect(descriptions).toHaveLength(1); + // Resources already exist in Gen1 target, so rollback produces no-op + expect(ops).toHaveLength(2); // updateSource + updateTarget only }); }); @@ -187,6 +281,10 @@ describe('Analytics wiring tests', () => { let cfnMock: ReturnType; beforeEach(() => { cfnMock = mockClient(CloudFormationClient); + cfnMock.on(CreateChangeSetCommand).resolves({}); + cfnMock.on(DescribeChangeSetCommand).resolves({ Status: 'CREATE_COMPLETE', Changes: [] }); + cfnMock.on(DeleteChangeSetCommand).resolves({}); + cfnMock.on(DescribeStacksCommand).resolves({ Stacks: [] }); }); afterEach(() => cfnMock.restore()); @@ -224,8 +322,22 @@ describe('Analytics wiring tests', () => { it('forward: discovers analytics stacks and maps Kinesis stream', async () => { setupAnalyticsMocks(cfnMock); - const { clients, gen1Env, gen2Branch } = makeInstances(); - const ops = await new AnalyticsKinesisForwardRefactorer(gen1Env, gen2Branch, clients, 'us-east-1', '123', noOpLogger()).plan(); + const { clients, gen1Env, gen2Branch, cfn } = makeInstances(); + const ops = await new AnalyticsKinesisForwardRefactorer( + gen1Env, + gen2Branch, + clients, + 'us-east-1', + '123', + noOpLogger(), + { + category: 'analytics', + resourceName: 'test', + service: 'Kinesis', + key: 'analytics:Kinesis' as const, + }, + cfn, + ).plan(); const descriptions = (await Promise.all(ops.map((o) => o.describe()))).flat(); expect(descriptions).toHaveLength(4); @@ -235,11 +347,39 @@ describe('Analytics wiring tests', () => { it('rollback: discovers analytics stacks and maps to Gen1 KinesisStream ID', async () => { cfnMock.on(DescribeStacksCommand).resolves({ Stacks: [] }); // no holding stack setupAnalyticsMocks(cfnMock); - const { clients, gen1Env, gen2Branch } = makeInstances(); - const ops = await new AnalyticsKinesisRollbackRefactorer(gen1Env, gen2Branch, clients, 'us-east-1', '123', noOpLogger()).plan(); - const descriptions = (await Promise.all(ops.map((o) => o.describe()))).flat(); + const { clients, gen1Env, gen2Branch, cfn } = makeInstances(); + const ops = await new AnalyticsKinesisRollbackRefactorer( + gen1Env, + gen2Branch, + clients, + 'us-east-1', + '123', + noOpLogger(), + { + category: 'analytics', + resourceName: 'test', + service: 'Kinesis', + key: 'analytics:Kinesis' as const, + }, + cfn, + ).plan(); + + // Resources already exist in Gen1 target, so rollback produces no-op + expect(ops).toHaveLength(2); // updateSource + updateTarget only + }); +}); + +import { + MIGRATION_PLACEHOLDER_LOGICAL_ID, + PLACEHOLDER_RESOURCE, +} from '../../../../../commands/gen2-migration/refactor/workflow/category-refactorer'; + +describe('placeholder constants', () => { + it('placeholder resource is a WaitConditionHandle', () => { + expect(PLACEHOLDER_RESOURCE.Type).toBe('AWS::CloudFormation::WaitConditionHandle'); + }); - expect(descriptions).toHaveLength(1); - expect(descriptions[0]).toContain('Move 1 resource'); + it('placeholder logical ID is MigrationPlaceholder', () => { + expect(MIGRATION_PLACEHOLDER_LOGICAL_ID).toBe('MigrationPlaceholder'); }); }); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/workflow/forward-category-refactorer.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/workflow/forward-category-refactorer.test.ts new file mode 100644 index 00000000000..05cacb08db4 --- /dev/null +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/workflow/forward-category-refactorer.test.ts @@ -0,0 +1,258 @@ +import { ForwardCategoryRefactorer } from '../../../../../commands/gen2-migration/refactor/workflow/forward-category-refactorer'; +import { AwsClients } from '../../../../../commands/gen2-migration/aws-clients'; +import { StackFacade } from '../../../../../commands/gen2-migration/refactor/stack-facade'; +import { Cfn } from '../../../../../commands/gen2-migration/refactor/cfn'; +import { noOpLogger } from '../../_framework/logger'; +import { mockClient } from 'aws-sdk-client-mock'; +import { + CloudFormationClient, + DescribeStacksCommand, + DescribeStackResourcesCommand, + CreateStackRefactorCommand, + DescribeStackRefactorCommand, + ExecuteStackRefactorCommand, + GetTemplateCommand, + DeleteStackCommand, + StackRefactorStatus, + StackRefactorExecutionStatus, + ResourceMapping, +} from '@aws-sdk/client-cloudformation'; + +class TestForwardRefactorer extends ForwardCategoryRefactorer { + protected async fetchSourceStackId() { + return 'gen1-stack'; + } + protected async fetchDestStackId() { + return 'gen2-stack'; + } + protected resourceTypes() { + return ['AWS::S3::Bucket']; + } +} + +const GEN2_TEMPLATE_WITH_BUCKET = JSON.stringify({ + AWSTemplateFormatVersion: '2010-09-09', + Resources: { MyBucket: { Type: 'AWS::S3::Bucket', Properties: {} } }, + Outputs: {}, +}); + +const GEN2_TEMPLATE_NO_BUCKET = JSON.stringify({ + AWSTemplateFormatVersion: '2010-09-09', + Resources: { Lambda: { Type: 'AWS::Lambda::Function', Properties: {} } }, + Outputs: {}, +}); + +describe('ForwardCategoryRefactorer.beforeMove', () => { + let cfnMock: ReturnType; + + beforeEach(() => { + cfnMock = mockClient(CloudFormationClient); + }); + afterEach(() => cfnMock.restore()); + + it('returns empty operations when gen2 stack has no matching resources', async () => { + cfnMock.on(GetTemplateCommand).resolves({ TemplateBody: GEN2_TEMPLATE_NO_BUCKET }); + cfnMock.on(DescribeStacksCommand).resolves({ Stacks: [] }); + + const clients = new AwsClients({ region: 'us-east-1' }); + (clients as any).cloudFormation = new CloudFormationClient({}); + const cfn = new Cfn(new CloudFormationClient({}), noOpLogger()); + const refactorer = new TestForwardRefactorer( + new StackFacade(clients, 'g1'), + new StackFacade(clients, 'g2'), + clients, + 'us-east-1', + '123', + noOpLogger(), + { category: 'storage', resourceName: 'test', service: 'S3', key: 'storage:S3' as const }, + cfn, + ); + + const operations = await (refactorer as any).beforeMove('gen2-stack'); + expect(operations).toHaveLength(0); + }); + + it('creates holding stack operation when gen2 stack has matching resources', async () => { + cfnMock.on(DescribeStacksCommand).resolves({ Stacks: [] }); + cfnMock.on(CreateStackRefactorCommand).resolves({ StackRefactorId: 'r1' }); + cfnMock + .on(DescribeStackRefactorCommand) + .resolves({ Status: StackRefactorStatus.CREATE_COMPLETE, ExecutionStatus: StackRefactorExecutionStatus.EXECUTE_COMPLETE }); + cfnMock.on(ExecuteStackRefactorCommand).resolves({}); + cfnMock.on(DescribeStackResourcesCommand).resolves({ StackResources: [] }); + cfnMock.on(GetTemplateCommand).resolves({ TemplateBody: GEN2_TEMPLATE_WITH_BUCKET }); + + const clients = new AwsClients({ region: 'us-east-1' }); + (clients as any).cloudFormation = new CloudFormationClient({}); + const cfn = new Cfn(new CloudFormationClient({}), noOpLogger()); + const refactorer = new TestForwardRefactorer( + new StackFacade(clients, 'g1'), + new StackFacade(clients, 'g2'), + clients, + 'us-east-1', + '123', + noOpLogger(), + { category: 'storage', resourceName: 'test', service: 'S3', key: 'storage:S3' as const }, + cfn, + ); + + const operations = await (refactorer as any).beforeMove('gen2-stack'); + expect(operations).toHaveLength(1); + expect(await operations[0].describe()).toEqual([expect.stringContaining('holding')]); + }); + + it('cleans up orphaned REVIEW_IN_PROGRESS holding stack before creating new one', async () => { + cfnMock + .on(DescribeStacksCommand) + .resolvesOnce({ Stacks: [{ StackName: 'holding', StackStatus: 'REVIEW_IN_PROGRESS', CreationTime: new Date() }] }) + .resolvesOnce({ Stacks: [{ StackName: 'holding', StackStatus: 'DELETE_COMPLETE', CreationTime: new Date() }] }) + .resolves({ Stacks: [{ StackName: 'stack', StackStatus: 'UPDATE_COMPLETE', CreationTime: new Date() }] }); + cfnMock.on(DeleteStackCommand).resolves({}); + cfnMock.on(CreateStackRefactorCommand).resolves({ StackRefactorId: 'r1' }); + cfnMock + .on(DescribeStackRefactorCommand) + .resolves({ Status: StackRefactorStatus.CREATE_COMPLETE, ExecutionStatus: StackRefactorExecutionStatus.EXECUTE_COMPLETE }); + cfnMock.on(ExecuteStackRefactorCommand).resolves({}); + cfnMock.on(DescribeStackResourcesCommand).resolves({ StackResources: [] }); + cfnMock.on(GetTemplateCommand).callsFake(async (input: { StackName?: string }) => { + // REVIEW_IN_PROGRESS holding stack has no resources of interest + if (input.StackName?.endsWith('-holding')) { + return { TemplateBody: JSON.stringify({ AWSTemplateFormatVersion: '2010-09-09', Resources: {}, Outputs: {} }) }; + } + return { TemplateBody: GEN2_TEMPLATE_WITH_BUCKET }; + }); + + const clients = new AwsClients({ region: 'us-east-1' }); + (clients as any).cloudFormation = new CloudFormationClient({}); + const cfn = new Cfn(new CloudFormationClient({}), noOpLogger()); + const refactorer = new TestForwardRefactorer( + new StackFacade(clients, 'g1'), + new StackFacade(clients, 'g2'), + clients, + 'us-east-1', + '123', + noOpLogger(), + { category: 'storage', resourceName: 'test', service: 'S3', key: 'storage:S3' as const }, + cfn, + ); + + const operations = await (refactorer as any).beforeMove('gen2-stack'); + expect(operations).toHaveLength(2); + await operations[0].execute(); + + expect(cfnMock.commandCalls(DeleteStackCommand).length).toBeGreaterThan(0); + }); +}); + +import { CFNResource } from '../../../../../commands/gen2-migration/cfn-template'; + +class TestForwardMappingRefactorer extends ForwardCategoryRefactorer { + protected async fetchSourceStackId() { + return 'gen1-stack'; + } + protected async fetchDestStackId() { + return 'gen2-stack'; + } + protected resourceTypes() { + return ['AWS::S3::Bucket']; + } + public async testBuildResourceMappings(source: Map, target: Map): Promise { + return this.buildResourceMappings(source, target, 'gen1-stack', 'gen2-stack'); + } +} + +const r = (type: string): CFNResource => ({ Type: type, Properties: {} }); + +function toIdMap(mappings: ResourceMapping[]): Map { + return new Map(mappings.map((m) => [m.Source!.LogicalResourceId!, m.Destination!.LogicalResourceId!])); +} + +describe('ForwardCategoryRefactorer.buildResourceMappings (default type-matching)', () => { + const refactorer = new TestForwardMappingRefactorer( + null as any, + null as any, + null as any, + 'us-east-1', + '123', + noOpLogger(), + { category: 'storage', resourceName: 'test', service: 'S3', key: 'storage:S3' as const }, + null as unknown as Cfn, + ); + + it('maps single resource per type', async () => { + const mappings = await refactorer.testBuildResourceMappings( + new Map([['S3Bucket', r('AWS::S3::Bucket')]]), + new Map([['amplifyBucket', r('AWS::S3::Bucket')]]), + ); + const map = toIdMap(mappings); + expect(map.size).toBe(1); + expect(map.get('S3Bucket')).toBe('amplifyBucket'); + }); + + it('maps multiple types independently', async () => { + const mappings = await refactorer.testBuildResourceMappings( + new Map([ + ['Bucket', r('AWS::S3::Bucket')], + ['Table', r('AWS::DynamoDB::Table')], + ]), + new Map([ + ['GenBucket', r('AWS::S3::Bucket')], + ['GenTable', r('AWS::DynamoDB::Table')], + ]), + ); + const map = toIdMap(mappings); + expect(map.size).toBe(2); + expect(map.get('Bucket')).toBe('GenBucket'); + expect(map.get('Table')).toBe('GenTable'); + }); + + it('throws when no types match', async () => { + await expect( + refactorer.testBuildResourceMappings(new Map([['Stream', r('AWS::Kinesis::Stream')]]), new Map([['Bucket', r('AWS::S3::Bucket')]])), + ).rejects.toThrow("Source resource 'Stream' (AWS::Kinesis::Stream) has no corresponding target resource"); + }); + + it('throws when source resource has multiple matching target resources', async () => { + await expect( + refactorer.testBuildResourceMappings( + new Map([['S3Bucket', r('AWS::S3::Bucket')]]), + new Map([ + ['Bucket1', r('AWS::S3::Bucket')], + ['Bucket2', r('AWS::S3::Bucket')], + ]), + ), + ).rejects.toThrow("Source resource 'S3Bucket' (AWS::S3::Bucket) has multiple corresponding target resources"); + }); + + it('returns empty mappings when source is empty', async () => { + const mappings = await refactorer.testBuildResourceMappings(new Map(), new Map([['amplifyBucket', r('AWS::S3::Bucket')]])); + expect(mappings).toHaveLength(0); + }); + + it('throws when two source resources match the same target', async () => { + await expect( + refactorer.testBuildResourceMappings( + new Map([ + ['BucketA', r('AWS::S3::Bucket')], + ['BucketB', r('AWS::S3::Bucket')], + ]), + new Map([['GenBucket', r('AWS::S3::Bucket')]]), + ), + ).rejects.toThrow('has no corresponding target resource'); + }); + + it('throws when both sides have multiple resources of the same type', async () => { + await expect( + refactorer.testBuildResourceMappings( + new Map([ + ['BucketA', r('AWS::S3::Bucket')], + ['BucketB', r('AWS::S3::Bucket')], + ]), + new Map([ + ['GenBucket1', r('AWS::S3::Bucket')], + ['GenBucket2', r('AWS::S3::Bucket')], + ]), + ), + ).rejects.toThrow('has multiple corresponding target resources'); + }); +}); diff --git a/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/workflow/rollback-category-refactorer.test.ts b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/workflow/rollback-category-refactorer.test.ts new file mode 100644 index 00000000000..5f181a2cf37 --- /dev/null +++ b/packages/amplify-cli/src/__tests__/commands/gen2-migration/refactor/workflow/rollback-category-refactorer.test.ts @@ -0,0 +1,195 @@ +import { RollbackCategoryRefactorer } from '../../../../../commands/gen2-migration/refactor/workflow/rollback-category-refactorer'; +import { CFNResource, CFNTemplate } from '../../../../../commands/gen2-migration/cfn-template'; +import { AwsClients } from '../../../../../commands/gen2-migration/aws-clients'; +import { StackFacade } from '../../../../../commands/gen2-migration/refactor/stack-facade'; +import { Cfn } from '../../../../../commands/gen2-migration/refactor/cfn'; +import { noOpLogger } from '../../_framework/logger'; +import { mockClient } from 'aws-sdk-client-mock'; +import { + CloudFormationClient, + GetTemplateCommand, + DescribeStacksCommand, + DescribeStackResourcesCommand, + UpdateStackCommand, + CreateStackRefactorCommand, + DescribeStackRefactorCommand, + ExecuteStackRefactorCommand, + StackRefactorStatus, + StackRefactorExecutionStatus, + ResourceMapping, +} from '@aws-sdk/client-cloudformation'; + +class TestRollbackRefactorer extends RollbackCategoryRefactorer { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + protected targetLogicalId(_sourceId: string, _sourceResource: CFNResource): string | undefined { + return 'S3Bucket'; + } + protected async fetchSourceStackId() { + return 'gen2-stack-id'; + } + protected async fetchDestStackId() { + return 'gen1-stack-id'; + } + protected resourceTypes() { + return ['AWS::S3::Bucket']; + } +} + +describe('RollbackCategoryRefactorer.afterMove', () => { + let cfnMock: ReturnType; + + beforeEach(() => { + cfnMock = mockClient(CloudFormationClient); + }); + afterEach(() => cfnMock.restore()); + + it('returns operations to update holding stack and move resources back', async () => { + const holdingTemplate: CFNTemplate = { + AWSTemplateFormatVersion: '2010-09-09', + Description: 'holding', + Resources: { + MyBucket: { Type: 'AWS::S3::Bucket', Properties: { BucketName: 'test-bucket' } }, + }, + Outputs: {}, + }; + + cfnMock.on(DescribeStacksCommand).resolves({ + Stacks: [{ StackName: 'holding', StackStatus: 'UPDATE_COMPLETE', CreationTime: new Date() }], + }); + cfnMock.on(GetTemplateCommand).resolves({ TemplateBody: JSON.stringify(holdingTemplate) }); + cfnMock.on(UpdateStackCommand).resolves({}); + cfnMock.on(CreateStackRefactorCommand).resolves({ StackRefactorId: 'refactor-123' }); + cfnMock.on(DescribeStackRefactorCommand).resolves({ + Status: StackRefactorStatus.CREATE_COMPLETE, + ExecutionStatus: StackRefactorExecutionStatus.EXECUTE_COMPLETE, + }); + cfnMock.on(ExecuteStackRefactorCommand).resolves({}); + cfnMock.on(DescribeStackResourcesCommand).resolves({ StackResources: [] }); + + const clients = new AwsClients({ region: 'us-east-1' }); + (clients as any).cloudFormation = new CloudFormationClient({}); + const cfn = new Cfn(new CloudFormationClient({}), noOpLogger()); + const refactorer = new TestRollbackRefactorer( + new StackFacade(clients, 'gen1-root'), + new StackFacade(clients, 'gen2-root'), + clients, + 'us-east-1', + '123456789', + noOpLogger(), + { category: 'storage', resourceName: 'test', service: 'S3', key: 'storage:S3' }, + cfn, + ); + + const operations = await (refactorer as any).afterMove('gen2-auth-stack-id'); + + // 2 operations: update holding with placeholder, refactor back to Gen2 + expect(operations).toHaveLength(2); + expect(await operations[0].describe()).toEqual([expect.stringContaining('placeholder')]); + expect(await operations[1].describe()).toEqual([expect.stringContaining('Move')]); + }); + + it('returns empty operations when no holding stack exists', async () => { + cfnMock.on(DescribeStacksCommand).resolves({ Stacks: [] }); + + const clients = new AwsClients({ region: 'us-east-1' }); + (clients as any).cloudFormation = new CloudFormationClient({}); + const cfn = new Cfn(new CloudFormationClient({}), noOpLogger()); + const refactorer = new TestRollbackRefactorer( + new StackFacade(clients, 'gen1-root'), + new StackFacade(clients, 'gen2-root'), + clients, + 'us-east-1', + '123456789', + noOpLogger(), + { category: 'storage', resourceName: 'test', service: 'S3', key: 'storage:S3' }, + cfn, + ); + + const operations = await (refactorer as any).afterMove('gen2-auth-stack-id'); + expect(operations).toHaveLength(0); + }); +}); + +class TestRollbackMappingRefactorer extends RollbackCategoryRefactorer { + private readonly ids: ReadonlyMap; + + constructor(ids: ReadonlyMap) { + super( + null as any, + null as any, + null as any, + 'us-east-1', + '123', + noOpLogger(), + { category: 'storage', resourceName: 'test', service: 'S3', key: 'storage:S3' as const }, + null as unknown as Cfn, + ); + this.ids = ids; + } + // eslint-disable-next-line @typescript-eslint/no-unused-vars + protected targetLogicalId(sourceId: string, _sourceResource: CFNResource): string | undefined { + return this.ids.get(sourceId); + } + protected async fetchSourceStackId() { + return 'gen2-stack'; + } + protected async fetchDestStackId() { + return 'gen1-stack'; + } + protected resourceTypes() { + return []; + } + public async testBuildResourceMappings(source: Map, target: Map): Promise { + return this.buildResourceMappings(source, target, 'gen2-stack', 'gen1-stack'); + } +} + +const r = (type: string): CFNResource => ({ Type: type, Properties: {} }); + +function toIdMap(mappings: ResourceMapping[]): Map { + return new Map(mappings.map((m) => [m.Source!.LogicalResourceId!, m.Destination!.LogicalResourceId!])); +} + +describe('RollbackCategoryRefactorer.buildResourceMappings (gen1LogicalIds-based)', () => { + it('maps source resources to Gen1 logical IDs', async () => { + const refactorer = new TestRollbackMappingRefactorer( + new Map([ + ['amplifyBucket', 'S3Bucket'], + ['amplifyTable', 'DynamoDBTable'], + ]), + ); + const mappings = await refactorer.testBuildResourceMappings( + new Map([ + ['amplifyBucket', r('AWS::S3::Bucket')], + ['amplifyTable', r('AWS::DynamoDB::Table')], + ]), + new Map(), + ); + const map = toIdMap(mappings); + expect(map.size).toBe(2); + expect(map.get('amplifyBucket')).toBe('S3Bucket'); + expect(map.get('amplifyTable')).toBe('DynamoDBTable'); + }); + + it('throws for resource with no known Gen1 logical ID', async () => { + const refactorer = new TestRollbackMappingRefactorer(new Map()); + await expect(refactorer.testBuildResourceMappings(new Map([['amplifyTopic', r('AWS::SNS::Topic')]]), new Map())).rejects.toThrow( + 'Unable to determine target id of resource amplifyTopic', + ); + }); + + it('skips resources that already exist in target stack', async () => { + const refactorer = new TestRollbackMappingRefactorer(new Map([['amplifyBucket', 'S3Bucket']])); + const mappings = await refactorer.testBuildResourceMappings( + new Map([['amplifyBucket', r('AWS::S3::Bucket')]]), + new Map([['S3Bucket', r('AWS::S3::Bucket')]]), + ); + expect(mappings).toHaveLength(0); + }); + + it('returns empty mappings when source is empty', async () => { + const refactorer = new TestRollbackMappingRefactorer(new Map()); + const mappings = await refactorer.testBuildResourceMappings(new Map(), new Map()); + expect(mappings).toHaveLength(0); + }); +}); diff --git a/packages/amplify-cli/src/commands/gen2-migration/_operation.ts b/packages/amplify-cli/src/commands/gen2-migration/_operation.ts index 2ffe95c0918..679a6d0d9e2 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/_operation.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/_operation.ts @@ -1,3 +1,23 @@ +import { DiscoveredResource } from './generate/_infra/gen1-app'; + +export const NO_OP_MESSAGE = 'No-op\n'; + +/** + * Creates a no-op operation for a resource with nothing to migrate. + */ +export function buildNoopOperation(resource: DiscoveredResource): AmplifyMigrationOperation { + return { + resource: resource, + validate: () => undefined, + execute: async () => { + return; + }, + describe: async () => { + return [NO_OP_MESSAGE]; + }, + }; +} + /** * Result of a validation check. */ @@ -33,6 +53,12 @@ export interface Validation { * Interface for atomic operations that can be executed as part of a migration step. */ export interface AmplifyMigrationOperation { + /** + * The discovered resource this operation belongs to, if any. + * Used by Plan.describe() to group operations by resource. + */ + readonly resource?: DiscoveredResource; + /** * Returns human-readable strings describing what the operation will do. */ diff --git a/packages/amplify-cli/src/commands/gen2-migration/_plan.ts b/packages/amplify-cli/src/commands/gen2-migration/_plan.ts index 04a326aecd9..b4cee760399 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/_plan.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/_plan.ts @@ -1,4 +1,4 @@ -import { AmplifyMigrationOperation } from './_operation'; +import { AmplifyMigrationOperation, NO_OP_MESSAGE } from './_operation'; import { SpinningLogger } from './_spinning-logger'; import { printer } from '@aws-amplify/amplify-prompts'; import chalk from 'chalk'; @@ -60,23 +60,41 @@ export class Plan { /** * Renders the operations summary and implications to the terminal. + * Operations with a resource are grouped under a resource header; + * ungrouped operations render as a flat list. */ public async describe(): Promise { - const descriptions: string[] = []; + const grouped = new Map(); + for (const op of this.operations) { - descriptions.push(...(await op.describe())); + const lines = await op.describe(); + if (lines.length === 0) continue; + const label = op.resource ? `Resource: ${op.resource.category}/${op.resource.resourceName} (${op.resource.service})` : 'Project'; + if (!grouped.has(label)) grouped.set(label, []); + grouped.get(label)!.push(...lines); } - if (descriptions.length > 0) { + let hasRealImplications = false; + + if (grouped.size > 0) { printer.info(chalk.bold(chalk.underline('Operations Summary'))); printer.blankLine(); - for (const description of descriptions) { - printer.info(`• ${description}`); + + for (const [label, descriptions] of grouped) { + printer.info(chalk.bold(label)); + printer.blankLine(); + let step = 1; + for (const description of descriptions) { + printer.info(`${step}. ${description}`); + if (description !== NO_OP_MESSAGE) { + hasRealImplications = true; + } + step++; + } } - printer.blankLine(); } - if (this.implications.length > 0) { + if (hasRealImplications && this.implications.length > 0) { printer.info(chalk.bold(chalk.underline('Implications'))); printer.blankLine(); for (const implication of this.implications) { @@ -107,9 +125,9 @@ export class Plan { printer.info(chalk.bold(chalk.underline('Failed Validations Report'))); printer.blankLine(); for (let i = 0; i < failed.length; i++) { - printer.info(chalk.red(failed[i].description)); + printer.info(chalk.bold(chalk.red(`✘ ${failed[i].description}`))); printer.blankLine(); - printer.info(failed[i].report ?? ''); + printer.info(failed[i].report!.trimStart()); if (i < failed.length - 1) { printer.blankLine(); } diff --git a/packages/amplify-cli/src/commands/gen2-migration/_validations.ts b/packages/amplify-cli/src/commands/gen2-migration/_validations.ts index 13f66c44da2..ad9db7afd16 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/_validations.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/_validations.ts @@ -97,7 +97,6 @@ export class AmplifyGen2MigrationValidations { const statefulRemoves: Array<{ category: string; resourceType: string; physicalId: string }> = []; for (const change of changeSet.Changes) { if (change.Type === 'Resource' && change.ResourceChange?.Action === 'Remove' && change.ResourceChange?.ResourceType) { - // Skip deployment bucket only when explicitly requested (e.g., during decommission) if ( deploymentBucketName && change.ResourceChange.ResourceType === 'AWS::S3::Bucket' && diff --git a/packages/amplify-cli/src/commands/gen2-migration/decommission.ts b/packages/amplify-cli/src/commands/gen2-migration/decommission.ts index a8c74780ed5..01e83af3a07 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/decommission.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/decommission.ts @@ -14,11 +14,13 @@ import { } from '@aws-sdk/client-cloudformation'; import { removeEnvFromCloud } from '../../extensions/amplify-helpers/remove-env-from-cloud'; import { invokeDeleteEnvParamsFromService } from '../../extensions/amplify-helpers/invoke-delete-env-params'; -import { deleteHoldingStack, HOLDING_STACK_SUFFIX } from './refactor/holding-stack'; +import { Cfn } from './refactor/cfn'; +import { HOLDING_STACK_SUFFIX } from './refactor/workflow/category-refactorer'; export class AmplifyMigrationDecommissionStep extends AmplifyMigrationStep { public async forward(): Promise { const cfnClient = new CloudFormationClient({ region: this.region }); + const cfn = new Cfn(cfnClient, this.logger); const holdingStacks = await this.findHoldingStacks(cfnClient); const operations: AmplifyMigrationOperation[] = []; @@ -36,7 +38,7 @@ export class AmplifyMigrationDecommissionStep extends AmplifyMigrationStep { describe: async () => [`Delete holding stack: ${stackName}`], execute: async () => { this.logger.info(`Deleting holding stack: ${stackName}`); - await deleteHoldingStack(cfnClient, stackName); + await cfn.deleteStack(stackName); this.logger.info(`Deleted holding stack: ${stackName}`); }, }); diff --git a/packages/amplify-cli/src/commands/gen2-migration/generate.ts b/packages/amplify-cli/src/commands/gen2-migration/generate.ts index ac66478299f..ba507b4b575 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/generate.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/generate.ts @@ -24,6 +24,7 @@ import { S3Generator } from './generate/amplify/storage/s3.generator'; import { DynamoDBGenerator } from './generate/amplify/storage/dynamodb.generator'; import { FunctionGenerator } from './generate/amplify/function/function.generator'; import { AnalyticsKinesisGenerator } from './generate/amplify/analytics/kinesis.generator'; +import { GeoGenerator } from './generate/amplify/geo/geo.generator'; import { fileOrDirectoryExists } from './generate/_infra/files'; const AMPLIFY_DIR = 'amplify'; @@ -47,6 +48,9 @@ export class AmplifyMigrationGenerateStep extends AmplifyMigrationStep { case 'api:API Gateway': case 'analytics:Kinesis': case 'function:Lambda': + case 'geo:Map': + case 'geo:PlaceIndex': + case 'geo:GeofenceCollection': assessment.record('generate', resource, { supported: true }); break; case 'unsupported': @@ -70,6 +74,7 @@ export class AmplifyMigrationGenerateStep extends AmplifyMigrationStep { // Cross-category state captured during the loop. let authGenerator: AuthGenerator | undefined; let s3Generator: S3Generator | undefined; + let geoGenerator: GeoGenerator | undefined; const functionGenerators: FunctionGenerator[] = []; for (const resource of discovered) { @@ -83,9 +88,9 @@ export class AmplifyMigrationGenerateStep extends AmplifyMigrationStep { }); if (isReferenceAuth) { - generators.push(new ReferenceAuthGenerator(gen1App, backendGenerator, outputDir)); + generators.push(new ReferenceAuthGenerator(gen1App, backendGenerator, outputDir, resource)); } else { - authGenerator = new AuthGenerator(gen1App, backendGenerator, outputDir); + authGenerator = new AuthGenerator(gen1App, backendGenerator, outputDir, resource); generators.push(authGenerator); } break; @@ -94,22 +99,31 @@ export class AmplifyMigrationGenerateStep extends AmplifyMigrationStep { // Handled by the AuthGenerator created for the main Cognito resource. break; case 'storage:S3': - s3Generator = new S3Generator(gen1App, backendGenerator, outputDir); + s3Generator = new S3Generator(gen1App, backendGenerator, outputDir, resource); generators.push(s3Generator); break; case 'storage:DynamoDB': { const hasS3Bucket = discovered.some((r) => r.category === 'storage' && r.service === 'S3'); - generators.push(new DynamoDBGenerator(gen1App, backendGenerator, resource.resourceName, hasS3Bucket)); + generators.push(new DynamoDBGenerator(gen1App, backendGenerator, resource, hasS3Bucket)); break; } case 'api:AppSync': - generators.push(new DataGenerator(gen1App, backendGenerator, outputDir)); + generators.push(new DataGenerator(gen1App, backendGenerator, outputDir, resource)); break; case 'api:API Gateway': - generators.push(new RestApiGenerator(gen1App, backendGenerator, resource.resourceName)); + generators.push(new RestApiGenerator(gen1App, backendGenerator, resource)); break; case 'analytics:Kinesis': - generators.push(new AnalyticsKinesisGenerator(gen1App, backendGenerator, outputDir, resource.resourceName)); + generators.push(new AnalyticsKinesisGenerator(gen1App, backendGenerator, outputDir, resource)); + break; + case 'geo:Map': + case 'geo:PlaceIndex': + case 'geo:GeofenceCollection': + // All geo services share a single GeoGenerator instance. + if (!geoGenerator) { + geoGenerator = new GeoGenerator(gen1App, backendGenerator, outputDir, resource); + generators.push(geoGenerator); + } break; case 'function:Lambda': { const functionCategoryMap = computeFunctionCategories(gen1App); @@ -118,7 +132,7 @@ export class AmplifyMigrationGenerateStep extends AmplifyMigrationStep { backendGenerator, packageJsonGenerator, outputDir, - resourceName: resource.resourceName, + resource, category: functionCategoryMap.get(resource.resourceName) ?? 'function', }); generators.push(funcGen); diff --git a/packages/amplify-cli/src/commands/gen2-migration/generate/_infra/gen1-app.ts b/packages/amplify-cli/src/commands/gen2-migration/generate/_infra/gen1-app.ts index 0c35890c2d6..2b9e7481ebc 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/generate/_infra/gen1-app.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/generate/_infra/gen1-app.ts @@ -36,6 +36,9 @@ export const SUPPORTED_RESOURCE_KEYS = [ 'api:API Gateway', 'analytics:Kinesis', 'function:Lambda', + 'geo:Map', + 'geo:PlaceIndex', + 'geo:GeofenceCollection', ] as const; /** diff --git a/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/analytics/kinesis.generator.ts b/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/analytics/kinesis.generator.ts index 1830c534512..339ea75cbf9 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/analytics/kinesis.generator.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/analytics/kinesis.generator.ts @@ -4,7 +4,7 @@ import ts from 'typescript'; import { Planner } from '../../../planner'; import { AmplifyMigrationOperation } from '../../../_operation'; import { BackendGenerator } from '../backend.generator'; -import { Gen1App } from '../../_infra/gen1-app'; +import { Gen1App, DiscoveredResource } from '../../_infra/gen1-app'; import { TS } from '../../_infra/ts'; import { AnalyticsRenderer } from './kinesis.renderer'; import { KinesisCfnConverter, KinesisAnalyticsDefinition } from './kinesis-cfn-converter'; @@ -22,14 +22,14 @@ export class AnalyticsKinesisGenerator implements Planner { private readonly gen1App: Gen1App; private readonly backendGenerator: BackendGenerator; private readonly outputDir: string; - private readonly resourceName: string; + private readonly resource: DiscoveredResource; private readonly renderer: AnalyticsRenderer; - public constructor(gen1App: Gen1App, backendGenerator: BackendGenerator, outputDir: string, resourceName: string) { + public constructor(gen1App: Gen1App, backendGenerator: BackendGenerator, outputDir: string, resource: DiscoveredResource) { this.gen1App = gen1App; this.backendGenerator = backendGenerator; this.outputDir = outputDir; - this.resourceName = resourceName; + this.resource = resource; this.renderer = new AnalyticsRenderer(); } @@ -38,24 +38,25 @@ export class AnalyticsKinesisGenerator implements Planner { */ public async plan(): Promise { const analyticsCategory = this.gen1App.meta('analytics'); - const resourceMeta = analyticsCategory?.[this.resourceName] as Record | undefined; + const resourceMeta = analyticsCategory?.[this.resource.resourceName] as Record | undefined; if (!resourceMeta) { - throw new Error(`Analytics resource '${this.resourceName}' not found in amplify-meta.json`); + throw new Error(`Analytics resource '${this.resource.resourceName}' not found in amplify-meta.json`); } const rootStackName = this.gen1App.rootStackName; const analyticsDir = path.join(this.outputDir, 'amplify', 'analytics'); const definition: KinesisAnalyticsDefinition = { - name: this.resourceName, + name: this.resource.resourceName, service: 'Kinesis', providerMetadata: resourceMeta.providerMetadata as KinesisAnalyticsDefinition['providerMetadata'], }; return [ { + resource: this.resource, validate: () => undefined, - describe: async () => [`Generate amplify/analytics/${this.resourceName}/resource.ts`], + describe: async () => [`Generate amplify/analytics/${this.resource.resourceName}/resource.ts`], execute: async () => { const fileWriter = async (content: string, filePath: string) => { await fs.mkdir(path.dirname(filePath), { recursive: true }); diff --git a/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/auth/auth.generator.ts b/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/auth/auth.generator.ts index 40dde0fe900..ce43178abed 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/auth/auth.generator.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/auth/auth.generator.ts @@ -5,7 +5,7 @@ import { UserPoolClientType } from '@aws-sdk/client-cognito-identity-provider'; import { Planner } from '../../../planner'; import { AmplifyMigrationOperation } from '../../../_operation'; import { BackendGenerator } from '../backend.generator'; -import { Gen1App } from '../../_infra/gen1-app'; +import { Gen1App, DiscoveredResource } from '../../_infra/gen1-app'; import { TS } from '../../_infra/ts'; import { AuthRenderOptions, AuthRenderer, AuthTrigger, FunctionAccess } from './auth.renderer'; @@ -24,14 +24,16 @@ export class AuthGenerator implements Planner { private readonly gen1App: Gen1App; private readonly backendGenerator: BackendGenerator; private readonly outputDir: string; + private readonly resource: DiscoveredResource; private readonly defineAuth: AuthRenderer; private readonly access: FunctionAccess[] = []; private readonly triggers: AuthTrigger[] = []; - public constructor(gen1App: Gen1App, backendGenerator: BackendGenerator, outputDir: string) { + public constructor(gen1App: Gen1App, backendGenerator: BackendGenerator, outputDir: string, resource: DiscoveredResource) { this.gen1App = gen1App; this.backendGenerator = backendGenerator; this.outputDir = outputDir; + this.resource = resource; this.defineAuth = new AuthRenderer(); } @@ -86,6 +88,7 @@ export class AuthGenerator implements Planner { return [ { + resource: this.resource, validate: () => undefined, describe: async () => ['Generate amplify/auth/resource.ts'], execute: async () => { diff --git a/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/auth/reference-auth.generator.ts b/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/auth/reference-auth.generator.ts index b9e2c302930..8b122e3768c 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/auth/reference-auth.generator.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/auth/reference-auth.generator.ts @@ -4,7 +4,7 @@ import ts from 'typescript'; import { Planner } from '../../../planner'; import { AmplifyMigrationOperation } from '../../../_operation'; import { BackendGenerator } from '../backend.generator'; -import { Gen1App } from '../../_infra/gen1-app'; +import { Gen1App, DiscoveredResource } from '../../_infra/gen1-app'; import { TS } from '../../_infra/ts'; import { ReferenceAuth, ReferenceAuthRenderer } from './reference-auth.renderer'; @@ -19,12 +19,14 @@ export class ReferenceAuthGenerator implements Planner { private readonly gen1App: Gen1App; private readonly backendGenerator: BackendGenerator; private readonly outputDir: string; + private readonly resource: DiscoveredResource; private readonly renderer = new ReferenceAuthRenderer(); - public constructor(gen1App: Gen1App, backendGenerator: BackendGenerator, outputDir: string) { + public constructor(gen1App: Gen1App, backendGenerator: BackendGenerator, outputDir: string, resource: DiscoveredResource) { this.gen1App = gen1App; this.backendGenerator = backendGenerator; this.outputDir = outputDir; + this.resource = resource; } public async plan(): Promise { @@ -44,6 +46,7 @@ export class ReferenceAuthGenerator implements Planner { return [ { + resource: this.resource, validate: () => undefined, describe: async () => ['Generate amplify/auth/resource.ts (reference auth)'], execute: async () => { diff --git a/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/backend.generator.ts b/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/backend.generator.ts index 8035ea79228..02010a9a56c 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/backend.generator.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/backend.generator.ts @@ -83,25 +83,6 @@ export class BackendGenerator implements Planner { this.postDefineStatements.push(TS.constDecl('branchName', factory.createIdentifier('process.env.AWS_BRANCH ?? "sandbox"'))); } - /** - * Ensures the `storageStack` variable is declared exactly once in backend.ts. - * Multiple DynamoDB generators share the same stack. When an S3 storage - * resource exists, the stack is reused from `backend.storage.stack`; - * otherwise a new stack is created. - */ - public ensureStorageStack(hasS3Bucket: boolean): void { - if (this.hasStorageStack) return; - this.hasStorageStack = true; - - const stackExpression = hasS3Bucket - ? TS.propAccess('backend', 'storage', 'stack') - : factory.createCallExpression(TS.propAccess('backend', 'createStack') as ts.PropertyAccessExpression, undefined, [ - factory.createStringLiteral('storage'), - ]); - - this.earlyStatements.push(TS.constDecl('storageStack', stackExpression)); - } - /** * Creates a per-DDB-table stack via `backend.createStack('storage' + resourceName)`. * Returns the variable name used to reference the stack (e.g., `storageActivityStack`). diff --git a/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/data/data.generator.ts b/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/data/data.generator.ts index 8d688127bc1..719f0c7f50b 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/data/data.generator.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/data/data.generator.ts @@ -5,7 +5,7 @@ import { GraphqlApi } from '@aws-sdk/client-appsync'; import { Planner } from '../../../planner'; import { AmplifyMigrationOperation } from '../../../_operation'; import { BackendGenerator } from '../backend.generator'; -import { Gen1App } from '../../_infra/gen1-app'; +import { Gen1App, DiscoveredResource } from '../../_infra/gen1-app'; import { TS } from '../../_infra/ts'; import { DataRenderer, DataTableMapping } from './data.renderer'; @@ -24,12 +24,14 @@ export class DataGenerator implements Planner { private readonly gen1App: Gen1App; private readonly backendGenerator: BackendGenerator; private readonly outputDir: string; + private readonly resource: DiscoveredResource; private readonly defineData: DataRenderer; - public constructor(gen1App: Gen1App, backendGenerator: BackendGenerator, outputDir: string) { + public constructor(gen1App: Gen1App, backendGenerator: BackendGenerator, outputDir: string, resource: DiscoveredResource) { this.gen1App = gen1App; this.backendGenerator = backendGenerator; this.outputDir = outputDir; + this.resource = resource; this.defineData = new DataRenderer(gen1App.envName); } @@ -62,6 +64,7 @@ export class DataGenerator implements Planner { return [ { + resource: this.resource, validate: () => undefined, describe: async () => ['Generate amplify/data/resource.ts'], execute: async () => { diff --git a/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/function/function.generator.ts b/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/function/function.generator.ts index 9ec0b1b0057..75b86542cbd 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/function/function.generator.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/function/function.generator.ts @@ -5,7 +5,7 @@ import { AmplifyMigrationOperation } from '../../../_operation'; import { JSONUtilities } from '@aws-amplify/amplify-cli-core'; import { Planner } from '../../../planner'; import { BackendGenerator } from '../backend.generator'; -import { Gen1App } from '../../_infra/gen1-app'; +import { Gen1App, DiscoveredResource } from '../../_infra/gen1-app'; import { TS } from '../../_infra/ts'; import { FunctionRenderer, RenderDefineFunctionOptions } from './function.renderer'; import { RootPackageJsonGenerator } from '../../package.json.generator'; @@ -54,7 +54,7 @@ interface FunctionGeneratorOptions { readonly backendGenerator: BackendGenerator; readonly packageJsonGenerator: RootPackageJsonGenerator; readonly outputDir: string; - readonly resourceName: string; + readonly resource: DiscoveredResource; readonly category: string; } @@ -76,7 +76,7 @@ export class FunctionGenerator implements Planner { private s3Generator: S3Generator | undefined; private readonly packageJsonGenerator: RootPackageJsonGenerator; private readonly outputDir: string; - private readonly resourceName: string; + private readonly resource: DiscoveredResource; private readonly category: string; private readonly renderer: FunctionRenderer; @@ -85,7 +85,7 @@ export class FunctionGenerator implements Planner { this.backendGenerator = options.backendGenerator; this.packageJsonGenerator = options.packageJsonGenerator; this.outputDir = options.outputDir; - this.resourceName = options.resourceName; + this.resource = options.resource; this.category = options.category; this.renderer = new FunctionRenderer(options.gen1App.appId, options.gen1App.envName); } @@ -124,6 +124,7 @@ export class FunctionGenerator implements Planner { return [ { + resource: this.resource, validate: () => undefined, describe: async () => [`Generate amplify/${this.category}/${func.resourceName}/resource.ts`], execute: async () => { @@ -143,15 +144,15 @@ export class FunctionGenerator implements Planner { */ private async resolve(): Promise { const functionCategory = this.gen1App.meta('function'); - if (!functionCategory || !functionCategory[this.resourceName]) { - throw new Error(`Function '${this.resourceName}' not found in amplify-meta.json`); + if (!functionCategory || !functionCategory[this.resource.resourceName]) { + throw new Error(`Function '${this.resource.resourceName}' not found in amplify-meta.json`); } - const resourceMeta = functionCategory[this.resourceName] as Record; + const resourceMeta = functionCategory[this.resource.resourceName] as Record; const output = resourceMeta.output as Record | undefined; const deployedName = output?.Name; if (!deployedName) { - throw new Error(`Function '${this.resourceName}' has no deployed name in amplify-meta.json output`); + throw new Error(`Function '${this.resource.resourceName}' has no deployed name in amplify-meta.json output`); } const config = await this.gen1App.aws.fetchFunctionConfig(deployedName); @@ -175,7 +176,7 @@ export class FunctionGenerator implements Planner { const { dynamoActions, kinesisActions, graphqlApiPermissions, authAccess } = this.extractCfnPermissions(); return { - resourceName: this.resourceName, + resourceName: this.resource.resourceName, category: this.category, entry, deployedName, @@ -248,18 +249,18 @@ export class FunctionGenerator implements Planner { private contributeAuthAccess(func: ResolvedFunction): void { if (!this.authGenerator) return; if (Object.keys(func.authAccess).length > 0) { - this.authGenerator.addFunctionAuthAccess({ resourceName: this.resourceName, permissions: func.authAccess }); + this.authGenerator.addFunctionAuthAccess({ resourceName: this.resource.resourceName, permissions: func.authAccess }); } } private contributeAuthTrigger(): void { if (!this.authGenerator || this.category !== 'auth') return; const authResourceName = this.gen1App.singleResourceName('auth', 'Cognito'); - if (!this.resourceName.startsWith(authResourceName)) return; - const suffix = this.resourceName.slice(authResourceName.length); + if (!this.resource.resourceName.startsWith(authResourceName)) return; + const suffix = this.resource.resourceName.slice(authResourceName.length); const event = TRIGGER_SUFFIX_TO_EVENT[suffix]; if (event) { - this.authGenerator.addTrigger({ event, resourceName: this.resourceName }); + this.authGenerator.addTrigger({ event, resourceName: this.resource.resourceName }); } } @@ -277,7 +278,7 @@ export class FunctionGenerator implements Planner { 's3:ListBucket': 'read', }; - const templatePath = `function/${this.resourceName}/${this.resourceName}-cloudformation-template.json`; + const templatePath = `function/${this.resource.resourceName}/${this.resource.resourceName}-cloudformation-template.json`; // eslint-disable-next-line @typescript-eslint/no-explicit-any -- untyped CloudFormation template const template = this.gen1App.json(templatePath); const policy = template.Resources?.AmplifyResourcesPolicy; @@ -297,7 +298,7 @@ export class FunctionGenerator implements Planner { } if (permissions.size > 0) { - this.s3Generator.addFunctionStorageAccess(this.resourceName, category, Array.from(permissions)); + this.s3Generator.addFunctionStorageAccess(this.resource.resourceName, category, Array.from(permissions)); } } @@ -324,13 +325,13 @@ export class FunctionGenerator implements Planner { for (const config of lambdaConfigs) { const functionRef = config?.Function?.Ref as string | undefined; - if (!functionRef || !functionRef.includes(this.resourceName)) continue; + if (!functionRef || !functionRef.includes(this.resource.resourceName)) continue; const event = config.Event as string | undefined; if (event?.includes('ObjectCreated')) { - this.s3Generator.addTrigger('onUpload', this.resourceName); + this.s3Generator.addTrigger('onUpload', this.resource.resourceName); } else if (event?.includes('ObjectRemoved')) { - this.s3Generator.addTrigger('onDelete', this.resourceName); + this.s3Generator.addTrigger('onDelete', this.resource.resourceName); } } } @@ -353,7 +354,7 @@ export class FunctionGenerator implements Planner { }, }); } catch (e) { - throw new Error(`Failed to copy source files for function '${this.resourceName}': ${e}`); + throw new Error(`Failed to copy source files for function '${this.resource.resourceName}': ${e}`); } } @@ -377,7 +378,7 @@ export class FunctionGenerator implements Planner { } } } catch (e) { - throw new Error(`Failed to read package.json for function '${this.resourceName}': ${e}`); + throw new Error(`Failed to read package.json for function '${this.resource.resourceName}': ${e}`); } } @@ -540,7 +541,7 @@ export class FunctionGenerator implements Planner { graphqlApiPermissions: { hasMutation: boolean; hasQuery: boolean }; authAccess: AuthPermissions; } { - const templatePath = `function/${this.resourceName}/${this.resourceName}-cloudformation-template.json`; + const templatePath = `function/${this.resource.resourceName}/${this.resource.resourceName}-cloudformation-template.json`; // eslint-disable-next-line @typescript-eslint/no-explicit-any -- untyped CloudFormation template const template = this.gen1App.json(templatePath); const policy = template.Resources?.AmplifyResourcesPolicy; diff --git a/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/geo/geo-cfn-converter.ts b/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/geo/geo-cfn-converter.ts new file mode 100644 index 00000000000..e9b00f8845c --- /dev/null +++ b/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/geo/geo-cfn-converter.ts @@ -0,0 +1,316 @@ +import * as path from 'path'; +import * as fs from 'fs/promises'; +import * as cdk_from_cfn from 'cdk-from-cfn'; +import CFNConditionResolver from '../analytics/cfn-condition-resolver'; +import { GetObjectCommand, S3Client } from '@aws-sdk/client-s3'; +import { CloudFormationClient, DescribeStackResourcesCommand, DescribeStacksCommand, Parameter } from '@aws-sdk/client-cloudformation'; + +/** + * Geo service type from Gen1 amplify-meta.json. + */ +export type GeoServiceName = 'Map' | 'PlaceIndex' | 'GeofenceCollection'; + +/** + * Provider metadata for a Gen1 geo resource. + */ +export interface GeoProviderMetadata { + readonly s3TemplateURL: string; + readonly logicalId: string; +} + +/** + * Base fields common to all geo codegen results. + */ +interface GeoCodegenResultBase { + readonly constructClassName: string; + readonly constructFileName: string; + readonly resourceName: string; + readonly userPoolIdParamName: string; + readonly groupRoles: ReadonlyArray<{ readonly paramName: string; readonly groupName: string }>; + readonly isDefault: string; +} + +export interface MapCodegenResult extends GeoCodegenResultBase { + readonly serviceName: 'Map'; + readonly mapName: string; + readonly mapStyle: string; +} + +export interface PlaceIndexCodegenResult extends GeoCodegenResultBase { + readonly serviceName: 'PlaceIndex'; + readonly indexName: string; + readonly dataProvider: string; + readonly dataSourceIntendedUse: string; +} + +export interface GeofenceCollectionCodegenResult extends GeoCodegenResultBase { + readonly serviceName: 'GeofenceCollection'; + readonly collectionName: string; +} + +export type GeoCodegenResult = MapCodegenResult | PlaceIndexCodegenResult | GeofenceCollectionCodegenResult; + +/** + * Converts geo CloudFormation templates to CDK constructs using cdk-from-cfn. + * + * Handles all three geo service types (Map, PlaceIndex, GeofenceCollection). + * Downloads the nested stack's CFN template from S3, resolves conditions, + * fixes Fn::FindInMap dictionary lookups, and runs cdk-from-cfn to produce + * a TypeScript CDK construct file. + */ +export class GeoCfnConverter { + private readonly dir: string; + private readonly fileWriter: (content: string, filePath: string) => Promise; + private readonly s3Client: S3Client; + private readonly cfnClient?: CloudFormationClient; + private readonly rootStackName?: string; + + public constructor( + dir: string, + fileWriter: (content: string, filePath: string) => Promise, + s3Client: S3Client, + cfnClient?: CloudFormationClient, + rootStackName?: string, + ) { + this.dir = dir; + this.fileWriter = fileWriter; + this.s3Client = s3Client; + this.cfnClient = cfnClient; + this.rootStackName = rootStackName; + } + + /** + * Converts a geo CloudFormation template to a CDK L1 construct. + */ + public async generateGeoL1Code( + resourceName: string, + service: GeoServiceName, + providerMetadata: GeoProviderMetadata, + ): Promise { + const constructFileName = `${resourceName}-construct`; + const filePath = path.join(this.dir, 'amplify', 'geo', resourceName, `${constructFileName}.ts`); + const template = await getCfnTemplateFromS3(providerMetadata.s3TemplateURL, this.s3Client); + const nestedStackLogicalId = providerMetadata.logicalId; + + const parameters = await this.getNestedStackParameters(nestedStackLogicalId); + const finalTemplate = await this.preTransmute(template, nestedStackLogicalId); + const tsFile = cdk_from_cfn.transmute(JSON.stringify(finalTemplate), 'typescript', nestedStackLogicalId, 'construct'); + const fixedTsFile = this.postTransmute(tsFile); + + await fs.mkdir(path.dirname(filePath), { recursive: true }); + + const prettier = await import('prettier'); + const formatted = prettier.format(fixedTsFile, { + parser: 'typescript', + singleQuote: true, + tabWidth: 2, + printWidth: 80, + }); + await this.fileWriter(formatted, filePath); + + const classNameMatch = fixedTsFile.match(/export class (\w+) extends/); + if (!classNameMatch) { + throw new Error(`Failed to extract class name from generated construct for geo resource: ${resourceName}`); + } + const constructClassName = classNameMatch[1]; + + const paramMap = new Map( + parameters + .filter( + (p): p is { ParameterKey: string; ParameterValue: string } => p.ParameterKey !== undefined && p.ParameterValue !== undefined, + ) + .map((p) => [p.ParameterKey, p.ParameterValue]), + ); + + let userPoolIdParamName = ''; + const groupRoles: Array<{ readonly paramName: string; readonly groupName: string }> = []; + for (const [key] of paramMap) { + if (key.startsWith('auth') && key.endsWith('UserPoolId')) { + userPoolIdParamName = key; + } else if (key.startsWith('authuserPoolGroups') && key.endsWith('GroupRole')) { + const groupName = key.slice('authuserPoolGroups'.length, -'GroupRole'.length); + groupRoles.push({ paramName: key, groupName }); + } + } + + const base: GeoCodegenResultBase = { + constructClassName, + constructFileName, + resourceName, + userPoolIdParamName, + groupRoles, + isDefault: paramMap.get('isDefault') ?? 'false', + }; + + switch (service) { + case 'Map': + return { + ...base, + serviceName: 'Map', + mapName: paramMap.get('mapName') ?? resourceName, + mapStyle: paramMap.get('mapStyle') ?? '', + }; + case 'PlaceIndex': + return { + ...base, + serviceName: 'PlaceIndex', + indexName: paramMap.get('indexName') ?? resourceName, + dataProvider: paramMap.get('dataProvider') ?? '', + dataSourceIntendedUse: paramMap.get('dataSourceIntendedUse') ?? '', + }; + case 'GeofenceCollection': + return { + ...base, + serviceName: 'GeofenceCollection', + collectionName: paramMap.get('collectionName') ?? resourceName, + }; + default: { + const _exhaustiveCheck: never = service; + throw new Error(`Unsupported geo service type: ${_exhaustiveCheck}`); + } + } + } + + private async getNestedStackPhysicalName(logicalId: string): Promise { + if (!this.cfnClient || !this.rootStackName) return undefined; + + const response = await this.cfnClient.send( + new DescribeStackResourcesCommand({ StackName: this.rootStackName, LogicalResourceId: logicalId }), + ); + return response.StackResources?.[0]?.PhysicalResourceId; + } + + private async getNestedStackParameters(logicalId: string): Promise { + if (!this.cfnClient || !this.rootStackName) return []; + + const nestedStackName = await this.getNestedStackPhysicalName(logicalId); + if (!nestedStackName) return []; + + const response = await this.cfnClient.send(new DescribeStacksCommand({ StackName: nestedStackName })); + return response.Stacks?.[0]?.Parameters ?? []; + } + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + private async preTransmute(template: any, logicalId: string): Promise { + const result = JSON.parse(JSON.stringify(template)); + + // Rename env → branchName + if (result.Parameters?.env) { + result.Parameters['branchName'] = result.Parameters.env; + delete result.Parameters.env; + } + + const updateRefs = (obj: unknown): void => { + if (typeof obj === 'object' && obj !== null) { + const record = obj as Record; + if (record.Ref === 'env') { + record.Ref = 'branchName'; + } + Object.values(record).forEach(updateRefs); + } + }; + updateRefs(result.Resources); + + // Replace Fn::Join patterns that construct group role names from + // UserPoolId + GroupRole with direct Ref to the GroupRole parameter. + // This preserves CDK tokens for cross-stack dependency tracking. + if (result.Parameters) { + const groupRoleParams = Object.keys(result.Parameters).filter( + (key: string) => key.startsWith('authuserPoolGroups') && key.endsWith('GroupRole'), + ); + + const replaceGroupRoleJoins = (obj: unknown): void => { + if (typeof obj !== 'object' || obj === null) return; + const record = obj as Record; + + for (const [key, value] of Object.entries(record)) { + if (typeof value === 'object' && value !== null && 'Fn::Join' in value) { + const joinValue = value as { 'Fn::Join': [string, unknown[]] }; + const [separator, parts] = joinValue['Fn::Join']; + if ( + separator === '-' && + Array.isArray(parts) && + parts.length === 2 && + typeof parts[0] === 'object' && + parts[0] !== null && + 'Ref' in parts[0] && + typeof parts[1] === 'string' && + parts[1].endsWith('GroupRole') + ) { + const groupRoleSuffix = parts[1]; + const matchingParam = groupRoleParams.find((p) => p.endsWith(groupRoleSuffix)); + if (matchingParam) { + record[key] = { Ref: matchingParam }; + } + } + } else { + replaceGroupRoleJoins(value); + } + } + }; + replaceGroupRoleJoins(result.Resources); + } + + // Resolve CFN conditions using deployed stack parameters + const parameters = await this.getNestedStackParameters(logicalId); + if (parameters.length > 0) { + const resolved = new CFNConditionResolver(result).resolve(parameters); + delete resolved.Conditions; + return resolved; + } + + return result; + } + + /** + * Fixes Fn::FindInMap dictionary lookups generated by cdk-from-cfn. + * + * cdk-from-cfn translates CFN Fn::FindInMap into plain dictionary lookups + * which fail at CDK synth time because this.region is a CDK Token. + * This replaces them with cdk.CfnMapping + findInMap() calls. + */ + private postTransmute(tsCode: string): string { + const mappingVarNames: string[] = []; + let result = tsCode.replace( + /const (\w+):\s*Record>\s*=\s*\{([\s\S]*?)\n(\s*)\};/g, + (_match, varName: string, mappingBody: string, indent: string) => { + mappingVarNames.push(varName); + const constructId = varName.charAt(0).toUpperCase() + varName.slice(1); + return `const ${varName} = new cdk.CfnMapping(this, '${constructId}', {\n${indent} mapping: {${mappingBody}\n${indent} },\n${indent}});`; + }, + ); + + for (const varName of mappingVarNames) { + const lookupRegex = new RegExp(`${varName}\\[([^\\]]+)\\]\\[(['"])([^'"]+)\\2\\]`, 'g'); + result = result.replace(lookupRegex, (_match, expr: string, quote: string, key: string) => { + return `${varName}.findInMap(${expr}, ${quote}${key}${quote})`; + }); + } + + return result; + } +} + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +async function getCfnTemplateFromS3(s3Url: string, s3Client: S3Client): Promise { + const url = new URL(s3Url); + let bucket: string; + let key: string; + + const virtualHostMatch = url.hostname.match(/^(.+)\.s3[.-].*\.amazonaws\.com$/); + + if (virtualHostMatch) { + bucket = virtualHostMatch[1]; + key = url.pathname.slice(1); + } else { + const splitPath = url.pathname.split('/'); + bucket = splitPath[1]; + key = splitPath.slice(2).join('/'); + } + + const response = await s3Client.send(new GetObjectCommand({ Bucket: bucket, Key: key })); + if (!response.Body) { + throw new Error(`Failed to retrieve S3 object: ${s3Url}`); + } + return JSON.parse(await response.Body.transformToString()); +} diff --git a/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/geo/geo.generator.ts b/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/geo/geo.generator.ts new file mode 100644 index 00000000000..ee0e65cb048 --- /dev/null +++ b/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/geo/geo.generator.ts @@ -0,0 +1,128 @@ +import path from 'node:path'; +import fs from 'node:fs/promises'; +import ts from 'typescript'; +import { Planner } from '../../../planner'; +import { AmplifyMigrationOperation } from '../../../_operation'; +import { BackendGenerator } from '../backend.generator'; +import { DiscoveredResource, Gen1App } from '../../_infra/gen1-app'; +import { TS } from '../../_infra/ts'; +import { GeoRenderer } from './geo.renderer'; +import { GeoCfnConverter, GeoCodegenResult, GeoServiceName, GeoProviderMetadata } from './geo-cfn-converter'; + +const factory = ts.factory; + +/** + * Metadata for a single Gen1 geo resource from amplify-meta.json. + */ +interface GeoResourceMeta { + readonly service: string; + readonly providerMetadata: GeoProviderMetadata; + readonly isDefault?: boolean; +} + +/** + * Generates geo resource files and contributes to backend.ts. + * + * Handles all three geo service types (Map, PlaceIndex, GeofenceCollection). + * For each resource, generates a CDK construct file via cdk-from-cfn and a + * per-resource resource.ts. Then generates a top-level geo/resource.ts + * aggregator that imports all sub-resources and calls backend.addOutput() + * with geo configuration. Contributes defineGeo import and call to backend.ts. + */ +export class GeoGenerator implements Planner { + private readonly gen1App: Gen1App; + private readonly backendGenerator: BackendGenerator; + private readonly outputDir: string; + private readonly renderer: GeoRenderer; + private readonly resource: DiscoveredResource; + + public constructor(gen1App: Gen1App, backendGenerator: BackendGenerator, outputDir: string, resource: DiscoveredResource) { + this.gen1App = gen1App; + this.backendGenerator = backendGenerator; + this.outputDir = outputDir; + this.renderer = new GeoRenderer(); + this.resource = resource; + } + + /** + * Plans geo generation operations for all geo resources. + */ + public async plan(): Promise { + const geoCategory = this.gen1App.meta('geo'); + if (!geoCategory) return []; + + const geoDir = path.join(this.outputDir, 'amplify', 'geo'); + const allCodegenResults: GeoCodegenResult[] = []; + + const operations: AmplifyMigrationOperation[] = []; + + for (const [resourceName, resourceMeta] of Object.entries(geoCategory)) { + const meta = resourceMeta as GeoResourceMeta; + const service = meta.service as GeoServiceName; + + operations.push({ + resource: this.resource, + validate: () => undefined, + describe: async () => [`Generate amplify/geo/${resourceName}/resource.ts`], + execute: async () => { + const fileWriter = async (content: string, filePath: string) => { + await fs.mkdir(path.dirname(filePath), { recursive: true }); + await fs.writeFile(filePath, content, 'utf-8'); + }; + + const converter = new GeoCfnConverter( + this.outputDir, + fileWriter, + this.gen1App.clients.s3, + this.gen1App.clients.cloudFormation, + this.gen1App.rootStackName, + ); + + const codegenResult = await converter.generateGeoL1Code(resourceName, service, meta.providerMetadata); + allCodegenResults.push(codegenResult); + + const nodes = this.renderer.renderResource(codegenResult); + const content = TS.printNodes(nodes); + + const resourceDir = path.join(geoDir, resourceName); + await fs.mkdir(resourceDir, { recursive: true }); + await fs.writeFile(path.join(resourceDir, 'resource.ts'), content, 'utf-8'); + }, + }); + } + + // Top-level geo/resource.ts aggregator — runs after all per-resource operations + operations.push({ + validate: () => undefined, + describe: async () => ['Generate amplify/geo/resource.ts'], + execute: async () => { + const nodes = this.renderer.renderAggregator(allCodegenResults); + const content = TS.printNodes(nodes); + + await fs.mkdir(geoDir, { recursive: true }); + await fs.writeFile(path.join(geoDir, 'resource.ts'), content, 'utf-8'); + + // Contribute to backend.ts + this.backendGenerator.addImport('./geo/resource', ['defineGeo']); + this.backendGenerator.addEarlyStatement( + factory.createVariableStatement( + undefined, + factory.createVariableDeclarationList( + [ + factory.createVariableDeclaration( + 'geo', + undefined, + undefined, + factory.createCallExpression(factory.createIdentifier('defineGeo'), undefined, [factory.createIdentifier('backend')]), + ), + ], + ts.NodeFlags.Const, + ), + ), + ); + }, + }); + + return operations; + } +} diff --git a/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/geo/geo.renderer.ts b/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/geo/geo.renderer.ts new file mode 100644 index 00000000000..910a7e3fed6 --- /dev/null +++ b/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/geo/geo.renderer.ts @@ -0,0 +1,336 @@ +import ts from 'typescript'; +import { newLineIdentifier, TS } from '../../_infra/ts'; +import { GeoCodegenResult } from './geo-cfn-converter'; + +const factory = ts.factory; + +/** + * Renders per-resource and aggregator geo resource.ts files. + * Pure AST construction — no AWS calls, no side effects. + */ +export class GeoRenderer { + /** + * Renders a per-resource geo/{resourceName}/resource.ts file. + * + * Produces a defineXxx function that creates a CDK stack, + * instantiates the generated construct, and returns it. + */ + public renderResource(params: GeoCodegenResult): ts.NodeArray { + const { constructClassName, constructFileName, resourceName } = params; + + const constructImport = factory.createImportDeclaration( + undefined, + factory.createImportClause( + false, + undefined, + factory.createNamedImports([factory.createImportSpecifier(false, undefined, factory.createIdentifier(constructClassName))]), + ), + factory.createStringLiteral(`./${constructFileName}`), + ); + + const backendImport = factory.createImportDeclaration( + undefined, + factory.createImportClause( + false, + undefined, + factory.createNamedImports([factory.createImportSpecifier(false, undefined, factory.createIdentifier('Backend'))]), + ), + factory.createStringLiteral('@aws-amplify/backend'), + ); + + const branchNameConst = TS.createBranchNameDeclaration(); + const functionName = `define${resourceName.charAt(0).toUpperCase()}${resourceName.slice(1)}`; + + const createStackCall = TS.constDecl( + `${resourceName}Stack`, + factory.createCallExpression(TS.propAccess('backend', 'createStack') as ts.PropertyAccessExpression, undefined, [ + factory.createStringLiteral(`geo${resourceName}`), + ]), + ); + + const constructProps = this.buildConstructProps(params); + + const constructInstantiation = TS.constDecl( + resourceName, + factory.createNewExpression(factory.createIdentifier(constructClassName), undefined, [ + factory.createIdentifier(`${resourceName}Stack`), + factory.createStringLiteral(resourceName), + factory.createObjectLiteralExpression(constructProps, true), + ]), + ); + + const returnStatement = factory.createReturnStatement(factory.createIdentifier(resourceName)); + + // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Backend in generated code + const arrowFunction = factory.createArrowFunction( + undefined, + undefined, + [ + factory.createParameterDeclaration( + undefined, + undefined, + factory.createIdentifier('backend'), + undefined, + factory.createTypeReferenceNode(factory.createIdentifier('Backend'), [factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword)]), + ), + ], + undefined, + factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken), + factory.createBlock([createStackCall, constructInstantiation, returnStatement], true), + ); + + const exportStatement = factory.createVariableStatement( + [factory.createModifier(ts.SyntaxKind.ExportKeyword)], + factory.createVariableDeclarationList( + [factory.createVariableDeclaration(factory.createIdentifier(functionName), undefined, undefined, arrowFunction)], + ts.NodeFlags.Const, + ), + ); + + return factory.createNodeArray([ + constructImport, + backendImport, + newLineIdentifier, + branchNameConst, + newLineIdentifier, + exportStatement, + ]); + } + + /** + * Renders the top-level geo/resource.ts aggregator that imports all + * sub-resources and calls backend.addOutput() with geo configuration. + */ + public renderAggregator(resources: readonly GeoCodegenResult[]): ts.NodeArray { + const resourceImports = resources.map((r) => { + const functionName = `define${r.resourceName.charAt(0).toUpperCase()}${r.resourceName.slice(1)}`; + return factory.createImportDeclaration( + undefined, + factory.createImportClause( + false, + undefined, + factory.createNamedImports([factory.createImportSpecifier(false, undefined, factory.createIdentifier(functionName))]), + ), + factory.createStringLiteral(`./${r.resourceName}/resource`), + ); + }); + + const backendImport = factory.createImportDeclaration( + undefined, + factory.createImportClause( + false, + undefined, + factory.createNamedImports([factory.createImportSpecifier(false, undefined, factory.createIdentifier('Backend'))]), + ), + factory.createStringLiteral('@aws-amplify/backend'), + ); + + const functionAssignments = resources.map((r) => { + const functionName = `define${r.resourceName.charAt(0).toUpperCase()}${r.resourceName.slice(1)}`; + return TS.constDecl( + r.resourceName, + factory.createCallExpression(factory.createIdentifier(functionName), undefined, [factory.createIdentifier('backend')]), + ); + }); + + const addOutputStatement = this.buildAddOutputStatement(resources); + + // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Backend in generated code + const arrowFunction = factory.createArrowFunction( + undefined, + undefined, + [ + factory.createParameterDeclaration( + undefined, + undefined, + factory.createIdentifier('backend'), + undefined, + factory.createTypeReferenceNode(factory.createIdentifier('Backend'), [factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword)]), + ), + ], + undefined, + factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken), + factory.createBlock([...functionAssignments, addOutputStatement], true), + ); + + const exportStatement = factory.createVariableStatement( + [factory.createModifier(ts.SyntaxKind.ExportKeyword)], + factory.createVariableDeclarationList( + [factory.createVariableDeclaration(factory.createIdentifier('defineGeo'), undefined, undefined, arrowFunction)], + ts.NodeFlags.Const, + ), + ); + + return factory.createNodeArray([...resourceImports, backendImport, newLineIdentifier, exportStatement]); + } + + private buildConstructProps(params: GeoCodegenResult): ts.ObjectLiteralElementLike[] { + const props: ts.ObjectLiteralElementLike[] = []; + + // Map and PlaceIndex get authRoleName/unauthRoleName; GeofenceCollection does not + if (params.serviceName === 'Map' || params.serviceName === 'PlaceIndex') { + props.push(factory.createPropertyAssignment(factory.createIdentifier('authRoleName'), createAuthRoleAccess())); + props.push(factory.createPropertyAssignment(factory.createIdentifier('unauthRoleName'), createUnauthRoleAccess())); + } + + if (params.userPoolIdParamName) { + props.push(factory.createPropertyAssignment(factory.createIdentifier(params.userPoolIdParamName), createUserPoolIdAccess())); + } + + for (const groupRole of params.groupRoles) { + props.push( + factory.createPropertyAssignment(factory.createIdentifier(groupRole.paramName), createGroupRoleAccess(groupRole.groupName)), + ); + } + + props.push(...this.getServiceSpecificProps(params)); + props.push(factory.createShorthandPropertyAssignment(factory.createIdentifier('branchName'))); + props.push(factory.createPropertyAssignment(factory.createIdentifier('isDefault'), factory.createStringLiteral(params.isDefault))); + + return props; + } + + private getServiceSpecificProps(params: GeoCodegenResult): ts.PropertyAssignment[] { + switch (params.serviceName) { + case 'Map': + return [ + factory.createPropertyAssignment(factory.createIdentifier('mapName'), factory.createStringLiteral(params.mapName)), + factory.createPropertyAssignment(factory.createIdentifier('mapStyle'), factory.createStringLiteral(params.mapStyle)), + ]; + case 'PlaceIndex': + return [ + factory.createPropertyAssignment(factory.createIdentifier('indexName'), factory.createStringLiteral(params.indexName)), + factory.createPropertyAssignment(factory.createIdentifier('dataProvider'), factory.createStringLiteral(params.dataProvider)), + factory.createPropertyAssignment( + factory.createIdentifier('dataSourceIntendedUse'), + factory.createStringLiteral(params.dataSourceIntendedUse), + ), + ]; + case 'GeofenceCollection': + return [ + factory.createPropertyAssignment(factory.createIdentifier('collectionName'), factory.createStringLiteral(params.collectionName)), + ]; + default: { + const _exhaustiveCheck: never = params; + throw new Error(`Unsupported geo service type: ${(_exhaustiveCheck as GeoCodegenResult).serviceName}`); + } + } + } + + private buildAddOutputStatement(resources: readonly GeoCodegenResult[]): ts.ExpressionStatement { + const maps = resources.filter((r) => r.serviceName === 'Map'); + const placeIndexes = resources.filter((r) => r.serviceName === 'PlaceIndex'); + const geofenceCollections = resources.filter((r) => r.serviceName === 'GeofenceCollection'); + + const geoProps: ts.ObjectLiteralElementLike[] = []; + + const firstResource = maps[0] ?? placeIndexes[0] ?? geofenceCollections[0]; + geoProps.push( + factory.createPropertyAssignment(factory.createIdentifier('aws_region'), TS.propAccess(firstResource.resourceName, 'region')), + ); + + if (maps.length > 0) { + geoProps.push(this.buildMapsSection(maps)); + } + if (placeIndexes.length > 0) { + geoProps.push(this.buildSearchIndicesSection(placeIndexes)); + } + if (geofenceCollections.length > 0) { + geoProps.push(this.buildGeofenceCollectionsSection(geofenceCollections)); + } + + return factory.createExpressionStatement( + factory.createCallExpression(TS.propAccess('backend', 'addOutput') as ts.PropertyAccessExpression, undefined, [ + factory.createObjectLiteralExpression( + [factory.createPropertyAssignment(factory.createIdentifier('geo'), factory.createObjectLiteralExpression(geoProps, true))], + true, + ), + ]), + ); + } + + private buildMapsSection(maps: readonly GeoCodegenResult[]): ts.PropertyAssignment { + const mapItems = maps.map((m) => + factory.createPropertyAssignment( + factory.createComputedPropertyName(TS.propAccess(m.resourceName, 'name')), + factory.createObjectLiteralExpression([ + factory.createPropertyAssignment(factory.createIdentifier('style'), TS.propAccess(m.resourceName, 'style')), + ]), + ), + ); + const defaultMap = maps.find((m) => m.serviceName === 'Map' && m.isDefault === 'true') ?? maps[0]; + + return factory.createPropertyAssignment( + factory.createIdentifier('maps'), + factory.createObjectLiteralExpression( + [ + factory.createPropertyAssignment(factory.createIdentifier('items'), factory.createObjectLiteralExpression(mapItems, true)), + factory.createPropertyAssignment(factory.createIdentifier('default'), TS.propAccess(defaultMap.resourceName, 'name')), + ], + true, + ), + ); + } + + private buildSearchIndicesSection(placeIndexes: readonly GeoCodegenResult[]): ts.PropertyAssignment { + const indexItems = placeIndexes.map((p) => TS.propAccess(p.resourceName, 'name')); + const defaultIndex = placeIndexes.find((p) => p.serviceName === 'PlaceIndex' && p.isDefault === 'true') ?? placeIndexes[0]; + + return factory.createPropertyAssignment( + factory.createIdentifier('search_indices'), + factory.createObjectLiteralExpression( + [ + factory.createPropertyAssignment(factory.createIdentifier('items'), factory.createArrayLiteralExpression(indexItems)), + factory.createPropertyAssignment(factory.createIdentifier('default'), TS.propAccess(defaultIndex.resourceName, 'name')), + ], + true, + ), + ); + } + + private buildGeofenceCollectionsSection(geofenceCollections: readonly GeoCodegenResult[]): ts.PropertyAssignment { + const collectionItems = geofenceCollections.map((g) => TS.propAccess(g.resourceName, 'name')); + const defaultCollection = + geofenceCollections.find((g) => g.serviceName === 'GeofenceCollection' && g.isDefault === 'true') ?? geofenceCollections[0]; + + return factory.createPropertyAssignment( + factory.createIdentifier('geofence_collections'), + factory.createObjectLiteralExpression( + [ + factory.createPropertyAssignment(factory.createIdentifier('items'), factory.createArrayLiteralExpression(collectionItems)), + factory.createPropertyAssignment(factory.createIdentifier('default'), TS.propAccess(defaultCollection.resourceName, 'name')), + ], + true, + ), + ); + } +} + +/** backend.auth.resources.authenticatedUserIamRole.roleName */ +function createAuthRoleAccess(): ts.PropertyAccessExpression { + return TS.propAccess('backend', 'auth', 'resources', 'authenticatedUserIamRole', 'roleName') as ts.PropertyAccessExpression; +} + +/** backend.auth.resources.unauthenticatedUserIamRole.roleName */ +function createUnauthRoleAccess(): ts.PropertyAccessExpression { + return TS.propAccess('backend', 'auth', 'resources', 'unauthenticatedUserIamRole', 'roleName') as ts.PropertyAccessExpression; +} + +/** backend.auth.resources.userPool.userPoolId */ +function createUserPoolIdAccess(): ts.PropertyAccessExpression { + return TS.propAccess('backend', 'auth', 'resources', 'userPool', 'userPoolId') as ts.PropertyAccessExpression; +} + +/** backend.auth.resources.groups['groupName'].role.roleName */ +function createGroupRoleAccess(groupName: string): ts.PropertyAccessExpression { + return factory.createPropertyAccessExpression( + factory.createPropertyAccessExpression( + factory.createElementAccessExpression( + TS.propAccess('backend', 'auth', 'resources', 'groups') as ts.PropertyAccessExpression, + factory.createStringLiteral(groupName), + ), + factory.createIdentifier('role'), + ), + factory.createIdentifier('roleName'), + ); +} diff --git a/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/rest-api/rest-api.generator.ts b/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/rest-api/rest-api.generator.ts index 7b684af285f..ba77d8607ca 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/rest-api/rest-api.generator.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/rest-api/rest-api.generator.ts @@ -2,7 +2,7 @@ import ts from 'typescript'; import { Planner } from '../../../planner'; import { AmplifyMigrationOperation } from '../../../_operation'; import { BackendGenerator } from '../backend.generator'; -import { Gen1App } from '../../_infra/gen1-app'; +import { Gen1App, DiscoveredResource } from '../../_infra/gen1-app'; import { CorsConfiguration, RestApiDefinition, RestApiPath, RestApiRenderer } from './rest-api.renderer'; const factory = ts.factory; @@ -19,19 +19,19 @@ const factory = ts.factory; export class RestApiGenerator implements Planner { private readonly gen1App: Gen1App; private readonly backendGenerator: BackendGenerator; - private readonly resourceName: string; + private readonly resource: DiscoveredResource; - public constructor(gen1App: Gen1App, backendGenerator: BackendGenerator, resourceName: string) { + public constructor(gen1App: Gen1App, backendGenerator: BackendGenerator, resource: DiscoveredResource) { this.gen1App = gen1App; this.backendGenerator = backendGenerator; - this.resourceName = resourceName; + this.resource = resource; } /** * Plans the REST API generation operation. */ public async plan(): Promise { - const restApi = await RestApiGenerator.readRestApiConfig(this.gen1App, this.resourceName); + const restApi = await RestApiGenerator.readRestApiConfig(this.gen1App, this.resource.resourceName); const functionCategory = this.gen1App.meta('function'); const functionNames = new Set(Object.keys((functionCategory as object) ?? {})); const hasAuth = this.gen1App.meta('auth') !== undefined; @@ -39,6 +39,7 @@ export class RestApiGenerator implements Planner { return [ { + resource: this.resource, validate: () => undefined, describe: async () => [`Generate REST API ${restApi.apiName} in amplify/backend.ts`], execute: async () => { diff --git a/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/storage/dynamodb.generator.ts b/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/storage/dynamodb.generator.ts index c5879bd27d5..dd019f7af0e 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/storage/dynamodb.generator.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/storage/dynamodb.generator.ts @@ -1,7 +1,7 @@ import { Planner } from '../../../planner'; import { AmplifyMigrationOperation } from '../../../_operation'; import { BackendGenerator } from '../backend.generator'; -import { Gen1App } from '../../_infra/gen1-app'; +import { Gen1App, DiscoveredResource } from '../../_infra/gen1-app'; import { DynamoDBRenderer, DynamoDBGSI, DynamoDBTableDefinition } from './dynamodb.renderer'; import { TableDescription, KeySchemaElement, AttributeDefinition } from '@aws-sdk/client-dynamodb'; @@ -15,15 +15,13 @@ import { TableDescription, KeySchemaElement, AttributeDefinition } from '@aws-sd export class DynamoDBGenerator implements Planner { private readonly gen1App: Gen1App; private readonly backendGenerator: BackendGenerator; - private readonly resourceName: string; - private readonly hasS3Bucket: boolean; + private readonly resource: DiscoveredResource; private readonly renderer = new DynamoDBRenderer(); - public constructor(gen1App: Gen1App, backendGenerator: BackendGenerator, resourceName: string, hasS3Bucket: boolean) { + public constructor(gen1App: Gen1App, backendGenerator: BackendGenerator, resource: DiscoveredResource, hasS3Bucket: boolean) { this.gen1App = gen1App; this.backendGenerator = backendGenerator; - this.resourceName = resourceName; - this.hasS3Bucket = hasS3Bucket; + this.resource = resource; } /** @@ -34,12 +32,13 @@ export class DynamoDBGenerator implements Planner { return [ { + resource: this.resource, validate: () => undefined, - describe: async () => [`Generate DynamoDB table ${this.resourceName} in amplify/backend.ts`], + describe: async () => [`Generate DynamoDB table ${this.resource.resourceName} in amplify/backend.ts`], execute: async () => { const imports = this.renderer.requiredImports(); this.backendGenerator.addImport(imports.source, imports.identifiers); - const scopeVarName = this.backendGenerator.createDynamoDBStack(this.resourceName); + const scopeVarName = this.backendGenerator.createDynamoDBStack(this.resource.resourceName); for (const statement of this.renderer.renderTable(table, scopeVarName)) { this.backendGenerator.addEarlyStatement(statement); @@ -51,9 +50,9 @@ export class DynamoDBGenerator implements Planner { private async fetchTable(): Promise { const storageMeta = this.gen1App.meta('storage'); - const resourceMeta = storageMeta?.[this.resourceName] as Record | undefined; + const resourceMeta = storageMeta?.[this.resource.resourceName] as Record | undefined; const output = resourceMeta?.output as Record | undefined; - const actualTableName = output?.Name || this.resourceName; + const actualTableName = output?.Name || this.resource.resourceName; const table = await this.gen1App.aws.fetchTableDescription(actualTableName); if (!table) { diff --git a/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/storage/s3.generator.ts b/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/storage/s3.generator.ts index d15b29bbba0..e164dac5c4d 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/storage/s3.generator.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/generate/amplify/storage/s3.generator.ts @@ -5,7 +5,7 @@ import type { BucketAccelerateStatus, BucketVersioningStatus, ServerSideEncrypti import { Planner } from '../../../planner'; import { AmplifyMigrationOperation } from '../../../_operation'; import { BackendGenerator } from '../backend.generator'; -import { Gen1App } from '../../_infra/gen1-app'; +import { Gen1App, DiscoveredResource } from '../../_infra/gen1-app'; import { TS } from '../../_infra/ts'; import { S3Renderer, AccessPatterns, StorageTriggerEvent, Permission } from './s3.renderer'; @@ -49,6 +49,7 @@ export class S3Generator implements Planner { private readonly gen1App: Gen1App; private readonly backendGenerator: BackendGenerator; private readonly outputDir: string; + private readonly resource: DiscoveredResource; private readonly defineStorage: S3Renderer; private readonly functionStorageAccess: Array<{ readonly functionName: string; @@ -57,10 +58,11 @@ export class S3Generator implements Planner { }> = []; private readonly triggers: Partial> = {}; - public constructor(gen1App: Gen1App, backendGenerator: BackendGenerator, outputDir: string) { + public constructor(gen1App: Gen1App, backendGenerator: BackendGenerator, outputDir: string, resource: DiscoveredResource) { this.gen1App = gen1App; this.backendGenerator = backendGenerator; this.outputDir = outputDir; + this.resource = resource; this.defineStorage = new S3Renderer(gen1App.envName); } @@ -109,6 +111,7 @@ export class S3Generator implements Planner { const storageIdentifier = bucketName; return { + resource: this.resource, validate: () => undefined, describe: async () => ['Generate amplify/storage/resource.ts'], execute: async () => { diff --git a/packages/amplify-cli/src/commands/gen2-migration/refactor/analytics/analytics-rollback.ts b/packages/amplify-cli/src/commands/gen2-migration/refactor/analytics/analytics-rollback.ts index 3e49b598bd1..6c2306114f1 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/refactor/analytics/analytics-rollback.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/refactor/analytics/analytics-rollback.ts @@ -1,3 +1,4 @@ +import { CFNResource } from '../../cfn-template'; import { RollbackCategoryRefactorer } from '../workflow/rollback-category-refactorer'; import { ANALYTICS_RESOURCE_TYPES } from './analytics-forward'; @@ -7,8 +8,6 @@ import { ANALYTICS_RESOURCE_TYPES } from './analytics-forward'; * Uses the default gen1LogicalIds-based buildResourceMappings from RollbackCategoryRefactorer. */ export class AnalyticsKinesisRollbackRefactorer extends RollbackCategoryRefactorer { - protected override readonly gen1LogicalIds = new Map([['AWS::Kinesis::Stream', 'KinesisStream']]); - protected async fetchSourceStackId(): Promise { return this.findNestedStack(this.gen2Branch, 'analytics'); } @@ -20,4 +19,13 @@ export class AnalyticsKinesisRollbackRefactorer extends RollbackCategoryRefactor protected resourceTypes(): string[] { return ANALYTICS_RESOURCE_TYPES; } + + protected targetLogicalId(sourceId: string, sourceResource: CFNResource): string | undefined { + switch (sourceResource.Type) { + case 'AWS::Kinesis::Stream': + return 'KinesisStream'; + default: + return undefined; + } + } } diff --git a/packages/amplify-cli/src/commands/gen2-migration/refactor/auth/auth-forward.ts b/packages/amplify-cli/src/commands/gen2-migration/refactor/auth/auth-cognito-forward.ts similarity index 62% rename from packages/amplify-cli/src/commands/gen2-migration/refactor/auth/auth-forward.ts rename to packages/amplify-cli/src/commands/gen2-migration/refactor/auth/auth-cognito-forward.ts index 2d5111e983b..cfa1a75d480 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/refactor/auth/auth-forward.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/refactor/auth/auth-cognito-forward.ts @@ -1,32 +1,38 @@ import { Output, Parameter } from '@aws-sdk/client-cloudformation'; import { AmplifyError } from '@aws-amplify/amplify-cli-core'; -import { CFNResource } from '../../cfn-template'; import { AwsClients } from '../../aws-clients'; import { StackFacade } from '../stack-facade'; import { retrieveOAuthValues } from '../oauth-values-retriever'; import { ForwardCategoryRefactorer } from '../workflow/forward-category-refactorer'; -import { MoveMapping } from '../workflow/category-refactorer'; +import { Cfn } from '../cfn'; import { SpinningLogger } from '../../_spinning-logger'; -import { GEN2_NATIVE_APP_CLIENT, discoverGen1AuthStacks } from './auth-utils'; +import { DiscoveredResource } from '../../generate/_infra/gen1-app'; +import { CFNResource } from '../../cfn-template'; -const GEN1_WEB_APP_CLIENT = 'UserPoolClientWeb'; const HOSTED_PROVIDER_META_PARAMETER_NAME = 'hostedUIProviderMeta'; const HOSTED_PROVIDER_CREDENTIALS_PARAMETER_NAME = 'hostedUIProviderCreds'; const USER_POOL_ID_OUTPUT_KEY_NAME = 'UserPoolId'; -export const AUTH_RESOURCE_TYPES = [ +export const GEN1_NATIVE_APP_CLIENT = 'UserPoolClient'; +export const GEN1_WEB_CLIENT = 'UserPoolClientWeb'; + +export const GEN2_NATIVE_APP_CLIENT = 'UserPoolNativeAppClient'; +export const GEN2_WEB_CLIENT = 'UserPoolAppClient'; + +export const USER_POOL_CLIENT_TYPE = 'AWS::Cognito::UserPoolClient'; + +export const RESOURCE_TYPES = [ 'AWS::Cognito::UserPool', - 'AWS::Cognito::UserPoolClient', + USER_POOL_CLIENT_TYPE, 'AWS::Cognito::IdentityPool', 'AWS::Cognito::IdentityPoolRoleAttachment', 'AWS::Cognito::UserPoolDomain', ]; /** - * Forward refactorer for the auth category. + * Forward refactorer for the auth:Cognito resource. * * Moves main auth resources from Gen1 to Gen2. - * UserPoolGroup support will be added back in a future change. */ export class AuthCognitoForwardRefactorer extends ForwardCategoryRefactorer { constructor( @@ -38,12 +44,14 @@ export class AuthCognitoForwardRefactorer extends ForwardCategoryRefactorer { logger: SpinningLogger, private readonly appId: string, private readonly environmentName: string, + protected readonly resource: DiscoveredResource, + cfn: Cfn, ) { - super(gen1Env, gen2Branch, clients, region, accountId, logger); + super(gen1Env, gen2Branch, clients, region, accountId, logger, resource, cfn); } protected resourceTypes(): string[] { - return AUTH_RESOURCE_TYPES; + return RESOURCE_TYPES; } /** @@ -79,44 +87,34 @@ export class AuthCognitoForwardRefactorer extends ForwardCategoryRefactorer { return parameters; } - /** - * Auth forward mapping with UserPoolClient Web/Native disambiguation. - */ - protected buildResourceMappings(sourceResources: Map, targetResources: Map): MoveMapping[] { - const mappings: MoveMapping[] = []; - const usedTargetIds = new Set(); - - for (const [sourceId, sourceResource] of sourceResources) { - let matched = false; - for (const [targetId, targetResource] of targetResources) { - if (sourceResource.Type !== targetResource.Type || usedTargetIds.has(targetId)) continue; - - if (sourceResource.Type === 'AWS::Cognito::UserPoolClient') { - const isWebPair = sourceId === GEN1_WEB_APP_CLIENT && !targetId.includes(GEN2_NATIVE_APP_CLIENT); - const isNativePair = sourceId !== GEN1_WEB_APP_CLIENT && targetId.includes(GEN2_NATIVE_APP_CLIENT); - if (!isWebPair && !isNativePair) continue; + protected override match(sourceId: string, sourceResource: CFNResource, targetId: string, targetResource: CFNResource): boolean { + if (sourceResource.Type !== targetResource.Type) { + return false; + } + switch (sourceResource.Type) { + case USER_POOL_CLIENT_TYPE: { + switch (sourceId) { + case GEN1_WEB_CLIENT: + return targetId.includes(GEN2_WEB_CLIENT); + case GEN1_NATIVE_APP_CLIENT: + return targetId.includes(GEN2_NATIVE_APP_CLIENT); + default: + throw new AmplifyError('MigrationError', { + message: `Unexpected source logical id ${sourceId} for resource of type ${USER_POOL_CLIENT_TYPE}`, + }); } - - mappings.push({ sourceId, targetId, resource: sourceResource }); - usedTargetIds.add(targetId); - matched = true; - break; - } - if (!matched) { - throw new AmplifyError('InvalidStackError', { - message: `Source resource '${sourceId}' (type '${sourceResource.Type}') has no corresponding target resource`, - }); } + default: + return true; } - return mappings; } protected async fetchSourceStackId(): Promise { - const { mainAuthStackId } = await discoverGen1AuthStacks(this.gen1Env); - return mainAuthStackId; + return this.findNestedStack(this.gen1Env, `auth${this.resource.resourceName}`); } protected async fetchDestStackId(): Promise { + // in gen2 all auth resources are in a single auth nested stack return this.findNestedStack(this.gen2Branch, 'auth'); } } diff --git a/packages/amplify-cli/src/commands/gen2-migration/refactor/auth/auth-cognito-rollback.ts b/packages/amplify-cli/src/commands/gen2-migration/refactor/auth/auth-cognito-rollback.ts new file mode 100644 index 00000000000..ff11b0d8857 --- /dev/null +++ b/packages/amplify-cli/src/commands/gen2-migration/refactor/auth/auth-cognito-rollback.ts @@ -0,0 +1,56 @@ +import { AmplifyError } from '@aws-amplify/amplify-cli-core'; +import { CFNResource } from '../../cfn-template'; +import { RollbackCategoryRefactorer } from '../workflow/rollback-category-refactorer'; +import { + RESOURCE_TYPES, + GEN1_NATIVE_APP_CLIENT, + GEN1_WEB_CLIENT, + GEN2_NATIVE_APP_CLIENT, + GEN2_WEB_CLIENT, + USER_POOL_CLIENT_TYPE, +} from './auth-cognito-forward'; + +/** + * Rollback refactorer for the auth:Cognito resource. + * + * Moves main auth resources from Gen2 back to Gen1. + */ +export class AuthCognitoRollbackRefactorer extends RollbackCategoryRefactorer { + protected resourceTypes(): string[] { + return RESOURCE_TYPES; + } + + protected async fetchSourceStackId(): Promise { + return this.findNestedStack(this.gen2Branch, 'auth'); + } + + protected async fetchDestStackId(): Promise { + return this.findNestedStack(this.gen1Env, `auth${this.resource.resourceName}`); + } + + protected targetLogicalId(sourceId: string, sourceResource: CFNResource): string | undefined { + switch (sourceResource.Type) { + case USER_POOL_CLIENT_TYPE: { + if (sourceId.includes(GEN2_NATIVE_APP_CLIENT)) { + return GEN1_NATIVE_APP_CLIENT; + } + if (sourceId.includes(GEN2_WEB_CLIENT)) { + return GEN1_WEB_CLIENT; + } + throw new AmplifyError('MigrationError', { + message: `Unable to determine Gen1 logical ID for UserPoolClient '${sourceId}' — expected logical ID to contain '${GEN2_NATIVE_APP_CLIENT}' or '${GEN2_WEB_CLIENT}'`, + }); + } + case 'AWS::Cognito::UserPool': + return 'UserPool'; + case 'AWS::Cognito::IdentityPool': + return 'IdentityPool'; + case 'AWS::Cognito::IdentityPoolRoleAttachment': + return 'IdentityPoolRoleMap'; + case 'AWS::Cognito::UserPoolDomain': + return 'UserPoolDomain'; + default: + return undefined; + } + } +} diff --git a/packages/amplify-cli/src/commands/gen2-migration/refactor/auth/auth-rollback.ts b/packages/amplify-cli/src/commands/gen2-migration/refactor/auth/auth-rollback.ts deleted file mode 100644 index 0517090c5e2..00000000000 --- a/packages/amplify-cli/src/commands/gen2-migration/refactor/auth/auth-rollback.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { AmplifyError } from '@aws-amplify/amplify-cli-core'; -import { CFNResource } from '../../cfn-template'; -import { MoveMapping } from '../workflow/category-refactorer'; -import { RollbackCategoryRefactorer } from '../workflow/rollback-category-refactorer'; -import { GEN2_NATIVE_APP_CLIENT, discoverGen1AuthStacks } from './auth-utils'; -import { AUTH_RESOURCE_TYPES } from './auth-forward'; - -/** - * Known Gen1 logical resource IDs for main auth resource types. - */ -const GEN1_AUTH_LOGICAL_IDS = new Map([ - ['AWS::Cognito::UserPool', 'UserPool'], - ['AWS::Cognito::UserPoolClient', 'UserPoolClientWeb'], - ['AWS::Cognito::IdentityPool', 'IdentityPool'], - ['AWS::Cognito::IdentityPoolRoleAttachment', 'IdentityPoolRoleMap'], - ['AWS::Cognito::UserPoolDomain', 'UserPoolDomain'], -]); - -/** - * Rollback refactorer for the auth category. - * - * Moves main auth resources from Gen2 back to Gen1. - * UserPoolGroup support will be added back in a future change. - */ -export class AuthCognitoRollbackRefactorer extends RollbackCategoryRefactorer { - protected resourceTypes(): string[] { - return AUTH_RESOURCE_TYPES; - } - - protected async fetchSourceStackId(): Promise { - return this.findNestedStack(this.gen2Branch, 'auth'); - } - - protected async fetchDestStackId(): Promise { - const { mainAuthStackId } = await discoverGen1AuthStacks(this.gen1Env); - return mainAuthStackId; - } - - /** - * Auth rollback mapping: NativeAppClient → 'UserPoolClient', others → known Gen1 logical ID. - */ - protected buildResourceMappings(sourceResources: Map, _targetResources: Map): MoveMapping[] { - const mappings: MoveMapping[] = []; - for (const [sourceId, resource] of sourceResources) { - if (sourceId.includes(GEN2_NATIVE_APP_CLIENT)) { - mappings.push({ sourceId, targetId: 'UserPoolClient', resource }); - } else { - const gen1Id = GEN1_AUTH_LOGICAL_IDS.get(resource.Type); - if (!gen1Id) { - throw new AmplifyError('InvalidStackError', { - message: `No known Gen1 logical ID for auth resource type '${resource.Type}' (source: '${sourceId}')`, - }); - } - mappings.push({ sourceId, targetId: gen1Id, resource }); - } - } - return mappings; - } -} diff --git a/packages/amplify-cli/src/commands/gen2-migration/refactor/auth/auth-user-pool-groups-forward.ts b/packages/amplify-cli/src/commands/gen2-migration/refactor/auth/auth-user-pool-groups-forward.ts new file mode 100644 index 00000000000..f4203b97da1 --- /dev/null +++ b/packages/amplify-cli/src/commands/gen2-migration/refactor/auth/auth-user-pool-groups-forward.ts @@ -0,0 +1,41 @@ +import { CFNResource } from '../../cfn-template'; +import { ForwardCategoryRefactorer } from '../workflow/forward-category-refactorer'; + +export const USER_POOL_GROUP_TYPE = 'AWS::Cognito::UserPoolGroup'; + +export const RESOURCE_TYPES = [USER_POOL_GROUP_TYPE]; + +/** + * Forward refactorer for the auth:UserPoolGroups resource. + * + * Moves user pool groups auth resources from Gen1 to Gen2. + */ +export class AuthUserPoolGroupsForwardRefactorer extends ForwardCategoryRefactorer { + protected resourceTypes(): string[] { + return RESOURCE_TYPES; + } + + protected async fetchSourceStackId(): Promise { + return this.findNestedStack(this.gen1Env, `auth${this.resource.resourceName}`); + } + + protected async fetchDestStackId(): Promise { + // in gen2 all auth resources are in a single auth nested stack + return this.findNestedStack(this.gen2Branch, 'auth'); + } + + protected override match(_sourceId: string, sourceResource: CFNResource, _targetId: string, targetResource: CFNResource): boolean { + if (sourceResource.Type !== targetResource.Type) { + return false; + } + switch (sourceResource.Type) { + case USER_POOL_GROUP_TYPE: { + const sourceGroupName = sourceResource.Properties['GroupName']; + const targetGroupName = targetResource.Properties['GroupName']; + return sourceGroupName === targetGroupName; + } + default: + return false; + } + } +} diff --git a/packages/amplify-cli/src/commands/gen2-migration/refactor/auth/auth-user-pool-groups-rollback.ts b/packages/amplify-cli/src/commands/gen2-migration/refactor/auth/auth-user-pool-groups-rollback.ts new file mode 100644 index 00000000000..ad8a08bfe36 --- /dev/null +++ b/packages/amplify-cli/src/commands/gen2-migration/refactor/auth/auth-user-pool-groups-rollback.ts @@ -0,0 +1,31 @@ +import { CFNResource } from '../../cfn-template'; +import { RollbackCategoryRefactorer } from '../workflow/rollback-category-refactorer'; +import { RESOURCE_TYPES, USER_POOL_GROUP_TYPE } from './auth-user-pool-groups-forward'; + +/** + * Rollback refactorer for the auth:UserPoolGroups resource. + * + * Moves user pool groups auth resources from Gen2 back to Gen1. + */ +export class AuthUserPoolGroupsRollbackRefactorer extends RollbackCategoryRefactorer { + protected resourceTypes(): string[] { + return RESOURCE_TYPES; + } + + protected async fetchSourceStackId(): Promise { + return this.findNestedStack(this.gen2Branch, 'auth'); + } + + protected async fetchDestStackId(): Promise { + return this.findNestedStack(this.gen1Env, `auth${this.resource.resourceName}`); + } + + protected targetLogicalId(sourceId: string, sourceResource: CFNResource): string | undefined { + switch (sourceResource.Type) { + case USER_POOL_GROUP_TYPE: + return `${sourceResource.Properties['GroupName']}Group`; + default: + return undefined; + } + } +} diff --git a/packages/amplify-cli/src/commands/gen2-migration/refactor/auth/auth-utils.ts b/packages/amplify-cli/src/commands/gen2-migration/refactor/auth/auth-utils.ts deleted file mode 100644 index 05bf617559c..00000000000 --- a/packages/amplify-cli/src/commands/gen2-migration/refactor/auth/auth-utils.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { StackFacade } from '../stack-facade'; - -export const GEN2_NATIVE_APP_CLIENT = 'UserPoolNativeAppClient'; - -const GEN1_AUTH_STACK_TYPE_DESCRIPTION = 'auth-Cognito'; -const GEN1_USER_POOL_GROUPS_STACK_TYPE_DESCRIPTION = 'auth-Cognito-UserPool-Groups'; - -/** - * Discovers Gen1 auth stacks by parsing stack Description JSON. - * Gen1 may have a main auth stack and a separate UserPoolGroups stack. - */ -export async function discoverGen1AuthStacks(gen1Env: StackFacade): Promise<{ mainAuthStackId?: string; userPoolGroupStackId?: string }> { - const nestedStacks = await gen1Env.fetchNestedStacks(); - const authStacks = nestedStacks.filter((s) => s.LogicalResourceId?.startsWith('auth')); - - let mainAuthStackId: string | undefined; - let userPoolGroupStackId: string | undefined; - - for (const stack of authStacks) { - if (!stack.PhysicalResourceId) continue; - const authType = await classifyGen1AuthStack(gen1Env, stack.PhysicalResourceId); - if (authType === 'auth') { - mainAuthStackId = stack.PhysicalResourceId; - } else if (authType === 'auth-user-pool-group') { - userPoolGroupStackId = stack.PhysicalResourceId; - } - } - - return { mainAuthStackId, userPoolGroupStackId }; -} - -/** - * Classifies a Gen1 auth stack by parsing its Description JSON metadata. - */ -async function classifyGen1AuthStack(gen1Env: StackFacade, stackId: string): Promise<'auth' | 'auth-user-pool-group' | null> { - const description = await gen1Env.fetchStackDescription(stackId); - const stackDescription = description.Description; - if (!stackDescription) return null; - - try { - const parsed = JSON.parse(stackDescription); - if (typeof parsed === 'object' && 'stackType' in parsed) { - if (parsed.stackType === GEN1_AUTH_STACK_TYPE_DESCRIPTION) return 'auth'; - if (parsed.stackType === GEN1_USER_POOL_GROUPS_STACK_TYPE_DESCRIPTION) return 'auth-user-pool-group'; - } - } catch { - // Description might not be valid JSON - } - return null; -} diff --git a/packages/amplify-cli/src/commands/gen2-migration/refactor/cfn-stack-refactor-updater.ts b/packages/amplify-cli/src/commands/gen2-migration/refactor/cfn-stack-refactor-updater.ts deleted file mode 100644 index 21a6f371969..00000000000 --- a/packages/amplify-cli/src/commands/gen2-migration/refactor/cfn-stack-refactor-updater.ts +++ /dev/null @@ -1,148 +0,0 @@ -import { - CloudFormationClient, - CreateStackRefactorCommand, - CreateStackRefactorCommandInput, - DescribeStackRefactorCommand, - DescribeStackRefactorCommandOutput, - ExecuteStackRefactorCommand, - StackRefactorExecutionStatus, - StackRefactorStatus, -} from '@aws-sdk/client-cloudformation'; -import { AmplifyError } from '@aws-amplify/amplify-cli-core'; -import { CFNStackStatus } from '../cfn-template'; -import { pollStackForCompletionState } from './cfn-stack-updater'; -import { extractStackNameFromId } from './utils'; -import * as snap from './snap'; - -const POLL_ATTEMPTS = 300; -const POLL_INTERVAL_MS = 12000; -const COMPLETION_STATE = '_COMPLETE'; -const FAILED_STATE = '_FAILED'; - -export type RefactorResult = { readonly success: true } | RefactorFailure; - -export type RefactorFailure = { - readonly success: false; - readonly reason: string | undefined; - readonly stackRefactorId: string; - readonly status: StackRefactorStatus | StackRefactorExecutionStatus | undefined; -}; - -/** - * Creates and executes a CloudFormation stack refactor operation. - * Polls for completion at each stage (create, execute, stack updates). - */ -export async function tryRefactorStack( - cfnClient: CloudFormationClient, - input: CreateStackRefactorCommandInput, - attempts = POLL_ATTEMPTS, -): Promise { - input.Description = buildRefactorDescription(input); - - snap.preRefactorStack(input); - const { StackRefactorId } = await cfnClient.send(new CreateStackRefactorCommand(input)); - if (!StackRefactorId) { - throw new AmplifyError('StackStateError', { - message: 'CreateStackRefactor returned no StackRefactorId', - }); - } - - // Poll for create completion - let response = await pollStackRefactorForCompletionState( - cfnClient, - StackRefactorId, - (r) => { - if (!r.Status) { - throw new AmplifyError('StackStateError', { - message: `Stack refactor '${StackRefactorId}' has no status`, - }); - } - return r.Status.endsWith(COMPLETION_STATE) || r.Status.endsWith(FAILED_STATE); - }, - attempts, - ); - - if (response.Status !== StackRefactorStatus.CREATE_COMPLETE) { - return { success: false, status: response.Status, reason: response.StatusReason, stackRefactorId: StackRefactorId }; - } - - // Execute the refactor - await cfnClient.send(new ExecuteStackRefactorCommand({ StackRefactorId })); - - response = await pollStackRefactorForCompletionState( - cfnClient, - StackRefactorId, - (r) => { - if (!r.ExecutionStatus) { - throw new AmplifyError('StackStateError', { - message: `Stack refactor '${StackRefactorId}' has no execution status`, - }); - } - return r.ExecutionStatus.endsWith(COMPLETION_STATE) || r.ExecutionStatus.endsWith(FAILED_STATE); - }, - attempts, - ); - - if (response.ExecutionStatus !== StackRefactorExecutionStatus.EXECUTE_COMPLETE) { - return { success: false, status: response.ExecutionStatus, reason: response.ExecutionStatusReason, stackRefactorId: StackRefactorId }; - } - - // Verify both stacks reached completion - const sourceStackName = input.StackDefinitions?.[0]?.StackName; - const destStackName = input.StackDefinitions?.[1]?.StackName; - if (!sourceStackName || !destStackName) { - throw new AmplifyError('InvalidStackError', { - message: 'Stack refactor input is missing source or destination stack name', - }); - } - - const sourceStatus = await pollStackForCompletionState(cfnClient, sourceStackName); - if (sourceStatus !== CFNStackStatus.UPDATE_COMPLETE) { - throw new AmplifyError('StackStateError', { - message: `Source stack '${sourceStackName}' ended with status '${sourceStatus}' instead of UPDATE_COMPLETE`, - }); - } - - const destStatus = await pollStackForCompletionState(cfnClient, destStackName); - if (destStatus !== CFNStackStatus.UPDATE_COMPLETE && destStatus !== CFNStackStatus.CREATE_COMPLETE) { - throw new AmplifyError('StackStateError', { - message: `Destination stack '${destStackName}' ended with status '${destStatus}' instead of UPDATE_COMPLETE or CREATE_COMPLETE`, - }); - } - - return { success: true }; -} - -function buildRefactorDescription(input: CreateStackRefactorCommandInput): string { - const logicalIds = input.ResourceMappings?.map((m) => m.Source?.LogicalResourceId).join(', '); - const source = resolveStackName(input.StackDefinitions?.[0]?.StackName); - const dest = resolveStackName(input.StackDefinitions?.[1]?.StackName); - return `Move [${logicalIds}] from ${source} to ${dest}`; -} - -function resolveStackName(stackNameOrArn: string | undefined): string { - if (!stackNameOrArn) return 'unknown'; - return stackNameOrArn.startsWith('arn:') ? extractStackNameFromId(stackNameOrArn) : stackNameOrArn; -} - -/** - * Polls a stack refactor operation until the exit condition is met. - */ -async function pollStackRefactorForCompletionState( - cfnClient: CloudFormationClient, - stackRefactorId: string, - exitCondition: (response: DescribeStackRefactorCommandOutput) => boolean, - attempts: number, -): Promise { - do { - const response = await cfnClient.send(new DescribeStackRefactorCommand({ StackRefactorId: stackRefactorId })); - if (exitCondition(response)) { - return response; - } - await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL_MS)); - attempts--; - } while (attempts > 0); - throw new AmplifyError('StackStateError', { - message: `Stack refactor '${stackRefactorId}' did not reach a completion state within the polling period`, - }); -} diff --git a/packages/amplify-cli/src/commands/gen2-migration/refactor/cfn-stack-updater.ts b/packages/amplify-cli/src/commands/gen2-migration/refactor/cfn-stack-updater.ts deleted file mode 100644 index f81c0604e2c..00000000000 --- a/packages/amplify-cli/src/commands/gen2-migration/refactor/cfn-stack-updater.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { - CloudFormationClient, - DescribeStacksCommand, - Parameter, - UpdateStackCommand, - UpdateStackCommandInput, -} from '@aws-sdk/client-cloudformation'; -import { AmplifyError } from '@aws-amplify/amplify-cli-core'; -import { CFNStackStatus, CFNTemplate } from '../cfn-template'; -import * as snap from './snap'; - -const POLL_ATTEMPTS = 120; -const POLL_INTERVAL_MS = 5 * 1000; -const NO_UPDATES_MESSAGE = 'No updates are to be performed'; -const CFN_IAM_CAPABILITY = 'CAPABILITY_NAMED_IAM'; -const COMPLETION_STATE = '_COMPLETE'; - -/** - * Updates a stack with the given template. No-ops if no updates are needed. - */ -export async function tryUpdateStack(params: { - readonly cfnClient: CloudFormationClient; - readonly stackName: string; - readonly parameters: Parameter[]; - readonly templateBody: CFNTemplate; - readonly attempts?: number; -}): Promise { - const { cfnClient, stackName, parameters, templateBody, attempts = POLL_ATTEMPTS } = params; - try { - const input: UpdateStackCommandInput = { - TemplateBody: JSON.stringify(templateBody), - Parameters: parameters, - StackName: stackName, - Capabilities: [CFN_IAM_CAPABILITY], - Tags: [], - }; - snap.preUpdateStack(input); - await cfnClient.send(new UpdateStackCommand(input)); - return pollStackForCompletionState(cfnClient, stackName, attempts); - } catch (e) { - if (e && typeof e === 'object' && 'message' in e && typeof e.message === 'string' && e.message.includes(NO_UPDATES_MESSAGE)) { - return CFNStackStatus.UPDATE_COMPLETE; - } - throw e; - } -} - -/** - * Polls a stack until it reaches a completion state. - */ -export async function pollStackForCompletionState( - cfnClient: CloudFormationClient, - stackName: string, - attempts: number = POLL_ATTEMPTS, -): Promise { - do { - const { Stacks } = await cfnClient.send(new DescribeStacksCommand({ StackName: stackName })); - const stack = Stacks?.[0]; - if (!stack) { - throw new AmplifyError('StackNotFoundError', { - message: `Stack '${stackName}' not found while polling for completion`, - }); - } - const stackStatus = stack.StackStatus; - if (!stackStatus) { - throw new AmplifyError('StackStateError', { - message: `Stack '${stackName}' has no status`, - }); - } - if (stackStatus.endsWith(COMPLETION_STATE)) { - return stackStatus; - } - await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL_MS)); - attempts--; - } while (attempts > 0); - throw new AmplifyError('StackStateError', { - message: `Stack '${stackName}' did not reach a completion state within the polling period`, - }); -} diff --git a/packages/amplify-cli/src/commands/gen2-migration/refactor/cfn.ts b/packages/amplify-cli/src/commands/gen2-migration/refactor/cfn.ts new file mode 100644 index 00000000000..f4046480cff --- /dev/null +++ b/packages/amplify-cli/src/commands/gen2-migration/refactor/cfn.ts @@ -0,0 +1,363 @@ +import { + CloudFormationClient, + CloudFormationServiceException, + CreateChangeSetCommand, + CreateStackRefactorCommand, + CreateStackRefactorCommandInput, + DeleteChangeSetCommand, + DeleteStackCommand, + DescribeChangeSetCommand, + DescribeChangeSetOutput, + DescribeStacksCommand, + ExecuteStackRefactorCommand, + GetTemplateCommand, + Parameter, + ResourceMapping, + Stack, + UpdateStackCommand, + UpdateStackCommandInput, + waitUntilChangeSetCreateComplete, + waitUntilStackCreateComplete, + waitUntilStackDeleteComplete, + waitUntilStackRefactorCreateComplete, + waitUntilStackRefactorExecuteComplete, + waitUntilStackUpdateComplete, +} from '@aws-sdk/client-cloudformation'; +import { AmplifyError } from '@aws-amplify/amplify-cli-core'; +import { CFNTemplate } from '../cfn-template'; +import { extractStackNameFromId } from './utils'; +import { SpinningLogger } from '../_spinning-logger'; +import chalk from 'chalk'; +import * as fs from 'fs'; +import * as path from 'path'; +import { DiscoveredResource } from '../generate/_infra/gen1-app'; + +const MAX_WAIT_TIME_SECONDS = 900; +const NO_UPDATES_MESSAGE = 'No updates are to be performed'; +const CFN_IAM_CAPABILITY = 'CAPABILITY_NAMED_IAM'; +export const OUTPUT_DIRECTORY = '.amplify/refactor.operations'; + +const EMPTY_HOLDING_TEMPLATE: CFNTemplate = { + AWSTemplateFormatVersion: '2010-09-09', + Description: 'Temporary holding stack for Gen2 migration', + Resources: {}, + Outputs: {}, +}; + +/** + * Centralized CloudFormation operations for the refactor workflow. + * Wraps update, refactor, and change set APIs behind a single client instance. + */ +export class Cfn { + /** + * Stack IDs claimed for update at plan time. Prevents duplicate update operations + * when multiple refactorers share a stack. + */ + private readonly updateStackClaims = new Set(); + + constructor(private readonly client: CloudFormationClient, private readonly logger: SpinningLogger) { + if (!fs.existsSync(OUTPUT_DIRECTORY)) { + fs.mkdirSync(OUTPUT_DIRECTORY, { recursive: true }); + } + } + + /** + * Returns true if the stack has been claimed for update by a refactorer. + */ + public isUpdateClaimed(stackName: string): boolean { + return this.updateStackClaims.has(stackName); + } + + /** + * Marks a stack as claimed for update. Call at plan time to prevent + * duplicate update operations across refactorers sharing a stack. + */ + public claimUpdate(stackName: string): void { + this.updateStackClaims.add(stackName); + } + + /** + * Updates a stack with the given template. + * No-ops if no updates are needed. Throws on failure. + */ + public async update(params: { + readonly stackName: string; + readonly parameters: Parameter[]; + readonly templateBody: CFNTemplate; + readonly resource?: DiscoveredResource; + }): Promise { + const { stackName, parameters, templateBody, resource } = params; + try { + const input: UpdateStackCommandInput = { + TemplateBody: JSON.stringify(templateBody), + Parameters: parameters, + StackName: stackName, + Capabilities: [CFN_IAM_CAPABILITY], + Tags: [], + }; + writeUpdateSnapshot(input); + this.info(`Updating stack: ${extractStackNameFromId(stackName)}`, resource); + await this.client.send(new UpdateStackCommand(input)); + } catch (e) { + if (e && typeof e === 'object' && 'message' in e && typeof e.message === 'string' && e.message.includes(NO_UPDATES_MESSAGE)) { + return; + } + throw e; + } + this.info(`Waiting for stack update to complete: ${extractStackNameFromId(stackName)}`, resource); + await waitUntilStackUpdateComplete({ client: this.client, maxWaitTime: MAX_WAIT_TIME_SECONDS }, { StackName: stackName }); + } + + /** + * Creates and executes a CloudFormation stack refactor. + * Throws on failure. + */ + public async refactor(resourceMappings: ResourceMapping[], resource?: DiscoveredResource): Promise { + const sourceStackId = resourceMappings[0].Source.StackName; + const targetStackId = resourceMappings[0].Destination.StackName; + + this.info(`Creating stack refactor: ${extractStackNameFromId(sourceStackId)} → ${extractStackNameFromId(targetStackId)}`, resource); + + const targetStack = await this.findStack(targetStackId); + + if (!targetStack && !targetStackId.endsWith('-holding')) { + // only holding stacks may be absent because they are + // created by the refactor operation. + throw new AmplifyError('MigrationError', { message: `Stack with id ${targetStackId} not found` }); + } + + const sourceTemplate = await this.fetchTemplate(sourceStackId); + const targetTemplate = targetStack ? await this.fetchTemplate(targetStackId) : JSON.parse(JSON.stringify(EMPTY_HOLDING_TEMPLATE)); + + for (const mapping of resourceMappings) { + targetTemplate.Resources[mapping.Destination.LogicalResourceId] = sourceTemplate.Resources[mapping.Source.LogicalResourceId]; + delete sourceTemplate.Resources[mapping.Source.LogicalResourceId]; + } + + const input: CreateStackRefactorCommandInput = { + StackDefinitions: [ + { TemplateBody: JSON.stringify(sourceTemplate), StackName: sourceStackId }, + { TemplateBody: JSON.stringify(targetTemplate), StackName: targetStackId }, + ], + ResourceMappings: resourceMappings, + EnableStackCreation: true, + }; + + input.Description = buildRefactorDescription(input); + + writeRefactorSnapshot(input); + + const { StackRefactorId } = await this.client.send(new CreateStackRefactorCommand(input)); + if (!StackRefactorId) { + throw new AmplifyError('StackStateError', { + message: 'CreateStackRefactor returned no StackRefactorId', + }); + } + + this.info(`Waiting for stack refactor creation to complete: ${StackRefactorId}`, resource); + await waitUntilStackRefactorCreateComplete({ client: this.client, maxWaitTime: MAX_WAIT_TIME_SECONDS }, { StackRefactorId }); + + await this.client.send(new ExecuteStackRefactorCommand({ StackRefactorId })); + + this.info(`Waiting for stack refactor execution to complete: ${StackRefactorId}`, resource); + await waitUntilStackRefactorExecuteComplete({ client: this.client, maxWaitTime: MAX_WAIT_TIME_SECONDS }, { StackRefactorId }); + + this.info(`Waiting for source stack update: ${extractStackNameFromId(sourceStackId)}`, resource); + await waitUntilStackUpdateComplete({ client: this.client, maxWaitTime: MAX_WAIT_TIME_SECONDS }, { StackName: sourceStackId }); + + // Destination may be newly created (EnableStackCreation) or updated + this.info(`Waiting for destination stack: ${extractStackNameFromId(targetStackId)}`, resource); + if (targetStack) { + await waitUntilStackUpdateComplete({ client: this.client, maxWaitTime: MAX_WAIT_TIME_SECONDS }, { StackName: targetStackId }); + } else { + await waitUntilStackCreateComplete({ client: this.client, maxWaitTime: MAX_WAIT_TIME_SECONDS }, { StackName: targetStackId }); + } + } + + /** + * Creates a change set, waits for it, describes it, then deletes it. + * Returns the described change set, or undefined if no changes were detected. + */ + public async createChangeSet(params: { + readonly stackName: string; + readonly parameters: Parameter[]; + readonly templateBody: CFNTemplate; + }): Promise { + const { stackName, parameters, templateBody } = params; + const changeSetName = `migration-preview-${Date.now()}`; + + await this.client.send( + new CreateChangeSetCommand({ + StackName: stackName, + ChangeSetName: changeSetName, + TemplateBody: JSON.stringify(templateBody), + Parameters: parameters, + Capabilities: [CFN_IAM_CAPABILITY], + }), + ); + + try { + try { + await waitUntilChangeSetCreateComplete( + { client: this.client, maxWaitTime: 120 }, + { StackName: stackName, ChangeSetName: changeSetName }, + ); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + } catch (e: any) { + if (e.message?.includes(`The submitted information didn't contain changes`)) { + return undefined; + } + throw e; + } + + return await this.client.send( + new DescribeChangeSetCommand({ StackName: stackName, ChangeSetName: changeSetName, IncludePropertyValues: true }), + ); + } finally { + await this.client.send(new DeleteChangeSetCommand({ StackName: stackName, ChangeSetName: changeSetName })); + } + } + + /** + * Finds a stack by name. Returns the stack if it exists, null if it doesn't + * or has been deleted. + */ + public async findStack(stackName: string): Promise { + try { + const response = await this.client.send(new DescribeStacksCommand({ StackName: stackName })); + const stack = response.Stacks?.[0]; + if (stack && stack.StackStatus !== 'DELETE_COMPLETE') { + return stack; + } + return null; + } catch (error: unknown) { + if ( + error instanceof CloudFormationServiceException && + error.name === 'ValidationError' && + error.message?.includes('does not exist') + ) { + return null; + } + throw error; + } + } + + /** + * Fetches and parses the original template for a stack. + * Throws if the stack returns an empty template. + */ + public async fetchTemplate(stackName: string): Promise { + const response = await this.client.send(new GetTemplateCommand({ StackName: stackName, TemplateStage: 'Original' })); + if (!response.TemplateBody) { + throw new AmplifyError('InvalidStackError', { + message: `Stack '${extractStackNameFromId(stackName)}' returned an empty template`, + }); + } + return JSON.parse(response.TemplateBody) as CFNTemplate; + } + + /** + * Deletes a stack and waits for deletion to complete. + * No-ops if the stack does not exist. + */ + public async deleteStack(stackName: string, resource?: DiscoveredResource): Promise { + try { + this.info(`Deleting stack: ${extractStackNameFromId(stackName)}`, resource); + await this.client.send(new DeleteStackCommand({ StackName: stackName })); + this.info(`Waiting for stack deletion: ${extractStackNameFromId(stackName)}`, resource); + await waitUntilStackDeleteComplete({ client: this.client, maxWaitTime: 300 }, { StackName: stackName }); + } catch (error: unknown) { + if ( + error instanceof CloudFormationServiceException && + error.name === 'ValidationError' && + error.message?.includes('does not exist') + ) { + return; + } + throw error; + } + } + + /** + * Renders a human-readable report of property changes from a described change set. + */ + public renderChangeSet(changeSet: DescribeChangeSetOutput): string | undefined { + const changes = changeSet.Changes ?? []; + if (changes.length === 0) return undefined; + + const lines: string[] = []; + + for (const change of changes) { + const rc = change.ResourceChange; + if (!rc) continue; + + const action = rc.Action ?? 'Unknown'; + const logicalId = rc.LogicalResourceId ?? 'Unknown'; + const resourceType = rc.ResourceType ?? 'Unknown'; + + lines.push(''); + lines.push(`${chalk.bold(logicalId)} (${resourceType}) — ${chalk.yellow(action)}`); + + const details = rc.Details ?? []; + const propDetails = details.filter((d) => d.Target?.Attribute === 'Properties' && d.Target?.Name); + + for (const detail of propDetails) { + const target = detail.Target; + const propertyPath = target.Path; + const before = target.BeforeValue; + const after = target.AfterValue; + + lines.push(''); + if (before && after) { + lines.push(` ${propertyPath}:`); + lines.push(` ${chalk.red(`- ${before}`)}`); + lines.push(` ${chalk.green(`+ ${after}`)}`); + } else if (after) { + lines.push(` ${propertyPath}:`); + lines.push(` ${chalk.green(`+ ${after}`)}`); + } else if (before) { + lines.push(` ${propertyPath}:`); + lines.push(` ${chalk.red(`- ${before}`)}`); + } else { + lines.push(` ${propertyPath}: (changed)`); + } + } + } + + return lines.join('\n'); + } + + private info(message: string, resource?: DiscoveredResource) { + const prefix = resource ? `[${resource.category}/${resource.resourceName}] ` : ''; + this.logger.info(`${prefix}${message}`); + } +} + +function buildRefactorDescription(input: CreateStackRefactorCommandInput): string { + const logicalIds = input.ResourceMappings.map((m) => m.Source?.LogicalResourceId).join(', '); + const source = extractStackNameFromId(input.StackDefinitions[0].StackName); + const dest = extractStackNameFromId(input.StackDefinitions[1].StackName); + return `Move [${logicalIds}] from ${source} to ${dest}`; +} + +function formatTemplateBody(templateBody: string): string { + return JSON.stringify(JSON.parse(templateBody), null, 2); +} + +function writeUpdateSnapshot(input: UpdateStackCommandInput): void { + const stackName = extractStackNameFromId(input.StackName); + fs.writeFileSync(path.join(OUTPUT_DIRECTORY, `update.${stackName}.template.json`), formatTemplateBody(input.TemplateBody)); + fs.writeFileSync(path.join(OUTPUT_DIRECTORY, `update.${stackName}.parameters.json`), JSON.stringify(input.Parameters ?? [], null, 2)); +} + +function writeRefactorSnapshot(input: CreateStackRefactorCommandInput): void { + const source = input.StackDefinitions[0]; + const target = input.StackDefinitions[1]; + const sourceStackName = extractStackNameFromId(source.StackName); + const targetStackName = extractStackNameFromId(target.StackName); + const description = `refactor.__from__.${sourceStackName}.__to__.${targetStackName}`; + const basePath = path.join(OUTPUT_DIRECTORY, description); + fs.writeFileSync(`${basePath}.source.template.json`, formatTemplateBody(source.TemplateBody)); + fs.writeFileSync(`${basePath}.target.template.json`, formatTemplateBody(target.TemplateBody)); + fs.writeFileSync(path.join(OUTPUT_DIRECTORY, `${description}.mappings.json`), JSON.stringify(input.ResourceMappings ?? [], null, 2)); +} diff --git a/packages/amplify-cli/src/commands/gen2-migration/refactor/holding-stack.ts b/packages/amplify-cli/src/commands/gen2-migration/refactor/holding-stack.ts deleted file mode 100644 index 717e472bfab..00000000000 --- a/packages/amplify-cli/src/commands/gen2-migration/refactor/holding-stack.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { - CloudFormationClient, - CloudFormationServiceException, - DeleteStackCommand, - DescribeStacksCommand, - Stack, -} from '@aws-sdk/client-cloudformation'; -import { pollStackForCompletionState } from './cfn-stack-updater'; - -export const HOLDING_STACK_SUFFIX = '-holding'; -const MAX_STACK_NAME_LENGTH = 128; - -/** - * Derives the holding stack name from a Gen2 category stack ID. - * Preserves the CloudFormation hash suffix (part after the last dash) for uniqueness. - * If the resulting name would exceed 128 characters, the prefix is truncated. - */ -export function getHoldingStackName(gen2CategoryStackId: string): string { - const lastDashIndex = gen2CategoryStackId.lastIndexOf('-'); - const prefix = gen2CategoryStackId.substring(0, lastDashIndex); - const hashSuffix = gen2CategoryStackId.substring(lastDashIndex); - const tail = `${hashSuffix}${HOLDING_STACK_SUFFIX}`; - const maxPrefixLength = MAX_STACK_NAME_LENGTH - tail.length; - return `${prefix.substring(0, maxPrefixLength)}${tail}`; -} - -/** - * Finds a holding stack by name. Returns the stack if it exists, null otherwise. - */ -export async function findHoldingStack(cfnClient: CloudFormationClient, stackName: string): Promise { - try { - const response = await cfnClient.send(new DescribeStacksCommand({ StackName: stackName })); - const stack = response.Stacks?.[0]; - if (stack && stack.StackStatus !== 'DELETE_COMPLETE') { - return stack; - } - return null; - } catch (error: unknown) { - if (error instanceof CloudFormationServiceException && error.name === 'ValidationError' && error.message?.includes('does not exist')) { - return null; - } - throw error; - } -} - -/** - * Deletes a holding stack and waits for deletion to complete. - */ -export async function deleteHoldingStack(cfnClient: CloudFormationClient, stackName: string): Promise { - try { - await cfnClient.send(new DeleteStackCommand({ StackName: stackName })); - await pollStackForCompletionState(cfnClient, stackName, 60); - } catch (error: unknown) { - if (error instanceof CloudFormationServiceException && error.name === 'ValidationError' && error.message?.includes('does not exist')) { - return; - } - throw error; - } -} diff --git a/packages/amplify-cli/src/commands/gen2-migration/refactor/legacy-custom-resource.ts b/packages/amplify-cli/src/commands/gen2-migration/refactor/legacy-custom-resource.ts deleted file mode 100644 index f40f58d6430..00000000000 --- a/packages/amplify-cli/src/commands/gen2-migration/refactor/legacy-custom-resource.ts +++ /dev/null @@ -1,161 +0,0 @@ -/* eslint-disable spellcheck/spell-checker */ -/** - * Legacy code path for custom resource mappings (--resourceMappings flag). - * Isolated here to keep the main refactor.ts free of `any` types and eslint-disable directives. - * Will be removed when a custom resource refactorer is implemented. - */ -import { AmplifyMigrationOperation } from '../_operation'; -import { AmplifyError } from '@aws-amplify/amplify-cli-core'; -import fs from 'fs-extra'; -import { GetCallerIdentityCommand, STSClient } from '@aws-sdk/client-sts'; -import { ResourceMapping } from './workflow/category-refactorer'; - -const FILE_PROTOCOL_PREFIX = 'file://'; - -/** - * Parses and validates a resource mappings file from the --resourceMappings flag. - */ -export async function parseResourceMappings(resourceMappings: string): Promise { - if (!resourceMappings.startsWith(FILE_PROTOCOL_PREFIX)) { - throw new AmplifyError('InputValidationError', { - message: `Resource mappings path must start with ${FILE_PROTOCOL_PREFIX}`, - resolution: `Use the format: ${FILE_PROTOCOL_PREFIX}/path/to/mappings.json`, - }); - } - - const resourceMapPath = resourceMappings.split(FILE_PROTOCOL_PREFIX)[1]; - if (!resourceMapPath) { - throw new AmplifyError('InputValidationError', { - message: 'Invalid resource mappings path', - resolution: `Use the format: ${FILE_PROTOCOL_PREFIX}/path/to/file.json`, - }); - } - - if (!(await fs.pathExists(resourceMapPath))) { - throw new AmplifyError('ResourceDoesNotExistError', { - message: `Resource mappings file not found: ${resourceMapPath}`, - resolution: 'Ensure the file exists and the path is correct.', - }); - } - - const fileContent = await fs.readFile(resourceMapPath, 'utf-8'); - - let parsed: unknown; - try { - parsed = JSON.parse(fileContent); - } catch (parseError) { - throw new AmplifyError('InputValidationError', { - message: `Failed to parse JSON from resource mappings file: ${ - parseError instanceof Error ? parseError.message : 'Invalid JSON format' - }`, - resolution: 'Ensure the file contains valid JSON.', - }); - } - - if (!Array.isArray(parsed) || !parsed.every(isResourceMappingValid)) { - throw new AmplifyError('InputValidationError', { - message: 'Invalid resource mappings structure', - resolution: 'Each mapping must have Source and Destination objects with StackName and LogicalResourceId properties.', - }); - } - - return parsed; -} - -/** - * Executes the legacy custom resource refactor using the old TemplateGenerator. - */ -export async function executeLegacyRefactor(params: { - readonly rootStackName: string; - readonly toStack: string; - readonly appId: string; - readonly currentEnvName: string; - readonly region: string; - readonly logger: { info: (msg: string) => void }; - readonly parsedMappings: ResourceMapping[]; -}): Promise { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - let TemplateGenerator: any; - try { - // @ts-expect-error generators/ was removed in Phase 7; the catch block handles this gracefully. - ({ TemplateGenerator } = await import('./generators/template-generator')); - } catch { - throw new AmplifyError('NotImplementedError', { - message: '--resourceMappings requires the legacy refactor code which has been removed', - resolution: 'A custom resource refactorer has not been implemented yet. Please remove the --resourceMappings flag.', - }); - } - - return [ - { - validate: () => undefined, - describe: async () => ['Move stateful resources from your Gen1 app to be managed by your Gen2 app'], - execute: async () => { - const templateGenerator = await initializeLegacyTemplateGenerator(TemplateGenerator, params); - await templateGenerator.initializeForAssessment(); - const categories = [...templateGenerator.categoryStackMap.keys()]; - const success = await templateGenerator.generateSelectedCategories(categories, params.parsedMappings); - if (!success) { - throw new AmplifyError('DeploymentError', { message: 'Failed to execute CloudFormation stack refactor' }); - } - }, - }, - ]; -} - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -async function initializeLegacyTemplateGenerator( - TemplateGenerator: any, - params: { - readonly rootStackName: string; - readonly toStack: string; - readonly appId: string; - readonly currentEnvName: string; - readonly region: string; - readonly logger: { info: (msg: string) => void }; - }, -) { - const stsClient = new STSClient({}); - const { Account: accountId } = await stsClient.send(new GetCallerIdentityCommand({})); - if (!accountId) { - throw new AmplifyError('ConfigurationError', { message: 'Unable to determine AWS account ID' }); - } - - const { CloudFormationClient } = await import('@aws-sdk/client-cloudformation'); - const { SSMClient } = await import('@aws-sdk/client-ssm'); - const { CognitoIdentityProviderClient } = await import('@aws-sdk/client-cognito-identity-provider'); - - return new TemplateGenerator( - params.rootStackName, - params.toStack, - accountId, - new CloudFormationClient({}), - new SSMClient({}), - new CognitoIdentityProviderClient({}), - params.appId, - params.currentEnvName, - params.logger, - params.region, - ); -} - -function isResourceMappingValid(resourceMapping: unknown): resourceMapping is ResourceMapping { - return ( - typeof resourceMapping === 'object' && - resourceMapping !== null && - 'Destination' in resourceMapping && - typeof resourceMapping.Destination === 'object' && - resourceMapping.Destination !== null && - 'StackName' in resourceMapping.Destination && - typeof resourceMapping.Destination.StackName === 'string' && - 'LogicalResourceId' in resourceMapping.Destination && - typeof resourceMapping.Destination.LogicalResourceId === 'string' && - 'Source' in resourceMapping && - typeof resourceMapping.Source === 'object' && - resourceMapping.Source !== null && - 'StackName' in resourceMapping.Source && - typeof resourceMapping.Source.StackName === 'string' && - 'LogicalResourceId' in resourceMapping.Source && - typeof resourceMapping.Source.LogicalResourceId === 'string' - ); -} diff --git a/packages/amplify-cli/src/commands/gen2-migration/refactor/refactor.ts b/packages/amplify-cli/src/commands/gen2-migration/refactor/refactor.ts index 7531d43dd62..66d63a291b8 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/refactor/refactor.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/refactor/refactor.ts @@ -7,17 +7,20 @@ import { GetCallerIdentityCommand, STSClient } from '@aws-sdk/client-sts'; import { AmplifyGen2MigrationValidations } from '../_validations'; import { AwsClients } from '../aws-clients'; import { StackFacade } from './stack-facade'; -import { Refactorer } from './refactorer'; -import { AuthCognitoForwardRefactorer } from './auth/auth-forward'; -import { AuthCognitoRollbackRefactorer } from './auth/auth-rollback'; +import { Planner } from '../planner'; +import { AuthCognitoForwardRefactorer } from './auth/auth-cognito-forward'; +import { AuthCognitoRollbackRefactorer } from './auth/auth-cognito-rollback'; import { StorageS3ForwardRefactorer } from './storage/storage-forward'; import { StorageS3RollbackRefactorer } from './storage/storage-rollback'; import { StorageDynamoForwardRefactorer } from './storage/storage-dynamo-forward'; import { StorageDynamoRollbackRefactorer } from './storage/storage-dynamo-rollback'; import { AnalyticsKinesisForwardRefactorer } from './analytics/analytics-forward'; import { AnalyticsKinesisRollbackRefactorer } from './analytics/analytics-rollback'; -import { Gen1App, DiscoveredResource } from '../generate/_infra/gen1-app'; +import { Gen1App } from '../generate/_infra/gen1-app'; import { Assessment } from '../_assessment'; +import { AuthUserPoolGroupsForwardRefactorer } from './auth/auth-user-pool-groups-forward'; +import { AuthUserPoolGroupsRollbackRefactorer } from './auth/auth-user-pool-groups-rollback'; +import { Cfn } from './cfn'; export class AmplifyMigrationRefactorStep extends AmplifyMigrationStep { /** @@ -31,6 +34,7 @@ export class AmplifyMigrationRefactorStep extends AmplifyMigrationStep { for (const resource of discovered) { switch (resource.key) { case 'auth:Cognito': + case 'auth:Cognito-UserPool-Groups': case 'storage:S3': case 'storage:DynamoDB': case 'analytics:Kinesis': @@ -38,9 +42,13 @@ export class AmplifyMigrationRefactorStep extends AmplifyMigrationStep { case 'function:Lambda': case 'api:AppSync': case 'api:API Gateway': + case 'geo:Map': + case 'geo:PlaceIndex': assessment.record('refactor', resource, { supported: true }); break; - case 'auth:Cognito-UserPool-Groups': + case 'geo:GeofenceCollection': + assessment.record('refactor', resource, { supported: false }); + break; case 'unsupported': assessment.record('refactor', resource, { supported: false }); break; @@ -50,14 +58,12 @@ export class AmplifyMigrationRefactorStep extends AmplifyMigrationStep { public async forward(): Promise { const toStack = this.extractParameters(); - const { clients, accountId, gen1Env, gen2Branch } = await this.createInfrastructure(toStack); + const { clients, accountId, gen1Env, gen2Branch, cfn } = await this.createInfrastructure(toStack); const gen1App = await Gen1App.create({ appId: this.appId, region: this.region, envName: this.currentEnvName, clients }); const discovered = gen1App.discover(); - const refactorers: Refactorer[] = []; - - validateSingleResourcePerStack(discovered); + const refactorers: Planner[] = []; for (const resource of discovered) { switch (resource.key) { @@ -72,29 +78,43 @@ export class AmplifyMigrationRefactorStep extends AmplifyMigrationStep { this.logger, this.appId, this.currentEnvName, + resource, + cfn, ), ); break; + case 'auth:Cognito-UserPool-Groups': + refactorers.push( + new AuthUserPoolGroupsForwardRefactorer(gen1Env, gen2Branch, clients, this.region, accountId, this.logger, resource, cfn), + ); + break; case 'storage:S3': refactorers.push( - new StorageS3ForwardRefactorer(gen1Env, gen2Branch, clients, this.region, accountId, this.logger, resource.resourceName), + new StorageS3ForwardRefactorer(gen1Env, gen2Branch, clients, this.region, accountId, this.logger, resource, cfn), ); break; case 'storage:DynamoDB': refactorers.push( - new StorageDynamoForwardRefactorer(gen1Env, gen2Branch, clients, this.region, accountId, this.logger, resource.resourceName), + new StorageDynamoForwardRefactorer(gen1Env, gen2Branch, clients, this.region, accountId, this.logger, resource, cfn), ); break; case 'analytics:Kinesis': - refactorers.push(new AnalyticsKinesisForwardRefactorer(gen1Env, gen2Branch, clients, this.region, accountId, this.logger)); + refactorers.push( + new AnalyticsKinesisForwardRefactorer(gen1Env, gen2Branch, clients, this.region, accountId, this.logger, resource, cfn), + ); break; // Stateless categories — nothing to refactor // falls through case 'function:Lambda': case 'api:AppSync': case 'api:API Gateway': + case 'geo:Map': + case 'geo:PlaceIndex': break; - case 'auth:Cognito-UserPool-Groups': + case 'geo:GeofenceCollection': + throw new AmplifyError('MigrationError', { + message: `Unsupported resource '${resource.resourceName}' (${resource.category}:${resource.service}). GeofenceCollection refactor is not supported.`, + }); case 'unsupported': throw new AmplifyError('MigrationError', { message: `Unsupported resource '${resource.resourceName}' (${resource.category}:${resource.service}). Run 'amplify gen2-migration assess' to check migration readiness.`, @@ -114,40 +134,52 @@ export class AmplifyMigrationRefactorStep extends AmplifyMigrationStep { public async rollback(): Promise { const toStack = this.extractParameters(); - const { clients, accountId, gen1Env, gen2Branch } = await this.createInfrastructure(toStack); + const { clients, accountId, gen1Env, gen2Branch, cfn } = await this.createInfrastructure(toStack); const gen1App = await Gen1App.create({ appId: this.appId, region: this.region, envName: this.currentEnvName, clients }); const discovered = gen1App.discover(); - const refactorers: Refactorer[] = []; - - validateSingleResourcePerStack(discovered); + const refactorers: Planner[] = []; for (const resource of discovered) { switch (resource.key) { case 'auth:Cognito': - refactorers.push(new AuthCognitoRollbackRefactorer(gen1Env, gen2Branch, clients, this.region, accountId, this.logger)); + refactorers.push( + new AuthCognitoRollbackRefactorer(gen1Env, gen2Branch, clients, this.region, accountId, this.logger, resource, cfn), + ); + break; + case 'auth:Cognito-UserPool-Groups': + refactorers.push( + new AuthUserPoolGroupsRollbackRefactorer(gen1Env, gen2Branch, clients, this.region, accountId, this.logger, resource, cfn), + ); break; case 'storage:S3': refactorers.push( - new StorageS3RollbackRefactorer(gen1Env, gen2Branch, clients, this.region, accountId, this.logger, resource.resourceName), + new StorageS3RollbackRefactorer(gen1Env, gen2Branch, clients, this.region, accountId, this.logger, resource, cfn), ); break; case 'storage:DynamoDB': refactorers.push( - new StorageDynamoRollbackRefactorer(gen1Env, gen2Branch, clients, this.region, accountId, this.logger, resource.resourceName), + new StorageDynamoRollbackRefactorer(gen1Env, gen2Branch, clients, this.region, accountId, this.logger, resource, cfn), ); break; case 'analytics:Kinesis': - refactorers.push(new AnalyticsKinesisRollbackRefactorer(gen1Env, gen2Branch, clients, this.region, accountId, this.logger)); + refactorers.push( + new AnalyticsKinesisRollbackRefactorer(gen1Env, gen2Branch, clients, this.region, accountId, this.logger, resource, cfn), + ); break; // Stateless categories — nothing to rollback // falls through case 'function:Lambda': case 'api:AppSync': case 'api:API Gateway': + case 'geo:Map': + case 'geo:PlaceIndex': break; - case 'auth:Cognito-UserPool-Groups': + case 'geo:GeofenceCollection': + throw new AmplifyError('MigrationError', { + message: `Unsupported resource '${resource.resourceName}' (${resource.category}:${resource.service}). GeofenceCollection refactor is not supported. Cannot rollback.`, + }); case 'unsupported': throw new AmplifyError('MigrationError', { message: `Unsupported resource '${resource.resourceName}' (${resource.category}:${resource.service}). Cannot rollback.`, @@ -162,11 +194,15 @@ export class AmplifyMigrationRefactorStep extends AmplifyMigrationStep { ); } + /** + * Creates shared AWS clients, stack facades, and the Cfn instance. + */ private async createInfrastructure(toStack: string): Promise<{ clients: AwsClients; accountId: string; gen1Env: StackFacade; gen2Branch: StackFacade; + cfn: Cfn; }> { const stsClient = new STSClient({}); const { Account: accountId } = await stsClient.send(new GetCallerIdentityCommand({})); @@ -177,14 +213,15 @@ export class AmplifyMigrationRefactorStep extends AmplifyMigrationStep { const clients = new AwsClients({ region: this.region }); const gen1Env = new StackFacade(clients, this.rootStackName); const gen2Branch = new StackFacade(clients, toStack); + const cfn = new Cfn(clients.cloudFormation, this.logger); - return { clients, accountId, gen1Env, gen2Branch }; + return { clients, accountId, gen1Env, gen2Branch, cfn }; } /** * Collects operations from all refactorers. */ - private async buildPlan(refactorers: Refactorer[], implications: string[], title: string): Promise { + private async buildPlan(refactorers: Planner[], implications: string[], title: string): Promise { const operations: AmplifyMigrationOperation[] = []; operations.push({ @@ -221,40 +258,3 @@ export class AmplifyMigrationRefactorStep extends AmplifyMigrationStep { return toStack; } } - -/** - * Throws if any two discovered resources would produce the same stack name. - * - * Storage resources (both S3 and DDB) use 'storage' + resourceName as their - * Gen1 stack prefix. Other stateful categories (auth, analytics) use the bare - * category name. If two resources would map to the same stack name, the - * refactor would be ambiguous. - */ -function validateSingleResourcePerStack(discovered: readonly DiscoveredResource[]): void { - const stackNameCounts = new Map(); - for (const r of discovered) { - let stackName: string; - switch (r.key) { - case 'storage:DynamoDB': - case 'storage:S3': - stackName = 'storage' + r.resourceName; - break; - case 'auth:Cognito': - stackName = 'auth'; - break; - case 'analytics:Kinesis': - stackName = 'analytics'; - break; - default: - continue; // non-stateful categories — no stack conflict possible - } - stackNameCounts.set(stackName, (stackNameCounts.get(stackName) ?? 0) + 1); - } - for (const [stackName, count] of stackNameCounts) { - if (count > 1) { - throw new AmplifyError('MigrationError', { - message: `Multiple resources map to stack '${stackName}'. Each resource must have a unique stack name.`, - }); - } - } -} diff --git a/packages/amplify-cli/src/commands/gen2-migration/refactor/refactorer.ts b/packages/amplify-cli/src/commands/gen2-migration/refactor/refactorer.ts deleted file mode 100644 index d26d17d67e8..00000000000 --- a/packages/amplify-cli/src/commands/gen2-migration/refactor/refactorer.ts +++ /dev/null @@ -1 +0,0 @@ -export { Planner as Refactorer } from '../planner'; diff --git a/packages/amplify-cli/src/commands/gen2-migration/refactor/resolvers/cfn-dependency-resolver.ts b/packages/amplify-cli/src/commands/gen2-migration/refactor/resolvers/cfn-dependency-resolver.ts index 5ec7b56e3f7..fd11854fd16 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/refactor/resolvers/cfn-dependency-resolver.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/refactor/resolvers/cfn-dependency-resolver.ts @@ -1,31 +1,16 @@ import { CFNTemplate } from '../../cfn-template'; /** - * Resolves DependsOn references in a CloudFormation template for a stack refactor. - * Returns a new template; does not mutate input. - * - * When resources are being moved between stacks, DependsOn references that cross - * the refactor boundary must be removed: - * - Resources NOT being moved must not depend on resources being moved. - * - Resources being moved must only depend on other resources being moved. + * Strips all DependsOn references from a CloudFormation template. + * DependsOn only controls deployment ordering, which is irrelevant during + * refactor since all resources already exist. Removing them avoids + * cross-boundary issues when resources move between stacks. */ -export function resolveDependencies(template: CFNTemplate, resourcesToRefactor: string[]): CFNTemplate { +export function resolveDependencies(template: CFNTemplate): CFNTemplate { const cloned = JSON.parse(JSON.stringify(template)) as CFNTemplate; - for (const [logicalId, resource] of Object.entries(cloned.Resources)) { - if (!resource.DependsOn) continue; - - const deps = Array.isArray(resource.DependsOn) ? resource.DependsOn : [resource.DependsOn]; - const depsInRefactor = deps.filter((dep) => resourcesToRefactor.includes(dep)); - const isBeingMoved = resourcesToRefactor.includes(logicalId); - - if (!isBeingMoved && depsInRefactor.length > 0) { - // Resource stays — remove dependencies on resources being moved - resource.DependsOn = deps.filter((dep) => !resourcesToRefactor.includes(dep)); - } else if (isBeingMoved && deps.length > depsInRefactor.length) { - // Resource moves — keep only dependencies on other resources being moved - resource.DependsOn = depsInRefactor; - } + for (const resource of Object.values(cloned.Resources)) { + delete resource.DependsOn; } return cloned; diff --git a/packages/amplify-cli/src/commands/gen2-migration/refactor/snap.ts b/packages/amplify-cli/src/commands/gen2-migration/refactor/snap.ts deleted file mode 100644 index 67582e20d1f..00000000000 --- a/packages/amplify-cli/src/commands/gen2-migration/refactor/snap.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { CreateStackRefactorCommandInput, UpdateStackCommandInput } from '@aws-sdk/client-cloudformation'; -import * as fs from 'fs'; -import * as path from 'path'; -import { extractStackNameFromId } from './utils'; - -export const OUTPUT_DIRECTORY = `.amplify/refactor.operations`; - -/** - * Writes stack update snapshot files before an UpdateStack call. - * Produces: update..template.json, update..parameters.json - */ -export function preUpdateStack(input: UpdateStackCommandInput): void { - makeDirectory(OUTPUT_DIRECTORY); - const stackName = extractStackNameFromId(input.StackName!); - fs.writeFileSync(path.join(OUTPUT_DIRECTORY, `update.${stackName}.template.json`), formatTemplateBody(input.TemplateBody!)); - fs.writeFileSync(path.join(OUTPUT_DIRECTORY, `update.${stackName}.parameters.json`), JSON.stringify(input.Parameters ?? [], null, 2)); -} - -/** - * Writes stack refactor snapshot files before a CreateStackRefactor call. - * Produces: refactor.__from__..__to__..{source.template.json, target.template.json, mappings.json} - */ -export function preRefactorStack(input: CreateStackRefactorCommandInput): void { - makeDirectory(OUTPUT_DIRECTORY); - const source = input.StackDefinitions![0]; - const target = input.StackDefinitions![1]; - const sourceStackName = extractStackNameFromId(source.StackName!); - const targetStackName = extractStackNameFromId(target.StackName!); - const description = `refactor.__from__.${sourceStackName}.__to__.${targetStackName}`; - const basePath = path.join(OUTPUT_DIRECTORY, description); - fs.writeFileSync(`${basePath}.source.template.json`, formatTemplateBody(source.TemplateBody!)); - fs.writeFileSync(`${basePath}.target.template.json`, formatTemplateBody(target.TemplateBody!)); - fs.writeFileSync(path.join(OUTPUT_DIRECTORY, `${description}.mappings.json`), JSON.stringify(input.ResourceMappings ?? [], null, 2)); -} - -function makeDirectory(dir: string): void { - if (!fs.existsSync(dir)) { - fs.mkdirSync(dir, { recursive: true }); - } -} - -function formatTemplateBody(templateBody: string): string { - return JSON.stringify(JSON.parse(templateBody), null, 2); -} diff --git a/packages/amplify-cli/src/commands/gen2-migration/refactor/stack-facade.ts b/packages/amplify-cli/src/commands/gen2-migration/refactor/stack-facade.ts index d06660ff9e3..dea2476eb3a 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/refactor/stack-facade.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/refactor/stack-facade.ts @@ -10,85 +10,48 @@ import { AwsClients } from '../aws-clients'; import { CFNTemplate } from '../cfn-template'; /** - * Lazy-loading, caching facade over a CloudFormation stack hierarchy. - * Instantiate once per root stack (Gen1 or Gen2). All reads go through here. - * Cache entries are evicted on rejection to allow retries. + * Read-only facade over a CloudFormation stack hierarchy. + * Instantiate once per root stack (Gen1 or Gen2). */ export class StackFacade { - private readonly templateCache = new Map>(); - private readonly descriptionCache = new Map>(); - private readonly resourcesCache = new Map>(); - private nestedStacksPromise: Promise | undefined; - constructor(private readonly clients: AwsClients, public readonly rootStackName: string) {} /** - * Lists nested stacks under the root stack. Cached on first call. + * Lists nested stacks under the root stack. */ public async fetchNestedStacks(): Promise { - if (this.nestedStacksPromise === undefined) { - this.nestedStacksPromise = this.doFetchNestedStacks().catch((error) => { - this.nestedStacksPromise = undefined; - throw error; - }); - } - return this.nestedStacksPromise; + const response = await this.clients.cloudFormation.send(new DescribeStackResourcesCommand({ StackName: this.rootStackName })); + return (response.StackResources ?? []).filter((r) => r.ResourceType === 'AWS::CloudFormation::Stack'); } /** - * Fetches and parses the CloudFormation template for a stack. Cached per stackId. + * Fetches and parses the CloudFormation template for a stack. */ public async fetchTemplate(stackId: string): Promise { - return this.cachedFetch(this.templateCache, stackId, async () => { - const response = await this.clients.cloudFormation.send(new GetTemplateCommand({ StackName: stackId, TemplateStage: 'Original' })); - if (!response.TemplateBody) { - throw new AmplifyError('InvalidStackError', { message: `Stack '${stackId}' returned an empty template` }); - } - return JSON.parse(response.TemplateBody) as CFNTemplate; - }); + const response = await this.clients.cloudFormation.send(new GetTemplateCommand({ StackName: stackId, TemplateStage: 'Original' })); + if (!response.TemplateBody) { + throw new AmplifyError('InvalidStackError', { message: `Stack '${stackId}' returned an empty template` }); + } + return JSON.parse(response.TemplateBody) as CFNTemplate; } /** - * Describes a stack (parameters, outputs, status). Cached per stackId. + * Describes a stack (parameters, outputs, status). */ - public async fetchStackDescription(stackId: string): Promise { - return this.cachedFetch(this.descriptionCache, stackId, async () => { - const response = await this.clients.cloudFormation.send(new DescribeStacksCommand({ StackName: stackId })); - const stack = response.Stacks?.[0]; - if (!stack) { - throw new AmplifyError('StackNotFoundError', { message: `Stack '${stackId}' not found` }); - } - return stack; - }); + public async fetchStack(stackId: string): Promise { + const response = await this.clients.cloudFormation.send(new DescribeStacksCommand({ StackName: stackId })); + const stack = response.Stacks?.[0]; + if (!stack) { + throw new AmplifyError('StackNotFoundError', { message: `Stack '${stackId}' not found` }); + } + return stack; } /** - * Lists resources in a stack. Cached per stackId. + * Lists resources in a stack. */ public async fetchStackResources(stackId: string): Promise { - return this.cachedFetch(this.resourcesCache, stackId, async () => { - const response = await this.clients.cloudFormation.send(new DescribeStackResourcesCommand({ StackName: stackId })); - return response.StackResources ?? []; - }); - } - - private async cachedFetch(cache: Map>, key: string, fetcher: () => Promise): Promise { - const existing = cache.get(key); - if (existing !== undefined) return existing; - - const promise = fetcher().catch((error) => { - cache.delete(key); - throw error; - }); - cache.set(key, promise); - return promise; - } - - // Uses DescribeStackResources (max 100 resources, no pagination) for test mock compatibility. - // Amplify projects are unlikely to exceed this limit. If pagination is needed in the future, - // switch to ListStackResources (paginated) and update the test mock accordingly. - private async doFetchNestedStacks(): Promise { - const response = await this.clients.cloudFormation.send(new DescribeStackResourcesCommand({ StackName: this.rootStackName })); - return (response.StackResources ?? []).filter((r) => r.ResourceType === 'AWS::CloudFormation::Stack'); + const response = await this.clients.cloudFormation.send(new DescribeStackResourcesCommand({ StackName: stackId })); + return response.StackResources ?? []; } } diff --git a/packages/amplify-cli/src/commands/gen2-migration/refactor/storage/storage-dynamo-forward.ts b/packages/amplify-cli/src/commands/gen2-migration/refactor/storage/storage-dynamo-forward.ts index 8776ab3ecf0..743b8d86c8e 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/refactor/storage/storage-dynamo-forward.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/refactor/storage/storage-dynamo-forward.ts @@ -1,7 +1,4 @@ import { ForwardCategoryRefactorer } from '../workflow/forward-category-refactorer'; -import { StackFacade } from '../stack-facade'; -import { AwsClients } from '../../aws-clients'; -import { SpinningLogger } from '../../_spinning-logger'; /** * Forward refactorer for DynamoDB storage resources. @@ -9,27 +6,12 @@ import { SpinningLogger } from '../../_spinning-logger'; * Each table gets its own nested stack using 'storage' + resourceName as prefix. */ export class StorageDynamoForwardRefactorer extends ForwardCategoryRefactorer { - private readonly resourceName: string; - - constructor( - gen1Env: StackFacade, - gen2Branch: StackFacade, - clients: AwsClients, - region: string, - accountId: string, - logger: SpinningLogger, - resourceName: string, - ) { - super(gen1Env, gen2Branch, clients, region, accountId, logger); - this.resourceName = resourceName; - } - protected async fetchSourceStackId(): Promise { - return this.findNestedStack(this.gen1Env, 'storage' + this.resourceName); + return this.findNestedStack(this.gen1Env, 'storage' + this.resource.resourceName); } protected async fetchDestStackId(): Promise { - return this.findNestedStack(this.gen2Branch, 'storage' + this.resourceName); + return this.findNestedStack(this.gen2Branch, 'storage' + this.resource.resourceName); } protected resourceTypes(): string[] { diff --git a/packages/amplify-cli/src/commands/gen2-migration/refactor/storage/storage-dynamo-rollback.ts b/packages/amplify-cli/src/commands/gen2-migration/refactor/storage/storage-dynamo-rollback.ts index 25667a5743f..89afb488015 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/refactor/storage/storage-dynamo-rollback.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/refactor/storage/storage-dynamo-rollback.ts @@ -1,7 +1,5 @@ +import { CFNResource } from '../../cfn-template'; import { RollbackCategoryRefactorer } from '../workflow/rollback-category-refactorer'; -import { StackFacade } from '../stack-facade'; -import { AwsClients } from '../../aws-clients'; -import { SpinningLogger } from '../../_spinning-logger'; /** * Rollback refactorer for DynamoDB storage resources. @@ -9,32 +7,24 @@ import { SpinningLogger } from '../../_spinning-logger'; * Each table gets its own nested stack using 'storage' + resourceName as prefix. */ export class StorageDynamoRollbackRefactorer extends RollbackCategoryRefactorer { - protected override readonly gen1LogicalIds = new Map([['AWS::DynamoDB::Table', 'DynamoDBTable']]); - - private readonly resourceName: string; - - constructor( - gen1Env: StackFacade, - gen2Branch: StackFacade, - clients: AwsClients, - region: string, - accountId: string, - logger: SpinningLogger, - resourceName: string, - ) { - super(gen1Env, gen2Branch, clients, region, accountId, logger); - this.resourceName = resourceName; - } - protected async fetchSourceStackId(): Promise { - return this.findNestedStack(this.gen2Branch, 'storage' + this.resourceName); + return this.findNestedStack(this.gen2Branch, 'storage' + this.resource.resourceName); } protected async fetchDestStackId(): Promise { - return this.findNestedStack(this.gen1Env, 'storage' + this.resourceName); + return this.findNestedStack(this.gen1Env, 'storage' + this.resource.resourceName); } protected resourceTypes(): string[] { return ['AWS::DynamoDB::Table']; } + + protected targetLogicalId(_sourceId: string, sourceResource: CFNResource): string | undefined { + switch (sourceResource.Type) { + case 'AWS::DynamoDB::Table': + return 'DynamoDBTable'; + default: + return undefined; + } + } } diff --git a/packages/amplify-cli/src/commands/gen2-migration/refactor/storage/storage-forward.ts b/packages/amplify-cli/src/commands/gen2-migration/refactor/storage/storage-forward.ts index 1f1f8bd95f3..a6991ff08d8 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/refactor/storage/storage-forward.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/refactor/storage/storage-forward.ts @@ -1,30 +1,13 @@ import { ForwardCategoryRefactorer } from '../workflow/forward-category-refactorer'; import { StackFacade } from '../stack-facade'; -import { AwsClients } from '../../aws-clients'; -import { SpinningLogger } from '../../_spinning-logger'; /** * Forward refactorer for S3 storage resources. * Moves S3 buckets from Gen1 to Gen2. */ export class StorageS3ForwardRefactorer extends ForwardCategoryRefactorer { - private readonly resourceName: string; - - constructor( - gen1Env: StackFacade, - gen2Branch: StackFacade, - clients: AwsClients, - region: string, - accountId: string, - logger: SpinningLogger, - resourceName: string, - ) { - super(gen1Env, gen2Branch, clients, region, accountId, logger); - this.resourceName = resourceName; - } - protected async fetchSourceStackId(): Promise { - return this.findNestedStack(this.gen1Env, 'storage' + this.resourceName); + return this.findNestedStack(this.gen1Env, 'storage' + this.resource.resourceName); } protected async fetchDestStackId(): Promise { diff --git a/packages/amplify-cli/src/commands/gen2-migration/refactor/storage/storage-rollback.ts b/packages/amplify-cli/src/commands/gen2-migration/refactor/storage/storage-rollback.ts index 51b1b9c2fb0..32b8da18b5f 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/refactor/storage/storage-rollback.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/refactor/storage/storage-rollback.ts @@ -1,7 +1,5 @@ +import { CFNResource } from '../../cfn-template'; import { RollbackCategoryRefactorer } from '../workflow/rollback-category-refactorer'; -import { StackFacade } from '../stack-facade'; -import { AwsClients } from '../../aws-clients'; -import { SpinningLogger } from '../../_spinning-logger'; import { findS3NestedStack } from './storage-forward'; /** @@ -9,32 +7,24 @@ import { findS3NestedStack } from './storage-forward'; * Moves S3 buckets from Gen2 back to Gen1. */ export class StorageS3RollbackRefactorer extends RollbackCategoryRefactorer { - protected override readonly gen1LogicalIds = new Map([['AWS::S3::Bucket', 'S3Bucket']]); - - private readonly resourceName: string; - - constructor( - gen1Env: StackFacade, - gen2Branch: StackFacade, - clients: AwsClients, - region: string, - accountId: string, - logger: SpinningLogger, - resourceName: string, - ) { - super(gen1Env, gen2Branch, clients, region, accountId, logger); - this.resourceName = resourceName; - } - protected async fetchSourceStackId(): Promise { return findS3NestedStack(this.gen2Branch); } protected async fetchDestStackId(): Promise { - return this.findNestedStack(this.gen1Env, 'storage' + this.resourceName); + return this.findNestedStack(this.gen1Env, 'storage' + this.resource.resourceName); } protected resourceTypes(): string[] { return ['AWS::S3::Bucket']; } + + protected targetLogicalId(sourceId: string, sourceResource: CFNResource): string | undefined { + switch (sourceResource.Type) { + case 'AWS::S3::Bucket': + return 'S3Bucket'; + default: + return undefined; + } + } } diff --git a/packages/amplify-cli/src/commands/gen2-migration/refactor/workflow/category-refactorer.ts b/packages/amplify-cli/src/commands/gen2-migration/refactor/workflow/category-refactorer.ts index f6ae6c0b3fc..422178d913f 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/refactor/workflow/category-refactorer.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/refactor/workflow/category-refactorer.ts @@ -1,17 +1,20 @@ -import { Parameter } from '@aws-sdk/client-cloudformation'; +import { Parameter, ResourceMapping } from '@aws-sdk/client-cloudformation'; import { AmplifyError } from '@aws-amplify/amplify-cli-core'; -import { CFNResource, CFNStackStatus, CFNTemplate } from '../../cfn-template'; -import { Refactorer } from '../refactorer'; +import { CFNResource, CFNTemplate } from '../../cfn-template'; +import { Planner } from '../../planner'; import { AmplifyMigrationOperation } from '../../_operation'; import { AwsClients } from '../../aws-clients'; import { StackFacade } from '../stack-facade'; -import { tryUpdateStack } from '../cfn-stack-updater'; -import { tryRefactorStack, RefactorFailure } from '../cfn-stack-refactor-updater'; +import { Cfn } from '../cfn'; import { SpinningLogger } from '../../_spinning-logger'; import { extractStackNameFromId } from '../utils'; +import { DiscoveredResource } from '../../generate/_infra/gen1-app'; +import CLITable from 'cli-table3'; export const MIGRATION_PLACEHOLDER_LOGICAL_ID = 'MigrationPlaceholder'; export const PLACEHOLDER_RESOURCE: CFNResource = { Type: 'AWS::CloudFormation::WaitConditionHandle', Properties: {} }; +export const HOLDING_STACK_SUFFIX = '-holding'; +const MAX_STACK_NAME_LENGTH = 128; /** * Pre-computed data from resolving a stack's template. @@ -24,55 +27,27 @@ export interface ResolvedStack { } /** - * Resource mapping for the CloudFormation StackRefactor API. - */ -export interface ResourceMapping { - readonly Source: { readonly StackName: string; readonly LogicalResourceId: string }; - readonly Destination: { readonly StackName: string; readonly LogicalResourceId: string }; -} - -/** - * A single resource to be moved from source to target stack. - */ -export interface MoveMapping { - readonly sourceId: string; - readonly targetId: string; - readonly resource: CFNResource; -} - -/** - * Consolidated refactor data object. All templates and mappings are pre-computed - * together inside buildBlueprint(), ensuring source/target resources stay in sync. + * Mappings-only refactor plan. Templates are fetched fresh at execution time + * so that sequential refactorers targeting the same stack always see current state. */ export interface RefactorBlueprint { - readonly source: { - readonly stackId: string; - readonly parameters: Parameter[]; - readonly resolvedTemplate: CFNTemplate; - readonly afterRemoval: CFNTemplate; - }; - readonly target: { - readonly stackId: string; - readonly parameters: Parameter[]; - readonly resolvedTemplate: CFNTemplate; - readonly afterRemoval: CFNTemplate; - readonly afterAddition: CFNTemplate; - }; - readonly mappings: MoveMapping[]; + readonly sourceStackId: string; + readonly targetStackId: string; + readonly mappings: ResourceMapping[]; } /** * Abstract base class implementing the shared refactor workflow. * - * Concrete plan() enforces a rigid phase sequence. Category-specific methods - * (fetchSourceStackId, fetchDestStackId, buildResourceMappings, resourceTypes) - * are abstract. Direction-specific methods (resolveSource, resolveTarget, - * beforeMovePlan, afterMovePlan) are abstract. + * plan() enforces a rigid phase sequence: resolve → build mappings → + * update stacks → beforeMove → move → afterMove. * - * Shared workflow methods (updateSource, updateTarget, buildBlueprint, buildMoveOperations) - * are concrete on this base class. + * Category-specific methods (fetchSourceStackId, fetchDestStackId, + * buildResourceMappings, resourceTypes) are abstract. + * Direction-specific methods (resolveSource, resolveTarget, + * beforeMove, afterMove) are abstract. */ -export abstract class CategoryRefactorer implements Refactorer { +export abstract class CategoryRefactorer implements Planner { constructor( protected readonly gen1Env: StackFacade, protected readonly gen2Branch: StackFacade, @@ -80,6 +55,8 @@ export abstract class CategoryRefactorer implements Refactorer { protected readonly region: string, protected readonly accountId: string, protected readonly logger: SpinningLogger, + protected readonly resource: DiscoveredResource, + protected readonly cfn: Cfn, ) {} /** @@ -87,33 +64,43 @@ export abstract class CategoryRefactorer implements Refactorer { * All AWS reads happen here. Operations only execute mutations. */ public async plan(): Promise { + this.logger.push(`${this.resource.category}/${this.resource.resourceName} (${this.resource.service})`); const sourceStackId = await this.fetchSourceStackId(); const destStackId = await this.fetchDestStackId(); + const resourceSpec = `${this.resource.category}/${this.resource.resourceName} (${this.resource.service})`; if (!sourceStackId) { throw new AmplifyError('MigrationError', { - message: `[${this.constructor.name}] unable to find source stack`, + message: `Unable to find source stack for resource: ${resourceSpec}`, }); } if (!destStackId) { throw new AmplifyError('MigrationError', { - message: `[${this.constructor.name}] unable to find target stack`, + message: `Unable to find target stack for resource: ${resourceSpec}`, }); } - const source = await this.resolveSource(sourceStackId); + let source = await this.resolveSource(sourceStackId); const target = await this.resolveTarget(destStackId); - const blueprint = this.buildBlueprint(source, target); - if (!blueprint) { - return []; // Nothing to move — skip this category - } + const sourceResources = this.filterResourcesByType(source.resolvedTemplate); + const targetResources = this.filterResourcesByType(target.resolvedTemplate); - const beforeMoveOps = this.beforeMovePlan(blueprint); - const moveOps = this.buildMoveOperations(blueprint); - const afterMoveOps = await this.afterMovePlan(blueprint); + const mappings = await this.buildResourceMappings(sourceResources, targetResources, source.stackId, target.stackId); - return [...this.updateSource(blueprint.source), ...this.updateTarget(blueprint.target), ...beforeMoveOps, ...moveOps, ...afterMoveOps]; + source = addPlaceHolderIfNeeded(source, mappings); + + const blueprint: RefactorBlueprint = { sourceStackId, targetStackId: destStackId, mappings }; + + const updateSourceOps = await this.updateSource(source); + const updateTargetOps = await this.updateTarget(target); + const beforeMoveOps = await this.beforeMove(blueprint.targetStackId); + const moveOps = await this.move(blueprint); + const afterMoveOps = await this.afterMove(blueprint.sourceStackId); + + const operations = [...updateSourceOps, ...updateTargetOps, ...beforeMoveOps, ...moveOps, ...afterMoveOps]; + this.logger.pop(); + return operations; } // -- Category-specific (abstract) -- @@ -124,12 +111,13 @@ export abstract class CategoryRefactorer implements Refactorer { /** * Builds the resource mappings from source to destination. - * Called internally by buildBlueprint() with already-filtered resources. */ protected abstract buildResourceMappings( sourceResources: Map, targetResources: Map, - ): MoveMapping[]; + sourceStackId: string, + targetStackId: string, + ): Promise; // -- Direction-specific (abstract) -- @@ -141,44 +129,45 @@ export abstract class CategoryRefactorer implements Refactorer { * Forward: moves Gen2 resources to holding stack. * Rollback: no-op. */ - protected abstract beforeMovePlan(blueprint: RefactorBlueprint): AmplifyMigrationOperation[]; + protected abstract beforeMove(gen2StackId: string): Promise; /** * Post-move operations. * Forward: empty. - * Rollback: restores holding stack resources into Gen2, deletes holding stack. + * Rollback: restores holding stack resources into Gen2. */ - protected abstract afterMovePlan(blueprint: RefactorBlueprint): Promise; + protected abstract afterMove(gen2StackId: string): Promise; // -- Shared workflow (concrete) -- /** * Creates operations to update the source stack with the resolved template. - * Rollback overrides this to return []. + * Skips if the stack was already updated by a previous refactorer. */ - protected updateSource(source: ResolvedStack): AmplifyMigrationOperation[] { + protected async updateSource(source: ResolvedStack): Promise { + if (this.cfn.isUpdateClaimed(source.stackId)) return []; + this.cfn.claimUpdate(source.stackId); + const sourceStackName = extractStackNameFromId(source.stackId); + const report = await this.createChangeSetReport(source); return [ { + resource: this.resource, validate: () => ({ - description: `Ensure no destructive changes to ${sourceStackName}`, - run: async () => { - return { valid: true }; - }, + description: `Ensure no unexpected changes to ${sourceStackName}`, + run: async () => ({ valid: report === undefined, report }), }), - describe: async () => [`Update source stack '${sourceStackName}' with resolved references`], + describe: async () => { + const header = `Update source stack '${sourceStackName}' with resolved references`; + return [report ? `${header}\n\n${report.trimStart()}` : `${header} (empty change-set)`]; + }, execute: async () => { - const status = await tryUpdateStack({ - cfnClient: this.clients.cloudFormation, + await this.cfn.update({ stackName: source.stackId, parameters: source.parameters, templateBody: source.resolvedTemplate, + resource: this.resource, }); - if (status !== CFNStackStatus.UPDATE_COMPLETE) { - throw new AmplifyError('StackStateError', { - message: `Source stack '${source.stackId}' ended with status '${status}' instead of UPDATE_COMPLETE`, - }); - } }, }, ]; @@ -186,137 +175,77 @@ export abstract class CategoryRefactorer implements Refactorer { /** * Creates operations to update the target stack with the resolved template. - * Rollback overrides this to return []. + * Skips if the stack was already updated by a previous refactorer. */ - protected updateTarget(target: ResolvedStack): AmplifyMigrationOperation[] { + protected async updateTarget(target: ResolvedStack): Promise { + if (this.cfn.isUpdateClaimed(target.stackId)) return []; + this.cfn.claimUpdate(target.stackId); + const targetStackName = extractStackNameFromId(target.stackId); + const report = await this.createChangeSetReport(target); return [ { + resource: this.resource, validate: () => ({ - description: `Ensure no destructive changes to ${targetStackName}`, - run: async () => { - return { valid: true }; - }, + description: `Ensure no unexpected changes to ${targetStackName}`, + run: async () => ({ valid: report === undefined, report }), }), - describe: async () => [`Update target stack '${targetStackName}' with resolved references`], + describe: async () => { + const header = `Update target stack '${targetStackName}' with resolved references`; + return [report ? `${header}\n\n${report.trimStart()}` : `${header} (empty change-set)`]; + }, execute: async () => { - const status = await tryUpdateStack({ - cfnClient: this.clients.cloudFormation, + await this.cfn.update({ stackName: target.stackId, parameters: target.parameters, templateBody: target.resolvedTemplate, + resource: this.resource, }); - if (status !== CFNStackStatus.UPDATE_COMPLETE) { - throw new AmplifyError('StackStateError', { - message: `Target stack '${target.stackId}' ended with status '${status}' instead of UPDATE_COMPLETE`, - }); - } }, }, ]; } /** - * Builds a consolidated RefactorBlueprint from resolved source and target stacks. - * Returns undefined if there are no resources to move. - * - * This consolidates buildResourceMappings + template manipulation + placeholder logic - * into one function, ensuring resourcesToMove and logicalIdMap are always in sync. + * Creates a changeset for the given stack and returns a formatted report. */ - protected buildBlueprint(source: ResolvedStack, target: ResolvedStack): RefactorBlueprint | undefined { - const sourceResources = this.filterResourcesByType(source.resolvedTemplate); - const targetResources = this.filterResourcesByType(target.resolvedTemplate); - - if (sourceResources.size === 0) return undefined; - - const mappings = this.buildResourceMappings(sourceResources, targetResources); - - // source.afterRemoval: clone source template, remove mapped resources, add placeholder if empty - const afterRemoval = JSON.parse(JSON.stringify(source.resolvedTemplate)) as CFNTemplate; - for (const { sourceId } of mappings) { - delete afterRemoval.Resources[sourceId]; - } - addPlaceholderIfEmpty(afterRemoval); - - // If afterRemoval needs a placeholder, the resolved template used by updateSource must - // also include it. The refactor API only moves existing resources — the placeholder must - // be created via UpdateStack first so it physically exists before the refactor. - const sourceResolved = afterRemoval.Resources[MIGRATION_PLACEHOLDER_LOGICAL_ID] - ? { - ...source.resolvedTemplate, - Resources: { ...source.resolvedTemplate.Resources, [MIGRATION_PLACEHOLDER_LOGICAL_ID]: PLACEHOLDER_RESOURCE }, - } - : source.resolvedTemplate; - - // target.afterRemoval: clone target template, remove target category resources, add placeholder if empty - const targetAfterRemoval = JSON.parse(JSON.stringify(target.resolvedTemplate)) as CFNTemplate; - for (const [id] of targetResources) { - delete targetAfterRemoval.Resources[id]; - } - addPlaceholderIfEmpty(targetAfterRemoval); - - // target.afterAddition: clone afterRemoval, add mapped resources with remapped DependsOn - const afterAddition = JSON.parse(JSON.stringify(targetAfterRemoval)) as CFNTemplate; - const idMap = new Map(mappings.map((m) => [m.sourceId, m.targetId])); - for (const { targetId, resource } of mappings) { - const cloned = JSON.parse(JSON.stringify(resource)) as CFNResource; - if (cloned.DependsOn) { - const deps = Array.isArray(cloned.DependsOn) ? cloned.DependsOn : [cloned.DependsOn]; - cloned.DependsOn = deps.map((d) => idMap.get(d) ?? d); - } - afterAddition.Resources[targetId] = cloned; + protected async createChangeSetReport(stack: ResolvedStack): Promise { + const stackName = extractStackNameFromId(stack.stackId); + this.logger.push(stackName); + try { + const changeSet = await this.cfn.createChangeSet({ + stackName: stack.stackId, + parameters: stack.parameters, + templateBody: stack.resolvedTemplate, + }); + return changeSet ? this.cfn.renderChangeSet(changeSet) : undefined; + } finally { + this.logger.pop(); } - - return { - source: { - stackId: source.stackId, - parameters: source.parameters, - resolvedTemplate: sourceResolved, - afterRemoval, - }, - target: { - stackId: target.stackId, - parameters: target.parameters, - resolvedTemplate: target.resolvedTemplate, - afterRemoval: targetAfterRemoval, - afterAddition, - }, - mappings, - }; } /** * Creates the move operation that executes the CloudFormation stack refactor. + * Templates are fetched and resolved fresh at execution time. */ - protected buildMoveOperations(blueprint: RefactorBlueprint): AmplifyMigrationOperation[] { - const { source, target, mappings } = blueprint; - const resourceMappings: ResourceMapping[] = mappings.map(({ sourceId, targetId }) => ({ - Source: { StackName: extractStackNameFromId(source.stackId), LogicalResourceId: sourceId }, - Destination: { StackName: extractStackNameFromId(target.stackId), LogicalResourceId: targetId }, - })); + protected async move(blueprint: RefactorBlueprint): Promise { + if (blueprint.mappings.length === 0) { + return []; + } + const sourceStackName = extractStackNameFromId(blueprint.sourceStackId); + const targetStackName = extractStackNameFromId(blueprint.targetStackId); return [ { + resource: this.resource, validate: () => undefined, - describe: async () => [ - `Move ${resourceMappings.length} resource(s) from '${extractStackNameFromId(source.stackId)}' to '${extractStackNameFromId( - target.stackId, - )}'`, - ], + describe: async () => { + const header = `Move ${blueprint.mappings.length} resource(s) from '${sourceStackName}' to '${targetStackName}'`; + const table = this.renderMappingTable(blueprint.mappings); + return [`${header}\n\n${table}`]; + }, execute: async () => { - const result = await tryRefactorStack(this.clients.cloudFormation, { - StackDefinitions: [ - { TemplateBody: JSON.stringify(source.afterRemoval), StackName: source.stackId }, - { TemplateBody: JSON.stringify(target.afterAddition), StackName: target.stackId }, - ], - ResourceMappings: resourceMappings, - }); - if (!result.success) { - const failure = result as RefactorFailure; - throw new AmplifyError('StackStateError', { - message: `Stack refactor failed: ${failure.reason} (status: ${failure.status}, refactorId: ${failure.stackRefactorId})`, - }); - } + await this.cfn.refactor(blueprint.mappings, this.resource); }, }, ]; @@ -337,14 +266,53 @@ export abstract class CategoryRefactorer implements Refactorer { const stacks = await facade.fetchNestedStacks(); return stacks.find((s) => s.LogicalResourceId?.startsWith(prefix))?.PhysicalResourceId; } -} -/** - * Adds a placeholder resource if the template has no resources. - * CloudFormation requires at least one resource in a stack. - */ -function addPlaceholderIfEmpty(template: CFNTemplate): void { - if (Object.keys(template.Resources).length === 0) { - template.Resources[MIGRATION_PLACEHOLDER_LOGICAL_ID] = PLACEHOLDER_RESOURCE; + /** + * Derives the holding stack name from a Gen2 category stack name. + * Preserves the CloudFormation hash suffix for uniqueness. + */ + protected getHoldingStackName(gen2CategoryStackId: string): string { + const lastDashIndex = gen2CategoryStackId.lastIndexOf('-'); + const prefix = gen2CategoryStackId.substring(0, lastDashIndex); + const hashSuffix = gen2CategoryStackId.substring(lastDashIndex); + const tail = `${hashSuffix}${HOLDING_STACK_SUFFIX}`; + const maxPrefixLength = MAX_STACK_NAME_LENGTH - tail.length; + return `${prefix.substring(0, maxPrefixLength)}${tail}`; } + + /** + * Renders a CLI table of move mappings. + */ + protected renderMappingTable(mappings: readonly ResourceMapping[]): string { + const table = new CLITable({ + head: ['Source Logical ID', 'Target Logical ID'], + style: { head: [] }, + }); + for (const m of mappings) { + table.push([m.Source.LogicalResourceId, m.Destination.LogicalResourceId]); + } + return `${table.toString()}\n`; + } + + protected info(message: string) { + this.logger.info(`[${this.resource.category}/${this.resource.resourceName}] ${message}`); + } + + protected debug(message: string) { + this.logger.debug(`[${this.resource.category}/${this.resource.resourceName}] ${message}`); + } +} + +function addPlaceHolderIfNeeded(source: ResolvedStack, mappings: ResourceMapping[]): ResolvedStack { + const movedLogicalIds = new Set(mappings.map((m) => m.Source.LogicalResourceId)); + const allRemoved = Object.keys(source.resolvedTemplate.Resources).every((id) => movedLogicalIds.has(id)); + if (!allRemoved) return source; + + const resolved = JSON.parse(JSON.stringify(source.resolvedTemplate)) as CFNTemplate; + resolved.Resources[MIGRATION_PLACEHOLDER_LOGICAL_ID] = PLACEHOLDER_RESOURCE; + return { + stackId: source.stackId, + parameters: source.parameters, + resolvedTemplate: resolved, + }; } diff --git a/packages/amplify-cli/src/commands/gen2-migration/refactor/workflow/forward-category-refactorer.ts b/packages/amplify-cli/src/commands/gen2-migration/refactor/workflow/forward-category-refactorer.ts index 7e76486e22a..d5fc2826608 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/refactor/workflow/forward-category-refactorer.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/refactor/workflow/forward-category-refactorer.ts @@ -1,15 +1,13 @@ -import { Output, Parameter } from '@aws-sdk/client-cloudformation'; +import { Output, Parameter, ResourceMapping } from '@aws-sdk/client-cloudformation'; import { AmplifyError } from '@aws-amplify/amplify-cli-core'; -import { CFNResource, CFNTemplate } from '../../cfn-template'; +import { CFNResource } from '../../cfn-template'; import { AmplifyMigrationOperation } from '../../_operation'; import { resolveParameters } from '../resolvers/cfn-parameter-resolver'; import { resolveOutputs } from '../resolvers/cfn-output-resolver'; import { resolveDependencies } from '../resolvers/cfn-dependency-resolver'; import { resolveConditions } from '../resolvers/cfn-condition-resolver'; import { extractStackNameFromId } from '../utils'; -import { getHoldingStackName, findHoldingStack, deleteHoldingStack } from '../holding-stack'; -import { tryRefactorStack, RefactorFailure } from '../cfn-stack-refactor-updater'; -import { CategoryRefactorer, MoveMapping, RefactorBlueprint, ResolvedStack, ResourceMapping } from './category-refactorer'; +import { CategoryRefactorer, ResolvedStack } from './category-refactorer'; /** * Forward direction base: moves resources from Gen1 (source) to Gen2 (target). @@ -21,32 +19,72 @@ import { CategoryRefactorer, MoveMapping, RefactorBlueprint, ResolvedStack, Reso */ export abstract class ForwardCategoryRefactorer extends CategoryRefactorer { /** - * Default forward mapping: matches source and target resources by type. - * Works for categories with at most one resource per type (storage, analytics). - * Auth overrides this for UserPoolClient Web/Native disambiguation. + * Matches source resources to target resources by type. + * Sub-classes can override match() for custom disambiguation. */ - protected buildResourceMappings(sourceResources: Map, targetResources: Map): MoveMapping[] { - const mappings: MoveMapping[] = []; + protected async buildResourceMappings( + sourceResources: Map, + targetResources: Map, + sourceStackId: string, + targetStackId: string, + ): Promise { const usedTargetIds = new Set(); + const mappings: ResourceMapping[] = []; for (const [sourceId, sourceResource] of sourceResources) { - let matched = false; - for (const [targetId, targetResource] of targetResources) { - if (sourceResource.Type === targetResource.Type && !usedTargetIds.has(targetId)) { - mappings.push({ sourceId, targetId, resource: sourceResource }); - usedTargetIds.add(targetId); - matched = true; - break; - } - } - if (!matched) { - throw new AmplifyError('InvalidStackError', { - message: `Source resource '${sourceId}' (type '${sourceResource.Type}') has no corresponding target resource`, - }); - } + const targetId = this.findMatchingTarget(sourceId, sourceResource, targetResources, usedTargetIds, targetStackId); + usedTargetIds.add(targetId); + mappings.push({ + Source: { StackName: sourceStackId, LogicalResourceId: sourceId }, + Destination: { StackName: targetStackId, LogicalResourceId: targetId }, + }); } return mappings; } + /** + * Finds exactly one matching target for a source resource. + * Throws if zero or multiple matches are found. + */ + private findMatchingTarget( + sourceId: string, + sourceResource: CFNResource, + targetResources: Map, + usedTargetIds: Set, + targetStackId: string, + ): string { + const matched: string[] = []; + for (const [targetId, targetResource] of targetResources) { + if (usedTargetIds.has(targetId)) continue; + if (this.match(sourceId, sourceResource, targetId, targetResource)) { + matched.push(targetId); + } + } + if (matched.length === 0) { + throw new AmplifyError('InvalidStackError', { + message: `Source resource '${sourceId}' (${ + sourceResource.Type + }) has no corresponding target resource in stack: ${extractStackNameFromId(targetStackId)}`, + }); + } + if (matched.length > 1) { + throw new AmplifyError('InvalidStackError', { + message: `Source resource '${sourceId}' (${ + sourceResource.Type + }) has multiple corresponding target resources in stack: ${extractStackNameFromId(targetStackId)}`, + }); + } + return matched[0]; + } + + /** + * Returns true if a source resource corresponds to a target resource. + * Default: matches by type. Override for disambiguation (e.g., UserPoolClient). + */ + protected match(_sourceId: string, sourceResource: CFNResource, _targetId: string, targetResource: CFNResource): boolean { + // default matching - assumes one resource per type in source/target + return sourceResource.Type === targetResource.Type; + } + /** * Resolves the Gen1 source stack template. * Resolution chain: params → outputs → deps → conditions. @@ -54,12 +92,10 @@ export abstract class ForwardCategoryRefactorer extends CategoryRefactorer { protected async resolveSource(stackId: string): Promise { const facade = this.gen1Env; const originalTemplate = await facade.fetchTemplate(stackId); - const description = await facade.fetchStackDescription(stackId); + const description = await facade.fetchStack(stackId); const parameters = description.Parameters ?? []; const outputs = description.Outputs ?? []; - const resourceIds = [...this.filterResourcesByType(originalTemplate).keys()]; - const stackName = extractStackNameFromId(stackId); const withParams = resolveParameters(originalTemplate, parameters, stackName); const stackResources = await facade.fetchStackResources(stackId); @@ -70,7 +106,7 @@ export abstract class ForwardCategoryRefactorer extends CategoryRefactorer { region: this.region, accountId: this.accountId, }); - const withDeps = resolveDependencies(withOutputs, resourceIds); + const withDeps = resolveDependencies(withOutputs); const resolved = resolveConditions(withDeps, parameters); const updatedParameters = await this.resolveOAuthParameters(parameters, outputs); @@ -85,14 +121,12 @@ export abstract class ForwardCategoryRefactorer extends CategoryRefactorer { protected async resolveTarget(stackId: string): Promise { const facade = this.gen2Branch; const originalTemplate = await facade.fetchTemplate(stackId); - const description = await facade.fetchStackDescription(stackId); + const description = await facade.fetchStack(stackId); const parameters = description.Parameters ?? []; const outputs = description.Outputs ?? []; - const resourceIds = [...this.filterResourcesByType(originalTemplate).keys()]; - const stackResources = await facade.fetchStackResources(stackId); - const withDeps = resolveDependencies(originalTemplate, resourceIds); + const withDeps = resolveDependencies(originalTemplate); const resolved = resolveOutputs({ template: withDeps, stackOutputs: outputs, @@ -106,74 +140,85 @@ export abstract class ForwardCategoryRefactorer extends CategoryRefactorer { /** * Moves Gen2 resources to a holding stack before the main refactor. + * Templates are fetched fresh at execution time. */ - protected beforeMovePlan(blueprint: RefactorBlueprint): AmplifyMigrationOperation[] { - const targetResources = this.filterResourcesByType(blueprint.target.resolvedTemplate); - if (targetResources.size === 0) { - return []; - } - - // The holding stack gets all target category resources - const holdingResources: Record = {}; - for (const [logicalId] of targetResources) { - holdingResources[logicalId] = blueprint.target.resolvedTemplate.Resources[logicalId]; + protected async beforeMove(gen2StackId: string): Promise { + const gen2StackName = extractStackNameFromId(gen2StackId); + const holdingStackName = this.getHoldingStackName(gen2StackName); + + this.debug(`Fetching template of gen2 stack: ${gen2StackName}`); + const gen2StackTemplate = await this.gen2Branch.fetchTemplate(gen2StackName); + + this.debug(`Locating holding stack: ${holdingStackName}`); + const holdingStack = await this.cfn.findStack(holdingStackName); + + const resources = this.filterResourcesByType(gen2StackTemplate); + this.debug(`Found ${resources.size} resources to move from stack: ${gen2StackName}`); + + const holdingStackTemplate = holdingStack ? await this.cfn.fetchTemplate(holdingStackName) : undefined; + const holdingStackResources = holdingStackTemplate?.Resources ?? {}; + + const resourceMappings: ResourceMapping[] = []; + for (const logicalId of resources.keys()) { + if (logicalId in holdingStackResources) { + // holding stack already contains this resource. can happen on a second + // subsequent execution of forward. the resources we discovered here + // are actually the gen1 resources that were moved. + this.debug(`Not registering ${logicalId} since it already exists in ${holdingStackName}`); + continue; + } + this.debug(`Registering ${logicalId} move to ${holdingStackName}`); + resourceMappings.push({ + Source: { StackName: gen2StackName, LogicalResourceId: logicalId }, + Destination: { StackName: holdingStackName, LogicalResourceId: logicalId }, + }); } - const holdingStackName = getHoldingStackName(extractStackNameFromId(blueprint.target.stackId)); - const holdingTemplate: CFNTemplate = { - AWSTemplateFormatVersion: '2010-09-09', - Description: 'Temporary holding stack for Gen2 migration', - Resources: holdingResources, - Outputs: {}, - }; - - // Post-holding target = target.afterRemoval (already computed by buildBlueprint) - const postTargetTemplate = blueprint.target.afterRemoval; + const operations: AmplifyMigrationOperation[] = []; - const holdingMappings: ResourceMapping[] = [...targetResources.keys()].map((id) => ({ - Source: { StackName: extractStackNameFromId(blueprint.target.stackId), LogicalResourceId: id }, - Destination: { StackName: extractStackNameFromId(holdingStackName), LogicalResourceId: id }, - })); + if (holdingStack?.StackStatus === 'REVIEW_IN_PROGRESS') { + operations.push({ + resource: this.resource, + validate: () => undefined, + describe: async () => [`Delete stale holding stack '${extractStackNameFromId(holdingStackName)}'`], + execute: async () => { + await this.cfn.deleteStack(holdingStackName, this.resource); + }, + }); + } - return [ - { + if (resourceMappings.length > 0) { + operations.push({ + resource: this.resource, validate: () => undefined, - describe: async () => [`Move Gen2 resources to holding stack '${holdingStackName}'`], + describe: async () => { + const header = `Move ${resourceMappings.length} resource(s) from '${gen2StackName}' to '${extractStackNameFromId( + holdingStackName, + )}'`; + const table = this.renderMappingTable(resourceMappings); + return [`${header}\n\n${table}`]; + }, execute: async () => { - const existing = await findHoldingStack(this.clients.cloudFormation, holdingStackName); - if (existing?.StackStatus === 'REVIEW_IN_PROGRESS') { - await deleteHoldingStack(this.clients.cloudFormation, holdingStackName); - } - - const result = await tryRefactorStack(this.clients.cloudFormation, { - StackDefinitions: [ - { TemplateBody: JSON.stringify(postTargetTemplate), StackName: blueprint.target.stackId }, - { TemplateBody: JSON.stringify(holdingTemplate), StackName: holdingStackName }, - ], - ResourceMappings: holdingMappings, - EnableStackCreation: true, - }); - if (!result.success) { - const failure = result as RefactorFailure; - throw new AmplifyError('StackStateError', { - message: `Failed to move Gen2 resources to holding stack: ${failure.reason}`, - }); - } + await this.cfn.refactor(resourceMappings, this.resource); }, - }, - ]; + }); + } + + return operations; } /** * Forward: no post-move operations. Holding stack survives for rollback. */ - protected async afterMovePlan(): Promise { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + protected async afterMove(_gen2StackId: string): Promise { return []; } /** * Hook for OAuth parameter resolution. Override in auth category. */ + // eslint-disable-next-line @typescript-eslint/no-unused-vars protected async resolveOAuthParameters(parameters: Parameter[], _outputs: Output[]): Promise { return parameters; } diff --git a/packages/amplify-cli/src/commands/gen2-migration/refactor/workflow/rollback-category-refactorer.ts b/packages/amplify-cli/src/commands/gen2-migration/refactor/workflow/rollback-category-refactorer.ts index 491478ae583..5825ddfe032 100644 --- a/packages/amplify-cli/src/commands/gen2-migration/refactor/workflow/rollback-category-refactorer.ts +++ b/packages/amplify-cli/src/commands/gen2-migration/refactor/workflow/rollback-category-refactorer.ts @@ -1,61 +1,56 @@ -import { GetTemplateCommand } from '@aws-sdk/client-cloudformation'; +import { ResourceMapping } from '@aws-sdk/client-cloudformation'; import { AmplifyError } from '@aws-amplify/amplify-cli-core'; -import { CFNResource, CFNTemplate } from '../../cfn-template'; +import { CFNResource } from '../../cfn-template'; import { AmplifyMigrationOperation } from '../../_operation'; import { resolveParameters } from '../resolvers/cfn-parameter-resolver'; import { resolveOutputs } from '../resolvers/cfn-output-resolver'; import { resolveDependencies } from '../resolvers/cfn-dependency-resolver'; import { extractStackNameFromId } from '../utils'; -import { getHoldingStackName, findHoldingStack, deleteHoldingStack } from '../holding-stack'; -import { tryUpdateStack } from '../cfn-stack-updater'; -import { tryRefactorStack, RefactorFailure } from '../cfn-stack-refactor-updater'; -import { - CategoryRefactorer, - MIGRATION_PLACEHOLDER_LOGICAL_ID, - PLACEHOLDER_RESOURCE, - MoveMapping, - RefactorBlueprint, - ResolvedStack, - ResourceMapping, -} from './category-refactorer'; +import { CategoryRefactorer, MIGRATION_PLACEHOLDER_LOGICAL_ID, PLACEHOLDER_RESOURCE, ResolvedStack } from './category-refactorer'; /** * Rollback direction base: moves resources from Gen2 (source) back to Gen1 (target). * * resolveSource: Gen2 resolution — params → outputs → deps * resolveTarget: Gen1 — reads template as-is, no resolution needed - * beforeMovePlan: empty - * afterMovePlan: restores holding stack resources into Gen2, deletes holding stack - * - * Does NOT pre-update stacks (overrides updateSource/updateTarget to return []). + * beforeMove: empty + * afterMove: restores holding stack resources into Gen2 */ export abstract class RollbackCategoryRefactorer extends CategoryRefactorer { /** - * Map of CFN resource type → Gen1 logical resource ID. - * Subclasses override this with their category-specific map. - * Used by the default buildResourceMappings implementation. - */ - protected readonly gen1LogicalIds: ReadonlyMap = new Map(); - - /** - * Default rollback mapping: looks up Gen1 logical ID by resource type. - * Throws AmplifyError if a source resource's type is not in gen1LogicalIds. - * Auth overrides this entirely. + * Maps Gen2 source resources to Gen1 target logical IDs via targetLogicalId(). + * Skips resources that already exist in the target stack. */ - protected buildResourceMappings(sourceResources: Map, _targetResources: Map): MoveMapping[] { - const mappings: MoveMapping[] = []; + protected async buildResourceMappings( + sourceResources: Map, + targetResources: Map, + sourceStackId: string, + targetStackId: string, + ): Promise { + const mappings: ResourceMapping[] = []; for (const [sourceId, resource] of sourceResources) { - const gen1LogicalId = this.gen1LogicalIds.get(resource.Type); + const gen1LogicalId = this.targetLogicalId(sourceId, resource); if (!gen1LogicalId) { - throw new AmplifyError('InvalidStackError', { - message: `No known Gen1 logical ID for resource type '${resource.Type}' (source: '${sourceId}')`, + throw new AmplifyError('MigrationError', { + message: `Failed building mappings: Unable to determine target id of resource ${sourceId} (${resource.Type})`, }); } - mappings.push({ sourceId, targetId: gen1LogicalId, resource }); + if (targetResources.has(gen1LogicalId)) { + continue; + } + mappings.push({ + Source: { StackName: sourceStackId, LogicalResourceId: sourceId }, + Destination: { StackName: targetStackId, LogicalResourceId: gen1LogicalId }, + }); } return mappings; } + /** + * Returns the Gen1 logical ID for a Gen2 resource. Sub-classes implement per category. + */ + protected abstract targetLogicalId(sourceId: string, sourceResource: CFNResource): string | undefined; + /** * Resolves the Gen2 source stack template for rollback. * Resolution chain: params → outputs → deps (no conditions). @@ -63,12 +58,10 @@ export abstract class RollbackCategoryRefactorer extends CategoryRefactorer { protected async resolveSource(stackId: string): Promise { const facade = this.gen2Branch; const originalTemplate = await facade.fetchTemplate(stackId); - const description = await facade.fetchStackDescription(stackId); + const description = await facade.fetchStack(stackId); const parameters = description.Parameters ?? []; const outputs = description.Outputs ?? []; - const resourceIds = [...this.filterResourcesByType(originalTemplate).keys()]; - const withParams = resolveParameters(originalTemplate, parameters); const stackResources = await facade.fetchStackResources(stackId); const withOutputs = resolveOutputs({ @@ -78,7 +71,7 @@ export abstract class RollbackCategoryRefactorer extends CategoryRefactorer { region: this.region, accountId: this.accountId, }); - const resolved = resolveDependencies(withOutputs, resourceIds); + const resolved = resolveDependencies(withOutputs); return { stackId, resolvedTemplate: resolved, parameters }; } @@ -89,117 +82,97 @@ export abstract class RollbackCategoryRefactorer extends CategoryRefactorer { protected async resolveTarget(stackId: string): Promise { const facade = this.gen1Env; const originalTemplate = await facade.fetchTemplate(stackId); - const description = await facade.fetchStackDescription(stackId); + const description = await facade.fetchStack(stackId); const parameters = description.Parameters ?? []; return { stackId, resolvedTemplate: originalTemplate, parameters }; } - protected override updateSource(): AmplifyMigrationOperation[] { - return []; - } - - protected override updateTarget(): AmplifyMigrationOperation[] { - return []; - } - /** * Rollback: no pre-move operations. */ - protected beforeMovePlan(_blueprint: RefactorBlueprint): AmplifyMigrationOperation[] { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + protected async beforeMove(_gen2StackId: string): Promise { return []; } /** - * Restores holding stack resources into Gen2 and deletes the holding stack. + * Restores holding stack resources into Gen2. + * Templates are fetched fresh at execution time. */ - protected async afterMovePlan(blueprint: RefactorBlueprint): Promise { - const gen2StackId = blueprint.source.stackId; - const holdingStackName = getHoldingStackName(extractStackNameFromId(gen2StackId)); - - const holdingStack = await findHoldingStack(this.clients.cloudFormation, holdingStackName); - if (!holdingStack) return []; - - const holdingTemplateResponse = await this.clients.cloudFormation.send( - new GetTemplateCommand({ StackName: holdingStackName, TemplateStage: 'Original' }), - ); - if (!holdingTemplateResponse.TemplateBody) { - throw new AmplifyError('InvalidStackError', { - message: `Holding stack '${holdingStackName}' returned an empty template`, - }); + protected async afterMove(gen2StackId: string): Promise { + const gen2StackName = extractStackNameFromId(gen2StackId); + const holdingStackName = this.getHoldingStackName(gen2StackName); + + this.debug(`Locating holding stack: ${holdingStackName}`); + const holdingStack = await this.cfn.findStack(holdingStackName); + if (!holdingStack) { + this.debug(`Holding stack ${holdingStackName} not found. Nothing to do.`); + return []; } - const holdingTemplate = JSON.parse(holdingTemplateResponse.TemplateBody) as CFNTemplate; - const resourcesToRestore = Object.entries(holdingTemplate.Resources).filter(([id]) => id !== MIGRATION_PLACEHOLDER_LOGICAL_ID); - if (resourcesToRestore.length === 0) { - return [this.buildDeleteHoldingStackOp(holdingStackName)]; + this.debug(`Fetching template of holding stack: ${holdingStackName}`); + const holdingStackTemplate = await this.gen2Branch.fetchTemplate(holdingStackName); + const resources = this.filterResourcesByType(holdingStackTemplate); + this.debug(`Found ${resources.size} resources to move from stack: ${holdingStackName}`); + + const resourceMappings: ResourceMapping[] = []; + for (const logicalId of resources.keys()) { + this.debug(`Registering ${logicalId} to move from ${holdingStackName} to ${gen2StackName}`); + resourceMappings.push({ + Source: { StackName: holdingStackName, LogicalResourceId: logicalId }, + Destination: { StackName: gen2StackName, LogicalResourceId: logicalId }, + }); } - const holdingWithPlaceholder: CFNTemplate = { - ...holdingTemplate, - Resources: { [MIGRATION_PLACEHOLDER_LOGICAL_ID]: PLACEHOLDER_RESOURCE, ...holdingTemplate.Resources }, - }; - - const restoreTarget = JSON.parse(JSON.stringify(blueprint.source.afterRemoval)) as CFNTemplate; - for (const [logicalId, resource] of resourcesToRestore) { - restoreTarget.Resources[logicalId] = resource; + if (resourceMappings.length === 0) { + this.debug(`No resources were registered for move from ${holdingStackName} to ${gen2StackName}. Nothing to do.`); + return []; } - const emptyHolding: CFNTemplate = { - AWSTemplateFormatVersion: '2010-09-09', - Description: 'Temporary holding stack for Gen2 migration', - Resources: { [MIGRATION_PLACEHOLDER_LOGICAL_ID]: PLACEHOLDER_RESOURCE }, - Outputs: {}, - }; - - const restoreMappings: ResourceMapping[] = resourcesToRestore.map(([logicalId]) => ({ - Source: { StackName: extractStackNameFromId(holdingStackName), LogicalResourceId: logicalId }, - Destination: { StackName: extractStackNameFromId(gen2StackId), LogicalResourceId: logicalId }, - })); - return [ { + resource: this.resource, validate: () => undefined, - describe: async () => [`Update ${holdingStackName} to include placeholder resource`], + describe: async () => { + return [`Update holding stack '${extractStackNameFromId(holdingStackName)}' with placeholder resource`]; + }, execute: async () => { - await tryUpdateStack({ - cfnClient: this.clients.cloudFormation, + const holdingTemplate = await this.cfn.fetchTemplate(holdingStackName); + holdingTemplate.Resources[MIGRATION_PLACEHOLDER_LOGICAL_ID] = PLACEHOLDER_RESOURCE; + await this.cfn.update({ stackName: holdingStackName, parameters: [], - templateBody: holdingWithPlaceholder, + templateBody: holdingTemplate, + resource: this.resource, }); }, }, { + resource: this.resource, validate: () => undefined, - describe: async () => [`Restore ${resourcesToRestore.length} resource(s) from holding stack to Gen2`], + describe: async () => { + const header = `Move ${resourceMappings.length} resource(s) from '${extractStackNameFromId( + holdingStackName, + )}' to '${extractStackNameFromId(gen2StackName)}'`; + const table = this.renderMappingTable(resourceMappings); + return [`${header}\n\n${table}`]; + }, execute: async () => { - const result = await tryRefactorStack(this.clients.cloudFormation, { - StackDefinitions: [ - { TemplateBody: JSON.stringify(emptyHolding), StackName: holdingStackName }, - { TemplateBody: JSON.stringify(restoreTarget), StackName: gen2StackId }, - ], - ResourceMappings: restoreMappings, - }); - if (!result.success) { - const failure = result as RefactorFailure; - throw new AmplifyError('StackStateError', { - message: `Failed to restore Gen2 resources from holding stack: ${failure.reason}`, - }); + await this.cfn.refactor(resourceMappings, this.resource); + + // this needs to happen here instead of during planning because + // each refactorer moves its own resources out of the holding stack. + const holdingStack = await this.cfn.findStack(holdingStackName); + if (holdingStack) { + const holdingStackTemplate = await this.cfn.fetchTemplate(holdingStackName); + const holdingStackResourceIds = Object.keys(holdingStackTemplate.Resources); + if (holdingStackResourceIds.length === 1 && holdingStackResourceIds[0] === MIGRATION_PLACEHOLDER_LOGICAL_ID) { + await this.cfn.deleteStack(holdingStackName, this.resource); + } } }, }, - this.buildDeleteHoldingStackOp(holdingStackName), ]; } - - private buildDeleteHoldingStackOp(holdingStackName: string): AmplifyMigrationOperation { - return { - validate: () => undefined, - describe: async () => [`Delete holding stack '${holdingStackName}'`], - execute: async () => { - await deleteHoldingStack(this.clients.cloudFormation, holdingStackName); - }, - }; - } } diff --git a/yarn.lock b/yarn.lock index 14b3730a9c3..cf14c3b8d9a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -235,6 +235,45 @@ __metadata: languageName: unknown linkType: soft +"@amplify-migration-apps/store-locator@workspace:amplify-migration-apps/store-locator/_snapshot.post.generate": + version: 0.0.0-use.local + resolution: "@amplify-migration-apps/store-locator@workspace:amplify-migration-apps/store-locator/_snapshot.post.generate" + dependencies: + "@aws-amplify/backend": ^1.18.0 + "@aws-amplify/backend-cli": ^1.8.0 + "@aws-amplify/backend-data": ^1.6.2 + "@aws-amplify/geo": ^3.0.92 + "@aws-amplify/ui-react": ^6.13.2 + "@aws-amplify/ui-react-geo": ^2.2.13 + "@aws-sdk/client-cognito-identity-provider": ^3.1016.0 + "@eslint/js": ^9.39.1 + "@types/aws-lambda": ^8.10.92 + "@types/node": "*" + "@types/react": ^19.2.5 + "@types/react-dom": ^19.2.3 + "@vitejs/plugin-react": ^5.1.1 + aws-amplify: ^6.16.0 + aws-cdk: ^2 + aws-cdk-lib: ^2 + axios: latest + ci-info: ^4.3.1 + constructs: ^10.0.0 + esbuild: ^0.27.0 + eslint: ^9.39.1 + eslint-plugin-react-hooks: ^7.0.1 + eslint-plugin-react-refresh: ^0.4.24 + globals: ^16.5.0 + maplibre-gl: ^2.4.0 + maplibre-gl-js-amplify: ^4.0.2 + react: ^19.2.0 + react-dom: ^19.2.0 + tsx: ^4.20.6 + typescript: ~5.9.3 + typescript-eslint: ^8.46.4 + vite: ^7.2.4 + languageName: unknown + linkType: soft + "@apideck/better-ajv-errors@npm:^0.3.1": version: 0.3.6 resolution: "@apideck/better-ajv-errors@npm:0.3.6" @@ -1748,7 +1787,7 @@ __metadata: aws-sdk-client-mock: ^4.1.0 aws-sdk-client-mock-jest: ^4.1.0 bottleneck: 2.19.5 - cdk-from-cfn: ^0.271.0 + cdk-from-cfn: ^0.291.0 chalk: ^4.1.1 ci-info: ^3.8.0 cli-table3: ^0.6.0 @@ -2163,6 +2202,21 @@ __metadata: languageName: node linkType: hard +"@aws-amplify/geo@npm:^3.0.92": + version: 3.0.93 + resolution: "@aws-amplify/geo@npm:3.0.93" + dependencies: + "@aws-sdk/client-location": 3.982.0 + "@aws-sdk/types": 3.973.1 + "@turf/boolean-clockwise": 6.5.0 + camelcase-keys: 6.2.2 + tslib: ^2.5.0 + peerDependencies: + "@aws-amplify/core": ^6.1.0 + checksum: cd277e4c1219f6d7871780d9bf68dcfa27db7cf1c8abd5b029d002d60df5bc1e68851989802d62ec3ce43e5cc0a5eecfcd6a4ff87b994b9b084d45e096548ded + languageName: node + linkType: hard + "@aws-amplify/graphql-api-construct@npm:1.21.0": version: 1.21.0 resolution: "@aws-amplify/graphql-api-construct@npm:1.21.0" @@ -3284,7 +3338,26 @@ __metadata: languageName: node linkType: hard -"@aws-amplify/ui-react@npm:^6.10.1, @aws-amplify/ui-react@npm:^6.13.0, @aws-amplify/ui-react@npm:^6.13.1": +"@aws-amplify/ui-react-geo@npm:^2.2.13": + version: 2.3.2 + resolution: "@aws-amplify/ui-react-geo@npm:2.3.2" + dependencies: + "@aws-amplify/ui-react-core": 3.6.2 + mapbox-gl: 1.13.1 + maplibre-gl: 2.1.9 + maplibre-gl-js-amplify: ^4.0.2 + react-map-gl: 7.0.23 + tslib: ^2.5.2 + peerDependencies: + "@aws-amplify/geo": ^3.0.59 + aws-amplify: ^6.14.3 + react: ^16.14 || ^17 || ^18 || ^19 + react-dom: ^16.14 || ^17 || ^18 || ^19 + checksum: 2b1dc7d24b87d165baf80bf833add37441e366dab0636672466fbf909443b5fee75f698a9a9fab2c1147183079cd5250f87c811264210833468299372db38c55 + languageName: node + linkType: hard + +"@aws-amplify/ui-react@npm:^6.10.1, @aws-amplify/ui-react@npm:^6.13.0, @aws-amplify/ui-react@npm:^6.13.1, @aws-amplify/ui-react@npm:^6.13.2": version: 6.15.2 resolution: "@aws-amplify/ui-react@npm:6.15.2" dependencies: @@ -4668,6 +4741,53 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/client-cognito-identity-provider@npm:^3.1016.0": + version: 3.1016.0 + resolution: "@aws-sdk/client-cognito-identity-provider@npm:3.1016.0" + dependencies: + "@aws-crypto/sha256-browser": 5.2.0 + "@aws-crypto/sha256-js": 5.2.0 + "@aws-sdk/core": ^3.973.24 + "@aws-sdk/credential-provider-node": ^3.972.25 + "@aws-sdk/middleware-host-header": ^3.972.8 + "@aws-sdk/middleware-logger": ^3.972.8 + "@aws-sdk/middleware-recursion-detection": ^3.972.8 + "@aws-sdk/middleware-user-agent": ^3.972.25 + "@aws-sdk/region-config-resolver": ^3.972.9 + "@aws-sdk/types": ^3.973.6 + "@aws-sdk/util-endpoints": ^3.996.5 + "@aws-sdk/util-user-agent-browser": ^3.972.8 + "@aws-sdk/util-user-agent-node": ^3.973.11 + "@smithy/config-resolver": ^4.4.13 + "@smithy/core": ^3.23.12 + "@smithy/fetch-http-handler": ^5.3.15 + "@smithy/hash-node": ^4.2.12 + "@smithy/invalid-dependency": ^4.2.12 + "@smithy/middleware-content-length": ^4.2.12 + "@smithy/middleware-endpoint": ^4.4.27 + "@smithy/middleware-retry": ^4.4.44 + "@smithy/middleware-serde": ^4.2.15 + "@smithy/middleware-stack": ^4.2.12 + "@smithy/node-config-provider": ^4.3.12 + "@smithy/node-http-handler": ^4.5.0 + "@smithy/protocol-http": ^5.3.12 + "@smithy/smithy-client": ^4.12.7 + "@smithy/types": ^4.13.1 + "@smithy/url-parser": ^4.2.12 + "@smithy/util-base64": ^4.3.2 + "@smithy/util-body-length-browser": ^4.2.2 + "@smithy/util-body-length-node": ^4.2.3 + "@smithy/util-defaults-mode-browser": ^4.3.43 + "@smithy/util-defaults-mode-node": ^4.2.47 + "@smithy/util-endpoints": ^3.3.3 + "@smithy/util-middleware": ^4.2.12 + "@smithy/util-retry": ^4.2.12 + "@smithy/util-utf8": ^4.2.2 + tslib: ^2.6.2 + checksum: 0e664d492a912afd24645b38b0ea9a062ff3b8424784e1d930566047c83bda35823aefaeaa05e6c3e5f288be686e67f3e01362a03d0951abdf21cfcf5e997484 + languageName: node + linkType: hard + "@aws-sdk/client-cognito-identity@npm:3.1007.0, @aws-sdk/client-cognito-identity@npm:^3.919.0": version: 3.1007.0 resolution: "@aws-sdk/client-cognito-identity@npm:3.1007.0" @@ -5806,6 +5926,54 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/client-location@npm:3.982.0": + version: 3.982.0 + resolution: "@aws-sdk/client-location@npm:3.982.0" + dependencies: + "@aws-crypto/sha256-browser": 5.2.0 + "@aws-crypto/sha256-js": 5.2.0 + "@aws-sdk/core": ^3.973.6 + "@aws-sdk/credential-provider-node": ^3.972.5 + "@aws-sdk/middleware-host-header": ^3.972.3 + "@aws-sdk/middleware-logger": ^3.972.3 + "@aws-sdk/middleware-recursion-detection": ^3.972.3 + "@aws-sdk/middleware-user-agent": ^3.972.6 + "@aws-sdk/region-config-resolver": ^3.972.3 + "@aws-sdk/types": ^3.973.1 + "@aws-sdk/util-endpoints": 3.982.0 + "@aws-sdk/util-user-agent-browser": ^3.972.3 + "@aws-sdk/util-user-agent-node": ^3.972.4 + "@smithy/config-resolver": ^4.4.6 + "@smithy/core": ^3.22.0 + "@smithy/fetch-http-handler": ^5.3.9 + "@smithy/hash-node": ^4.2.8 + "@smithy/invalid-dependency": ^4.2.8 + "@smithy/middleware-content-length": ^4.2.8 + "@smithy/middleware-endpoint": ^4.4.12 + "@smithy/middleware-retry": ^4.4.29 + "@smithy/middleware-serde": ^4.2.9 + "@smithy/middleware-stack": ^4.2.8 + "@smithy/node-config-provider": ^4.3.8 + "@smithy/node-http-handler": ^4.4.8 + "@smithy/protocol-http": ^5.3.8 + "@smithy/smithy-client": ^4.11.1 + "@smithy/types": ^4.12.0 + "@smithy/url-parser": ^4.2.8 + "@smithy/util-base64": ^4.3.0 + "@smithy/util-body-length-browser": ^4.2.0 + "@smithy/util-body-length-node": ^4.2.1 + "@smithy/util-defaults-mode-browser": ^4.3.28 + "@smithy/util-defaults-mode-node": ^4.2.31 + "@smithy/util-endpoints": ^3.2.8 + "@smithy/util-middleware": ^4.2.8 + "@smithy/util-retry": ^4.2.8 + "@smithy/util-stream": ^4.5.10 + "@smithy/util-utf8": ^4.2.0 + tslib: ^2.6.2 + checksum: 92039a4c23fe94e258f30e94d2ada3d7f08f42324f1a537003b352d0eb2e9e3ffe0b6031beb9cd9e9c685fe5e051e5e2cea562c221fafe9d50dfb79805ecf3ac + languageName: node + linkType: hard + "@aws-sdk/client-location@npm:^3.919.0": version: 3.1007.0 resolution: "@aws-sdk/client-location@npm:3.1007.0" @@ -7854,6 +8022,27 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/core@npm:^3.973.24": + version: 3.973.24 + resolution: "@aws-sdk/core@npm:3.973.24" + dependencies: + "@aws-sdk/types": ^3.973.6 + "@aws-sdk/xml-builder": ^3.972.15 + "@smithy/core": ^3.23.12 + "@smithy/node-config-provider": ^4.3.12 + "@smithy/property-provider": ^4.2.12 + "@smithy/protocol-http": ^5.3.12 + "@smithy/signature-v4": ^5.3.12 + "@smithy/smithy-client": ^4.12.7 + "@smithy/types": ^4.13.1 + "@smithy/util-base64": ^4.3.2 + "@smithy/util-middleware": ^4.2.12 + "@smithy/util-utf8": ^4.2.2 + tslib: ^2.6.2 + checksum: ab6899a7951931ea4622c7b346db0d9ff39244c306236184847840bfc527ac7e719338292e2ac154505e12f3ce64f5cc363a646f63f7559b0d7d46088f65f812 + languageName: node + linkType: hard + "@aws-sdk/crc64-nvme@npm:3.965.0": version: 3.965.0 resolution: "@aws-sdk/crc64-nvme@npm:3.965.0" @@ -7986,6 +8175,19 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-env@npm:^3.972.22": + version: 3.972.22 + resolution: "@aws-sdk/credential-provider-env@npm:3.972.22" + dependencies: + "@aws-sdk/core": ^3.973.24 + "@aws-sdk/types": ^3.973.6 + "@smithy/property-provider": ^4.2.12 + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: e38dc838d46493b0a93240d08482a357d0dc8ffb448e8a41b07848f4d28592a50a6192b3d91a1406cc2a9a2fa3e02819db82e67da21ac764fef7a4f6e2253e89 + languageName: node + linkType: hard + "@aws-sdk/credential-provider-http@npm:3.622.0": version: 3.622.0 resolution: "@aws-sdk/credential-provider-http@npm:3.622.0" @@ -8092,6 +8294,24 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-http@npm:^3.972.24": + version: 3.972.24 + resolution: "@aws-sdk/credential-provider-http@npm:3.972.24" + dependencies: + "@aws-sdk/core": ^3.973.24 + "@aws-sdk/types": ^3.973.6 + "@smithy/fetch-http-handler": ^5.3.15 + "@smithy/node-http-handler": ^4.5.0 + "@smithy/property-provider": ^4.2.12 + "@smithy/protocol-http": ^5.3.12 + "@smithy/smithy-client": ^4.12.7 + "@smithy/types": ^4.13.1 + "@smithy/util-stream": ^4.5.20 + tslib: ^2.6.2 + checksum: 7e7eb88ec8cf57d3b0a787873cc1b8f88b57132b6fbd3dfea33dbc81fae828e24bd548686dd479c79af832ad1c25bc796ed95045d60d471196512d3aad12dd33 + languageName: node + linkType: hard + "@aws-sdk/credential-provider-imds@npm:3.186.0": version: 3.186.0 resolution: "@aws-sdk/credential-provider-imds@npm:3.186.0" @@ -8294,6 +8514,28 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-ini@npm:^3.972.24": + version: 3.972.24 + resolution: "@aws-sdk/credential-provider-ini@npm:3.972.24" + dependencies: + "@aws-sdk/core": ^3.973.24 + "@aws-sdk/credential-provider-env": ^3.972.22 + "@aws-sdk/credential-provider-http": ^3.972.24 + "@aws-sdk/credential-provider-login": ^3.972.24 + "@aws-sdk/credential-provider-process": ^3.972.22 + "@aws-sdk/credential-provider-sso": ^3.972.24 + "@aws-sdk/credential-provider-web-identity": ^3.972.24 + "@aws-sdk/nested-clients": ^3.996.14 + "@aws-sdk/types": ^3.973.6 + "@smithy/credential-provider-imds": ^4.2.12 + "@smithy/property-provider": ^4.2.12 + "@smithy/shared-ini-file-loader": ^4.4.7 + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: 626483f218000bcdcbeffca6c2e16df04ea2a06ac2f87b4b839d25380debf3408688d54ce76fdb12118879bf7f0ad8ba8aedd8a23bf8898cd00688a754b1e884 + languageName: node + linkType: hard + "@aws-sdk/credential-provider-login@npm:3.966.0": version: 3.966.0 resolution: "@aws-sdk/credential-provider-login@npm:3.966.0" @@ -8326,6 +8568,22 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-login@npm:^3.972.24": + version: 3.972.24 + resolution: "@aws-sdk/credential-provider-login@npm:3.972.24" + dependencies: + "@aws-sdk/core": ^3.973.24 + "@aws-sdk/nested-clients": ^3.996.14 + "@aws-sdk/types": ^3.973.6 + "@smithy/property-provider": ^4.2.12 + "@smithy/protocol-http": ^5.3.12 + "@smithy/shared-ini-file-loader": ^4.4.7 + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: 9edf24ae5d9291b69118efb542bbc3bc4ef742137b730bfbb4ac5b014297de1f37fedf44e896d8929f441a53c52e14b66ebf382de78bf7e2dd408a85f08b735c + languageName: node + linkType: hard + "@aws-sdk/credential-provider-node@npm:3.186.0": version: 3.186.0 resolution: "@aws-sdk/credential-provider-node@npm:3.186.0" @@ -8500,6 +8758,26 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-node@npm:^3.972.25": + version: 3.972.25 + resolution: "@aws-sdk/credential-provider-node@npm:3.972.25" + dependencies: + "@aws-sdk/credential-provider-env": ^3.972.22 + "@aws-sdk/credential-provider-http": ^3.972.24 + "@aws-sdk/credential-provider-ini": ^3.972.24 + "@aws-sdk/credential-provider-process": ^3.972.22 + "@aws-sdk/credential-provider-sso": ^3.972.24 + "@aws-sdk/credential-provider-web-identity": ^3.972.24 + "@aws-sdk/types": ^3.973.6 + "@smithy/credential-provider-imds": ^4.2.12 + "@smithy/property-provider": ^4.2.12 + "@smithy/shared-ini-file-loader": ^4.4.7 + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: d2b452cdd5142ee25148263d45e8f29d48d7bf6d5ba07d9faaf4e7795746c2b2906d1350edc5cf79bdf1822b6ece455765fff0bfc33ce76a8510b3b68064e904 + languageName: node + linkType: hard + "@aws-sdk/credential-provider-process@npm:3.186.0": version: 3.186.0 resolution: "@aws-sdk/credential-provider-process@npm:3.186.0" @@ -8594,6 +8872,20 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-process@npm:^3.972.22": + version: 3.972.22 + resolution: "@aws-sdk/credential-provider-process@npm:3.972.22" + dependencies: + "@aws-sdk/core": ^3.973.24 + "@aws-sdk/types": ^3.973.6 + "@smithy/property-provider": ^4.2.12 + "@smithy/shared-ini-file-loader": ^4.4.7 + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: 236048b759be7b588f5acacb7601b5589de88f45a946c425f1c4e542bd268c156083d7e2900b5c5c0d3a91a4debe3b2868d0f35d4979ad4945cc7d42c7b6acca + languageName: node + linkType: hard + "@aws-sdk/credential-provider-sso@npm:3.186.0": version: 3.186.0 resolution: "@aws-sdk/credential-provider-sso@npm:3.186.0" @@ -8716,6 +9008,22 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-sso@npm:^3.972.24": + version: 3.972.24 + resolution: "@aws-sdk/credential-provider-sso@npm:3.972.24" + dependencies: + "@aws-sdk/core": ^3.973.24 + "@aws-sdk/nested-clients": ^3.996.14 + "@aws-sdk/token-providers": 3.1015.0 + "@aws-sdk/types": ^3.973.6 + "@smithy/property-provider": ^4.2.12 + "@smithy/shared-ini-file-loader": ^4.4.7 + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: 0ab0a263aec8e196044ddb3dd9577c4997117ca5991a4a9b892678c64bcfbd097bf767a776a5ca1a66999ba0b3b9df34e0b9555545f4a2cfa27b658bcdb29f79 + languageName: node + linkType: hard + "@aws-sdk/credential-provider-web-identity@npm:3.186.0": version: 3.186.0 resolution: "@aws-sdk/credential-provider-web-identity@npm:3.186.0" @@ -8801,6 +9109,21 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-web-identity@npm:^3.972.24": + version: 3.972.24 + resolution: "@aws-sdk/credential-provider-web-identity@npm:3.972.24" + dependencies: + "@aws-sdk/core": ^3.973.24 + "@aws-sdk/nested-clients": ^3.996.14 + "@aws-sdk/types": ^3.973.6 + "@smithy/property-provider": ^4.2.12 + "@smithy/shared-ini-file-loader": ^4.4.7 + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: 481a8e75cc77e7e87f76de5e146e4f5608d62914c90fa68a6a5589ada3293b1522f87557e7a1921ae41f2f743fdc808ec2f3d2d9aa9a22595fc57edd00894f99 + languageName: node + linkType: hard + "@aws-sdk/credential-providers@npm:3.721.0": version: 3.721.0 resolution: "@aws-sdk/credential-providers@npm:3.721.0" @@ -9430,6 +9753,18 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/middleware-host-header@npm:^3.972.8": + version: 3.972.8 + resolution: "@aws-sdk/middleware-host-header@npm:3.972.8" + dependencies: + "@aws-sdk/types": ^3.973.6 + "@smithy/protocol-http": ^5.3.12 + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: f3019810e447a53788c546b94bc40a20c543aa067abf6235643d8e24689f8d4edec211297ac464380fb58c79f99803d1a152027798a3b401eab225e679a85d07 + languageName: node + linkType: hard + "@aws-sdk/middleware-location-constraint@npm:3.965.0": version: 3.965.0 resolution: "@aws-sdk/middleware-location-constraint@npm:3.965.0" @@ -9527,6 +9862,17 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/middleware-logger@npm:^3.972.8": + version: 3.972.8 + resolution: "@aws-sdk/middleware-logger@npm:3.972.8" + dependencies: + "@aws-sdk/types": ^3.973.6 + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: 79240b2a34d020f90f54982a4744b0a6bc5b5a7de6442f3b6657b2f10a76d9a1d3bcc2887a1d96d0aa5da4a09b3ce2a77df7a0d4e7e2973d1797ff6d8e8800a9 + languageName: node + linkType: hard + "@aws-sdk/middleware-recursion-detection@npm:3.186.0": version: 3.186.0 resolution: "@aws-sdk/middleware-recursion-detection@npm:3.186.0" @@ -9601,6 +9947,19 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/middleware-recursion-detection@npm:^3.972.8": + version: 3.972.8 + resolution: "@aws-sdk/middleware-recursion-detection@npm:3.972.8" + dependencies: + "@aws-sdk/types": ^3.973.6 + "@aws/lambda-invoke-store": ^0.2.2 + "@smithy/protocol-http": ^5.3.12 + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: 8d8ef442befd65dd9175294ae292e2b421171c0c9db9389a6f504b97e055dc9c3b51a80c711792fbc31cd3b4976f1d71d30a378063416553e17a59f70e7eb6d1 + languageName: node + linkType: hard + "@aws-sdk/middleware-retry@npm:3.186.0": version: 3.186.0 resolution: "@aws-sdk/middleware-retry@npm:3.186.0" @@ -9967,6 +10326,22 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/middleware-user-agent@npm:^3.972.25": + version: 3.972.25 + resolution: "@aws-sdk/middleware-user-agent@npm:3.972.25" + dependencies: + "@aws-sdk/core": ^3.973.24 + "@aws-sdk/types": ^3.973.6 + "@aws-sdk/util-endpoints": ^3.996.5 + "@smithy/core": ^3.23.12 + "@smithy/protocol-http": ^5.3.12 + "@smithy/types": ^4.13.1 + "@smithy/util-retry": ^4.2.12 + tslib: ^2.6.2 + checksum: d52d62a8d46ce56fdd8255ef931640890386ed49d73c46701e4dffea70bc931fd3c2429d5ed45e85995d1f32eb77e072496e4f58f167a05caf501b8ac962e2b2 + languageName: node + linkType: hard + "@aws-sdk/middleware-websocket@npm:^3.972.12": version: 3.972.12 resolution: "@aws-sdk/middleware-websocket@npm:3.972.12" @@ -10125,6 +10500,52 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/nested-clients@npm:^3.996.14": + version: 3.996.14 + resolution: "@aws-sdk/nested-clients@npm:3.996.14" + dependencies: + "@aws-crypto/sha256-browser": 5.2.0 + "@aws-crypto/sha256-js": 5.2.0 + "@aws-sdk/core": ^3.973.24 + "@aws-sdk/middleware-host-header": ^3.972.8 + "@aws-sdk/middleware-logger": ^3.972.8 + "@aws-sdk/middleware-recursion-detection": ^3.972.8 + "@aws-sdk/middleware-user-agent": ^3.972.25 + "@aws-sdk/region-config-resolver": ^3.972.9 + "@aws-sdk/types": ^3.973.6 + "@aws-sdk/util-endpoints": ^3.996.5 + "@aws-sdk/util-user-agent-browser": ^3.972.8 + "@aws-sdk/util-user-agent-node": ^3.973.11 + "@smithy/config-resolver": ^4.4.13 + "@smithy/core": ^3.23.12 + "@smithy/fetch-http-handler": ^5.3.15 + "@smithy/hash-node": ^4.2.12 + "@smithy/invalid-dependency": ^4.2.12 + "@smithy/middleware-content-length": ^4.2.12 + "@smithy/middleware-endpoint": ^4.4.27 + "@smithy/middleware-retry": ^4.4.44 + "@smithy/middleware-serde": ^4.2.15 + "@smithy/middleware-stack": ^4.2.12 + "@smithy/node-config-provider": ^4.3.12 + "@smithy/node-http-handler": ^4.5.0 + "@smithy/protocol-http": ^5.3.12 + "@smithy/smithy-client": ^4.12.7 + "@smithy/types": ^4.13.1 + "@smithy/url-parser": ^4.2.12 + "@smithy/util-base64": ^4.3.2 + "@smithy/util-body-length-browser": ^4.2.2 + "@smithy/util-body-length-node": ^4.2.3 + "@smithy/util-defaults-mode-browser": ^4.3.43 + "@smithy/util-defaults-mode-node": ^4.2.47 + "@smithy/util-endpoints": ^3.3.3 + "@smithy/util-middleware": ^4.2.12 + "@smithy/util-retry": ^4.2.12 + "@smithy/util-utf8": ^4.2.2 + tslib: ^2.6.2 + checksum: ed88e2cedd31f4aea533011e0f4fae57ad3a67cce95c7daf1633541e4fc9c5cd08e0d32615c07ef94b60516142f6685eb2176714123befa75856db9e8e08f01a + languageName: node + linkType: hard + "@aws-sdk/node-config-provider@npm:3.186.0": version: 3.186.0 resolution: "@aws-sdk/node-config-provider@npm:3.186.0" @@ -10335,6 +10756,19 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/region-config-resolver@npm:^3.972.9": + version: 3.972.9 + resolution: "@aws-sdk/region-config-resolver@npm:3.972.9" + dependencies: + "@aws-sdk/types": ^3.973.6 + "@smithy/config-resolver": ^4.4.13 + "@smithy/node-config-provider": ^4.3.12 + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: 2f5bee01355f955ff7f6dbd06c893366bfd9612e969ed7c4bd56ab6f00a00113a743eddc02da36dde137f4e6b7346aa796283a1e5c1d84f399ea0dfd7218424e + languageName: node + linkType: hard + "@aws-sdk/s3-request-presigner@npm:^3.919.0": version: 3.1007.0 resolution: "@aws-sdk/s3-request-presigner@npm:3.1007.0" @@ -10507,6 +10941,21 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/token-providers@npm:3.1015.0": + version: 3.1015.0 + resolution: "@aws-sdk/token-providers@npm:3.1015.0" + dependencies: + "@aws-sdk/core": ^3.973.24 + "@aws-sdk/nested-clients": ^3.996.14 + "@aws-sdk/types": ^3.973.6 + "@smithy/property-provider": ^4.2.12 + "@smithy/shared-ini-file-loader": ^4.4.7 + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: fa32c25e5e6fcf875ba5d59de4549663fbde78ee46a22f6ee734e18054c6efac6e321eb7a6657b0135a36b1916b76a58d670af27e226b17d28b07356677bfea6 + languageName: node + linkType: hard + "@aws-sdk/token-providers@npm:3.614.0": version: 3.614.0 resolution: "@aws-sdk/token-providers@npm:3.614.0" @@ -10661,6 +11110,16 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/types@npm:^3.973.6": + version: 3.973.6 + resolution: "@aws-sdk/types@npm:3.973.6" + dependencies: + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: 3a5c65313a3faadf854dd1055e5768c0477ecd10e8a597d0c0041fb69efdcefc399bf263f86fef93754d2d9a91d4f0eb78f5f1de14779657f84a24218a457fc3 + languageName: node + linkType: hard + "@aws-sdk/url-parser-native@npm:3.6.1": version: 3.6.1 resolution: "@aws-sdk/url-parser-native@npm:3.6.1" @@ -10963,6 +11422,19 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/util-endpoints@npm:^3.996.5": + version: 3.996.5 + resolution: "@aws-sdk/util-endpoints@npm:3.996.5" + dependencies: + "@aws-sdk/types": ^3.973.6 + "@smithy/types": ^4.13.1 + "@smithy/url-parser": ^4.2.12 + "@smithy/util-endpoints": ^3.3.3 + tslib: ^2.6.2 + checksum: 6356b7b040758af210f6b3d6807c11538e8a6888093ebe8a172949532a170c1f3f0bf93db86f6a75f071749219c3da2a88e63954f53031e8c3f9a092d7d97db9 + languageName: node + linkType: hard + "@aws-sdk/util-format-url@npm:3.609.0": version: 3.609.0 resolution: "@aws-sdk/util-format-url@npm:3.609.0" @@ -11150,6 +11622,18 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/util-user-agent-browser@npm:^3.972.8": + version: 3.972.8 + resolution: "@aws-sdk/util-user-agent-browser@npm:3.972.8" + dependencies: + "@aws-sdk/types": ^3.973.6 + "@smithy/types": ^4.13.1 + bowser: ^2.11.0 + tslib: ^2.6.2 + checksum: b5153800fab17e3e079c87d0668b65625755c91a47646aabcfc434aad18d6fc0c8921b544a234cd89d11a0b29eef1b73087515438c185ea5bcff75ecb8c2e800 + languageName: node + linkType: hard + "@aws-sdk/util-user-agent-node@npm:3.186.0": version: 3.186.0 resolution: "@aws-sdk/util-user-agent-node@npm:3.186.0" @@ -11266,6 +11750,25 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/util-user-agent-node@npm:^3.973.11": + version: 3.973.11 + resolution: "@aws-sdk/util-user-agent-node@npm:3.973.11" + dependencies: + "@aws-sdk/middleware-user-agent": ^3.972.25 + "@aws-sdk/types": ^3.973.6 + "@smithy/node-config-provider": ^4.3.12 + "@smithy/types": ^4.13.1 + "@smithy/util-config-provider": ^4.2.2 + tslib: ^2.6.2 + peerDependencies: + aws-crt: ">=1.0.0" + peerDependenciesMeta: + aws-crt: + optional: true + checksum: 3ef8bafaaa6e3b989527b196abeef983a0c1c4177257d77dd6a034105288bc88cf256edfacac41abd3bf84f2a14312ef41a114883df5c04e4ad62f84d4eb1cd0 + languageName: node + linkType: hard + "@aws-sdk/util-utf8-browser@npm:3.186.0": version: 3.186.0 resolution: "@aws-sdk/util-utf8-browser@npm:3.186.0" @@ -11367,6 +11870,17 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/xml-builder@npm:^3.972.15": + version: 3.972.15 + resolution: "@aws-sdk/xml-builder@npm:3.972.15" + dependencies: + "@smithy/types": ^4.13.1 + fast-xml-parser: 5.5.8 + tslib: ^2.6.2 + checksum: e1185fd46da270e717c63c67314a6e65e6fb599c5fe40ef4969a230e377003338119dcc11921b1602314e5f0578a5eec79f0cea8c38200b046d2401ae2001a21 + languageName: node + linkType: hard + "@aws/lambda-invoke-store@npm:^0.0.1": version: 0.0.1 resolution: "@aws/lambda-invoke-store@npm:0.0.1" @@ -16210,6 +16724,177 @@ __metadata: languageName: node linkType: hard +"@mapbox/extent@npm:0.4.0": + version: 0.4.0 + resolution: "@mapbox/extent@npm:0.4.0" + checksum: 2c287dcd5e3d2654727f81bb375034cf9c88c828524ff881d72fe20cfd561072d80c652fa58691785211c63f231e9e6dd2c0567a626c2f74198e835d6bfcf669 + languageName: node + linkType: hard + +"@mapbox/geojson-area@npm:^0.2.2": + version: 0.2.2 + resolution: "@mapbox/geojson-area@npm:0.2.2" + dependencies: + wgs84: 0.0.0 + checksum: 46a85e14877bbd24486f4352810b2d078ce072f4a81120b9481eb967334e5cc9d2c5ae8b2ddab2dfbe1c0822b18758b39f078339b43a18754ef514a32e95fb1c + languageName: node + linkType: hard + +"@mapbox/geojson-coords@npm:0.0.2": + version: 0.0.2 + resolution: "@mapbox/geojson-coords@npm:0.0.2" + dependencies: + "@mapbox/geojson-normalize": 0.0.1 + geojson-flatten: ^1.0.4 + checksum: 490709b75cb2cd348a2300ff847e28e5f1f7cf4fdb652ba170ddd3b1c2ad7f9c3261bd8128b82273ef8c85aac6dba171bdf24428aec1b8b993cd3ec7635bc446 + languageName: node + linkType: hard + +"@mapbox/geojson-extent@npm:^1.0.0": + version: 1.0.1 + resolution: "@mapbox/geojson-extent@npm:1.0.1" + dependencies: + "@mapbox/extent": 0.4.0 + "@mapbox/geojson-coords": 0.0.2 + rw: ~0.1.4 + traverse: ~0.6.6 + bin: + geojson-extent: bin/geojson-extent + checksum: d02666aac92d3107b1d32471d9b8cd44ced9c93748f92858f347e9d19044dbeaa3b675c16d154547e52ea35ceaa475ef66abdb29691dd6202beb07c7ccc92c0b + languageName: node + linkType: hard + +"@mapbox/geojson-normalize@npm:0.0.1, @mapbox/geojson-normalize@npm:^0.0.1": + version: 0.0.1 + resolution: "@mapbox/geojson-normalize@npm:0.0.1" + bin: + geojson-normalize: geojson-normalize + checksum: c51e7fa1462a9152493e2b639ce0b50d4c59ed8615f79c6be509312e4db2f29741cae50ecba1b8e290ce50c50f00c892039df3a5306d15712e51a6a28fcd4ecf + languageName: node + linkType: hard + +"@mapbox/geojson-rewind@npm:^0.5.0, @mapbox/geojson-rewind@npm:^0.5.1, @mapbox/geojson-rewind@npm:^0.5.2": + version: 0.5.2 + resolution: "@mapbox/geojson-rewind@npm:0.5.2" + dependencies: + get-stream: ^6.0.1 + minimist: ^1.2.6 + bin: + geojson-rewind: geojson-rewind + checksum: 631f89ba5b656cb1e02197c242b231f98da0afb96815fa26481497176d6bd5f2aac77af4950da91c954094694acbc26382bd3d38146705737e8ff06442d95a12 + languageName: node + linkType: hard + +"@mapbox/geojson-types@npm:^1.0.2": + version: 1.0.2 + resolution: "@mapbox/geojson-types@npm:1.0.2" + checksum: aa0a2cb95a358d8756ab5aa70356bcbd6f554a4571703a88a09e7db6580061d6ef4054db5fe3ecb2817c383b8b5433746a8f46712dc606b32063f73b154f99fc + languageName: node + linkType: hard + +"@mapbox/jsonlint-lines-primitives@npm:^2.0.2": + version: 2.0.2 + resolution: "@mapbox/jsonlint-lines-primitives@npm:2.0.2" + checksum: 5814e42fc453700132f93ea742aabcef9a3c98d9bf17d4c1106f82d1dcd91bbc93052e66e29014323b9b2a41b020c743d897e4a96cc4ed2f734482d587d8c2b2 + languageName: node + linkType: hard + +"@mapbox/mapbox-gl-draw@npm:1.3.0": + version: 1.3.0 + resolution: "@mapbox/mapbox-gl-draw@npm:1.3.0" + dependencies: + "@mapbox/geojson-area": ^0.2.2 + "@mapbox/geojson-extent": ^1.0.0 + "@mapbox/geojson-normalize": ^0.0.1 + "@mapbox/point-geometry": ^0.1.0 + hat: 0.0.3 + lodash.isequal: ^4.5.0 + xtend: ^4.0.2 + checksum: fcf7d33273fcb3cc7a7a9626b1ab0ede859150fcbab9dccde0373e42319b4a33fa768684f371268a97c062eba009e9230b39117081c9cfa06ba7ac60b8368bb2 + languageName: node + linkType: hard + +"@mapbox/mapbox-gl-supported@npm:^1.5.0": + version: 1.5.0 + resolution: "@mapbox/mapbox-gl-supported@npm:1.5.0" + peerDependencies: + mapbox-gl: ">=0.32.1 <2.0.0" + checksum: 5b7712e8b546e598dc5152632504cad53081211b64ddc4447825840ddca703275bc36599167b9550ab906ca8a9554936bcdae562073fdef24b8d38d78ee262fb + languageName: node + linkType: hard + +"@mapbox/mapbox-gl-supported@npm:^2.0.1": + version: 2.0.1 + resolution: "@mapbox/mapbox-gl-supported@npm:2.0.1" + checksum: d4876381cbc2fb401851eebb5195bd2e14b08c0351e9628fb18cfa15e89ce0ab19ac98bdbe6a6c13c6de359b44e07cad0fd2189cd2bfd981a16727618204551d + languageName: node + linkType: hard + +"@mapbox/point-geometry@npm:0.1.0, @mapbox/point-geometry@npm:^0.1.0, @mapbox/point-geometry@npm:~0.1.0": + version: 0.1.0 + resolution: "@mapbox/point-geometry@npm:0.1.0" + checksum: e4d861908574cb3165f5ad37b000416ebc90a2d6b3e0073191e6b6dc5074a6159d84ac5114d78557399bb429134f0d05bfb529e7902d1cb2b36d722b72ab662c + languageName: node + linkType: hard + +"@mapbox/tiny-sdf@npm:^1.1.1": + version: 1.2.5 + resolution: "@mapbox/tiny-sdf@npm:1.2.5" + checksum: de0252388a628ddb491c986c715f0b63ca6a74f5dac16d3e51eb75a21935a31e34fba5db47c81cc59a462d782021fc68b2e3cc119b2d6cabe15d31e311674d6c + languageName: node + linkType: hard + +"@mapbox/tiny-sdf@npm:^2.0.4, @mapbox/tiny-sdf@npm:^2.0.5": + version: 2.0.7 + resolution: "@mapbox/tiny-sdf@npm:2.0.7" + checksum: f117d8537ee4b5ee2deed54b9b426792744c15a649681305b4fb21b608b7c6a815015f015cd612923cc8efa30424d0440abfc1af2c85eda00a726024bb4f3ede + languageName: node + linkType: hard + +"@mapbox/unitbezier@npm:^0.0.0": + version: 0.0.0 + resolution: "@mapbox/unitbezier@npm:0.0.0" + checksum: af1943ebeb7532317a5cedfc38d0e580b7bd76cc5c43988df65541d377f3e3fa7d68c201dda20f5239213a4bc81ec5d13146354107196ffc4f14d6f39b8343b5 + languageName: node + linkType: hard + +"@mapbox/unitbezier@npm:^0.0.1": + version: 0.0.1 + resolution: "@mapbox/unitbezier@npm:0.0.1" + checksum: 97f39d4fbdf9579d0a1a8be0d536eb113a805d36459e774014f488a7ca6cc9dcfc77ab7a2ebe5af395ad50da6efb4dbf2566de0db3f62b6b8675cddbace8f86a + languageName: node + linkType: hard + +"@mapbox/vector-tile@npm:^1.3.1": + version: 1.3.1 + resolution: "@mapbox/vector-tile@npm:1.3.1" + dependencies: + "@mapbox/point-geometry": ~0.1.0 + checksum: ffb271b95c383923768295e72bdf95e428efb906434b864ea04d3853a8373cf0de19f039bd6615f7cf018fbfb4dbf4599f27ebaa86c2b7b09f7d69187f8d7da1 + languageName: node + linkType: hard + +"@mapbox/whoots-js@npm:^3.1.0": + version: 3.1.0 + resolution: "@mapbox/whoots-js@npm:3.1.0" + checksum: fe9e959a9049bcbc2c05d9d1156e050191ad697a1bd95e41cdfa069051ff1d6f2930ced234a8d68d5a0bf78091feab30d76497418ec800d90f0aac8691fe4fd4 + languageName: node + linkType: hard + +"@maplibre/maplibre-gl-geocoder@npm:1.5.0": + version: 1.5.0 + resolution: "@maplibre/maplibre-gl-geocoder@npm:1.5.0" + dependencies: + lodash.debounce: ^4.0.6 + subtag: ^0.5.0 + suggestions-list: ^0.0.2 + xtend: ^4.0.1 + peerDependencies: + maplibre-gl: ">=1.14.0" + checksum: 99b911f0081ef41c446ecc8458ce124a6405ff87e449444ca029cbc579d4d727701863e21ee5f1407da80e9f61a788615384bae91fe086562c69e48d077996ff + languageName: node + linkType: hard + "@microsoft/api-extractor-model@npm:7.33.4": version: 7.33.4 resolution: "@microsoft/api-extractor-model@npm:7.33.4" @@ -18318,6 +19003,16 @@ __metadata: languageName: node linkType: hard +"@smithy/abort-controller@npm:^4.2.12": + version: 4.2.12 + resolution: "@smithy/abort-controller@npm:4.2.12" + dependencies: + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: 839bee519c6bc4cf405395f71a07d0b5b42c22ce1c0163a157a61e18804d5dacd4ade1a3b2b69fea26462eecff4c92593726e96318f16ea8adfb419e7f3dab43 + languageName: node + linkType: hard + "@smithy/chunked-blob-reader-native@npm:^4.2.3": version: 4.2.3 resolution: "@smithy/chunked-blob-reader-native@npm:4.2.3" @@ -18364,6 +19059,20 @@ __metadata: languageName: node linkType: hard +"@smithy/config-resolver@npm:^4.4.13": + version: 4.4.13 + resolution: "@smithy/config-resolver@npm:4.4.13" + dependencies: + "@smithy/node-config-provider": ^4.3.12 + "@smithy/types": ^4.13.1 + "@smithy/util-config-provider": ^4.2.2 + "@smithy/util-endpoints": ^3.3.3 + "@smithy/util-middleware": ^4.2.12 + tslib: ^2.6.2 + checksum: 4087584b0c5a5207a847b951072eedbf485c0e908ec750270c5f0fe7a15dd9e22857ced0fc24a6fdfde4d4937219b5f4f12c63cbc0f6371d161512b00af293cb + languageName: node + linkType: hard + "@smithy/core@npm:^2.3.2, @smithy/core@npm:^2.4.0, @smithy/core@npm:^2.5.5, @smithy/core@npm:^2.5.7": version: 2.5.7 resolution: "@smithy/core@npm:2.5.7" @@ -18398,6 +19107,24 @@ __metadata: languageName: node linkType: hard +"@smithy/core@npm:^3.23.12": + version: 3.23.12 + resolution: "@smithy/core@npm:3.23.12" + dependencies: + "@smithy/protocol-http": ^5.3.12 + "@smithy/types": ^4.13.1 + "@smithy/url-parser": ^4.2.12 + "@smithy/util-base64": ^4.3.2 + "@smithy/util-body-length-browser": ^4.2.2 + "@smithy/util-middleware": ^4.2.12 + "@smithy/util-stream": ^4.5.20 + "@smithy/util-utf8": ^4.2.2 + "@smithy/uuid": ^1.1.2 + tslib: ^2.6.2 + checksum: 48add70de8829d8fa4dd62e808e5850dd60e7dcd4f08f2720f573479de1f88a688b1268dc6158476549a9d3e1510df445d3f4b8768f5b2d32fc2fbe3ee3feb65 + languageName: node + linkType: hard + "@smithy/credential-provider-imds@npm:^3.2.0, @smithy/credential-provider-imds@npm:^3.2.8": version: 3.2.8 resolution: "@smithy/credential-provider-imds@npm:3.2.8" @@ -18424,6 +19151,19 @@ __metadata: languageName: node linkType: hard +"@smithy/credential-provider-imds@npm:^4.2.12": + version: 4.2.12 + resolution: "@smithy/credential-provider-imds@npm:4.2.12" + dependencies: + "@smithy/node-config-provider": ^4.3.12 + "@smithy/property-provider": ^4.2.12 + "@smithy/types": ^4.13.1 + "@smithy/url-parser": ^4.2.12 + tslib: ^2.6.2 + checksum: 23cadc858a8eb16da9212c7741f53bf92e8ff8bbae0c42194ec076c8cac40b7c2f4e2e2079bfedf5b85384a534876693d7631a27ecae2f4a67af313bb0994869 + languageName: node + linkType: hard + "@smithy/eventstream-codec@npm:^3.1.10, @smithy/eventstream-codec@npm:^3.1.2": version: 3.1.10 resolution: "@smithy/eventstream-codec@npm:3.1.10" @@ -18573,6 +19313,19 @@ __metadata: languageName: node linkType: hard +"@smithy/fetch-http-handler@npm:^5.3.15": + version: 5.3.15 + resolution: "@smithy/fetch-http-handler@npm:5.3.15" + dependencies: + "@smithy/protocol-http": ^5.3.12 + "@smithy/querystring-builder": ^4.2.12 + "@smithy/types": ^4.13.1 + "@smithy/util-base64": ^4.3.2 + tslib: ^2.6.2 + checksum: 456f98b8bba5214a01aa9ca73ab4088a529ad6473a72cc74747d676d2c5225748167eb3cddccbc2ef884141965132dab49d19b7599414e899c9c36f71a04ce85 + languageName: node + linkType: hard + "@smithy/hash-blob-browser@npm:^4.2.12, @smithy/hash-blob-browser@npm:^4.2.8": version: 4.2.12 resolution: "@smithy/hash-blob-browser@npm:4.2.12" @@ -18609,6 +19362,18 @@ __metadata: languageName: node linkType: hard +"@smithy/hash-node@npm:^4.2.12": + version: 4.2.12 + resolution: "@smithy/hash-node@npm:4.2.12" + dependencies: + "@smithy/types": ^4.13.1 + "@smithy/util-buffer-from": ^4.2.2 + "@smithy/util-utf8": ^4.2.2 + tslib: ^2.6.2 + checksum: 4da4aaf39d1c2c3eec7a93cd02a055532583238ad3e80247cab211a3490cbff6e1e1a51abfd0502ef98be3f9f416a263c1382f28fad1aff38efaf129ce4b8a3d + languageName: node + linkType: hard + "@smithy/hash-stream-node@npm:^4.2.11, @smithy/hash-stream-node@npm:^4.2.7": version: 4.2.11 resolution: "@smithy/hash-stream-node@npm:4.2.11" @@ -18640,6 +19405,16 @@ __metadata: languageName: node linkType: hard +"@smithy/invalid-dependency@npm:^4.2.12": + version: 4.2.12 + resolution: "@smithy/invalid-dependency@npm:4.2.12" + dependencies: + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: 688f3c312d07ea72ec98c2a58fdb230bd6b43c122f88a411cb9643c0c6085e2a3a27f36f9c3cc0024b32fa831b4b6353e74933a8f746e18acc09c20ca579384e + languageName: node + linkType: hard + "@smithy/is-array-buffer@npm:^2.2.0": version: 2.2.0 resolution: "@smithy/is-array-buffer@npm:2.2.0" @@ -18711,6 +19486,17 @@ __metadata: languageName: node linkType: hard +"@smithy/middleware-content-length@npm:^4.2.12": + version: 4.2.12 + resolution: "@smithy/middleware-content-length@npm:4.2.12" + dependencies: + "@smithy/protocol-http": ^5.3.12 + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: 2800bf2cad2fe6c4eb9edb29e6637b4b937edf89db2a3f95594c93a74ae48144dd1a826712a02a5f3b4e3648a29092f4e573e4828ae88a33b25f87531c329430 + languageName: node + linkType: hard + "@smithy/middleware-endpoint@npm:^3.1.0, @smithy/middleware-endpoint@npm:^3.2.6, @smithy/middleware-endpoint@npm:^3.2.8": version: 3.2.8 resolution: "@smithy/middleware-endpoint@npm:3.2.8" @@ -18743,6 +19529,22 @@ __metadata: languageName: node linkType: hard +"@smithy/middleware-endpoint@npm:^4.4.27": + version: 4.4.27 + resolution: "@smithy/middleware-endpoint@npm:4.4.27" + dependencies: + "@smithy/core": ^3.23.12 + "@smithy/middleware-serde": ^4.2.15 + "@smithy/node-config-provider": ^4.3.12 + "@smithy/shared-ini-file-loader": ^4.4.7 + "@smithy/types": ^4.13.1 + "@smithy/url-parser": ^4.2.12 + "@smithy/util-middleware": ^4.2.12 + tslib: ^2.6.2 + checksum: 630dacce0adf4d6b04727bfb53235d7439aef75b1afe7aee1468a42f26b777fae9fb53df5b7e502ba44d06ba060d5dc635ff6e82383a1a5a1464a6c63dbbf0ca + languageName: node + linkType: hard + "@smithy/middleware-retry@npm:^3.0.14, @smithy/middleware-retry@npm:^3.0.15, @smithy/middleware-retry@npm:^3.0.31": version: 3.0.34 resolution: "@smithy/middleware-retry@npm:3.0.34" @@ -18777,6 +19579,23 @@ __metadata: languageName: node linkType: hard +"@smithy/middleware-retry@npm:^4.4.44": + version: 4.4.44 + resolution: "@smithy/middleware-retry@npm:4.4.44" + dependencies: + "@smithy/node-config-provider": ^4.3.12 + "@smithy/protocol-http": ^5.3.12 + "@smithy/service-error-classification": ^4.2.12 + "@smithy/smithy-client": ^4.12.7 + "@smithy/types": ^4.13.1 + "@smithy/util-middleware": ^4.2.12 + "@smithy/util-retry": ^4.2.12 + "@smithy/uuid": ^1.1.2 + tslib: ^2.6.2 + checksum: 389fc3425b37d0223e782f8c0eb4f6900f7f76c42c658b59fbd4efc73102b4f93ef836b08d70af23dbd2ce4e9404f875d8e66f84ccf80d115cfaf4edfc331e18 + languageName: node + linkType: hard + "@smithy/middleware-serde@npm:^3.0.11, @smithy/middleware-serde@npm:^3.0.3": version: 3.0.11 resolution: "@smithy/middleware-serde@npm:3.0.11" @@ -18798,6 +19617,18 @@ __metadata: languageName: node linkType: hard +"@smithy/middleware-serde@npm:^4.2.15": + version: 4.2.15 + resolution: "@smithy/middleware-serde@npm:4.2.15" + dependencies: + "@smithy/core": ^3.23.12 + "@smithy/protocol-http": ^5.3.12 + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: 651c775eafba0cea9fe67e9d24afc73d31d371949b9bdfb109aa242f9899fb8334504e37b00a6b51e6f9f522daa68c89fb7cc451e50faa4cf8990d23a2470c67 + languageName: node + linkType: hard + "@smithy/middleware-stack@npm:^3.0.11, @smithy/middleware-stack@npm:^3.0.3": version: 3.0.11 resolution: "@smithy/middleware-stack@npm:3.0.11" @@ -18818,6 +19649,16 @@ __metadata: languageName: node linkType: hard +"@smithy/middleware-stack@npm:^4.2.12": + version: 4.2.12 + resolution: "@smithy/middleware-stack@npm:4.2.12" + dependencies: + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: d06ec807249bb7f13cf4c6ce078a871dbeddb5b0c07536da62942245d2723ec380df4e631ab3c5b3ba7dc9626a609d11fcd48d53c8b0f9b6c9f1239b83d49f40 + languageName: node + linkType: hard + "@smithy/node-config-provider@npm:^3.1.12, @smithy/node-config-provider@npm:^3.1.4": version: 3.1.12 resolution: "@smithy/node-config-provider@npm:3.1.12" @@ -18842,6 +19683,18 @@ __metadata: languageName: node linkType: hard +"@smithy/node-config-provider@npm:^4.3.12": + version: 4.3.12 + resolution: "@smithy/node-config-provider@npm:4.3.12" + dependencies: + "@smithy/property-provider": ^4.2.12 + "@smithy/shared-ini-file-loader": ^4.4.7 + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: 97087669ae1c834bc00ab10ade383a746c411a04788b7104d9f4e921ce7d24c5d77257f9ac8b8c842f886a2d658acd948e133eb95f1ee768cfbe49456441e91c + languageName: node + linkType: hard + "@smithy/node-http-handler@npm:^3.1.4, @smithy/node-http-handler@npm:^3.3.2, @smithy/node-http-handler@npm:^3.3.3": version: 3.3.3 resolution: "@smithy/node-http-handler@npm:3.3.3" @@ -18868,6 +19721,19 @@ __metadata: languageName: node linkType: hard +"@smithy/node-http-handler@npm:^4.5.0": + version: 4.5.0 + resolution: "@smithy/node-http-handler@npm:4.5.0" + dependencies: + "@smithy/abort-controller": ^4.2.12 + "@smithy/protocol-http": ^5.3.12 + "@smithy/querystring-builder": ^4.2.12 + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: b4bbbb47a047a13558a22b3bd22c507dbe91aab36d6859bc77c97253be37966b51ff8c6ab84ebba3ab6dbebf951eec2df004bd8af826a832c0fa033a0d10a8b9 + languageName: node + linkType: hard + "@smithy/property-provider@npm:^3.1.11, @smithy/property-provider@npm:^3.1.3": version: 3.1.11 resolution: "@smithy/property-provider@npm:3.1.11" @@ -18888,6 +19754,16 @@ __metadata: languageName: node linkType: hard +"@smithy/property-provider@npm:^4.2.12": + version: 4.2.12 + resolution: "@smithy/property-provider@npm:4.2.12" + dependencies: + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: d4dc0d6c61e3b1f947b1e66074dc527f1a8499fef00627c6e97f01822d357c80db8853a4283d8206075b7fba6b9c59d648dc94ab4b08902acf2a2cb97533dc39 + languageName: node + linkType: hard + "@smithy/protocol-http@npm:^4.1.0, @smithy/protocol-http@npm:^4.1.4, @smithy/protocol-http@npm:^4.1.8": version: 4.1.8 resolution: "@smithy/protocol-http@npm:4.1.8" @@ -18908,6 +19784,16 @@ __metadata: languageName: node linkType: hard +"@smithy/protocol-http@npm:^5.3.12": + version: 5.3.12 + resolution: "@smithy/protocol-http@npm:5.3.12" + dependencies: + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: f71f8e54d42637acbef9f01e3974a8ad46187ae020366de4dc84dac7ba8413a8a6fb21369c83b660afa110fc5a56d185c7e48de7d2cf45351ebb1b29aa77962b + languageName: node + linkType: hard + "@smithy/querystring-builder@npm:^3.0.11, @smithy/querystring-builder@npm:^3.0.3, @smithy/querystring-builder@npm:^3.0.7": version: 3.0.11 resolution: "@smithy/querystring-builder@npm:3.0.11" @@ -18930,6 +19816,17 @@ __metadata: languageName: node linkType: hard +"@smithy/querystring-builder@npm:^4.2.12": + version: 4.2.12 + resolution: "@smithy/querystring-builder@npm:4.2.12" + dependencies: + "@smithy/types": ^4.13.1 + "@smithy/util-uri-escape": ^4.2.2 + tslib: ^2.6.2 + checksum: 171c0d4da2fd024466741e6ee1c05cac5664e0da82c4ac5afd3218278925c25ed00bc3518e02481f4daf3f366034f273fb1cb579f146f10d0edee14dc5676c21 + languageName: node + linkType: hard + "@smithy/querystring-parser@npm:^3.0.11, @smithy/querystring-parser@npm:^3.0.3": version: 3.0.11 resolution: "@smithy/querystring-parser@npm:3.0.11" @@ -18950,6 +19847,16 @@ __metadata: languageName: node linkType: hard +"@smithy/querystring-parser@npm:^4.2.12": + version: 4.2.12 + resolution: "@smithy/querystring-parser@npm:4.2.12" + dependencies: + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: be23cd6e68cd14cb2aaa82a06ae92c1202344a91a74f1d0098adaca0cf9e02bc08a112322a56e34873c7a0877445e49b2795ca3e181292239f42b9a2598af068 + languageName: node + linkType: hard + "@smithy/service-error-classification@npm:^3.0.11, @smithy/service-error-classification@npm:^3.0.3": version: 3.0.11 resolution: "@smithy/service-error-classification@npm:3.0.11" @@ -18968,6 +19875,15 @@ __metadata: languageName: node linkType: hard +"@smithy/service-error-classification@npm:^4.2.12": + version: 4.2.12 + resolution: "@smithy/service-error-classification@npm:4.2.12" + dependencies: + "@smithy/types": ^4.13.1 + checksum: a37ec7bded03f7578473b002bf99771853f9e59ecc53e85fb0501a794b5ff121259225af981f55788ad7adc57ef85ab536de1d2a1c2f5556117426e5485f7da9 + languageName: node + linkType: hard + "@smithy/shared-ini-file-loader@npm:^3.1.12, @smithy/shared-ini-file-loader@npm:^3.1.4": version: 3.1.12 resolution: "@smithy/shared-ini-file-loader@npm:3.1.12" @@ -18988,6 +19904,16 @@ __metadata: languageName: node linkType: hard +"@smithy/shared-ini-file-loader@npm:^4.4.7": + version: 4.4.7 + resolution: "@smithy/shared-ini-file-loader@npm:4.4.7" + dependencies: + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: 817a1d1b19f7f681ae5972db44416ba215f422da964eda04eae9ed1a31c05ae8ce3bed69c1429c9c42b9d1ec3493933731d2c3ef4b3858431cfdb51aa40b1b93 + languageName: node + linkType: hard + "@smithy/signature-v4@npm:^4.1.0, @smithy/signature-v4@npm:^4.2.4": version: 4.2.4 resolution: "@smithy/signature-v4@npm:4.2.4" @@ -19020,6 +19946,22 @@ __metadata: languageName: node linkType: hard +"@smithy/signature-v4@npm:^5.3.12": + version: 5.3.12 + resolution: "@smithy/signature-v4@npm:5.3.12" + dependencies: + "@smithy/is-array-buffer": ^4.2.2 + "@smithy/protocol-http": ^5.3.12 + "@smithy/types": ^4.13.1 + "@smithy/util-hex-encoding": ^4.2.2 + "@smithy/util-middleware": ^4.2.12 + "@smithy/util-uri-escape": ^4.2.2 + "@smithy/util-utf8": ^4.2.2 + tslib: ^2.6.2 + checksum: 7163c533c6ffebd93c2f7266b22c0d82488746846e50e795afcb15becd8431cfe993006a99b09828e5905ca56a7ffa6080a3537e092f3a57d661f64c5f0f11a7 + languageName: node + linkType: hard + "@smithy/smithy-client@npm:^3.1.12, @smithy/smithy-client@npm:^3.2.0, @smithy/smithy-client@npm:^3.5.1, @smithy/smithy-client@npm:^3.7.0": version: 3.7.0 resolution: "@smithy/smithy-client@npm:3.7.0" @@ -19050,6 +19992,21 @@ __metadata: languageName: node linkType: hard +"@smithy/smithy-client@npm:^4.12.7": + version: 4.12.7 + resolution: "@smithy/smithy-client@npm:4.12.7" + dependencies: + "@smithy/core": ^3.23.12 + "@smithy/middleware-endpoint": ^4.4.27 + "@smithy/middleware-stack": ^4.2.12 + "@smithy/protocol-http": ^5.3.12 + "@smithy/types": ^4.13.1 + "@smithy/util-stream": ^4.5.20 + tslib: ^2.6.2 + checksum: 7acb0c314bff3adff4625fe7cef773c9205d66debbef116972f88fd1456974944cb1f123c0fd6c5b3489640d4d5de370b0bdf70e9d7b7a63ff57bf6de81ceb4c + languageName: node + linkType: hard + "@smithy/types@npm:^1.1.0": version: 1.2.0 resolution: "@smithy/types@npm:1.2.0" @@ -19086,6 +20043,15 @@ __metadata: languageName: node linkType: hard +"@smithy/types@npm:^4.13.1": + version: 4.13.1 + resolution: "@smithy/types@npm:4.13.1" + dependencies: + tslib: ^2.6.2 + checksum: 775ed9748d9290b8816d933bfb9726eb9301ef2fe9fba1bfbc1966372b9f0d4dd1d3b611aca3c000094bed2ca9d821e10fe2795a75df5bc305bc8845a1e413f7 + languageName: node + linkType: hard + "@smithy/url-parser@npm:^3.0.11, @smithy/url-parser@npm:^3.0.3": version: 3.0.11 resolution: "@smithy/url-parser@npm:3.0.11" @@ -19108,6 +20074,17 @@ __metadata: languageName: node linkType: hard +"@smithy/url-parser@npm:^4.2.12": + version: 4.2.12 + resolution: "@smithy/url-parser@npm:4.2.12" + dependencies: + "@smithy/querystring-parser": ^4.2.12 + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: ff6b127f0bb8ddd6934018277a2ae73ecb036259ec9e0ea4e136da47b39d089ee29ff92fcdbc79613b3c8224f180bcf914289bd71709e9ccc4a444c5f0423086 + languageName: node + linkType: hard + "@smithy/util-base64@npm:^3.0.0": version: 3.0.0 resolution: "@smithy/util-base64@npm:3.0.0" @@ -19239,6 +20216,18 @@ __metadata: languageName: node linkType: hard +"@smithy/util-defaults-mode-browser@npm:^4.3.43": + version: 4.3.43 + resolution: "@smithy/util-defaults-mode-browser@npm:4.3.43" + dependencies: + "@smithy/property-provider": ^4.2.12 + "@smithy/smithy-client": ^4.12.7 + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: cac43b7057ae43005208943675880458a4a974d6c2ee25f0846ffc6fb270503d051dce25c14bed5665f7d32aa2dd4ff6257c8fe7603807438ce0c1522002c9c0 + languageName: node + linkType: hard + "@smithy/util-defaults-mode-node@npm:^3.0.14, @smithy/util-defaults-mode-node@npm:^3.0.15, @smithy/util-defaults-mode-node@npm:^3.0.31": version: 3.0.34 resolution: "@smithy/util-defaults-mode-node@npm:3.0.34" @@ -19269,6 +20258,21 @@ __metadata: languageName: node linkType: hard +"@smithy/util-defaults-mode-node@npm:^4.2.47": + version: 4.2.47 + resolution: "@smithy/util-defaults-mode-node@npm:4.2.47" + dependencies: + "@smithy/config-resolver": ^4.4.13 + "@smithy/credential-provider-imds": ^4.2.12 + "@smithy/node-config-provider": ^4.3.12 + "@smithy/property-provider": ^4.2.12 + "@smithy/smithy-client": ^4.12.7 + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: 912b5fe1566534b1549f8ff10d222139ef8ef0821cbf89c6975629ce043c379c80ac83cf339977bac62e368ff597892e064f2e765ef4887cf8cd170e8b7dce43 + languageName: node + linkType: hard + "@smithy/util-endpoints@npm:^2.0.5, @smithy/util-endpoints@npm:^2.1.7": version: 2.1.7 resolution: "@smithy/util-endpoints@npm:2.1.7" @@ -19291,6 +20295,17 @@ __metadata: languageName: node linkType: hard +"@smithy/util-endpoints@npm:^3.3.3": + version: 3.3.3 + resolution: "@smithy/util-endpoints@npm:3.3.3" + dependencies: + "@smithy/node-config-provider": ^4.3.12 + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: ba80337fa6216e8912d5f78bc192c625807ba212071a8504b40b0bcf2b28d293fbd9b180da1ebcd1d15faf60291a6ff534e288266a29dc9cd600bf5eb1d51579 + languageName: node + linkType: hard + "@smithy/util-hex-encoding@npm:2.0.0": version: 2.0.0 resolution: "@smithy/util-hex-encoding@npm:2.0.0" @@ -19338,6 +20353,16 @@ __metadata: languageName: node linkType: hard +"@smithy/util-middleware@npm:^4.2.12": + version: 4.2.12 + resolution: "@smithy/util-middleware@npm:4.2.12" + dependencies: + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: 0fd7e7e8b5b02023928e7ad27f1c44a312524c393c39aa064c3c371e521035028116a5aa16d8011068b288179eb862bef917d798419b9f2a2843bf4ea3897e2b + languageName: node + linkType: hard + "@smithy/util-retry@npm:^3.0.11, @smithy/util-retry@npm:^3.0.3": version: 3.0.11 resolution: "@smithy/util-retry@npm:3.0.11" @@ -19360,6 +20385,17 @@ __metadata: languageName: node linkType: hard +"@smithy/util-retry@npm:^4.2.12": + version: 4.2.12 + resolution: "@smithy/util-retry@npm:4.2.12" + dependencies: + "@smithy/service-error-classification": ^4.2.12 + "@smithy/types": ^4.13.1 + tslib: ^2.6.2 + checksum: 1a8bff8da85d6637310286a3a52f557622cc9bb9dc75d9770640701a9565a3a995aeb34ed68acf333f60bb871dc49e9db196c5a35913b33944e02811f3cfcca2 + languageName: node + linkType: hard + "@smithy/util-stream@npm:^3.1.3, @smithy/util-stream@npm:^3.3.2, @smithy/util-stream@npm:^3.3.4": version: 3.3.4 resolution: "@smithy/util-stream@npm:3.3.4" @@ -19392,6 +20428,22 @@ __metadata: languageName: node linkType: hard +"@smithy/util-stream@npm:^4.5.10, @smithy/util-stream@npm:^4.5.20": + version: 4.5.20 + resolution: "@smithy/util-stream@npm:4.5.20" + dependencies: + "@smithy/fetch-http-handler": ^5.3.15 + "@smithy/node-http-handler": ^4.5.0 + "@smithy/types": ^4.13.1 + "@smithy/util-base64": ^4.3.2 + "@smithy/util-buffer-from": ^4.2.2 + "@smithy/util-hex-encoding": ^4.2.2 + "@smithy/util-utf8": ^4.2.2 + tslib: ^2.6.2 + checksum: c21a5a0639197ebb915efd43cb3b03699733c5bb3f56f14abc8abc7af96456d8fcd4f6391ce70d38075a138c9fc4e2bdf215b00c491d47b599c2ab69186c117d + languageName: node + linkType: hard + "@smithy/util-uri-escape@npm:^3.0.0": version: 3.0.0 resolution: "@smithy/util-uri-escape@npm:3.0.0" @@ -19766,6 +20818,41 @@ __metadata: languageName: node linkType: hard +"@turf/along@npm:^6.0.1, @turf/along@npm:^6.5.0": + version: 6.5.0 + resolution: "@turf/along@npm:6.5.0" + dependencies: + "@turf/bearing": ^6.5.0 + "@turf/destination": ^6.5.0 + "@turf/distance": ^6.5.0 + "@turf/helpers": ^6.5.0 + "@turf/invariant": ^6.5.0 + checksum: adfcda37ce8b20d58a18a4b5e0080c8bb8fe17c73006d18b6b412ed2c8c3c1e4ba836a3ac064636148d6f8d1b0be81a0da9335e10d88da3ad909175b99605201 + languageName: node + linkType: hard + +"@turf/bbox@npm:*": + version: 7.3.4 + resolution: "@turf/bbox@npm:7.3.4" + dependencies: + "@turf/helpers": 7.3.4 + "@turf/meta": 7.3.4 + "@types/geojson": ^7946.0.10 + tslib: ^2.8.1 + checksum: d68b9a3a5da99806e66f5b96a62ac639529e0a5f95de391685e5c3a1b21ccf2da113b58dd8b87964756d0a00bca19c024db3ce262b693dbe3c356610ccc68070 + languageName: node + linkType: hard + +"@turf/bearing@npm:^6.5.0": + version: 6.5.0 + resolution: "@turf/bearing@npm:6.5.0" + dependencies: + "@turf/helpers": ^6.5.0 + "@turf/invariant": ^6.5.0 + checksum: 9c6d5bb85289fee408592ffe8768987512dad1793130364bd43cd8a420ec1ea7b376ce35e22c3fdd91c051eaaa70de4682709111c5cf0ca93681fe9ef238a406 + languageName: node + linkType: hard + "@turf/boolean-clockwise@npm:6.5.0": version: 6.5.0 resolution: "@turf/boolean-clockwise@npm:6.5.0" @@ -19776,13 +20863,53 @@ __metadata: languageName: node linkType: hard -"@turf/helpers@npm:^6.5.0": +"@turf/circle@npm:^6.0.1, @turf/circle@npm:^6.5.0": + version: 6.5.0 + resolution: "@turf/circle@npm:6.5.0" + dependencies: + "@turf/destination": ^6.5.0 + "@turf/helpers": ^6.5.0 + checksum: 319fadc9cdc7b9992bc30e3cb40d7fa435ddb8f59c49dd6ca94658446000fee45e7bafa26ab74dcb0300a4ad5bc2dbeb1143609aa47bde6e9c21f968019cda40 + languageName: node + linkType: hard + +"@turf/destination@npm:^6.5.0": + version: 6.5.0 + resolution: "@turf/destination@npm:6.5.0" + dependencies: + "@turf/helpers": ^6.5.0 + "@turf/invariant": ^6.5.0 + checksum: 3f26d0e6426f224d8a7b0ee6c3a6df21934a345701948354e3062818f4e49ebad89d4218f357fc1e5bfe3e5059a1d97845a355467efe8db4cb07935b7746ef66 + languageName: node + linkType: hard + +"@turf/distance@npm:^6.0.1, @turf/distance@npm:^6.5.0": + version: 6.5.0 + resolution: "@turf/distance@npm:6.5.0" + dependencies: + "@turf/helpers": ^6.5.0 + "@turf/invariant": ^6.5.0 + checksum: 7419d7bd541ae22c116054728252f793df3c7a0b342c928625478cc1c92a7df21f190051db07b66452a21f6ae5d211674d0db3e9aa6c3ab6ffa05e339aac88dc + languageName: node + linkType: hard + +"@turf/helpers@npm:6.x, @turf/helpers@npm:^6.1.4, @turf/helpers@npm:^6.5.0": version: 6.5.0 resolution: "@turf/helpers@npm:6.5.0" checksum: 786cbe0c0027f85db286fb3a0b7be04bb29bd63ec07760a49735ef32e9c5b4a7c059a8f691fafa31c7e0e9be34c281e014dc24077438bae01a09b492a680fb6f languageName: node linkType: hard +"@turf/helpers@npm:7.3.4": + version: 7.3.4 + resolution: "@turf/helpers@npm:7.3.4" + dependencies: + "@types/geojson": ^7946.0.10 + tslib: ^2.8.1 + checksum: e10cc2e9d4e25c46e79310847a9b1a3c8613558defaa8bcc0b2e8622d106c875e4e4c7895942bc89687ab72b12bdce0835cac10362118f8eeb3c0939042a5ccd + languageName: node + linkType: hard + "@turf/invariant@npm:^6.5.0": version: 6.5.0 resolution: "@turf/invariant@npm:6.5.0" @@ -19792,6 +20919,87 @@ __metadata: languageName: node linkType: hard +"@turf/length@npm:^6.0.2, @turf/length@npm:^6.5.0": + version: 6.5.0 + resolution: "@turf/length@npm:6.5.0" + dependencies: + "@turf/distance": ^6.5.0 + "@turf/helpers": ^6.5.0 + "@turf/meta": ^6.5.0 + checksum: 8d532395066c908144829252a754139ea540940c83a1cee5e4f567ce0d25c140cf847062d5608c563e0debefa181fa4b530c09ca3c78a592b40dfb8877c77e5f + languageName: node + linkType: hard + +"@turf/line-intersect@npm:^6.5.0": + version: 6.5.0 + resolution: "@turf/line-intersect@npm:6.5.0" + dependencies: + "@turf/helpers": ^6.5.0 + "@turf/invariant": ^6.5.0 + "@turf/line-segment": ^6.5.0 + "@turf/meta": ^6.5.0 + geojson-rbush: 3.x + checksum: fe339af2e2348254d2ff5782a91abf935bfe322634eb5e9280098ecab3528575d8fdedf38ad7dd46b49c7932fc42e3d7de3a5f47f91d32f63b5398f2eada3632 + languageName: node + linkType: hard + +"@turf/line-segment@npm:^6.5.0": + version: 6.5.0 + resolution: "@turf/line-segment@npm:6.5.0" + dependencies: + "@turf/helpers": ^6.5.0 + "@turf/invariant": ^6.5.0 + "@turf/meta": ^6.5.0 + checksum: 5fa92ca0b3dbb909c957eefd8d98eda2dcb9ea924854507f1f8f8c2ad304d78c84734affd4601d10eda6732e808857020fccb2eaa91a76981fcce3eeafa72757 + languageName: node + linkType: hard + +"@turf/line-slice@npm:^6.5.0": + version: 6.5.0 + resolution: "@turf/line-slice@npm:6.5.0" + dependencies: + "@turf/helpers": ^6.5.0 + "@turf/invariant": ^6.5.0 + "@turf/nearest-point-on-line": ^6.5.0 + checksum: 3ff84d0bd0f201808e596d977d7cc1d6318085f26816728a05fae1a4405afa191dbbf387c6f039b9dbc739874441c21765c2b6f1f0e1b7f62d636df9ea6d7efb + languageName: node + linkType: hard + +"@turf/meta@npm:6.x, @turf/meta@npm:^6.5.0": + version: 6.5.0 + resolution: "@turf/meta@npm:6.5.0" + dependencies: + "@turf/helpers": ^6.5.0 + checksum: 9df6cb5af7af98a477ddcd744fb44e4e890fe8a67afa50bb24cad7d9c15af67362d24f1f8890d706a9c369b18285b0ba42430509add769ad868ac452703bb59b + languageName: node + linkType: hard + +"@turf/meta@npm:7.3.4": + version: 7.3.4 + resolution: "@turf/meta@npm:7.3.4" + dependencies: + "@turf/helpers": 7.3.4 + "@types/geojson": ^7946.0.10 + tslib: ^2.8.1 + checksum: 756bb9e227323fbd9262fbe8323962f0d82852a6452e9e4db1ac5f6947081a450b9389a71b15f109d1d0621cc1b45cc1b68ee4b6c8eaf7e01442ef5cb2dee71b + languageName: node + linkType: hard + +"@turf/nearest-point-on-line@npm:^6.5.0": + version: 6.5.0 + resolution: "@turf/nearest-point-on-line@npm:6.5.0" + dependencies: + "@turf/bearing": ^6.5.0 + "@turf/destination": ^6.5.0 + "@turf/distance": ^6.5.0 + "@turf/helpers": ^6.5.0 + "@turf/invariant": ^6.5.0 + "@turf/line-intersect": ^6.5.0 + "@turf/meta": ^6.5.0 + checksum: 034641131e823bf5f458d88916edc8c593fbee61b6c52562a363d0072dbea14a11e28179671ca108662083ea677ccc6702d039ef36f408c30cf9e70bc50279e5 + languageName: node + linkType: hard + "@tybys/wasm-util@npm:^0.10.0": version: 0.10.1 resolution: "@tybys/wasm-util@npm:0.10.1" @@ -20159,6 +21367,20 @@ __metadata: languageName: node linkType: hard +"@types/geojson@npm:*, @types/geojson@npm:^7946.0.10, @types/geojson@npm:^7946.0.8": + version: 7946.0.16 + resolution: "@types/geojson@npm:7946.0.16" + checksum: 1ff24a288bd5860b766b073ead337d31d73bdc715e5b50a2cee5cb0af57a1ed02cc04ef295f5fa68dc40fe3e4f104dd31282b2b818a5ba3231bc1001ba084e3c + languageName: node + linkType: hard + +"@types/geojson@npm:7946.0.8": + version: 7946.0.8 + resolution: "@types/geojson@npm:7946.0.8" + checksum: add7dc52bf551260e8cad132f70ed868fb28722a1f633bd05846fc79e5e8652f1d2cecd0a309498b1d4bd6850ac45f4535924b43aeee1aced56b014408022ad6 + languageName: node + linkType: hard + "@types/glob@npm:*": version: 8.1.0 resolution: "@types/glob@npm:8.1.0" @@ -20361,6 +21583,33 @@ __metadata: languageName: node linkType: hard +"@types/mapbox-gl@npm:^2.6.0": + version: 2.7.21 + resolution: "@types/mapbox-gl@npm:2.7.21" + dependencies: + "@types/geojson": "*" + checksum: 51bcf2a0481a53a8f8148af9b7f0f9e4d1be2ebdd9390194e4e4a0f8c8375446004c8624e67b4a255384cf0a0ae0c5b9eb99fa865acadca0ac0b0f5853f3f957 + languageName: node + linkType: hard + +"@types/mapbox__point-geometry@npm:*, @types/mapbox__point-geometry@npm:^0.1.2": + version: 0.1.4 + resolution: "@types/mapbox__point-geometry@npm:0.1.4" + checksum: 670191664ea0a6ccb4563500fe815a9aba029ba2f0528d42f9eb560ccb44f6542ba8674e2a3f6d41bd10ad8855b4df4782b5340c980ca182ef9fe6752f2737b8 + languageName: node + linkType: hard + +"@types/mapbox__vector-tile@npm:^1.3.0": + version: 1.3.4 + resolution: "@types/mapbox__vector-tile@npm:1.3.4" + dependencies: + "@types/geojson": "*" + "@types/mapbox__point-geometry": "*" + "@types/pbf": "*" + checksum: 082907ed9cf96b82327dabf3b4c3a14746a825e4a81f0abf46b50e2557f25cbda652725d8af002e5edcc344a83c85e1a4b71a2d39ef4d829c243344a85ac13a6 + languageName: node + linkType: hard + "@types/mime-types@npm:^2.1.1": version: 2.1.4 resolution: "@types/mime-types@npm:2.1.4" @@ -20471,6 +21720,13 @@ __metadata: languageName: node linkType: hard +"@types/pbf@npm:*, @types/pbf@npm:^3.0.2": + version: 3.0.5 + resolution: "@types/pbf@npm:3.0.5" + checksum: c32348c6c81e6c31fe4a1f59983e3a9904727b809fb1e5ddec4fad49abaf93070ec26ee0c04c6516536c181c945b3c7d9e226549eaac3b2e12cb7b57f549a49c + languageName: node + linkType: hard + "@types/pluralize@npm:^0.0.29": version: 0.0.29 resolution: "@types/pluralize@npm:0.0.29" @@ -23111,7 +24367,7 @@ __metadata: languageName: node linkType: hard -"aws-amplify@npm:^6.14.1, aws-amplify@npm:^6.15.7, aws-amplify@npm:^6.15.8": +"aws-amplify@npm:^6.14.1, aws-amplify@npm:^6.15.7, aws-amplify@npm:^6.15.8, aws-amplify@npm:^6.16.0": version: 6.16.3 resolution: "aws-amplify@npm:6.16.3" dependencies: @@ -23319,7 +24575,7 @@ __metadata: languageName: node linkType: hard -"axios@npm:1.13.6, axios@npm:^1.11.0, axios@npm:^1.8.3": +"axios@npm:1.13.6, axios@npm:^1.11.0, axios@npm:^1.8.3, axios@npm:latest": version: 1.13.6 resolution: "axios@npm:1.13.6" dependencies: @@ -24490,10 +25746,10 @@ __metadata: languageName: node linkType: hard -"cdk-from-cfn@npm:^0.271.0": - version: 0.271.0 - resolution: "cdk-from-cfn@npm:0.271.0" - checksum: dc7812dadc7808139138565e26bf321c65d9d07b73bd2cdad0aa70f7d02f9cced25214756b949ed389eac96ef47fdfed37bea4de24bec6331b0f8fcc2d859a7f +"cdk-from-cfn@npm:^0.291.0": + version: 0.291.0 + resolution: "cdk-from-cfn@npm:0.291.0" + checksum: f8014f8aded5d1b2091b5bbc9d825a958bf92c75f0cf11bf7b48c47756672e82c4ff71e043af15e5d7e6db6f09d8e1bbbb48f5fb01e955796a585069b13ffa43 languageName: node linkType: hard @@ -26044,6 +27300,13 @@ __metadata: languageName: node linkType: hard +"csscolorparser@npm:~1.0.3": + version: 1.0.3 + resolution: "csscolorparser@npm:1.0.3" + checksum: 57b30e1dd3e639fb74d63d3ee5a078ae6d0aaba26bc731fdec1a0f50fd77c2531a1fca2bbe07c18e0569255f92064cda0747e0115955fdb8c037332798ca634f + languageName: node + linkType: hard + "cssdb@npm:^7.1.0": version: 7.11.2 resolution: "cssdb@npm:7.11.2" @@ -26265,6 +27528,13 @@ __metadata: languageName: node linkType: hard +"debounce@npm:^1.2.1": + version: 1.2.1 + resolution: "debounce@npm:1.2.1" + checksum: 6c9320aa0973fc42050814621a7a8a78146c1975799b5b3cc1becf1f77ba9a5aa583987884230da0842a03f385def452fad5d60db97c3d1c8b824e38a8edf500 + languageName: node + linkType: hard + "debug@npm:2.6.9, debug@npm:^2.6.0": version: 2.6.9 resolution: "debug@npm:2.6.9" @@ -26944,6 +28214,13 @@ __metadata: languageName: node linkType: hard +"earcut@npm:^2.2.2, earcut@npm:^2.2.3, earcut@npm:^2.2.4": + version: 2.2.4 + resolution: "earcut@npm:2.2.4" + checksum: 01ca51830edd2787819f904ae580087d37351f6048b4565e7add4b3da8a86b7bc19262ab2aa7fdc64129ab03af2d9cec8cccee4d230c82275f97ef285c79aafb + languageName: node + linkType: hard + "eastasianwidth@npm:^0.2.0": version: 0.2.0 resolution: "eastasianwidth@npm:0.2.0" @@ -29238,7 +30515,7 @@ __metadata: languageName: node linkType: hard -"fuzzy@npm:^0.1.3": +"fuzzy@npm:^0.1.1, fuzzy@npm:^0.1.3": version: 0.1.3 resolution: "fuzzy@npm:0.1.3" checksum: 584fcd57a03431707a6d0c1c4a41f17368cdb23d37dcb176d6cbbeeaecaac51be15dec229b3547acfb7db052cb066fcd86db907d40112ac4a3d3a368f88e7105 @@ -29268,6 +30545,33 @@ __metadata: languageName: node linkType: hard +"geojson-flatten@npm:^1.0.4": + version: 1.1.1 + resolution: "geojson-flatten@npm:1.1.1" + checksum: 7d8eb78f34fad41894c140cb13e32941c56923a07812805e7d12c8dd56f58d64c5689fbf9646bbaa828b461cc1c0718b15816248066902ce7d49d501a5305edd + languageName: node + linkType: hard + +"geojson-rbush@npm:3.x": + version: 3.2.0 + resolution: "geojson-rbush@npm:3.2.0" + dependencies: + "@turf/bbox": "*" + "@turf/helpers": 6.x + "@turf/meta": 6.x + "@types/geojson": 7946.0.8 + rbush: ^3.0.1 + checksum: 6d8b9e512cb076af62983bbe1783760dfdca8f5ce37ee731b55e1dc984ff5a4868cf2d30f9e8fa8ff3d682e3498e256876bff5057fc9b00920287021ff42fe39 + languageName: node + linkType: hard + +"geojson-vt@npm:^3.2.1": + version: 3.2.1 + resolution: "geojson-vt@npm:3.2.1" + checksum: db2fc1a452067ee8436fa86e5a138f6ebd3d64893e0af097bc1cc960ec63d67c0ce77444711e9583036192d6bf9ce754bf9b56a76789684fc0fea4d52321fffc + languageName: node + linkType: hard + "get-caller-file@npm:^2.0.1, get-caller-file@npm:^2.0.5": version: 2.0.5 resolution: "get-caller-file@npm:2.0.5" @@ -29371,7 +30675,7 @@ __metadata: languageName: node linkType: hard -"get-stream@npm:^6.0.0": +"get-stream@npm:^6.0.0, get-stream@npm:^6.0.1": version: 6.0.1 resolution: "get-stream@npm:6.0.1" checksum: 49825d57d3fd6964228e6200a58169464b8e8970489b3acdc24906c782fb7f01f9f56f8e6653c4a50713771d6658f7cfe051e5eb8c12e334138c9c918b296341 @@ -29518,6 +30822,13 @@ __metadata: languageName: node linkType: hard +"gl-matrix@npm:^3.2.1, gl-matrix@npm:^3.4.3": + version: 3.4.4 + resolution: "gl-matrix@npm:3.4.4" + checksum: 9aa022ffac0d158212ad0cd29939864ad919ac31cd5dc5a5d35e9d66bb62679ddf152ff7b2173ded20131045e40572b87f31b26a920be2a7583a1516b13b5b4b + languageName: node + linkType: hard + "glob-parent@npm:^6.0.2": version: 6.0.2 resolution: "glob-parent@npm:6.0.2" @@ -30110,6 +31421,13 @@ __metadata: languageName: node linkType: hard +"grid-index@npm:^1.1.0": + version: 1.1.0 + resolution: "grid-index@npm:1.1.0" + checksum: 0ba2a622a52badc86642a002abee79b48c207092347e869528253e634573b9b55494db649fbd1779122d797aaa3b59e284023a96a7a5c666c7375f0e320f8f57 + languageName: node + linkType: hard + "growl@npm:^1.10.5": version: 1.10.5 resolution: "growl@npm:1.10.5" @@ -30340,6 +31658,13 @@ __metadata: languageName: node linkType: hard +"hat@npm:0.0.3": + version: 0.0.3 + resolution: "hat@npm:0.0.3" + checksum: 9d502b26b612ed3e66491296873119574e61a4ef99dfc5501f7bf86115fde35d0f76b1167257c8224c88092eda04e40feda805ad5b86c3b90203f4e15fd99f53 + languageName: node + linkType: hard + "he@npm:^1.2.0": version: 1.2.0 resolution: "he@npm:1.2.0" @@ -30748,7 +32073,7 @@ __metadata: languageName: node linkType: hard -"ieee754@npm:^1.1.13, ieee754@npm:^1.1.4, ieee754@npm:^1.2.1": +"ieee754@npm:^1.1.12, ieee754@npm:^1.1.13, ieee754@npm:^1.1.4, ieee754@npm:^1.2.1": version: 1.2.1 resolution: "ieee754@npm:1.2.1" checksum: b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb @@ -33329,6 +34654,13 @@ __metadata: languageName: node linkType: hard +"kdbush@npm:^3.0.0": + version: 3.0.0 + resolution: "kdbush@npm:3.0.0" + checksum: 3fc8795870bd04f60627e7345b26fd0644beb91bc4164912c9d9378b39c674ba01c31db68ecaf6266d51c9ad81bf5b770b7effa51eeee37553d38293a094a686 + languageName: node + linkType: hard + "keyboard-key@npm:^1.1.0": version: 1.1.0 resolution: "keyboard-key@npm:1.1.0" @@ -33780,13 +35112,20 @@ __metadata: languageName: node linkType: hard -"lodash.debounce@npm:^4.0.8": +"lodash.debounce@npm:^4.0.6, lodash.debounce@npm:^4.0.8": version: 4.0.8 resolution: "lodash.debounce@npm:4.0.8" checksum: 762998a63e095412b6099b8290903e0a8ddcb353ac6e2e0f2d7e7d03abd4275fe3c689d88960eb90b0dde4f177554d51a690f22a343932ecbc50a5d111849987 languageName: node linkType: hard +"lodash.isequal@npm:^4.5.0": + version: 4.5.0 + resolution: "lodash.isequal@npm:4.5.0" + checksum: dfdb2356db19631a4b445d5f37868a095e2402292d59539a987f134a8778c62a2810c2452d11ae9e6dcac71fc9de40a6fedcb20e2952a15b431ad8b29e50e28f + languageName: node + linkType: hard + "lodash.ismatch@npm:^4.4.0": version: 4.4.0 resolution: "lodash.ismatch@npm:4.4.0" @@ -34155,6 +35494,136 @@ __metadata: languageName: node linkType: hard +"mapbox-gl@npm:1.13.1": + version: 1.13.1 + resolution: "mapbox-gl@npm:1.13.1" + dependencies: + "@mapbox/geojson-rewind": ^0.5.0 + "@mapbox/geojson-types": ^1.0.2 + "@mapbox/jsonlint-lines-primitives": ^2.0.2 + "@mapbox/mapbox-gl-supported": ^1.5.0 + "@mapbox/point-geometry": ^0.1.0 + "@mapbox/tiny-sdf": ^1.1.1 + "@mapbox/unitbezier": ^0.0.0 + "@mapbox/vector-tile": ^1.3.1 + "@mapbox/whoots-js": ^3.1.0 + csscolorparser: ~1.0.3 + earcut: ^2.2.2 + geojson-vt: ^3.2.1 + gl-matrix: ^3.2.1 + grid-index: ^1.1.0 + minimist: ^1.2.5 + murmurhash-js: ^1.0.0 + pbf: ^3.2.1 + potpack: ^1.0.1 + quickselect: ^2.0.0 + rw: ^1.3.3 + supercluster: ^7.1.0 + tinyqueue: ^2.0.3 + vt-pbf: ^3.1.1 + checksum: d507b1ce27fe77ed68250096a60a929ea4149fcab3f7037f60a7b73709391a6f78413aa4e98fd2f5e37388cb1a040b5cc15cbf8b164fdb65d98362ba726523d6 + languageName: node + linkType: hard + +"maplibre-gl-draw-circle@npm:^0.1.1": + version: 0.1.1 + resolution: "maplibre-gl-draw-circle@npm:0.1.1" + dependencies: + "@mapbox/mapbox-gl-draw": 1.3.0 + "@turf/along": ^6.0.1 + "@turf/circle": ^6.0.1 + "@turf/distance": ^6.0.1 + "@turf/helpers": ^6.1.4 + "@turf/length": ^6.0.2 + checksum: 6ed336f93954bf0dd0b41c1cd226eba2450525a66ddfa8f7951a67889a2c1fc466d21d58e9475ab446e3d718254730fcc1c13b616c76b7e34668088935a923ce + languageName: node + linkType: hard + +"maplibre-gl-js-amplify@npm:^4.0.2": + version: 4.0.2 + resolution: "maplibre-gl-js-amplify@npm:4.0.2" + dependencies: + "@mapbox/mapbox-gl-draw": 1.3.0 + "@maplibre/maplibre-gl-geocoder": 1.5.0 + "@turf/along": ^6.5.0 + "@turf/circle": ^6.5.0 + "@turf/distance": ^6.5.0 + "@turf/helpers": ^6.5.0 + "@turf/length": ^6.5.0 + "@turf/line-slice": ^6.5.0 + debounce: ^1.2.1 + maplibre-gl-draw-circle: ^0.1.1 + peerDependencies: + "@aws-amplify/geo": 3.x.x + aws-amplify: 6.x.x + maplibre-gl: 1.x.x || 2.x.x + checksum: 6a03d1457626914c17cf9c3d8bf8de3f437fa0e68b2d659c510db153089105740c8fe24b8ca95e5a711994f2cadb512c290ef86d4e75c0e77adf6d56d761144a + languageName: node + linkType: hard + +"maplibre-gl@npm:2.1.9": + version: 2.1.9 + resolution: "maplibre-gl@npm:2.1.9" + dependencies: + "@mapbox/geojson-rewind": ^0.5.1 + "@mapbox/jsonlint-lines-primitives": ^2.0.2 + "@mapbox/mapbox-gl-supported": ^2.0.1 + "@mapbox/point-geometry": ^0.1.0 + "@mapbox/tiny-sdf": ^2.0.4 + "@mapbox/unitbezier": ^0.0.1 + "@mapbox/vector-tile": ^1.3.1 + "@mapbox/whoots-js": ^3.1.0 + "@types/geojson": ^7946.0.8 + "@types/mapbox__point-geometry": ^0.1.2 + "@types/mapbox__vector-tile": ^1.3.0 + "@types/pbf": ^3.0.2 + csscolorparser: ~1.0.3 + earcut: ^2.2.3 + geojson-vt: ^3.2.1 + gl-matrix: ^3.4.3 + murmurhash-js: ^1.0.0 + pbf: ^3.2.1 + potpack: ^1.0.2 + quickselect: ^2.0.0 + supercluster: ^7.1.4 + tinyqueue: ^2.0.3 + vt-pbf: ^3.1.3 + checksum: 9f4c6c60e7a45a79c28f3125eee1e14a5092efedbb4c555c0fa6d6ac0715372cd9844433cc802ef149fbfe97ebb3aac3fda5bb26b4a1e756aad440dba5ed355f + languageName: node + linkType: hard + +"maplibre-gl@npm:^2.4.0": + version: 2.4.0 + resolution: "maplibre-gl@npm:2.4.0" + dependencies: + "@mapbox/geojson-rewind": ^0.5.2 + "@mapbox/jsonlint-lines-primitives": ^2.0.2 + "@mapbox/mapbox-gl-supported": ^2.0.1 + "@mapbox/point-geometry": ^0.1.0 + "@mapbox/tiny-sdf": ^2.0.5 + "@mapbox/unitbezier": ^0.0.1 + "@mapbox/vector-tile": ^1.3.1 + "@mapbox/whoots-js": ^3.1.0 + "@types/geojson": ^7946.0.10 + "@types/mapbox__point-geometry": ^0.1.2 + "@types/mapbox__vector-tile": ^1.3.0 + "@types/pbf": ^3.0.2 + csscolorparser: ~1.0.3 + earcut: ^2.2.4 + geojson-vt: ^3.2.1 + gl-matrix: ^3.4.3 + global-prefix: ^3.0.0 + murmurhash-js: ^1.0.0 + pbf: ^3.2.1 + potpack: ^1.0.2 + quickselect: ^2.0.0 + supercluster: ^7.1.5 + tinyqueue: ^2.0.3 + vt-pbf: ^3.1.3 + checksum: 98d5860fb222e836b06e9f66635fb9559df0c3abc39180a0ddd5c4f2b21eb68243716b95148bd51f3dce6a3d4fa7aa97546d4e29162991c1317062f1434ba38d + languageName: node + linkType: hard + "markdown-it@npm:^12.2.0": version: 12.3.2 resolution: "markdown-it@npm:12.3.2" @@ -34873,6 +36342,13 @@ __metadata: languageName: node linkType: hard +"murmurhash-js@npm:^1.0.0": + version: 1.0.0 + resolution: "murmurhash-js@npm:1.0.0" + checksum: f8569e16db0ba6f953bf88286e97cf737f1efe97b224e537c9308566ab963a067c7eca5b636fb473d6413c4cc3b79690b78ff7ab0f290e75db91c6fde0df92b4 + languageName: node + linkType: hard + "mute-stream@npm:0.0.7": version: 0.0.7 resolution: "mute-stream@npm:0.0.7" @@ -36374,6 +37850,18 @@ __metadata: languageName: node linkType: hard +"pbf@npm:^3.2.1": + version: 3.3.0 + resolution: "pbf@npm:3.3.0" + dependencies: + ieee754: ^1.1.12 + resolve-protobuf-schema: ^2.1.0 + bin: + pbf: bin/pbf + checksum: 79e5dc59a9391789de84b0a6d713fad0dd1e5ce6eb721536af8c9ec49feae04fdebab9f077b760bba858e615a95ac714a7d248ecb43736e904bb8396885e16d6 + languageName: node + linkType: hard + "pbkdf2@npm:^3.1.2, pbkdf2@npm:^3.1.5": version: 3.1.5 resolution: "pbkdf2@npm:3.1.5" @@ -37499,6 +38987,13 @@ __metadata: languageName: node linkType: hard +"potpack@npm:^1.0.1, potpack@npm:^1.0.2": + version: 1.0.2 + resolution: "potpack@npm:1.0.2" + checksum: 670c23898a4257130858b960c2e654d3327c0f6a7e7091ff5846f213e65af8f9476320b995b8ad561a47a4d1c359c7ef347de57d22e7b02597051abb52bc85c4 + languageName: node + linkType: hard + "prebuild-install@npm:^7.1.1": version: 7.1.3 resolution: "prebuild-install@npm:7.1.3" @@ -37805,6 +39300,13 @@ __metadata: languageName: node linkType: hard +"protocol-buffers-schema@npm:^3.3.1": + version: 3.6.0 + resolution: "protocol-buffers-schema@npm:3.6.0" + checksum: 23a08612e5cc903f917ae3b680216ccaf2d889c61daa68d224237f455182fa96fff16872ac94b1954b5dd26fc7e8ce7e9360c54d54ea26218d107b2f059fca37 + languageName: node + linkType: hard + "protocols@npm:^2.0.0, protocols@npm:^2.0.1": version: 2.0.2 resolution: "protocols@npm:2.0.2" @@ -38033,6 +39535,13 @@ __metadata: languageName: node linkType: hard +"quickselect@npm:^2.0.0": + version: 2.0.0 + resolution: "quickselect@npm:2.0.0" + checksum: 6c8d591bc73beae4c1996b7b7138233a7dbbbdde29b7b6d822a02d08cd220fd27613f47d6e9635989b12e250d42ef9da3448de1ed12ad962974e207ab3c3562c + languageName: node + linkType: hard + "raf@npm:^3.4.1": version: 3.4.1 resolution: "raf@npm:3.4.1" @@ -38080,6 +39589,15 @@ __metadata: languageName: node linkType: hard +"rbush@npm:^3.0.1": + version: 3.0.1 + resolution: "rbush@npm:3.0.1" + dependencies: + quickselect: ^2.0.0 + checksum: 55311586c30cdedaa2220de6f1da45fe1fa806263afbf7b6f4c0078983830c2abc7771187896d68bfc9078cb279079fb4c84971831da4b74384aab2c2c417758 + languageName: node + linkType: hard + "rc@npm:1.2.8, rc@npm:^1.2.7, rc@npm:^1.2.8": version: 1.2.8 resolution: "rc@npm:1.2.8" @@ -38220,6 +39738,18 @@ __metadata: languageName: node linkType: hard +"react-map-gl@npm:7.0.23": + version: 7.0.23 + resolution: "react-map-gl@npm:7.0.23" + dependencies: + "@types/mapbox-gl": ^2.6.0 + peerDependencies: + mapbox-gl: "*" + react: ">=16.3.0" + checksum: 3c4b98278c73426e3aa333dc92e6c9352af9b75de99ef82d14e98b47a47dfc6c4a86649a80246accc5b212ba90b7f3e8344b4ed5714dc98717a9ae3fe8238564 + languageName: node + linkType: hard + "react-native-get-random-values@npm:^1.4.0": version: 1.11.0 resolution: "react-native-get-random-values@npm:1.11.0" @@ -38842,6 +40372,15 @@ __metadata: languageName: node linkType: hard +"resolve-protobuf-schema@npm:^2.1.0": + version: 2.1.0 + resolution: "resolve-protobuf-schema@npm:2.1.0" + dependencies: + protocol-buffers-schema: ^3.3.1 + checksum: 8e656b9072b1c001952f851251413bc79d8c771c3015f607b75e1ca3b8bd7c4396068dd19cdbb3019affa03f6457d2c0fd38d981ffd714215cd2e7c2b67221a7 + languageName: node + linkType: hard + "resolve-url-loader@npm:^5.0.0": version: 5.0.0 resolution: "resolve-url-loader@npm:5.0.0" @@ -39190,6 +40729,20 @@ __metadata: languageName: node linkType: hard +"rw@npm:^1.3.3": + version: 1.3.3 + resolution: "rw@npm:1.3.3" + checksum: b1e1ef37d1e79d9dc7050787866e30b6ddcb2625149276045c262c6b4d53075ddc35f387a856a8e76f0d0df59f4cd58fe24707e40797ebee66e542b840ed6a53 + languageName: node + linkType: hard + +"rw@npm:~0.1.4": + version: 0.1.4 + resolution: "rw@npm:0.1.4" + checksum: 2defba766085374cf49adc725a0b811ee2b9a0d344d323b51ca96a2222ffc8c72faaa2806df60bed396e206d0ee47319632b1ed9049db71de963135f5f3981de + languageName: node + linkType: hard + "rxjs@npm:^6.4.0, rxjs@npm:^6.6.0": version: 6.6.7 resolution: "rxjs@npm:6.6.7" @@ -40713,6 +42266,13 @@ __metadata: languageName: node linkType: hard +"subtag@npm:^0.5.0": + version: 0.5.0 + resolution: "subtag@npm:0.5.0" + checksum: f2827c76458cc1871c12c98d11d519c6027dee796c250fee0c5dc47d8afbab634afe9fe992de51887c5dd7172dd115501dcfc077f098bae81471f241260eb115 + languageName: node + linkType: hard + "sucrase@npm:^3.35.0": version: 3.35.1 resolution: "sucrase@npm:3.35.1" @@ -40731,6 +42291,25 @@ __metadata: languageName: node linkType: hard +"suggestions-list@npm:^0.0.2": + version: 0.0.2 + resolution: "suggestions-list@npm:0.0.2" + dependencies: + fuzzy: ^0.1.1 + xtend: ^4.0.0 + checksum: 76ffa6031c355b1c89b340ee6e24a0deee479357e51f3c4a1d9a7c12a6fd96b6351c465043d9948da52c0eb7888e96cadba737c9aeb2720231eaec9398bf807a + languageName: node + linkType: hard + +"supercluster@npm:^7.1.0, supercluster@npm:^7.1.4, supercluster@npm:^7.1.5": + version: 7.1.5 + resolution: "supercluster@npm:7.1.5" + dependencies: + kdbush: ^3.0.0 + checksum: bbebf45927d0019831731c94b78d1c9a1f3e2da0be9875d7ea75c6f261487e0f15d3f1822a9a49256e3c1672bdfb9138f9a5e44e2de99edb06cd1e758083e12d + languageName: node + linkType: hard + "supports-color@npm:^3.1.0": version: 3.2.3 resolution: "supports-color@npm:3.2.3" @@ -41234,6 +42813,13 @@ __metadata: languageName: node linkType: hard +"tinyqueue@npm:^2.0.3": + version: 2.0.3 + resolution: "tinyqueue@npm:2.0.3" + checksum: d7b590088f015a94a17132fa209c2f2a80c45158259af5474901fdf5932e95ea13ff6f034bcc725a6d5f66d3e5b888b048c310229beb25ad5bebb4f0a635abf2 + languageName: node + linkType: hard + "tinyrainbow@npm:^3.0.3": version: 3.0.3 resolution: "tinyrainbow@npm:3.0.3" @@ -41363,6 +42949,17 @@ __metadata: languageName: node linkType: hard +"traverse@npm:~0.6.6": + version: 0.6.11 + resolution: "traverse@npm:0.6.11" + dependencies: + gopd: ^1.2.0 + typedarray.prototype.slice: ^1.0.5 + which-typed-array: ^1.1.18 + checksum: 2b57662da3061ed2aa9977a6a3e315fc19f2cfdeb691700a88c12f4d460146abdb4d726740f47a9ca5fa84d3c50096b76ee50047d1a71c2afb168852ad264e36 + languageName: node + linkType: hard + "tree-dump@npm:^1.0.3, tree-dump@npm:^1.1.0": version: 1.1.0 resolution: "tree-dump@npm:1.1.0" @@ -41866,6 +43463,22 @@ __metadata: languageName: node linkType: hard +"typedarray.prototype.slice@npm:^1.0.5": + version: 1.0.5 + resolution: "typedarray.prototype.slice@npm:1.0.5" + dependencies: + call-bind: ^1.0.8 + define-properties: ^1.2.1 + es-abstract: ^1.23.9 + es-errors: ^1.3.0 + get-proto: ^1.0.1 + math-intrinsics: ^1.1.0 + typed-array-buffer: ^1.0.3 + typed-array-byte-offset: ^1.0.4 + checksum: 4995828640f8079cfbc9e3b4b8fc2e0eeb109edd1a2596806325ae07306dba1cd947e6ed6f63391aa7d5af0ea4f40fddf1b6eb863f8a59869a9dfc5dcfd8eac2 + languageName: node + linkType: hard + "typedarray@npm:^0.0.6": version: 0.0.6 resolution: "typedarray@npm:0.0.6" @@ -42787,6 +44400,17 @@ __metadata: languageName: node linkType: hard +"vt-pbf@npm:^3.1.1, vt-pbf@npm:^3.1.3": + version: 3.1.3 + resolution: "vt-pbf@npm:3.1.3" + dependencies: + "@mapbox/point-geometry": 0.1.0 + "@mapbox/vector-tile": ^1.3.1 + pbf: ^3.2.1 + checksum: a568801ae25f0ffe65ef697bf520c996c8a4067f73f355c0d5815238de90322c8ca207c61220206141cfe6f5b525de875b7eb26e22979a1b768b96d03b93dca7 + languageName: node + linkType: hard + "wait-port@npm:^0.2.7": version: 0.2.14 resolution: "wait-port@npm:0.2.14" @@ -43047,6 +44671,13 @@ __metadata: languageName: node linkType: hard +"wgs84@npm:0.0.0": + version: 0.0.0 + resolution: "wgs84@npm:0.0.0" + checksum: 4f4094c7149fbb50e89ab415aeb2db565c66746be18702ea82ab75c6e6e2a58b552d0898f4b8d6a16bf5824a14917577e46e04a8b20fbf9f09f06d755d381c0b + languageName: node + linkType: hard + "whatwg-fetch@npm:^2.0.4": version: 2.0.4 resolution: "whatwg-fetch@npm:2.0.4" @@ -43153,7 +44784,7 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.19, which-typed-array@npm:^1.1.2": +"which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.18, which-typed-array@npm:^1.1.19, which-typed-array@npm:^1.1.2": version: 1.1.20 resolution: "which-typed-array@npm:1.1.20" dependencies: @@ -43723,7 +45354,7 @@ __metadata: languageName: node linkType: hard -"xtend@npm:^4.0.0, xtend@npm:~4.0.1": +"xtend@npm:^4.0.0, xtend@npm:^4.0.1, xtend@npm:^4.0.2, xtend@npm:~4.0.1": version: 4.0.2 resolution: "xtend@npm:4.0.2" checksum: 366ae4783eec6100f8a02dff02ac907bf29f9a00b82ac0264b4d8b832ead18306797e283cf19de776538babfdcb2101375ec5646b59f08c52128ac4ab812ed0e