Documentation
¶
Overview ¶
Package aws provides internal AWS utilities and interfaces for the holodeck project. This package is internal and not intended for external consumption.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type EC2Client ¶
type EC2Client interface {
// VPC operations
CreateVpc(ctx context.Context, params *ec2.CreateVpcInput,
optFns ...func(*ec2.Options)) (*ec2.CreateVpcOutput, error)
ModifyVpcAttribute(ctx context.Context, params *ec2.ModifyVpcAttributeInput,
optFns ...func(*ec2.Options)) (*ec2.ModifyVpcAttributeOutput, error)
DeleteVpc(ctx context.Context, params *ec2.DeleteVpcInput,
optFns ...func(*ec2.Options)) (*ec2.DeleteVpcOutput, error)
DescribeVpcs(ctx context.Context, params *ec2.DescribeVpcsInput,
optFns ...func(*ec2.Options)) (*ec2.DescribeVpcsOutput, error)
// Subnet operations
CreateSubnet(ctx context.Context, params *ec2.CreateSubnetInput,
optFns ...func(*ec2.Options)) (*ec2.CreateSubnetOutput, error)
DeleteSubnet(ctx context.Context, params *ec2.DeleteSubnetInput,
optFns ...func(*ec2.Options)) (*ec2.DeleteSubnetOutput, error)
DescribeSubnets(ctx context.Context, params *ec2.DescribeSubnetsInput,
optFns ...func(*ec2.Options)) (*ec2.DescribeSubnetsOutput, error)
// Internet Gateway operations
CreateInternetGateway(ctx context.Context,
params *ec2.CreateInternetGatewayInput,
optFns ...func(*ec2.Options)) (*ec2.CreateInternetGatewayOutput, error)
AttachInternetGateway(ctx context.Context,
params *ec2.AttachInternetGatewayInput,
optFns ...func(*ec2.Options)) (*ec2.AttachInternetGatewayOutput, error)
DetachInternetGateway(ctx context.Context,
params *ec2.DetachInternetGatewayInput,
optFns ...func(*ec2.Options)) (*ec2.DetachInternetGatewayOutput, error)
DeleteInternetGateway(ctx context.Context,
params *ec2.DeleteInternetGatewayInput,
optFns ...func(*ec2.Options)) (*ec2.DeleteInternetGatewayOutput, error)
DescribeInternetGateways(ctx context.Context,
params *ec2.DescribeInternetGatewaysInput,
optFns ...func(*ec2.Options)) (*ec2.DescribeInternetGatewaysOutput, error)
// Route Table operations
CreateRouteTable(ctx context.Context, params *ec2.CreateRouteTableInput,
optFns ...func(*ec2.Options)) (*ec2.CreateRouteTableOutput, error)
AssociateRouteTable(ctx context.Context, params *ec2.AssociateRouteTableInput,
optFns ...func(*ec2.Options)) (*ec2.AssociateRouteTableOutput, error)
CreateRoute(ctx context.Context, params *ec2.CreateRouteInput,
optFns ...func(*ec2.Options)) (*ec2.CreateRouteOutput, error)
DeleteRouteTable(ctx context.Context, params *ec2.DeleteRouteTableInput,
optFns ...func(*ec2.Options)) (*ec2.DeleteRouteTableOutput, error)
DescribeRouteTables(ctx context.Context, params *ec2.DescribeRouteTablesInput,
optFns ...func(*ec2.Options)) (*ec2.DescribeRouteTablesOutput, error)
ReplaceRouteTableAssociation(ctx context.Context,
params *ec2.ReplaceRouteTableAssociationInput,
optFns ...func(*ec2.Options)) (*ec2.ReplaceRouteTableAssociationOutput,
error)
// Security Group operations
CreateSecurityGroup(ctx context.Context,
params *ec2.CreateSecurityGroupInput,
optFns ...func(*ec2.Options)) (*ec2.CreateSecurityGroupOutput, error)
AuthorizeSecurityGroupIngress(ctx context.Context,
params *ec2.AuthorizeSecurityGroupIngressInput,
optFns ...func(*ec2.Options)) (*ec2.AuthorizeSecurityGroupIngressOutput,
error)
DeleteSecurityGroup(ctx context.Context,
params *ec2.DeleteSecurityGroupInput,
optFns ...func(*ec2.Options)) (*ec2.DeleteSecurityGroupOutput, error)
DescribeSecurityGroups(ctx context.Context,
params *ec2.DescribeSecurityGroupsInput,
optFns ...func(*ec2.Options)) (*ec2.DescribeSecurityGroupsOutput, error)
RevokeSecurityGroupIngress(ctx context.Context,
params *ec2.RevokeSecurityGroupIngressInput,
optFns ...func(*ec2.Options)) (*ec2.RevokeSecurityGroupIngressOutput,
error)
RevokeSecurityGroupEgress(ctx context.Context,
params *ec2.RevokeSecurityGroupEgressInput,
optFns ...func(*ec2.Options)) (*ec2.RevokeSecurityGroupEgressOutput,
error)
// Instance operations
RunInstances(ctx context.Context, params *ec2.RunInstancesInput,
optFns ...func(*ec2.Options)) (*ec2.RunInstancesOutput, error)
TerminateInstances(ctx context.Context, params *ec2.TerminateInstancesInput,
optFns ...func(*ec2.Options)) (*ec2.TerminateInstancesOutput, error)
DescribeInstances(ctx context.Context, params *ec2.DescribeInstancesInput,
optFns ...func(*ec2.Options)) (*ec2.DescribeInstancesOutput, error)
DescribeInstanceTypes(ctx context.Context,
params *ec2.DescribeInstanceTypesInput,
optFns ...func(*ec2.Options)) (*ec2.DescribeInstanceTypesOutput, error)
// Image operations
DescribeImages(ctx context.Context, params *ec2.DescribeImagesInput,
optFns ...func(*ec2.Options)) (*ec2.DescribeImagesOutput, error)
// Network Interface operations
DescribeNetworkInterfaces(ctx context.Context,
params *ec2.DescribeNetworkInterfacesInput,
optFns ...func(*ec2.Options)) (*ec2.DescribeNetworkInterfacesOutput, error)
ModifyNetworkInterfaceAttribute(ctx context.Context,
params *ec2.ModifyNetworkInterfaceAttributeInput,
optFns ...func(*ec2.Options)) (*ec2.ModifyNetworkInterfaceAttributeOutput,
error)
// Tag operations
CreateTags(ctx context.Context, params *ec2.CreateTagsInput,
optFns ...func(*ec2.Options)) (*ec2.CreateTagsOutput, error)
DescribeTags(ctx context.Context, params *ec2.DescribeTagsInput,
optFns ...func(*ec2.Options)) (*ec2.DescribeTagsOutput, error)
// Elastic IP operations
AllocateAddress(ctx context.Context, params *ec2.AllocateAddressInput,
optFns ...func(*ec2.Options)) (*ec2.AllocateAddressOutput, error)
ReleaseAddress(ctx context.Context, params *ec2.ReleaseAddressInput,
optFns ...func(*ec2.Options)) (*ec2.ReleaseAddressOutput, error)
// NAT Gateway operations
CreateNatGateway(ctx context.Context, params *ec2.CreateNatGatewayInput,
optFns ...func(*ec2.Options)) (*ec2.CreateNatGatewayOutput, error)
DeleteNatGateway(ctx context.Context, params *ec2.DeleteNatGatewayInput,
optFns ...func(*ec2.Options)) (*ec2.DeleteNatGatewayOutput, error)
DescribeNatGateways(ctx context.Context, params *ec2.DescribeNatGatewaysInput,
optFns ...func(*ec2.Options)) (*ec2.DescribeNatGatewaysOutput, error)
// Subnet attribute operations
ModifySubnetAttribute(ctx context.Context, params *ec2.ModifySubnetAttributeInput,
optFns ...func(*ec2.Options)) (*ec2.ModifySubnetAttributeOutput, error)
}
EC2Client defines the interface for EC2 operations used throughout holodeck. This interface enables dependency injection and facilitates unit testing by allowing mock implementations to be substituted for the real EC2 client.
The interface follows AWS SDK for Go v2 best practices for unit testing: https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/unit-testing.html
type ELBv2Client ¶
type ELBv2Client interface {
// Load Balancer operations
CreateLoadBalancer(ctx context.Context, params *elasticloadbalancingv2.CreateLoadBalancerInput,
optFns ...func(*elasticloadbalancingv2.Options)) (*elasticloadbalancingv2.CreateLoadBalancerOutput, error)
DescribeLoadBalancers(ctx context.Context, params *elasticloadbalancingv2.DescribeLoadBalancersInput,
optFns ...func(*elasticloadbalancingv2.Options)) (*elasticloadbalancingv2.DescribeLoadBalancersOutput, error)
DeleteLoadBalancer(ctx context.Context, params *elasticloadbalancingv2.DeleteLoadBalancerInput,
optFns ...func(*elasticloadbalancingv2.Options)) (*elasticloadbalancingv2.DeleteLoadBalancerOutput, error)
// Target Group operations
CreateTargetGroup(ctx context.Context, params *elasticloadbalancingv2.CreateTargetGroupInput,
optFns ...func(*elasticloadbalancingv2.Options)) (*elasticloadbalancingv2.CreateTargetGroupOutput, error)
DescribeTargetGroups(ctx context.Context, params *elasticloadbalancingv2.DescribeTargetGroupsInput,
optFns ...func(*elasticloadbalancingv2.Options)) (*elasticloadbalancingv2.DescribeTargetGroupsOutput, error)
DescribeTargetHealth(ctx context.Context, params *elasticloadbalancingv2.DescribeTargetHealthInput,
optFns ...func(*elasticloadbalancingv2.Options)) (*elasticloadbalancingv2.DescribeTargetHealthOutput, error)
DeleteTargetGroup(ctx context.Context, params *elasticloadbalancingv2.DeleteTargetGroupInput,
optFns ...func(*elasticloadbalancingv2.Options)) (*elasticloadbalancingv2.DeleteTargetGroupOutput, error)
// Target registration operations
RegisterTargets(ctx context.Context, params *elasticloadbalancingv2.RegisterTargetsInput,
optFns ...func(*elasticloadbalancingv2.Options)) (*elasticloadbalancingv2.RegisterTargetsOutput, error)
DeregisterTargets(ctx context.Context, params *elasticloadbalancingv2.DeregisterTargetsInput,
optFns ...func(*elasticloadbalancingv2.Options)) (*elasticloadbalancingv2.DeregisterTargetsOutput, error)
// Listener operations
CreateListener(ctx context.Context, params *elasticloadbalancingv2.CreateListenerInput,
optFns ...func(*elasticloadbalancingv2.Options)) (*elasticloadbalancingv2.CreateListenerOutput, error)
DescribeListeners(ctx context.Context, params *elasticloadbalancingv2.DescribeListenersInput,
optFns ...func(*elasticloadbalancingv2.Options)) (*elasticloadbalancingv2.DescribeListenersOutput, error)
DeleteListener(ctx context.Context, params *elasticloadbalancingv2.DeleteListenerInput,
optFns ...func(*elasticloadbalancingv2.Options)) (*elasticloadbalancingv2.DeleteListenerOutput, error)
// Tag operations
AddTags(ctx context.Context, params *elasticloadbalancingv2.AddTagsInput,
optFns ...func(*elasticloadbalancingv2.Options)) (*elasticloadbalancingv2.AddTagsOutput, error)
}
ELBv2Client defines the interface for ELBv2 operations used throughout holodeck. This interface enables dependency injection and facilitates unit testing.
type ELBv2Types ¶
type ELBv2Types struct {
LoadBalancerTypeEnum elbv2types.LoadBalancerTypeEnum
ProtocolEnum elbv2types.ProtocolEnum
TargetTypeEnum elbv2types.TargetTypeEnum
}
ELBv2Types provides access to ELBv2 types for convenience.
type SSMClient ¶
type SSMClient interface {
// GetParameter retrieves a parameter value from SSM Parameter Store.
GetParameter(ctx context.Context, params *ssm.GetParameterInput,
optFns ...func(*ssm.Options)) (*ssm.GetParameterOutput, error)
}
SSMClient defines the interface for SSM operations used throughout holodeck. This interface enables dependency injection and facilitates unit testing by allowing mock implementations to be substituted for the real SSM client.