code: func maximumStackOperationTimeout(template *gocf.Template, logger *logrus.Logger) time.Duration {
  	stackOperationTimeout := 20 * time.Minute
  	// If there is a CloudFront distributon in there then
  	// let's give that a bit more time to settle down...In general
  	// the initial CloudFront distribution takes ~30 minutes
  	for _, eachResource := range template.Resources {
  		if eachResource.Properties.CfnResourceType() == "AWS::CloudFront::Distribution" {
  			stackOperationTimeout = 60 * time.Minute
  			break
  		}
  	}
  	logger.WithField("OperationTimeout", stackOperationTimeout).Debug("Computed operation timeout value")
  	return stackOperationTimeout
  }
docs: // maximumStackOperationTimeout returns the timeout
  // value to use for a stack operation based on the type
  // of resources that it provisions. In general the timeout
  // is short with an exception made for CloudFront
  // distributions