chore: extract validation logic from gateway function

This commit is contained in:
Julian Sommer
2026-04-23 10:46:16 +10:00
parent 3b0376c3a6
commit 0f89db1893
43 changed files with 535 additions and 212 deletions
@@ -9,8 +9,6 @@ import (
// DescribeAccountAttributes returns static account attributes for the Spinifex platform
func DescribeAccountAttributes(input *ec2.DescribeAccountAttributesInput) (*ec2.DescribeAccountAttributesOutput, error) {
slog.Debug("DescribeAccountAttributes called")
// Build set of requested attribute names for filtering
requestedAttrs := make(map[string]bool)
for _, name := range input.AttributeNames {
+13 -5
View File
@@ -9,15 +9,23 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateAssociateAddressInput validates the input parameters
func ValidateAssociateAddressInput(input *ec2.AssociateAddressInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.AllocationId == nil || *input.AllocationId == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// AssociateAddress handles the EC2 AssociateAddress API call.
func AssociateAddress(input *ec2.AssociateAddressInput, natsConn *nats.Conn, accountID string) (ec2.AssociateAddressOutput, error) {
var output ec2.AssociateAddressOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.AllocationId == nil || *input.AllocationId == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateAssociateAddressInput(input); err != nil {
return output, err
}
svc := handlers_ec2_eip.NewNATSEIPService(natsConn)
@@ -9,15 +9,23 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateDisassociateAddressInput validates the input parameters
func ValidateDisassociateAddressInput(input *ec2.DisassociateAddressInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.AssociationId == nil || *input.AssociationId == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// DisassociateAddress handles the EC2 DisassociateAddress API call.
func DisassociateAddress(input *ec2.DisassociateAddressInput, natsConn *nats.Conn, accountID string) (ec2.DisassociateAddressOutput, error) {
var output ec2.DisassociateAddressOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.AssociationId == nil || *input.AssociationId == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateDisassociateAddressInput(input); err != nil {
return output, err
}
svc := handlers_ec2_eip.NewNATSEIPService(natsConn)
+13 -5
View File
@@ -9,15 +9,23 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateReleaseAddressInput validates the input parameters
func ValidateReleaseAddressInput(input *ec2.ReleaseAddressInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.AllocationId == nil || *input.AllocationId == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// ReleaseAddress handles the EC2 ReleaseAddress API call.
func ReleaseAddress(input *ec2.ReleaseAddressInput, natsConn *nats.Conn, accountID string) (ec2.ReleaseAddressOutput, error) {
var output ec2.ReleaseAddressOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.AllocationId == nil || *input.AllocationId == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateReleaseAddressInput(input); err != nil {
return output, err
}
svc := handlers_ec2_eip.NewNATSEIPService(natsConn)
@@ -9,18 +9,26 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateAttachInternetGatewayInput validates the input parameters
func ValidateAttachInternetGatewayInput(input *ec2.AttachInternetGatewayInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.InternetGatewayId == nil || *input.InternetGatewayId == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
if input.VpcId == nil || *input.VpcId == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// AttachInternetGateway handles the EC2 AttachInternetGateway API call
func AttachInternetGateway(input *ec2.AttachInternetGatewayInput, natsConn *nats.Conn, accountID string) (ec2.AttachInternetGatewayOutput, error) {
var output ec2.AttachInternetGatewayOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.InternetGatewayId == nil || *input.InternetGatewayId == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
}
if input.VpcId == nil || *input.VpcId == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateAttachInternetGatewayInput(input); err != nil {
return output, err
}
svc := handlers_ec2_igw.NewNATSIGWService(natsConn)
@@ -9,15 +9,23 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateDeleteInternetGatewayInput validates the input parameters
func ValidateDeleteInternetGatewayInput(input *ec2.DeleteInternetGatewayInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.InternetGatewayId == nil || *input.InternetGatewayId == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// DeleteInternetGateway handles the EC2 DeleteInternetGateway API call
func DeleteInternetGateway(input *ec2.DeleteInternetGatewayInput, natsConn *nats.Conn, accountID string) (ec2.DeleteInternetGatewayOutput, error) {
var output ec2.DeleteInternetGatewayOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.InternetGatewayId == nil || *input.InternetGatewayId == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateDeleteInternetGatewayInput(input); err != nil {
return output, err
}
svc := handlers_ec2_igw.NewNATSIGWService(natsConn)
@@ -9,18 +9,26 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateDetachInternetGatewayInput validates the input parameters
func ValidateDetachInternetGatewayInput(input *ec2.DetachInternetGatewayInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.InternetGatewayId == nil || *input.InternetGatewayId == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
if input.VpcId == nil || *input.VpcId == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// DetachInternetGateway handles the EC2 DetachInternetGateway API call
func DetachInternetGateway(input *ec2.DetachInternetGatewayInput, natsConn *nats.Conn, accountID string) (ec2.DetachInternetGatewayOutput, error) {
var output ec2.DetachInternetGatewayOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.InternetGatewayId == nil || *input.InternetGatewayId == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
}
if input.VpcId == nil || *input.VpcId == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateDetachInternetGatewayInput(input); err != nil {
return output, err
}
svc := handlers_ec2_igw.NewNATSIGWService(natsConn)
@@ -8,15 +8,27 @@ import (
"time"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/mulgadc/spinifex/spinifex/awserrors"
"github.com/mulgadc/spinifex/spinifex/utils"
"github.com/nats-io/nats.go"
)
// ValidateGetConsoleOutputInput validates the input parameters
func ValidateGetConsoleOutputInput(input *ec2.GetConsoleOutputInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.InstanceId == nil || *input.InstanceId == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// GetConsoleOutput retrieves console output for a specific instance via NATS.
// Routes directly to the node running the instance via ec2.{instanceID}.GetConsoleOutput.
func GetConsoleOutput(input *ec2.GetConsoleOutputInput, natsConn *nats.Conn, accountID string) (*ec2.GetConsoleOutputOutput, error) {
if input.InstanceId == nil || *input.InstanceId == "" {
return nil, fmt.Errorf("InstanceId is required")
if err := ValidateGetConsoleOutputInput(input); err != nil {
return nil, err
}
jsonData, err := json.Marshal(input)
@@ -14,12 +14,23 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateRebootInstancesInput validates the input parameters
func ValidateRebootInstancesInput(input *ec2.RebootInstancesInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if len(input.InstanceIds) == 0 {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// RebootInstances sends reboot commands to specified instances via NATS.
// Unlike stop+start, reboot keeps the instance running and sends a QMP system_reset.
// Returns an empty response on success (AWS returns no state-change data).
func RebootInstances(input *ec2.RebootInstancesInput, natsConn *nats.Conn, accountID string) (*ec2.RebootInstancesOutput, error) {
if len(input.InstanceIds) == 0 {
return nil, fmt.Errorf("no instance IDs provided")
if err := ValidateRebootInstancesInput(input); err != nil {
return nil, err
}
slog.Info("RebootInstances: Processing request", "instance_count", len(input.InstanceIds))
@@ -70,7 +70,7 @@ func TestRebootInstances_EmptyInstanceIds(t *testing.T) {
_, err := RebootInstances(input, nc, "123456789012")
require.Error(t, err)
assert.Contains(t, err.Error(), "no instance IDs provided")
assert.Equal(t, awserrors.ErrorMissingParameter, err.Error())
}
func TestRebootInstances_NATSRequestFails(t *testing.T) {
@@ -3,11 +3,11 @@ package gateway_ec2_instance
import (
"encoding/json"
"errors"
"fmt"
"log/slog"
"time"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/mulgadc/spinifex/spinifex/awserrors"
"github.com/mulgadc/spinifex/spinifex/utils"
"github.com/nats-io/nats.go"
)
@@ -17,11 +17,22 @@ type startStoppedInstanceRequest struct {
InstanceID string `json:"instance_id"`
}
// ValidateStartInstancesInput validates the input parameters
func ValidateStartInstancesInput(input *ec2.StartInstancesInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if len(input.InstanceIds) == 0 {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// StartInstances sends start requests to the ec2.start queue group topic.
// Any available daemon can pick up the request and launch the stopped instance.
func StartInstances(input *ec2.StartInstancesInput, natsConn *nats.Conn, accountID string) (*ec2.StartInstancesOutput, error) {
if len(input.InstanceIds) == 0 {
return nil, fmt.Errorf("no instance IDs provided")
if err := ValidateStartInstancesInput(input); err != nil {
return nil, err
}
slog.Info("StartInstances: Processing request", "instance_count", len(input.InstanceIds))
@@ -6,6 +6,7 @@ import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/mulgadc/spinifex/spinifex/awserrors"
"github.com/nats-io/nats.go"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
@@ -82,7 +83,7 @@ func TestStartInstances_EmptyInstanceIds(t *testing.T) {
_, err := StartInstances(input, nc, "123456789012")
require.Error(t, err)
assert.Contains(t, err.Error(), "no instance IDs provided")
assert.Equal(t, awserrors.ErrorMissingParameter, err.Error())
}
func TestStartInstances_NilInstanceIdSkipped(t *testing.T) {
+14 -2
View File
@@ -8,16 +8,28 @@ import (
"time"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/mulgadc/spinifex/spinifex/awserrors"
"github.com/mulgadc/spinifex/spinifex/types"
"github.com/mulgadc/spinifex/spinifex/utils"
"github.com/nats-io/nats.go"
)
// ValidateStopInstancesInput validates the input parameters
func ValidateStopInstancesInput(input *ec2.StopInstancesInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if len(input.InstanceIds) == 0 {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// StopInstances sends stop commands to specified instances via NATS
// Uses system_powerdown with stop_instance attribute to prevent auto-restart on daemon boot
func StopInstances(input *ec2.StopInstancesInput, natsConn *nats.Conn, accountID string) (*ec2.StopInstancesOutput, error) {
if len(input.InstanceIds) == 0 {
return nil, fmt.Errorf("no instance IDs provided")
if err := ValidateStopInstancesInput(input); err != nil {
return nil, err
}
slog.Info("StopInstances: Processing request", "instance_count", len(input.InstanceIds))
@@ -6,6 +6,7 @@ import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/mulgadc/spinifex/spinifex/awserrors"
"github.com/mulgadc/spinifex/spinifex/types"
"github.com/nats-io/nats.go"
"github.com/stretchr/testify/assert"
@@ -83,7 +84,7 @@ func TestStopInstances_EmptyInstanceIds(t *testing.T) {
_, err := StopInstances(input, nc, "123456789012")
require.Error(t, err)
assert.Contains(t, err.Error(), "no instance IDs provided")
assert.Equal(t, awserrors.ErrorMissingParameter, err.Error())
}
func TestStopInstances_NilInstanceIdSkipped(t *testing.T) {
@@ -8,6 +8,7 @@ import (
"time"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/mulgadc/spinifex/spinifex/awserrors"
"github.com/mulgadc/spinifex/spinifex/types"
"github.com/mulgadc/spinifex/spinifex/utils"
"github.com/nats-io/nats.go"
@@ -18,11 +19,22 @@ type terminateStoppedInstanceRequest struct {
InstanceID string `json:"instance_id"`
}
// ValidateTerminateInstancesInput validates the input parameters
func ValidateTerminateInstancesInput(input *ec2.TerminateInstancesInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if len(input.InstanceIds) == 0 {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// TerminateInstances sends terminate commands to specified instances via NATS
// Uses system_powerdown with stop_instance attribute to prevent restart
func TerminateInstances(input *ec2.TerminateInstancesInput, natsConn *nats.Conn, accountID string) (*ec2.TerminateInstancesOutput, error) {
if len(input.InstanceIds) == 0 {
return nil, fmt.Errorf("no instance IDs provided")
if err := ValidateTerminateInstancesInput(input); err != nil {
return nil, err
}
slog.Info("TerminateInstances: Processing request", "instance_count", len(input.InstanceIds))
@@ -6,6 +6,7 @@ import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/mulgadc/spinifex/spinifex/awserrors"
"github.com/mulgadc/spinifex/spinifex/types"
"github.com/nats-io/nats.go"
"github.com/stretchr/testify/assert"
@@ -83,7 +84,7 @@ func TestTerminateInstances_EmptyInstanceIds(t *testing.T) {
_, err := TerminateInstances(input, nc, "123456789012")
require.Error(t, err)
assert.Contains(t, err.Error(), "no instance IDs provided")
assert.Equal(t, awserrors.ErrorMissingParameter, err.Error())
}
func TestTerminateInstances_NilInstanceIdSkipped(t *testing.T) {
@@ -9,18 +9,26 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateCreatePlacementGroupInput validates the input parameters
func ValidateCreatePlacementGroupInput(input *ec2.CreatePlacementGroupInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.GroupName == nil || *input.GroupName == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
if input.Strategy == nil || *input.Strategy == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// CreatePlacementGroup handles the EC2 CreatePlacementGroup API call.
func CreatePlacementGroup(input *ec2.CreatePlacementGroupInput, natsConn *nats.Conn, accountID string) (ec2.CreatePlacementGroupOutput, error) {
var output ec2.CreatePlacementGroupOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.GroupName == nil || *input.GroupName == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
}
if input.Strategy == nil || *input.Strategy == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateCreatePlacementGroupInput(input); err != nil {
return output, err
}
svc := handlers_ec2_placementgroup.NewNATSPlacementGroupService(natsConn)
@@ -9,15 +9,23 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateDeletePlacementGroupInput validates the input parameters
func ValidateDeletePlacementGroupInput(input *ec2.DeletePlacementGroupInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.GroupName == nil || *input.GroupName == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// DeletePlacementGroup handles the EC2 DeletePlacementGroup API call.
func DeletePlacementGroup(input *ec2.DeletePlacementGroupInput, natsConn *nats.Conn, accountID string) (ec2.DeletePlacementGroupOutput, error) {
var output ec2.DeletePlacementGroupOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.GroupName == nil || *input.GroupName == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateDeletePlacementGroupInput(input); err != nil {
return output, err
}
svc := handlers_ec2_placementgroup.NewNATSPlacementGroupService(natsConn)
@@ -9,15 +9,23 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateCreateNetworkInterfaceInput validates the input parameters
func ValidateCreateNetworkInterfaceInput(input *ec2.CreateNetworkInterfaceInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.SubnetId == nil || *input.SubnetId == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// CreateNetworkInterface handles the EC2 CreateNetworkInterface API call
func CreateNetworkInterface(input *ec2.CreateNetworkInterfaceInput, natsConn *nats.Conn, accountID string) (ec2.CreateNetworkInterfaceOutput, error) {
var output ec2.CreateNetworkInterfaceOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.SubnetId == nil || *input.SubnetId == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateCreateNetworkInterfaceInput(input); err != nil {
return output, err
}
svc := handlers_ec2_vpc.NewNATSVPCService(natsConn)
+16 -8
View File
@@ -9,18 +9,26 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateCreateSubnetInput validates the input parameters
func ValidateCreateSubnetInput(input *ec2.CreateSubnetInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.VpcId == nil || *input.VpcId == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
if input.CidrBlock == nil || *input.CidrBlock == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// CreateSubnet handles the EC2 CreateSubnet API call
func CreateSubnet(input *ec2.CreateSubnetInput, natsConn *nats.Conn, accountID string) (ec2.CreateSubnetOutput, error) {
var output ec2.CreateSubnetOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.VpcId == nil || *input.VpcId == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
}
if input.CidrBlock == nil || *input.CidrBlock == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateCreateSubnetInput(input); err != nil {
return output, err
}
svc := handlers_ec2_vpc.NewNATSVPCService(natsConn)
+13 -5
View File
@@ -9,15 +9,23 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateCreateVpcInput validates the input parameters
func ValidateCreateVpcInput(input *ec2.CreateVpcInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.CidrBlock == nil || *input.CidrBlock == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// CreateVpc handles the EC2 CreateVpc API call
func CreateVpc(input *ec2.CreateVpcInput, natsConn *nats.Conn, accountID string) (ec2.CreateVpcOutput, error) {
var output ec2.CreateVpcOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.CidrBlock == nil || *input.CidrBlock == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateCreateVpcInput(input); err != nil {
return output, err
}
svc := handlers_ec2_vpc.NewNATSVPCService(natsConn)
@@ -9,15 +9,23 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateDeleteNetworkInterfaceInput validates the input parameters
func ValidateDeleteNetworkInterfaceInput(input *ec2.DeleteNetworkInterfaceInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.NetworkInterfaceId == nil || *input.NetworkInterfaceId == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// DeleteNetworkInterface handles the EC2 DeleteNetworkInterface API call
func DeleteNetworkInterface(input *ec2.DeleteNetworkInterfaceInput, natsConn *nats.Conn, accountID string) (ec2.DeleteNetworkInterfaceOutput, error) {
var output ec2.DeleteNetworkInterfaceOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.NetworkInterfaceId == nil || *input.NetworkInterfaceId == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateDeleteNetworkInterfaceInput(input); err != nil {
return output, err
}
svc := handlers_ec2_vpc.NewNATSVPCService(natsConn)
+13 -5
View File
@@ -9,15 +9,23 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateDeleteSubnetInput validates the input parameters
func ValidateDeleteSubnetInput(input *ec2.DeleteSubnetInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.SubnetId == nil || *input.SubnetId == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// DeleteSubnet handles the EC2 DeleteSubnet API call
func DeleteSubnet(input *ec2.DeleteSubnetInput, natsConn *nats.Conn, accountID string) (ec2.DeleteSubnetOutput, error) {
var output ec2.DeleteSubnetOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.SubnetId == nil || *input.SubnetId == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateDeleteSubnetInput(input); err != nil {
return output, err
}
svc := handlers_ec2_vpc.NewNATSVPCService(natsConn)
+13 -5
View File
@@ -9,15 +9,23 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateDeleteVpcInput validates the input parameters
func ValidateDeleteVpcInput(input *ec2.DeleteVpcInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.VpcId == nil || *input.VpcId == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// DeleteVpc handles the EC2 DeleteVpc API call
func DeleteVpc(input *ec2.DeleteVpcInput, natsConn *nats.Conn, accountID string) (ec2.DeleteVpcOutput, error) {
var output ec2.DeleteVpcOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.VpcId == nil || *input.VpcId == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateDeleteVpcInput(input); err != nil {
return output, err
}
svc := handlers_ec2_vpc.NewNATSVPCService(natsConn)
@@ -9,18 +9,26 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateDescribeVpcAttributeInput validates the input parameters
func ValidateDescribeVpcAttributeInput(input *ec2.DescribeVpcAttributeInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.VpcId == nil || *input.VpcId == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
if input.Attribute == nil || *input.Attribute == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// DescribeVpcAttribute handles the EC2 DescribeVpcAttribute API call
func DescribeVpcAttribute(input *ec2.DescribeVpcAttributeInput, natsConn *nats.Conn, accountID string) (ec2.DescribeVpcAttributeOutput, error) {
var output ec2.DescribeVpcAttributeOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.VpcId == nil || *input.VpcId == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
}
if input.Attribute == nil || *input.Attribute == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateDescribeVpcAttributeInput(input); err != nil {
return output, err
}
svc := handlers_ec2_vpc.NewNATSVPCService(natsConn)
@@ -9,15 +9,23 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateModifyNetworkInterfaceAttributeInput validates the input parameters
func ValidateModifyNetworkInterfaceAttributeInput(input *ec2.ModifyNetworkInterfaceAttributeInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.NetworkInterfaceId == nil || *input.NetworkInterfaceId == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// ModifyNetworkInterfaceAttribute handles the EC2 ModifyNetworkInterfaceAttribute API call
func ModifyNetworkInterfaceAttribute(input *ec2.ModifyNetworkInterfaceAttributeInput, natsConn *nats.Conn, accountID string) (ec2.ModifyNetworkInterfaceAttributeOutput, error) {
var output ec2.ModifyNetworkInterfaceAttributeOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.NetworkInterfaceId == nil || *input.NetworkInterfaceId == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateModifyNetworkInterfaceAttributeInput(input); err != nil {
return output, err
}
svc := handlers_ec2_vpc.NewNATSVPCService(natsConn)
@@ -9,15 +9,23 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateModifySubnetAttributeInput validates the input parameters
func ValidateModifySubnetAttributeInput(input *ec2.ModifySubnetAttributeInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.SubnetId == nil || *input.SubnetId == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// ModifySubnetAttribute handles the EC2 ModifySubnetAttribute API call
func ModifySubnetAttribute(input *ec2.ModifySubnetAttributeInput, natsConn *nats.Conn, accountID string) (ec2.ModifySubnetAttributeOutput, error) {
var output ec2.ModifySubnetAttributeOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.SubnetId == nil || *input.SubnetId == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateModifySubnetAttributeInput(input); err != nil {
return output, err
}
svc := handlers_ec2_vpc.NewNATSVPCService(natsConn)
+13 -5
View File
@@ -9,15 +9,23 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateModifyVpcAttributeInput validates the input parameters
func ValidateModifyVpcAttributeInput(input *ec2.ModifyVpcAttributeInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.VpcId == nil || *input.VpcId == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// ModifyVpcAttribute handles the EC2 ModifyVpcAttribute API call
func ModifyVpcAttribute(input *ec2.ModifyVpcAttributeInput, natsConn *nats.Conn, accountID string) (ec2.ModifyVpcAttributeOutput, error) {
var output ec2.ModifyVpcAttributeOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.VpcId == nil || *input.VpcId == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateModifyVpcAttributeInput(input); err != nil {
return output, err
}
svc := handlers_ec2_vpc.NewNATSVPCService(natsConn)
+16 -8
View File
@@ -9,18 +9,26 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateCreateListenerInput validates the input parameters
func ValidateCreateListenerInput(input *elbv2.CreateListenerInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.LoadBalancerArn == nil || *input.LoadBalancerArn == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
if len(input.DefaultActions) == 0 {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// CreateListener handles the ELBv2 CreateListener API call.
func CreateListener(input *elbv2.CreateListenerInput, natsConn *nats.Conn, accountID string) (elbv2.CreateListenerOutput, error) {
var output elbv2.CreateListenerOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.LoadBalancerArn == nil || *input.LoadBalancerArn == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
}
if len(input.DefaultActions) == 0 {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateCreateListenerInput(input); err != nil {
return output, err
}
svc := handlers_elbv2.NewNATSELBv2Service(natsConn)
+13 -5
View File
@@ -9,15 +9,23 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateCreateLoadBalancerInput validates the input parameters
func ValidateCreateLoadBalancerInput(input *elbv2.CreateLoadBalancerInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.Name == nil || *input.Name == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// CreateLoadBalancer handles the ELBv2 CreateLoadBalancer API call.
func CreateLoadBalancer(input *elbv2.CreateLoadBalancerInput, natsConn *nats.Conn, accountID string) (elbv2.CreateLoadBalancerOutput, error) {
var output elbv2.CreateLoadBalancerOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.Name == nil || *input.Name == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateCreateLoadBalancerInput(input); err != nil {
return output, err
}
svc := handlers_elbv2.NewNATSELBv2Service(natsConn)
+13 -5
View File
@@ -9,15 +9,23 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateCreateTargetGroupInput validates the input parameters
func ValidateCreateTargetGroupInput(input *elbv2.CreateTargetGroupInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.Name == nil || *input.Name == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// CreateTargetGroup handles the ELBv2 CreateTargetGroup API call.
func CreateTargetGroup(input *elbv2.CreateTargetGroupInput, natsConn *nats.Conn, accountID string) (elbv2.CreateTargetGroupOutput, error) {
var output elbv2.CreateTargetGroupOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.Name == nil || *input.Name == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateCreateTargetGroupInput(input); err != nil {
return output, err
}
svc := handlers_elbv2.NewNATSELBv2Service(natsConn)
+13 -5
View File
@@ -9,15 +9,23 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateDeleteListenerInput validates the input parameters
func ValidateDeleteListenerInput(input *elbv2.DeleteListenerInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.ListenerArn == nil || *input.ListenerArn == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// DeleteListener handles the ELBv2 DeleteListener API call.
func DeleteListener(input *elbv2.DeleteListenerInput, natsConn *nats.Conn, accountID string) (elbv2.DeleteListenerOutput, error) {
var output elbv2.DeleteListenerOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.ListenerArn == nil || *input.ListenerArn == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateDeleteListenerInput(input); err != nil {
return output, err
}
svc := handlers_elbv2.NewNATSELBv2Service(natsConn)
+13 -5
View File
@@ -9,15 +9,23 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateDeleteLoadBalancerInput validates the input parameters
func ValidateDeleteLoadBalancerInput(input *elbv2.DeleteLoadBalancerInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.LoadBalancerArn == nil || *input.LoadBalancerArn == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// DeleteLoadBalancer handles the ELBv2 DeleteLoadBalancer API call.
func DeleteLoadBalancer(input *elbv2.DeleteLoadBalancerInput, natsConn *nats.Conn, accountID string) (elbv2.DeleteLoadBalancerOutput, error) {
var output elbv2.DeleteLoadBalancerOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.LoadBalancerArn == nil || *input.LoadBalancerArn == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateDeleteLoadBalancerInput(input); err != nil {
return output, err
}
svc := handlers_elbv2.NewNATSELBv2Service(natsConn)
+13 -5
View File
@@ -9,15 +9,23 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateDeleteTargetGroupInput validates the input parameters
func ValidateDeleteTargetGroupInput(input *elbv2.DeleteTargetGroupInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.TargetGroupArn == nil || *input.TargetGroupArn == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// DeleteTargetGroup handles the ELBv2 DeleteTargetGroup API call.
func DeleteTargetGroup(input *elbv2.DeleteTargetGroupInput, natsConn *nats.Conn, accountID string) (elbv2.DeleteTargetGroupOutput, error) {
var output elbv2.DeleteTargetGroupOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.TargetGroupArn == nil || *input.TargetGroupArn == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateDeleteTargetGroupInput(input); err != nil {
return output, err
}
svc := handlers_elbv2.NewNATSELBv2Service(natsConn)
+16 -8
View File
@@ -9,18 +9,26 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateDeregisterTargetsInput validates the input parameters
func ValidateDeregisterTargetsInput(input *elbv2.DeregisterTargetsInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.TargetGroupArn == nil || *input.TargetGroupArn == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
if len(input.Targets) == 0 {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// DeregisterTargets handles the ELBv2 DeregisterTargets API call.
func DeregisterTargets(input *elbv2.DeregisterTargetsInput, natsConn *nats.Conn, accountID string) (elbv2.DeregisterTargetsOutput, error) {
var output elbv2.DeregisterTargetsOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.TargetGroupArn == nil || *input.TargetGroupArn == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
}
if len(input.Targets) == 0 {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateDeregisterTargetsInput(input); err != nil {
return output, err
}
svc := handlers_elbv2.NewNATSELBv2Service(natsConn)
@@ -9,15 +9,23 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateDescribeLoadBalancerAttributesInput validates the input parameters
func ValidateDescribeLoadBalancerAttributesInput(input *elbv2.DescribeLoadBalancerAttributesInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.LoadBalancerArn == nil || *input.LoadBalancerArn == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// DescribeLoadBalancerAttributes handles the ELBv2 DescribeLoadBalancerAttributes API call.
func DescribeLoadBalancerAttributes(input *elbv2.DescribeLoadBalancerAttributesInput, natsConn *nats.Conn, accountID string) (elbv2.DescribeLoadBalancerAttributesOutput, error) {
var output elbv2.DescribeLoadBalancerAttributesOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.LoadBalancerArn == nil || *input.LoadBalancerArn == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateDescribeLoadBalancerAttributesInput(input); err != nil {
return output, err
}
svc := handlers_elbv2.NewNATSELBv2Service(natsConn)
@@ -9,15 +9,23 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateDescribeTargetGroupAttributesInput validates the input parameters
func ValidateDescribeTargetGroupAttributesInput(input *elbv2.DescribeTargetGroupAttributesInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.TargetGroupArn == nil || *input.TargetGroupArn == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// DescribeTargetGroupAttributes handles the ELBv2 DescribeTargetGroupAttributes API call.
func DescribeTargetGroupAttributes(input *elbv2.DescribeTargetGroupAttributesInput, natsConn *nats.Conn, accountID string) (elbv2.DescribeTargetGroupAttributesOutput, error) {
var output elbv2.DescribeTargetGroupAttributesOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.TargetGroupArn == nil || *input.TargetGroupArn == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateDescribeTargetGroupAttributesInput(input); err != nil {
return output, err
}
svc := handlers_elbv2.NewNATSELBv2Service(natsConn)
+13 -5
View File
@@ -9,15 +9,23 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateDescribeTargetHealthInput validates the input parameters
func ValidateDescribeTargetHealthInput(input *elbv2.DescribeTargetHealthInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.TargetGroupArn == nil || *input.TargetGroupArn == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// DescribeTargetHealth handles the ELBv2 DescribeTargetHealth API call.
func DescribeTargetHealth(input *elbv2.DescribeTargetHealthInput, natsConn *nats.Conn, accountID string) (elbv2.DescribeTargetHealthOutput, error) {
var output elbv2.DescribeTargetHealthOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.TargetGroupArn == nil || *input.TargetGroupArn == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateDescribeTargetHealthInput(input); err != nil {
return output, err
}
svc := handlers_elbv2.NewNATSELBv2Service(natsConn)
+13 -5
View File
@@ -8,15 +8,23 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateGetLBConfigInput validates the input parameters
func ValidateGetLBConfigInput(input *handlers_elbv2.GetLBConfigInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.LBID == nil || *input.LBID == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// GetLBConfig handles the ELBv2 GetLBConfig API call.
func GetLBConfig(input *handlers_elbv2.GetLBConfigInput, natsConn *nats.Conn, accountID string) (handlers_elbv2.GetLBConfigOutput, error) {
var output handlers_elbv2.GetLBConfigOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.LBID == nil || *input.LBID == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateGetLBConfigInput(input); err != nil {
return output, err
}
svc := handlers_elbv2.NewNATSELBv2Service(natsConn)
+13 -5
View File
@@ -8,15 +8,23 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateLBAgentHeartbeatInput validates the input parameters
func ValidateLBAgentHeartbeatInput(input *handlers_elbv2.LBAgentHeartbeatInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.LBID == nil || *input.LBID == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// LBAgentHeartbeat handles the ELBv2 LBAgentHeartbeat API call.
func LBAgentHeartbeat(input *handlers_elbv2.LBAgentHeartbeatInput, natsConn *nats.Conn, accountID string) (handlers_elbv2.LBAgentHeartbeatOutput, error) {
var output handlers_elbv2.LBAgentHeartbeatOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.LBID == nil || *input.LBID == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateLBAgentHeartbeatInput(input); err != nil {
return output, err
}
svc := handlers_elbv2.NewNATSELBv2Service(natsConn)
@@ -9,18 +9,26 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateModifyLoadBalancerAttributesInput validates the input parameters
func ValidateModifyLoadBalancerAttributesInput(input *elbv2.ModifyLoadBalancerAttributesInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.LoadBalancerArn == nil || *input.LoadBalancerArn == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
if len(input.Attributes) == 0 {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// ModifyLoadBalancerAttributes handles the ELBv2 ModifyLoadBalancerAttributes API call.
func ModifyLoadBalancerAttributes(input *elbv2.ModifyLoadBalancerAttributesInput, natsConn *nats.Conn, accountID string) (elbv2.ModifyLoadBalancerAttributesOutput, error) {
var output elbv2.ModifyLoadBalancerAttributesOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.LoadBalancerArn == nil || *input.LoadBalancerArn == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
}
if len(input.Attributes) == 0 {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateModifyLoadBalancerAttributesInput(input); err != nil {
return output, err
}
svc := handlers_elbv2.NewNATSELBv2Service(natsConn)
@@ -9,18 +9,26 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateModifyTargetGroupAttributesInput validates the input parameters
func ValidateModifyTargetGroupAttributesInput(input *elbv2.ModifyTargetGroupAttributesInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.TargetGroupArn == nil || *input.TargetGroupArn == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
if len(input.Attributes) == 0 {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// ModifyTargetGroupAttributes handles the ELBv2 ModifyTargetGroupAttributes API call.
func ModifyTargetGroupAttributes(input *elbv2.ModifyTargetGroupAttributesInput, natsConn *nats.Conn, accountID string) (elbv2.ModifyTargetGroupAttributesOutput, error) {
var output elbv2.ModifyTargetGroupAttributesOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.TargetGroupArn == nil || *input.TargetGroupArn == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
}
if len(input.Attributes) == 0 {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateModifyTargetGroupAttributesInput(input); err != nil {
return output, err
}
svc := handlers_elbv2.NewNATSELBv2Service(natsConn)
+16 -8
View File
@@ -9,18 +9,26 @@ import (
"github.com/nats-io/nats.go"
)
// ValidateRegisterTargetsInput validates the input parameters
func ValidateRegisterTargetsInput(input *elbv2.RegisterTargetsInput) error {
if input == nil {
return errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.TargetGroupArn == nil || *input.TargetGroupArn == "" {
return errors.New(awserrors.ErrorMissingParameter)
}
if len(input.Targets) == 0 {
return errors.New(awserrors.ErrorMissingParameter)
}
return nil
}
// RegisterTargets handles the ELBv2 RegisterTargets API call.
func RegisterTargets(input *elbv2.RegisterTargetsInput, natsConn *nats.Conn, accountID string) (elbv2.RegisterTargetsOutput, error) {
var output elbv2.RegisterTargetsOutput
if input == nil {
return output, errors.New(awserrors.ErrorInvalidParameterValue)
}
if input.TargetGroupArn == nil || *input.TargetGroupArn == "" {
return output, errors.New(awserrors.ErrorMissingParameter)
}
if len(input.Targets) == 0 {
return output, errors.New(awserrors.ErrorMissingParameter)
if err := ValidateRegisterTargetsInput(input); err != nil {
return output, err
}
svc := handlers_elbv2.NewNATSELBv2Service(natsConn)