AWSTemplateFormatVersion: "2010-09-09" Transform: AWS::Serverless-2016-10-31 Description: > Networking stack A VPC with private and public subnets # More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst Globals: Function: Tracing: Active Resources: LambdaLayers: Type: AWS::Serverless::Application Properties: Location: Common/layers.yaml LoggingStack: Type: AWS::Serverless::Application Properties: Location: Common/logging.yaml NetworkStack: Type: AWS::Serverless::Application Properties: Location: Common/network.yaml Parameters: EnvironmentName: graph Security: Type: AWS::Serverless::Application Properties: Location: Common/security.yaml ServiceEndpoints: Type: AWS::Serverless::Application Properties: Location: Common/service_endpoints.yaml Parameters: RouteTable1: !GetAtt NetworkStack.Outputs.PrivateRouteTable1 RouteTable2: !GetAtt NetworkStack.Outputs.PrivateRouteTable2 RouteTable3: !GetAtt NetworkStack.Outputs.PublicRouteTable Subnet1: !GetAtt NetworkStack.Outputs.PrivateSubnet1 Subnet2: !GetAtt NetworkStack.Outputs.PrivateSubnet2 VPC: !GetAtt NetworkStack.Outputs.VPC VPCCidrBlock: !GetAtt NetworkStack.Outputs.VPCCidrBlock GraphStack: Type: AWS::Serverless::Application Properties: Parameters: DBClusterId: !Sub "GraphETLDBCluster-${AWS::Region}" Location: https://aws-neptune-customer-samples.s3.amazonaws.com/v2/cloudformation-templates/neptune-ml-nested-stack.json GraphLoaderStack: Type: AWS::Serverless::Application Properties: Location: GraphLoader/template.yaml Parameters: NeptuneLoadFromS3IAMRoleArn: !GetAtt GraphStack.Outputs.NeptuneLoadFromS3IAMRoleArn NeptuneLoaderEndpoint: !GetAtt GraphStack.Outputs.LoaderEndpoint NeptuneSubnet: !GetAtt GraphStack.Outputs.Subnet1 NeptuneSecurityGroup: !GetAtt GraphStack.Outputs.NeptuneSecurityGroup LoggingBucketName: !GetAtt LoggingStack.Outputs.BucketName VPC: !GetAtt NetworkStack.Outputs.VPC PrivateSubnet1: !GetAtt NetworkStack.Outputs.PrivateSubnet1 PrivateSubnet2: !GetAtt NetworkStack.Outputs.PrivateSubnet2 PowertoolsLayer: !GetAtt LambdaLayers.Outputs.PowertoolsLayer MasterKey: !GetAtt Security.Outputs.MasterKey VPCCidrBlock: !GetAtt NetworkStack.Outputs.VPCCidrBlock VideoIngestStack: Type: AWS::Serverless::Application Properties: Location: VideoProcessing/template.yaml Parameters: GraphLoadStagingBucket: !GetAtt GraphLoaderStack.Outputs.GraphLoadStagingBucket GraphLoadQueueName: !GetAtt GraphLoaderStack.Outputs.GraphLoadQueueName GraphLoadQueueArn: !GetAtt GraphLoaderStack.Outputs.GraphLoadQueueArn LoggingBucketName: !GetAtt LoggingStack.Outputs.BucketName VPC: !GetAtt NetworkStack.Outputs.VPC PrivateSubnet1: !GetAtt NetworkStack.Outputs.PrivateSubnet1 PrivateSubnet2: !GetAtt NetworkStack.Outputs.PrivateSubnet2 PowertoolsLayer: !GetAtt LambdaLayers.Outputs.PowertoolsLayer MasterKey: !GetAtt Security.Outputs.MasterKey VPCCidrBlock: !GetAtt NetworkStack.Outputs.VPCCidrBlock EndpointsSecurityGroup: !GetAtt ServiceEndpoints.Outputs.InterfaceEndpointSecurityGroup UploadsStack: Type: AWS::Serverless::Application Properties: Location: Uploads/template.yaml Parameters: VideoProcessingStateMachineArn: !GetAtt VideoIngestStack.Outputs.VideoProcessingStateMachineArn LoggingBucketName: !GetAtt LoggingStack.Outputs.BucketName VPC: !GetAtt NetworkStack.Outputs.VPC PrivateSubnet1: !GetAtt NetworkStack.Outputs.PrivateSubnet1 PrivateSubnet2: !GetAtt NetworkStack.Outputs.PrivateSubnet2 PowertoolsLayer: !GetAtt LambdaLayers.Outputs.PowertoolsLayer MasterKey: !GetAtt Security.Outputs.MasterKey VPCCidrBlock: !GetAtt NetworkStack.Outputs.VPCCidrBlock