code: func (t *EmpireTemplate) Validate() error {
  	r := func(n string) error {
  		return errors.New(fmt.Sprintf("%s is required", n))
  	}
  
  	if t.VpcId == "" {
  		return r("VpcId")
  	}
  	if t.Cluster == "" {
  		return r("Cluster")
  	}
  	if t.ServiceRole == "" {
  		return r("ServiceRole")
  	}
  	if t.HostedZone == nil {
  		return r("HostedZone")
  	}
  	if t.InternalSecurityGroupID == "" {
  		return r("InternalSecurityGroupID")
  	}
  	if t.ExternalSecurityGroupID == "" {
  		return r("ExternalSecurityGroupID")
  	}
  	if len(t.InternalSubnetIDs) == 0 {
  		return r("InternalSubnetIDs")
  	}
  	if len(t.ExternalSubnetIDs) == 0 {
  		return r("ExternalSubnetIDs")
  	}
  	if t.CustomResourcesTopic == "" {
  		return r("CustomResourcesTopic")
  	}
  
  	return nil
  }
docs: // Validate checks that all of the expected values are provided.