from aws_cdk import Stack
from aws_pdk.identity import UserIdentity
from constructs import Construct
{{#typeSafeApis}}
from {{{moduleName}}}.constructs.apis.{{{apiNameLowercase}}} import {{{apiName}}}
{{/typeSafeApis}}
{{#cloudscapeReactTsWebsites}}
from {{{moduleName}}}.constructs.websites.{{{websiteNameLowercase}}} import {{{websiteName}}}
{{/cloudscapeReactTsWebsites}}

class ApplicationStack(Stack):
    def __init__(self, scope: Construct, id: str, **kwargs) -> None:
        super().__init__(scope, id, **kwargs)

        user_identity = UserIdentity(self, '{}UserIdentity'.format(id){{#allowSignup}}, allow_signup=True{{/allowSignup}})
        {{#typeSafeApis}}
        {{#cloudscapeReactTsWebsites.0}}{{{apiNameLowercase}}} = {{/cloudscapeReactTsWebsites.0}}{{{apiName}}}(self, '{{{apiName}}}', user_identity)
        {{/typeSafeApis}}
        {{#cloudscapeReactTsWebsites}}
        {{{websiteName}}}(self, '{{{websiteName}}}', user_identity{{#typeSafeApis}}, {{{apiNameLowercase}}}{{/typeSafeApis}})
        {{/cloudscapeReactTsWebsites}}

