// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\r
// SPDX-License-Identifier: Apache-2.0
// This is a generated file from the original deployment recipe. It contains properties for
// all of the settings defined in the recipe file. It is recommended to not modify this file in order
// to allow easy updates to the file when the original recipe that this project was created from has updates.
// This class is marked as a partial class. If you add new settings to the recipe file, those settings should be
// added to partial versions of this class outside of the Generated folder for example in the Configuration folder.
using System.Collections.Generic;
namespace ConsoleAppEcsFargateService.Configurations
{
    public partial class Configuration
    {
        /// 
        /// The desired number of ECS tasks to run for the service.
        /// 
        public double DesiredCount { get; set; }
        /// 
        /// The Identity and Access Management Role that provides AWS credentials to the application to access AWS services.
        /// 
        public IAMRoleConfiguration ApplicationIAMRole { get; set; }
        /// 
        /// The ECS cluster that will host the deployed application.
        /// 
        public ECSClusterConfiguration ECSCluster { get; set; }
        /// 
        /// Virtual Private Cloud to launch container instance into a virtual network.
        /// 
        public VpcConfiguration Vpc { get; set; }
        /// 
        /// Comma-delimited list of security groups assigned to the ECS service.
        /// 
        public string ECSServiceSecurityGroups { get; set; }
        /// 
        public double? TaskCpu { get; set; }
        /// 
        public double? TaskMemory { get; set; }
        public AutoScalingConfiguration AutoScaling { get; set; }
        /// 
        /// The environment variables that are set for the ECS environment.
        /// 
        public Dictionary ECSEnvironmentVariables { get; set; } = new Dictionary { };
        /// A parameterless constructor is needed for 
        /// or the classes will fail to initialize.
        /// The warnings are disabled since a parameterless constructor will allow non-nullable properties to be initialized with null values.
#nullable disable warnings
        public Configuration()
        {
        }
#nullable restore warnings
        public Configuration(
            IAMRoleConfiguration applicationIAMRole,
            ECSClusterConfiguration ecsCluster,
            VpcConfiguration vpc,
            string ecsServiceSecurityGroups,
            AutoScalingConfiguration autoScaling,
            Dictionary ecsEnvironmentVariables
            )
        {
            ApplicationIAMRole = applicationIAMRole;
            ECSCluster = ecsCluster;
            Vpc = vpc;
            ECSServiceSecurityGroups = ecsServiceSecurityGroups;
            AutoScaling = autoScaling;
            ECSEnvironmentVariables = ecsEnvironmentVariables;
        }
    }
}