public DescribeStackResponse DescribeStack()

in Runtime/Core/DeploymentManagement/DeploymentManager.cs [124:174]


        public DescribeStackResponse DescribeStack(DescribeStackRequest request)
        {
            try
            {
                DescribeStacksResponse describeStacksResponse = _amazonCloudFormation.DescribeStacks(new DescribeStacksRequest()
                {
                    StackName = request.StackName
                });

                if (!describeStacksResponse.Stacks.Any())
                {
                    return Response.Fail(new DescribeStackResponse()
                    {
                        ErrorCode = ErrorCode.StackDoesNotExist
                    });
                }

                Stack stack = describeStacksResponse.Stacks[0];
                
                string gameName = stack.Parameters.Find(target => target.ParameterKey == s_gameNameParameter)?.ParameterValue;

                var response = new DescribeStackResponse
                {
                    StackId = stack.StackId,
                    LastUpdatedTime = stack.LastUpdatedTime,
                    StackStatus = stack.StackStatus,
                    GameName = gameName
                };

                if (request.OutputKeys != null)
                {
                    var outputs =
                        stack.Outputs.Where(x => request.OutputKeys.Contains(x.OutputKey))
                        .ToDictionary(key => key.OutputKey, value => value.OutputValue);

                    response.Outputs = outputs;
                }

                return Response.Ok(response);
            }
            catch (AmazonCloudFormationException ex)
            {
                Logger.LogError(ex, ex.Message);

                return Response.Fail(new DescribeStackResponse()
                {
                    ErrorCode = ErrorCode.StackDoesNotExist,
                    ErrorMessage = ex.Message
                });
            }
        }