in cmd/lb_create.go [183:235]
func newLBCreateOperation(
lbName, lbScheme string,
certificates, ports, securityGroupIDs, subnetIDs []string,
output Output,
acm acm.Client,
ec2 ec2.Client,
elbv2 elbv2.Client,
) (operation lbCreateOperation, errors []error) {
operation = lbCreateOperation{
certificateOperation: certificateOperation{acm: acm, output: output},
elbv2: elbv2,
lbName: lbName,
lbScheme: lbScheme,
output: output,
vpcOperation: vpcOperation{ec2: ec2, output: output},
}
if errs := operation.setPorts(ports); len(errs) > 0 {
errors = append(errors, errs...)
}
if err := operation.inferType(); err != nil {
errors = append(errors, err)
}
if len(certificates) > 0 {
if errs := operation.setCertificateARNs(certificates); len(errs) > 0 {
errors = append(errors, errs...)
}
}
if len(subnetIDs) > 0 {
if err := operation.setSubnetIDs(subnetIDs); err != nil {
errors = append(errors, err)
}
} else {
if err := operation.setDefaultSubnetIDs(); err != nil {
errors = append(errors, err)
}
}
if len(securityGroupIDs) > 0 {
operation.setSecurityGroupIDs(securityGroupIDs)
} else if operation.lbType == "application" {
if err := operation.setDefaultSecurityGroupID(); err != nil {
errors = append(errors, err)
}
}
errors = append(errors, operation.validate()...)
return
}