ec2

package
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 19, 2026 License: MIT Imports: 43 Imported by: 0

README

EC2

Parity grade: A · SDK aws-sdk-go-v2/service/ec2 · last audited 2026-07-11 (f1a54d26) · protocol ec2-query (AWS query -> XML)

Coverage

Feature families 6 (6 ok)
Known gaps 1
Deferred items 2
Resource leaks not-fully-audited
Known gaps
  • DeleteVpc/DeleteSubnet force-cascade-delete instead of DependencyViolation (tracked: bd gopherstack-b5m; re-confirmed present post-refactor, logic unchanged — still deferred, large blast radius across 16 test files)
Deferred
  • VPC/RouteTable/IGW/NAT/TGW/VPCEndpoint (batch-4) op-by-op — flagged higher-defect-odds, UNAUDITED
  • EBS snapshot lineage, ENI attach/detach edge cases, pagination internals beyond tags/instances

More

Documentation

Index

Constants

View Source
const (
	SpotFleetAllocationStrategyLowestPrice   = "lowestPrice"
	SpotFleetAllocationStrategyDiversified   = "diversified"
	SpotFleetAllocationStrategyCapacityOpt   = "capacityOptimized"
	SpotFleetAllocationStrategyPriceCapacity = "priceCapacityOptimized"
)

SpotFleet allocation strategies.

View Source
const (
	SpotFleetStateActive     = "active"
	SpotFleetStateCancelled  = "cancelled"
	SpotFleetStateCancelling = "cancelled_running"
	SpotFleetStateFailed     = "failed"
	SpotFleetStateModifying  = "modifying"
	SpotFleetStateSubmitted  = "submitted"
)

SpotFleet request states.

View Source
const (
	SpotFleetActivityFulfilled          = "fulfilled"
	SpotFleetActivityPendingFulfillment = "pending_fulfillment"
	SpotFleetActivityPendingTermination = "pending_termination"
	SpotFleetActivityError              = "error"
)

SpotFleet activity statuses.

View Source
const (
	SpotFleetTerminationDefault       = "default"
	SpotFleetTerminationNoTermination = "noTermination"
)

SpotFleet excess capacity termination policies.

Variables

View Source
var (
	// ErrAddressTransferNotFound is returned when an address transfer is not found.
	ErrAddressTransferNotFound = errors.New("InvalidAddressTransfer.NotFound")
	// ErrCapacityReservationNotFound is returned when a capacity reservation is not found.
	ErrCapacityReservationNotFound = errors.New("InvalidCapacityReservationId.NotFound")
	// ErrReservedInstancesNotFound is returned when reserved instances are not found.
	ErrReservedInstancesNotFound = errors.New("InvalidReservedInstancesId.NotFound")
	// ErrTransitGatewayAttachmentNotFound is returned when a TGW attachment is not found.
	ErrTransitGatewayAttachmentNotFound = errors.New("InvalidTransitGatewayAttachmentID.NotFound")
	// ErrVpcPeeringConnectionNotFound is returned when a VPC peering connection is not found.
	ErrVpcPeeringConnectionNotFound = errors.New("InvalidVpcPeeringConnectionID.NotFound")
	// ErrVpcEndpointNotFound is returned when a VPC endpoint service is not found.
	ErrVpcEndpointNotFound = errors.New("InvalidVpcEndpointService.NotFound")
	// ErrByoipCidrNotFound is returned when a BYOIP CIDR is not found.
	ErrByoipCidrNotFound = errors.New("InvalidByoipCidr.NotFound")
	// ErrHostNotFound is returned when a dedicated host is not found.
	ErrHostNotFound = errors.New("InvalidHostID.NotFound")
)
View Source
var (
	// ErrVpnConnectionNotFound is returned when a VPN connection ID does not exist.
	ErrVpnConnectionNotFound = errors.New("InvalidVpnConnectionID.NotFound")
	// ErrVpnGatewayNotFound is returned when a VPN gateway ID does not exist.
	ErrVpnGatewayNotFound = errors.New("InvalidVpnGatewayID.NotFound")
	// ErrCustomerGatewayNotFound is returned when a customer gateway ID does not exist.
	ErrCustomerGatewayNotFound = errors.New("InvalidCustomerGatewayID.NotFound")
	// ErrVpnTunnelNotFound is returned when a VPN tunnel's outside IP address does not match
	// any tunnel on the given VPN connection.
	ErrVpnTunnelNotFound = errors.New("InvalidParameterValue")
	// ErrVpcEndpointServiceNotFound is returned when a VPC endpoint service config ID does not exist.
	ErrVpcEndpointServiceNotFound = errors.New("InvalidVpcEndpointService.NotFound")
	// ErrIpamNotFound is returned when an IPAM ID does not exist.
	ErrIpamNotFound = errors.New("InvalidIpamId.NotFound")
	// ErrIpamPoolNotFound is returned when an IPAM pool ID does not exist.
	ErrIpamPoolNotFound = errors.New("InvalidIpamPoolId.NotFound")
	// ErrIpamAllocationNotFound is returned when an IPAM pool allocation ID does not exist.
	ErrIpamAllocationNotFound = errors.New("InvalidIpamPoolAllocationId.NotFound")
	// ErrIpamScopeNotFound is returned when an IPAM scope ID does not exist.
	ErrIpamScopeNotFound = errors.New("InvalidIpamScopeId.NotFound")
	// ErrIpamScopeDefault is returned when an attempt is made to delete a default IPAM scope.
	ErrIpamScopeDefault = errors.New("IncorrectState")
	// ErrIpamPoolCidrNotFound is returned when a CIDR is not provisioned to an IPAM pool.
	ErrIpamPoolCidrNotFound = errors.New("InvalidParameterValue")
	// ErrIpamResourceDiscoveryNotFound is returned when an IPAM resource discovery ID does not exist.
	ErrIpamResourceDiscoveryNotFound = errors.New("InvalidIpamResourceDiscoveryId.NotFound")
)
View Source
var (
	// ErrCapacityReservationFleetNotFound is returned when a Capacity Reservation
	// Fleet is not found.
	ErrCapacityReservationFleetNotFound = errors.New("InvalidCapacityReservationFleetId.NotFound")
	// ErrCapacityBlockOfferingNotFound is returned when a Capacity Block offering
	// is not found (e.g. it expired or was never issued by DescribeCapacityBlockOfferings).
	ErrCapacityBlockOfferingNotFound = errors.New("InvalidCapacityBlockOfferingId.NotFound")
	// ErrCapacityBlockExtensionOfferingNotFound is returned when a Capacity Block
	// extension offering is not found.
	ErrCapacityBlockExtensionOfferingNotFound = errors.New(
		"InvalidCapacityBlockExtensionOfferingId.NotFound",
	)
	// ErrCapacityManagerDataExportNotFound is returned when a Capacity Manager
	// data export configuration is not found.
	ErrCapacityManagerDataExportNotFound = errors.New("InvalidCapacityManagerDataExportId.NotFound")
	// ErrCapacityReservationBillingRequestNotFound is returned when there is no
	// billing ownership request for a given Capacity Reservation.
	ErrCapacityReservationBillingRequestNotFound = errors.New(
		"InvalidCapacityReservationBillingRequestId.NotFound",
	)
)
View Source
var (
	// ErrEgressOnlyIGWNotFound is returned when an egress-only internet gateway is not found.
	ErrEgressOnlyIGWNotFound = errors.New("InvalidEgressOnlyInternetGatewayID.NotFound")
	// ErrIAMAssociationNotFound is returned when an IAM instance profile association is not found.
	ErrIAMAssociationNotFound = errors.New("InvalidAssociationID.NotFound")
	// ErrTGWRouteTableNotFound is returned when a transit gateway route table is not found.
	ErrTGWRouteTableNotFound = errors.New("InvalidTransitGatewayRouteTableId.NotFound")
)
View Source
var (
	ErrAddressNotFound     = errors.New("InvalidAllocationID.NotFound")
	ErrAssociationNotFound = errors.New("InvalidAssociationID.NotFound")
)

Errors for Elastic IP operations.

View Source
var (
	// Volumes / network interfaces / subnets (formerly batch1 errors).
	ErrVolumeModificationNotFound         = errors.New("InvalidVolumeModification.NotFound")
	ErrNetworkInterfacePermissionNotFound = errors.New("InvalidPermission.NotFound")
	ErrSubnetCIDRNotFound                 = errors.New(
		"InvalidSubnetCidrBlockAssociationID.NotFound",
	)
)

Sentinel errors consolidated from across the backend op-family files.

View Source
var (
	ErrEndpointConnectionNotificationNotFound = errors.New(
		"InvalidConnectionNotification.NotFound",
	)
	ErrSnapshotAlreadyLocked   = errors.New("InvalidSnapshot.AlreadyLocked")
	ErrSnapshotNotLocked       = errors.New("InvalidSnapshot.NotLocked")
	ErrReplaceRootTaskNotFound = errors.New("InvalidReplaceRootVolumeTaskID.NotFound")
)

Volumes / snapshots / vpc endpoints (formerly batch2 errors).

View Source
var (
	ErrInstanceConnectEndpointNotFound = errors.New("InvalidInstanceConnectEndpointId.NotFound")
	ErrInstanceEventWindowNotFound     = errors.New("InvalidInstanceEventWindowId.NotFound")
	ErrCapacityReservationFull         = errors.New("CapacityReservationFull")
)

Instance connect/event-window/capacity (formerly batch3 errors).

View Source
var (
	ErrManagedPrefixListNotFound         = errors.New("InvalidPrefixListID.NotFound")
	ErrClientVpnEndpointNotFound         = errors.New("InvalidClientVpnEndpointId.NotFound")
	ErrTransitGatewayConnectNotFound     = errors.New("InvalidTransitGatewayAttachmentID.NotFound")
	ErrTransitGatewayConnectPeerNotFound = errors.New("InvalidTransitGatewayConnectPeerId.NotFound")
	ErrTGWPrefixListRefNotFound          = errors.New("InvalidTransitGatewayPrefixListReferenceId.NotFound")
	ErrVerifiedAccessEndpointNotFound    = errors.New("InvalidVerifiedAccessEndpointId.NotFound")
	ErrVerifiedAccessGroupNotFound       = errors.New("InvalidVerifiedAccessGroupId.NotFound")
	ErrVerifiedAccessInstanceNotFound    = errors.New("InvalidVerifiedAccessInstanceId.NotFound")
	ErrVerifiedAccessTrustProviderNF     = errors.New("InvalidVerifiedAccessTrustProviderId.NotFound")
)

Managed prefix lists / Client VPN / TGW connect / Verified Access (formerly batch4 errors).

View Source
var (
	ErrTrafficMirrorFilterNotFound      = errors.New("InvalidTrafficMirrorFilterId.NotFound")
	ErrTrafficMirrorFilterRuleNotFound  = errors.New("InvalidTrafficMirrorFilterRuleId.NotFound")
	ErrTrafficMirrorSessionNotFound     = errors.New("InvalidTrafficMirrorSessionId.NotFound")
	ErrTrafficMirrorTargetNotFound      = errors.New("InvalidTrafficMirrorTargetId.NotFound")
	ErrFleetNotFound                    = errors.New("InvalidFleetId.NotFound")
	ErrNetworkInsightsPathNotFound      = errors.New("InvalidNetworkInsightsPathId.NotFound")
	ErrNetworkInsightsAnalysisNotFound  = errors.New("InvalidNetworkInsightsAnalysisId.NotFound")
	ErrNetworkInsightsAccessScopeNF     = errors.New("InvalidNetworkInsightsAccessScopeId.NotFound")
	ErrNetworkInsightsAccessScopeAnaNF  = errors.New("InvalidNetworkInsightsAccessScopeAnalysisId.NotFound")
	ErrCarrierGatewayNotFound           = errors.New("InvalidCarrierGatewayId.NotFound")
	ErrReservedInstancesListingNotFound = errors.New("InvalidReservedInstancesListingId.NotFound")
)

Traffic mirror / fleet / network insights / carrier gateway / reserved instances (formerly batch5).

View Source
var (
	ErrSnapshotNotFound       = errors.New("InvalidSnapshotID.NotFound")
	ErrNetworkACLNotFound     = errors.New("InvalidNetworkAclID.NotFound")
	ErrLaunchTemplateNotFound = errors.New("InvalidLaunchTemplateID.NotFound")
)

Network ACL / launch template / snapshot / vpc-attr constants (formerly refinement2).

View Source
var (
	// ErrTGWPropagationNotFound is returned when disabling a transit gateway
	// route table propagation that was never enabled.
	ErrTGWPropagationNotFound = errors.New("InvalidTransitGatewayRouteTablePropagation.NotFound")

	// ErrInterruptibleAllocationNotFound is returned when updating an
	// interruptible Capacity Reservation allocation that was never created.
	ErrInterruptibleAllocationNotFound = errors.New("InvalidCapacityReservationId.NotFound")

	// ErrPublicIPNotFound is returned when an Elastic IP lookup by public IP
	// address (rather than allocation ID) fails.
	ErrPublicIPNotFound = errors.New("InvalidAddress.NotFound")
)

TGW propagation / interruptible capacity / elastic IP (formerly parity-final errors).

View Source
var (
	// ErrIpamResourceDiscoveryAssociationNotFound is returned when a resource discovery
	// association ID does not exist.
	ErrIpamResourceDiscoveryAssociationNotFound = errors.New("InvalidIpamResourceDiscoveryAssociationId.NotFound")
	// ErrIpamResourceDiscoveryInUse is returned when deleting a resource discovery that is
	// still associated with one or more IPAMs, or is the default discovery of an IPAM.
	ErrIpamResourceDiscoveryInUse = errors.New("IncorrectState")
	// ErrIpamByoasnNotFound is returned when an ASN has not been provisioned to any IPAM.
	// BYOASNs are keyed by their ASN value rather than a generated resource ID, so AWS has no
	// dedicated "Invalid...Id.NotFound" error family for them.
	ErrIpamByoasnNotFound = errors.New("InvalidParameterValue")
	// ErrIpamAsnAssociationNotFound is returned when disassociating an ASN/CIDR pair that is
	// not currently associated.
	ErrIpamAsnAssociationNotFound = errors.New("InvalidParameterValue")
	// ErrIpamVerificationTokenNotFound is returned when a verification token ID does not exist.
	ErrIpamVerificationTokenNotFound = errors.New(
		"InvalidIpamExternalResourceVerificationTokenId.NotFound",
	)
	// ErrIpamResourceCidrNotFound is returned when a (ResourceId, ResourceCidr) pair is not
	// currently monitored by IPAM.
	ErrIpamResourceCidrNotFound = errors.New("InvalidParameterValue")
	// ErrIpamPrefixListResolverNotFound is returned when a prefix list resolver ID does not exist.
	ErrIpamPrefixListResolverNotFound = errors.New("InvalidIpamPrefixListResolverId.NotFound")
	// ErrIpamPrefixListResolverTargetNotFound is returned when a prefix list resolver target ID
	// does not exist.
	ErrIpamPrefixListResolverTargetNotFound = errors.New(
		"InvalidIpamPrefixListResolverTargetId.NotFound",
	)
	// ErrIpamPrefixListResolverVersionNotFound is returned when a requested resolver version
	// number was never created.
	ErrIpamPrefixListResolverVersionNotFound = errors.New("InvalidParameterValue")
)
View Source
var (
	// ErrIpamPolicyNotFound is returned when an IPAM policy ID does not exist.
	ErrIpamPolicyNotFound = errors.New("InvalidIpamPolicyId.NotFound")
	// ErrIpamOrgAdminAccountNotFound is returned when disabling an IPAM Organizations delegated
	// admin account that does not match the currently-enabled admin account.
	ErrIpamOrgAdminAccountNotFound = errors.New("InvalidParameterValue")
)
View Source
var (
	ErrKeyPairNotFound      = errors.New("InvalidKeyPair.NotFound")
	ErrDuplicateKeyPairName = errors.New("InvalidKeyPair.Duplicate")
)

Errors for key pair operations.

View Source
var (
	// ErrLocalGatewayRouteTableNotFound is returned when a local gateway route table is not found.
	ErrLocalGatewayRouteTableNotFound = errors.New("InvalidLocalGatewayRouteTableID.NotFound")
	// ErrLocalGatewayRouteNotFound is returned when a local gateway route is not found.
	ErrLocalGatewayRouteNotFound = errors.New("InvalidLocalGatewayRoute.NotFound")
	// ErrLocalGatewayVpcAssociationNotFound is returned when a local gateway route table VPC
	// association is not found.
	ErrLocalGatewayVpcAssociationNotFound = errors.New(
		"InvalidLocalGatewayRouteTableVpcAssociationID.NotFound",
	)
	// ErrLocalGatewayVifGroupAssociationNotFound is returned when a local gateway route table
	// virtual interface group association is not found.
	ErrLocalGatewayVifGroupAssociationNotFound = errors.New(
		"InvalidLocalGatewayRouteTableVirtualInterfaceGroupAssociationID.NotFound",
	)
	// ErrLocalGatewayVifNotFound is returned when a local gateway virtual interface is
	// not found.
	ErrLocalGatewayVifNotFound = errors.New("InvalidLocalGatewayVirtualInterfaceID.NotFound")
	// ErrLocalGatewayVifGroupNotFound is returned when a local gateway virtual
	// interface group is not found.
	ErrLocalGatewayVifGroupNotFound = errors.New("InvalidLocalGatewayVirtualInterfaceGroupID.NotFound")
)
View Source
var (
	ErrNetworkInterfaceNotFound = errors.New("InvalidNetworkInterfaceID.NotFound")
	ErrNetworkInterfaceInUse    = errors.New("InvalidNetworkInterfaceID.InUse")
	ErrAttachmentNotFound       = errors.New("InvalidAttachmentID.NotFound")
)

Errors for network interface (ENI) operations.

View Source
var (
	// ErrTransitGatewayNotFound is returned when a TGW ID does not exist.
	ErrTransitGatewayNotFound = errors.New("InvalidTransitGatewayID.NotFound")
	// ErrTGWAttachmentNotFound is returned when a TGW VPC attachment ID does not exist.
	ErrTGWAttachmentNotFound = errors.New("InvalidTransitGatewayAttachmentID.NotFound")
	// ErrFlowLogNotFound is returned when a flow log ID does not exist.
	ErrFlowLogNotFound = errors.New("InvalidFlowLogId.NotFound")
	// ErrDhcpOptionsNotFound is returned when a DHCP options set ID does not exist.
	ErrDhcpOptionsNotFound = errors.New("InvalidDhcpOptionsID.NotFound")
)
View Source
var (
	ErrPlacementGroupNotFound      = errors.New("InvalidPlacementGroup.NotFound")
	ErrDuplicatePlacementGroupName = errors.New("InvalidPlacementGroup.Duplicate")
)

Errors for placement group operations.

View Source
var (
	ErrRouteServerNotFound            = errors.New("InvalidRouteServerId.NotFound")
	ErrRouteServerEndpointNotFound    = errors.New("InvalidRouteServerEndpointId.NotFound")
	ErrRouteServerPeerNotFound        = errors.New("InvalidRouteServerPeerId.NotFound")
	ErrRouteServerAssociationNotFound = errors.New("InvalidRouteServerAssociation.NotFound")
	ErrRouteServerPropagationNotFound = errors.New("InvalidRouteServerPropagation.NotFound")
)
View Source
var (
	ErrRouteTableNotFound = errors.New("InvalidRouteTableID.NotFound")
	ErrRouteNotFound      = errors.New("InvalidRoute.NotFound")
)

Errors for route table operations.

View Source
var (
	// ErrSecondaryNetworkNotFound is returned when a secondary network ID does not exist.
	ErrSecondaryNetworkNotFound = errors.New("InvalidSecondaryNetworkID.NotFound")

	// ErrSecondarySubnetNotFound is returned when a secondary subnet ID does not exist.
	ErrSecondarySubnetNotFound = errors.New("InvalidSecondarySubnetID.NotFound")

	// ErrSecondaryNetworkHasSubnets is returned when DeleteSecondaryNetwork is
	// called on a secondary network that still has secondary subnets.
	ErrSecondaryNetworkHasSubnets = errors.New("DependencyViolation")
)
View Source
var (
	ErrInstanceNotFound      = errors.New("InvalidInstanceID.NotFound")
	ErrSecurityGroupNotFound = errors.New("InvalidGroup.NotFound")
	ErrVPCNotFound           = errors.New("InvalidVpcID.NotFound")
	ErrSubnetNotFound        = errors.New("InvalidSubnetID.NotFound")
	ErrInvalidParameter      = errors.New("InvalidParameterValue")
	ErrDuplicateSGName       = errors.New("InvalidGroup.Duplicate")
	ErrInvalidInstanceState  = errors.New("IncorrectInstanceState")
	ErrSpotFleetNotFound     = errors.New("InvalidSpotFleetRequestId.NotFound")
	ErrCIDRConflict          = errors.New("InvalidVpc.Conflict")
	ErrDryRunOperation       = errors.New("request would have succeeded, but DryRun flag is set")
	ErrDuplicatePermission   = errors.New("InvalidPermission.Duplicate")

	// ErrDependencyViolation is returned when an operation cannot complete
	// because another resource still depends on the target resource.
	ErrDependencyViolation = errors.New("DependencyViolation")

	// ErrVpcClassicLinkDisabled is returned by AttachClassicLinkVpc when the
	// target VPC has not been enabled for ClassicLink.
	ErrVpcClassicLinkDisabled = errors.New("VpcClassicLinkDisabled")

	// ErrClassicLinkInstanceNotFound is returned when a ClassicLink
	// instance/VPC linkage cannot be found (e.g. DetachClassicLinkVpc for an
	// instance that is not currently linked).
	ErrClassicLinkInstanceNotFound = errors.New("InvalidInstanceID.NotFound")

	// ErrVpcBlockPublicAccessExclusionNotFound is returned when a VPC Block
	// Public Access exclusion ID cannot be found.
	ErrVpcBlockPublicAccessExclusionNotFound = errors.New("InvalidVpcBlockPublicAccessExclusionId.NotFound")

	// ErrInvalidUserData is returned when RunInstances / ModifyInstanceAttribute
	// user data is not valid base64 or exceeds the 16 KiB decoded-size limit.
	ErrInvalidUserData = errors.New("InvalidUserData.Malformed")
	// ErrMissingParameter is returned when a required parameter (e.g. the
	// ModifyInstanceAttribute attribute selector) is absent.
	ErrMissingParameter = errors.New("MissingParameter")
	// ErrInvalidPaginationToken is returned when a NextToken is forged, tampered
	// with, or otherwise fails HMAC verification.
	ErrInvalidPaginationToken = errors.New("InvalidPaginationToken")
	// ErrOperationNotPermitted is returned when an operation is blocked by an
	// instance-level API protection attribute (disableApiTermination /
	// disableApiStop), mirroring AWS's OperationNotPermitted error code.
	ErrOperationNotPermitted = errors.New("OperationNotPermitted")
)

Errors returned by the EC2 backend.

View Source
var (
	StateRunning      = InstanceState{Code: stateCodeRunning, Name: "running"}
	StateTerminated   = InstanceState{Code: stateCodeTerminated, Name: "terminated"}
	StateStopped      = InstanceState{Code: stateCodeStopped, Name: "stopped"}
	StatePending      = InstanceState{Code: stateCodePending, Name: "pending"}
	StateShuttingDown = InstanceState{Code: stateCodeShuttingDown, Name: "shutting-down"}
	StateStopping     = InstanceState{Code: stateCodeStopping, Name: "stopping"}
)

Well-known instance states.

View Source
var (
	// ErrTGWMulticastDomainNotFound is returned when a TGW multicast domain ID does not exist.
	ErrTGWMulticastDomainNotFound = errors.New("InvalidTransitGatewayMulticastDomainId.NotFound")
	// ErrTGWMeteringPolicyNotFound is returned when a TGW metering policy ID does not exist.
	ErrTGWMeteringPolicyNotFound = errors.New("InvalidTransitGatewayMeteringPolicyId.NotFound")
)
View Source
var (
	// ErrTGWPolicyTableNotFound is returned when a TGW policy table ID does not exist.
	ErrTGWPolicyTableNotFound = errors.New("InvalidTransitGatewayPolicyTableId.NotFound")
	// ErrTGWRouteTableAnnouncementNotFound is returned when a TGW route table
	// announcement ID does not exist.
	ErrTGWRouteTableAnnouncementNotFound = errors.New(
		"InvalidTransitGatewayRouteTableAnnouncementId.NotFound",
	)
)
View Source
var (
	// ErrTrunkAssociationNotFound is returned when a trunk interface association ID does not
	// exist.
	ErrTrunkAssociationNotFound = errors.New("InvalidAssociationID.NotFound")

	// ErrEnclaveCertRoleAssociationNotFound is returned when a certificate/role pair has no
	// association to disassociate.
	ErrEnclaveCertRoleAssociationNotFound = errors.New("InvalidParameterValue")

	// ErrTooManyEnclaveCertRoles is returned when a certificate already has the maximum
	// number of associated IAM roles (16, per AWS's documented limit).
	ErrTooManyEnclaveCertRoles = errors.New("LimitExceeded")
)
View Source
var (
	// ErrBundleTaskNotFound is returned when a bundle task ID does not exist.
	ErrBundleTaskNotFound = errors.New("InvalidBundleID.NotFound")

	// ErrConversionTaskNotFound is returned when a conversion task ID does not exist.
	ErrConversionTaskNotFound = errors.New("InvalidConversionTaskId.NotFound")

	// ErrExportTaskNotFound is returned when an instance export task ID does not exist.
	ErrExportTaskNotFound = errors.New("InvalidExportTaskID.NotFound")

	// ErrImportTaskNotFound is returned when an ImportImage/ImportSnapshot task ID does not
	// exist in either import task map.
	ErrImportTaskNotFound = errors.New("InvalidParameterValue")

	// ErrTaskNotCancellable is returned when Cancel* is called on a task that has already
	// reached a terminal state (completed/cancelled/failed).
	ErrTaskNotCancellable = errors.New("IncorrectState")
)
View Source
var (
	ErrVolumeNotFound = errors.New("InvalidVolume.NotFound")
	ErrVolumeInUse    = errors.New("VolumeInUse")
)

Errors for EBS volume operations.

View Source
var ErrCoipCidrNotFound = errors.New("InvalidParameterValue")

ErrCoipCidrNotFound is returned when a CoIP CIDR does not exist within a pool.

View Source
var ErrCoipPoolNotFound = errors.New("InvalidPoolID.NotFound")

ErrCoipPoolNotFound is returned when a CoIP pool ID does not exist.

View Source
var ErrDeclarativePoliciesReportNotCancellable = errors.New("IncorrectState")

ErrDeclarativePoliciesReportNotCancellable is returned when CancelDeclarativePoliciesReport is called on a report that has already reached a terminal state.

View Source
var ErrDeclarativePoliciesReportNotFound = errors.New("InvalidReportID.NotFound")

ErrDeclarativePoliciesReportNotFound is returned when a Declarative Policies report is not found.

View Source
var ErrFpgaImageNotFound = errors.New("InvalidFpgaImageID.NotFound")

ErrFpgaImageNotFound is returned when an FPGA image (AFI) ID cannot be found.

View Source
var ErrHostReservationNotFound = errors.New("InvalidHostReservationID.NotFound")

ErrHostReservationNotFound is returned when a Dedicated Host Reservation is not found.

View Source
var ErrHostReservationOfferingNotFound = errors.New("InvalidOfferingID.NotFound")

ErrHostReservationOfferingNotFound is returned when a Dedicated Host Reservation offering ID does not match the static catalog.

View Source
var ErrImageNotFound = errors.New("InvalidAMIID.NotFound")

ErrImageNotFound is returned when an AMI ID does not exist.

View Source
var ErrInternetGatewayNotFound = errors.New("InvalidInternetGatewayID.NotFound")

ErrInternetGatewayNotFound is returned when an Internet Gateway is not found.

View Source
var ErrIpv4PoolCidrNotFound = errors.New("InvalidParameterValue")

ErrIpv4PoolCidrNotFound is returned when a CIDR does not exist within a public IPv4 pool.

View Source
var ErrIpv4PoolNotFound = errors.New("InvalidPublicIpv4Pool.NotFound")

ErrIpv4PoolNotFound is returned when a public IPv4 pool ID does not exist.

View Source
var ErrIpv6PoolNotFound = errors.New("InvalidParameterValue")

ErrIpv6PoolNotFound is returned when an IPv6 address pool ID does not exist.

View Source
var ErrMacInstanceRequired = errors.New("InvalidParameterValue")

ErrMacInstanceRequired is returned when a Mac-only operation targets an instance that is not a Mac (mac1/mac2/mac-m*) instance type.

View Source
var ErrNatGatewayNotFound = errors.New("InvalidNatGatewayID.NotFound")

ErrNatGatewayNotFound is returned when a NAT gateway is not found.

View Source
var ErrNilAppContext = errors.New("AppContext is required")

ErrNilAppContext is returned when Provider.Init is called with a nil AppContext.

View Source
var ErrScheduledInstanceNotFound = errors.New("InvalidScheduledInstance.NotFound")

ErrScheduledInstanceNotFound is returned when a Scheduled Instance ID does not exist.

View Source
var ErrScheduledInstancePurchaseToken = errors.New("InvalidParameterValue")

ErrScheduledInstancePurchaseToken is returned when a purchase token does not match any entry in the static availability catalog.

View Source
var ErrSpotRequestNotFound = errors.New("InvalidSpotInstanceRequestID.NotFound")

ErrSpotRequestNotFound is returned when a spot instance request is not found.

View Source
var ErrUsageReportNotFound = errors.New("InvalidParameterValue")

ErrUsageReportNotFound is returned when an image usage report ID does not exist.

View Source
var ErrVpcEncryptionControlNotFound = errors.New("InvalidVpcEncryptionControlID.NotFound")

ErrVpcEncryptionControlNotFound is returned when a VPC Encryption Control configuration is not found.

View Source
var ErrVpnConcentratorNotFound = errors.New("InvalidVpnConcentratorID.NotFound")

ErrVpnConcentratorNotFound is returned when a VPN concentrator is not found.

Functions

This section is empty.

Types

type AMIStub

type AMIStub struct {
	ImageID        string `json:"imageID,omitempty"`
	Name           string `json:"name,omitempty"`
	Description    string `json:"description,omitempty"`
	Architecture   string `json:"architecture,omitempty"`
	Platform       string `json:"platform,omitempty"`
	RootDeviceName string `json:"rootDeviceName,omitempty"`
	State          string `json:"state,omitempty"`
	// SourceImageID is the parent AMI this image was copied from via
	// CopyImage, or empty for root images. Used by GetImageAncestry.
	SourceImageID string `json:"sourceImageID,omitempty"`
}

AMIStub is a static image entry.

type AccountAttribute

type AccountAttribute struct {
	Name   string   `json:"name,omitempty"`
	Values []string `json:"values,omitempty"`
}

AccountAttribute represents a single EC2 account attribute.

type ActiveVpnTunnelStatus

type ActiveVpnTunnelStatus struct {
	IKEVersion                string
	Phase1EncryptionAlgorithm string
	Phase1IntegrityAlgorithm  string
	Phase2EncryptionAlgorithm string
	Phase2IntegrityAlgorithm  string
	ProvisioningStatus        string
	ProvisioningStatusReason  string
	Phase1DHGroup             int32
	Phase2DHGroup             int32
}

ActiveVpnTunnelStatus is the result of GetActiveVpnTunnelStatus.

type Address

type Address struct {
	AllocationID  string `json:"allocationID,omitempty"`
	AssociationID string `json:"associationID,omitempty"`
	PublicIP      string `json:"publicIP,omitempty"`
	InstanceID    string `json:"instanceID,omitempty"`
}

Address represents an Elastic IP address.

type AddressAttribute

type AddressAttribute struct {
	AllocationID string `json:"allocationID,omitempty"`
	PublicIP     string `json:"publicIP,omitempty"`
	DomainName   string `json:"domainName,omitempty"`
}

AddressAttribute holds domain-name attributes for an Elastic IP.

type AddressTransfer

type AddressTransfer struct {
	TransferOfferExpiry time.Time `json:"transferOfferExpiry"`
	AllocationID        string    `json:"allocationID,omitempty"`
	PublicIP            string    `json:"publicIP,omitempty"`
	TransferAccountID   string    `json:"transferAccountID,omitempty"`
	TransferOfferStatus string    `json:"transferOfferStatus,omitempty"`
}

AddressTransfer represents a pending Elastic IP address transfer.

type AllowedImagesSettings

type AllowedImagesSettings struct {
	State         string           `json:"state,omitempty"`
	ManagedBy     string           `json:"managedBy,omitempty"`
	ImageCriteria []ImageCriterion `json:"imageCriteria,omitempty"`
}

AllowedImagesSettings is the account-region singleton setting controlling which AMIs are discoverable and usable, as managed by Enable/Disable/ReplaceImageCriteria.

type Backend

type Backend interface {

	// RunInstances creates one or more EC2 instance stubs.
	RunInstances(imageID, instanceType, subnetID string, count int) ([]*Instance, error)

	// SetInstanceAttribute persists a modifiable attribute on an instance.
	// Attribute names match EC2 ModifyInstanceAttribute keys (e.g. "userData", "instanceType").
	// Returns ErrInvalidInstanceState if the instance must be stopped for the given attribute.
	SetInstanceAttribute(instanceID, attribute, value string) error

	// PrimaryNetworkInterfaceSourceDestCheck returns the sourceDestCheck flag
	// of instanceID's primary network interface (defaults to true, matching
	// AWS's default for VPC instances).
	PrimaryNetworkInterfaceSourceDestCheck(instanceID string) bool

	// DescribeInstances returns instances, optionally filtered by IDs or state name.
	DescribeInstances(ids []string, state string) []*Instance

	// TerminateInstances transitions instances to shutting-down / terminated.
	// Returns previous and current state for each instance.
	TerminateInstances(ids []string) ([]*InstanceStateChange, error)

	// StartInstances transitions stopped instances to pending / running.
	// Returns ErrInvalidInstanceState if an instance is not stopped.
	StartInstances(ids []string) ([]*InstanceStateChange, error)

	// StopInstances transitions running instances to stopping / stopped.
	// Returns ErrInvalidInstanceState if an instance is not running.
	StopInstances(ids []string) ([]*InstanceStateChange, error)

	// RebootInstances keeps instances running (mock no-op transition).
	RebootInstances(ids []string) error

	// DescribeInstanceStatus returns per-instance status entries.
	DescribeInstanceStatus(ids []string) []*Instance

	// DescribeImages returns the built-in stub AMI catalogue.
	DescribeImages() []AMIStub

	// CreateImage creates an AMI from an instance.
	CreateImage(instanceID, name, description string) (*AMIStub, error)

	// DescribeImageUsageReports returns synthetic image usage reports.
	DescribeImageUsageReports() []*ImageUsageReport

	// DescribeRegions returns the list of supported AWS region names.
	DescribeRegions() []string

	// DescribeAvailabilityZones returns AZ names for the given region.
	DescribeAvailabilityZones(region string) []string

	// DescribeSecurityGroups returns security groups, optionally filtered by IDs.
	DescribeSecurityGroups(ids []string) []*SecurityGroup

	// CreateSecurityGroup creates a security group and returns it.
	CreateSecurityGroup(name, description, vpcID string) (*SecurityGroup, error)

	// DeleteSecurityGroup removes a security group by ID.
	DeleteSecurityGroup(id string) error

	// AuthorizeSecurityGroupIngress appends ingress rules to a security group.
	AuthorizeSecurityGroupIngress(groupID string, rules []SecurityGroupRule) error

	// AuthorizeSecurityGroupEgress appends egress rules to a security group.
	AuthorizeSecurityGroupEgress(groupID string, rules []SecurityGroupRule) error

	// RevokeSecurityGroupIngress removes matching ingress rules from a security group.
	RevokeSecurityGroupIngress(groupID string, rules []SecurityGroupRule) error

	// RevokeSecurityGroupEgress removes matching egress rules from a security group.
	RevokeSecurityGroupEgress(groupID string, rules []SecurityGroupRule) error

	// DescribeVpcs returns VPCs, optionally filtered by IDs.
	DescribeVpcs(ids []string) []*VPC

	// CreateVpc creates a new VPC with the given CIDR block.
	CreateVpc(cidr string) (*VPC, error)

	// DeleteVpc removes a VPC by ID.
	DeleteVpc(id string) error

	// DescribeSubnets returns subnets, optionally filtered by IDs.
	DescribeSubnets(ids []string) []*Subnet

	// CreateSubnet creates a new subnet in the given VPC.
	CreateSubnet(vpcID, cidr, az string) (*Subnet, error)

	// DeleteSubnet removes a subnet by ID.
	DeleteSubnet(id string) error

	// CreateKeyPair generates an RSA key pair and stores it.
	CreateKeyPair(name string) (*KeyPair, error)

	// ImportKeyPair stores a pre-existing key pair by name without key material.
	ImportKeyPair(name, publicKeyMaterial string) (*KeyPair, error)

	// DescribeKeyPairs returns key pairs, optionally filtered by names.
	DescribeKeyPairs(names []string) []*KeyPair

	// DeleteKeyPair removes a key pair by name.
	DeleteKeyPair(name string) error

	// CreateVolume creates a new EBS volume stub.
	CreateVolume(az, volType string, size int) (*Volume, error)

	// SetVolumeEncryption marks a volume as encrypted and optionally sets its KMS key ID.
	SetVolumeEncryption(volumeID string, encrypted bool, kmsKeyID string) error

	// SetVolumePerformance sets the IOPS and throughput (MB/s) on a volume.
	SetVolumePerformance(volumeID string, iops, throughput int) error

	// DescribeVolumes returns volumes, optionally filtered by IDs.
	DescribeVolumes(ids []string) []*Volume

	// DeleteVolume removes a volume by ID.
	DeleteVolume(id string) error

	// AttachVolume attaches a volume to an instance.
	AttachVolume(volumeID, instanceID, device string) (*VolumeAttachment, error)

	// DetachVolume detaches a volume; force flag is accepted but ignored in mock.
	DetachVolume(volumeID string, force bool) (*VolumeAttachment, error)

	// AllocateAddress allocates a new Elastic IP address.
	AllocateAddress() (*Address, error)

	// AssociateAddress associates an allocation with an instance; returns association ID.
	AssociateAddress(allocationID, instanceID string) (string, error)

	// DisassociateAddress removes an address association.
	DisassociateAddress(associationID string) error

	// ReleaseAddress releases an allocated Elastic IP.
	ReleaseAddress(allocationID string) error

	// DescribeAddresses returns Elastic IP allocations, optionally filtered by IDs.
	DescribeAddresses(allocationIDs []string) []*Address

	// CreateInternetGateway creates a new internet gateway.
	CreateInternetGateway() (*InternetGateway, error)

	// DeleteInternetGateway removes an internet gateway.
	DeleteInternetGateway(id string) error

	// DescribeInternetGateways returns internet gateways, optionally filtered by IDs.
	DescribeInternetGateways(ids []string) []*InternetGateway

	// AttachInternetGateway attaches an internet gateway to a VPC.
	AttachInternetGateway(igwID, vpcID string) error

	// DetachInternetGateway detaches an internet gateway from a VPC.
	DetachInternetGateway(igwID, vpcID string) error

	// CreateRouteTable creates a new route table in the given VPC.
	CreateRouteTable(vpcID string) (*RouteTable, error)

	// DeleteRouteTable removes a route table.
	DeleteRouteTable(id string) error

	// DescribeRouteTables returns route tables, optionally filtered by IDs.
	DescribeRouteTables(ids []string) []*RouteTable

	// CreateRoute adds a route to a route table.
	CreateRoute(rtID, destCIDR, gatewayID, natGatewayID string) error

	// DeleteRoute removes a route from a route table by destination CIDR.
	DeleteRoute(rtID, destCIDR string) error

	// AssociateRouteTable associates a route table with a subnet; returns association ID.
	AssociateRouteTable(rtID, subnetID string) (string, error)

	// DisassociateRouteTable removes a subnet association from a route table.
	DisassociateRouteTable(assocID string) error

	// CreateNatGateway creates a NAT gateway in the given subnet.
	CreateNatGateway(subnetID, allocationID string) (*NatGateway, error)

	// DeleteNatGateway removes a NAT gateway.
	DeleteNatGateway(id string) error

	// DescribeNatGateways returns NAT gateways, optionally filtered by IDs.
	DescribeNatGateways(ids []string) []*NatGateway

	// CreateSnapshot creates an EBS snapshot from a volume.
	CreateSnapshot(volumeID, description string) (*Snapshot, error)

	// DescribeSnapshots returns snapshots, optionally filtered by IDs.
	DescribeSnapshots(ids []string) []*Snapshot

	// DeleteSnapshot removes a snapshot.
	DeleteSnapshot(id string) error

	// CopyImage copies an AMI to produce a new one.
	CopyImage(sourceImageID, name, description string) (*AMIStub, error)

	// DeregisterImage removes an AMI from the store.
	DeregisterImage(imageID string) error

	// ModifyVpcAttribute enables or disables a VPC DNS attribute.
	ModifyVpcAttribute(vpcID, attribute string, value bool) error

	// ModifySubnetAttribute enables or disables an attribute on a subnet.
	ModifySubnetAttribute(subnetID, attribute string, value bool) error

	// DescribeNetworkAcls returns default (auto-generated) network ACLs, optionally filtered by VPC IDs.
	DescribeNetworkAcls(vpcIDs []string) []*NetworkACL

	// DescribeNetworkAclsFiltered returns both default and stored network ACLs, with optional VPC-ID filter.
	DescribeNetworkAclsFiltered(vpcIDs []string) []*NetworkACL

	// CreateNetworkACL creates a new non-default network ACL in a VPC.
	CreateNetworkACL(vpcID string) (*StoredNetworkACL, error)

	// DeleteNetworkACL removes a non-default network ACL.
	DeleteNetworkACL(id string) error

	// CreateNetworkACLEntry adds a rule to an existing network ACL.
	CreateNetworkACLEntry(
		aclID string, ruleNumber int, protocol, action, cidr string,
		egress bool, fromPort, toPort int,
	) error

	// DeleteNetworkACLEntry removes a rule from a network ACL.
	DeleteNetworkACLEntry(aclID string, ruleNumber int, egress bool) error

	// DescribeStoredNetworkAcls returns explicitly created network ACLs.
	DescribeStoredNetworkAcls(ids []string) []*StoredNetworkACL

	// DescribeSecurityGroupRules returns all rules for a security group.
	DescribeSecurityGroupRules(groupID string) ([]*SecurityGroupRuleDetail, error)

	// ModifySecurityGroupRules replaces all rules in the specified direction.
	ModifySecurityGroupRules(groupID string, rules []SecurityGroupRule, egress bool) error

	// DeleteLaunchTemplate removes a launch template by ID.
	DeleteLaunchTemplate(id string) error

	// DescribeLaunchTemplateVersions returns versions of a launch template.
	DescribeLaunchTemplateVersions(id string) ([]*LaunchTemplate, error)

	// DeleteVpcEndpoints deletes one or more VPC endpoints, returning unsuccessful IDs.
	DeleteVpcEndpoints(ids []string) ([]string, error)

	// CreateVpcEndpoint creates a VPC endpoint.
	CreateVpcEndpoint(
		vpcID, serviceName, endpointType string,
		subnetIDs []string,
	) (*VpcEndpoint, error)

	// CreateVpcEndpointWithRouteTableIDs creates a VPC endpoint with subnet and route table associations.
	CreateVpcEndpointWithRouteTableIDs(
		vpcID, serviceName, endpointType string,
		subnetIDs, routeTableIDs []string,
	) (*VpcEndpoint, error)

	// DescribeVpcEndpoints returns VPC endpoints, optionally filtered by IDs.
	DescribeVpcEndpoints(ids []string) []*VpcEndpoint

	// CreateLaunchTemplate creates a launch template.
	CreateLaunchTemplate(name, imageID, instanceType string) (*LaunchTemplate, error)

	// DescribeLaunchTemplates returns launch templates, optionally filtered by names.
	DescribeLaunchTemplates(names []string) []*LaunchTemplate

	// DescribeNetworkInterfaces returns ENIs, optionally filtered by IDs.
	DescribeNetworkInterfaces(ids []string) []*NetworkInterface

	// CreateNetworkInterface creates a new ENI in the given subnet.
	CreateNetworkInterface(subnetID, description string) (*NetworkInterface, error)

	// DeleteNetworkInterface removes a network interface by ID.
	DeleteNetworkInterface(id string) error

	// AttachNetworkInterface attaches an ENI to an instance; returns the attachment ID.
	AttachNetworkInterface(eniID, instanceID string, deviceIndex int) (string, error)

	// DetachNetworkInterface detaches a network interface by attachment ID.
	DetachNetworkInterface(attachmentID string, force bool) error

	// AssignPrivateIPAddresses adds secondary private IPs to an ENI.
	// If ips is non-empty those addresses are assigned; otherwise count new IPs are allocated.
	AssignPrivateIPAddresses(eniID string, count int, ips []string) error

	// UnassignPrivateIPAddresses removes secondary private IPs from an ENI.
	UnassignPrivateIPAddresses(eniID string, ips []string) error

	// ModifyNetworkInterfaceAttribute updates a single attribute of an ENI.
	ModifyNetworkInterfaceAttribute(eniID, attr, value string) error

	// RequestSpotInstances creates a spot instance request (mock: immediately fulfilled).
	RequestSpotInstances(
		imageID, instanceType, subnetID, spotPrice string,
	) (*SpotInstanceRequest, error)

	// DescribeSpotInstanceRequests returns spot requests, optionally filtered by IDs.
	DescribeSpotInstanceRequests(ids []string) []*SpotInstanceRequest

	// CancelSpotInstanceRequests cancels the given spot requests.
	CancelSpotInstanceRequests(ids []string) error

	// CreatePlacementGroup creates a new placement group.
	CreatePlacementGroup(name, strategy string) (*PlacementGroup, error)

	// DescribePlacementGroups returns placement groups, optionally filtered by names.
	DescribePlacementGroups(names []string) []*PlacementGroup

	// DeletePlacementGroup removes a placement group by name.
	DeletePlacementGroup(name string) error

	// CreateTags adds or updates tags on one or more resources.
	CreateTags(resourceIDs []string, tags map[string]string) error

	// DeleteTags removes the specified tag keys from one or more resources.
	DeleteTags(resourceIDs []string, keys []string) error

	// DescribeTags returns tag entries, optionally filtered by resource IDs.
	DescribeTags(resourceIDs []string) []TagEntry

	// TagsForResource returns a copy of all tags currently set on a single
	// resource. Returns an empty (non-nil) map when nothing is tagged.
	TagsForResource(resourceID string) map[string]string

	// AcceptAddressTransfer accepts a pending Elastic IP address transfer.
	AcceptAddressTransfer(address string) (*AddressTransfer, error)

	// AcceptCapacityReservationBillingOwnership accepts billing ownership of a capacity reservation.
	AcceptCapacityReservationBillingOwnership(
		capacityReservationID string,
	) (*CapacityReservation, error)

	// AcceptReservedInstancesExchangeQuote accepts a reserved instances exchange quote.
	AcceptReservedInstancesExchangeQuote(
		reservedInstanceIDs []string,
	) (*ReservedInstancesExchange, error)

	// AcceptTransitGatewayMulticastDomainAssociations accepts multicast domain subnet associations.
	AcceptTransitGatewayMulticastDomainAssociations(
		transitGatewayMulticastDomainID, transitGatewayAttachmentID string,
		subnetIDs []string,
	) ([]*TransitGatewayMulticastDomainAssociation, error)

	// AcceptTransitGatewayPeeringAttachment accepts a transit gateway peering attachment.
	AcceptTransitGatewayPeeringAttachment(
		transitGatewayAttachmentID string,
	) (*TransitGatewayPeeringAttachment, error)

	// AcceptTransitGatewayVpcAttachment accepts a transit gateway VPC attachment.
	AcceptTransitGatewayVpcAttachment(
		transitGatewayAttachmentID string,
	) (*TransitGatewayVpcAttachment, error)

	// AcceptVpcEndpointConnections accepts VPC endpoint connections to a service.
	AcceptVpcEndpointConnections(
		serviceID string,
		vpcEndpointIDs []string,
	) ([]*VpcEndpointConnection, error)

	// AcceptVpcPeeringConnection accepts a VPC peering connection.
	AcceptVpcPeeringConnection(vpcPeeringConnectionID string) (*VpcPeeringConnection, error)

	// AdvertiseByoipCidr marks a BYOIP CIDR range as advertised.
	AdvertiseByoipCidr(cidr string) (*ByoipCidr, error)

	// AllocateHosts allocates one or more Dedicated Hosts.
	AllocateHosts(availabilityZone, instanceType string, hostCount int) ([]*Host, error)

	// DescribeCapacityReservations returns capacity reservations, optionally filtered by IDs.
	DescribeCapacityReservations(ids []string) []*CapacityReservation

	// DescribeByoipCidrs returns BYOIP CIDRs, optionally filtered by state.
	DescribeByoipCidrs(state string) []*ByoipCidr

	// DescribeHosts returns dedicated hosts, optionally filtered by IDs.
	DescribeHosts(ids []string) []*Host

	// DescribeVpcPeeringConnections returns VPC peering connections, optionally filtered by IDs.
	DescribeVpcPeeringConnections(ids []string) []*VpcPeeringConnection

	// CreateVpcPeeringConnection creates a new pending VPC peering connection.
	CreateVpcPeeringConnection(requesterVPCID, accepterVPCID string) (*VpcPeeringConnection, error)

	// DeleteVpcPeeringConnection removes a VPC peering connection.
	DeleteVpcPeeringConnection(id string) error

	// ReplaceNetworkACLEntry replaces a NACL rule by (ruleNumber, egress).
	ReplaceNetworkACLEntry(
		aclID string, ruleNumber int, protocol, action, cidr string,
		egress bool, fromPort, toPort int,
	) error

	// ReplaceNetworkACLAssociation moves a subnet to a different NACL.
	ReplaceNetworkACLAssociation(aclID, subnetID string) (string, error)

	// DescribeVpcEndpointServices returns available AWS endpoint service names.
	DescribeVpcEndpointServices() []string

	// ExportKeyPair returns the public-key material for a key pair.
	ExportKeyPair(name string) (string, error)

	// DescribeInstanceTypeOfferings returns available instance type / AZ pairs.
	DescribeInstanceTypeOfferings() []InstanceTypeOffering

	// DescribeTransitGateways returns transit gateways, optionally filtered by IDs.
	DescribeTransitGateways(ids []string) []*TransitGateway

	// CreateTransitGateway creates a new transit gateway stub.
	CreateTransitGateway(description string) (*TransitGateway, error)

	// DeleteTransitGateway removes a transit gateway by ID.
	DeleteTransitGateway(id string) error

	// CreateTransitGatewayVpcAttachment creates a TGW VPC attachment.
	CreateTransitGatewayVpcAttachment(
		tgwID, vpcID string,
		subnetIDs []string,
	) (*TransitGatewayVpcAttachment, error)

	// DescribeTransitGatewayVpcAttachments returns TGW VPC attachments, optionally filtered by IDs.
	DescribeTransitGatewayVpcAttachments(ids []string) []*TransitGatewayVpcAttachment

	// DeleteTransitGatewayVpcAttachment removes a TGW VPC attachment by ID.
	DeleteTransitGatewayVpcAttachment(id string) error

	// ModifyTransitGatewayAttribute updates attributes of a transit gateway.
	ModifyTransitGatewayAttribute(id, description string) error

	// CreateFlowLogs creates flow log records for the given resources.
	CreateFlowLogs(
		resourceIDs []string,
		trafficType, logDestinationType, logDestination string,
	) ([]*FlowLog, error)

	// DescribeFlowLogs returns flow logs, optionally filtered by IDs.
	DescribeFlowLogs(ids []string) []*FlowLog

	// DeleteFlowLogs removes flow logs by ID.
	DeleteFlowLogs(ids []string) error

	// CreateDhcpOptions creates a new DHCP options set.
	CreateDhcpOptions(configs []DhcpConfiguration) (*DhcpOptions, error)

	// DescribeDhcpOptions returns DHCP option sets, optionally filtered by IDs.
	DescribeDhcpOptions(ids []string) []*DhcpOptions

	// AssociateDhcpOptions associates a DHCP options set with a VPC.
	AssociateDhcpOptions(dhcpOptionsID, vpcID string) error

	// DeleteDhcpOptions removes a DHCP options set by ID.
	DeleteDhcpOptions(id string) error

	// ModifyLaunchTemplate updates the default version of a launch template.
	ModifyLaunchTemplate(id string, defaultVersion int64) (*LaunchTemplate, error)

	// CreateLaunchTemplateVersion adds a new version to a launch template.
	CreateLaunchTemplateVersion(id, imageID, instanceType string) (*LaunchTemplateVersion, error)

	// DeleteLaunchTemplateVersions removes specific versions from a launch template.
	DeleteLaunchTemplateVersions(id string, versions []int64) ([]int64, error)

	// GetLaunchTemplateData returns synthesized launch template data from an instance.
	GetLaunchTemplateData(instanceID string) (*LaunchTemplate, error)

	// CreateEgressOnlyInternetGateway creates a new egress-only internet gateway.
	CreateEgressOnlyInternetGateway(vpcID string) (*EgressOnlyInternetGateway, error)

	// DescribeEgressOnlyInternetGateways returns egress-only internet gateways, optionally filtered by IDs.
	DescribeEgressOnlyInternetGateways(ids []string) []*EgressOnlyInternetGateway

	// DeleteEgressOnlyInternetGateway removes an egress-only internet gateway.
	DeleteEgressOnlyInternetGateway(id string) error

	// AssociateIamInstanceProfile associates an IAM instance profile with an instance.
	AssociateIamInstanceProfile(
		instanceID, profileARN string,
	) (*IamInstanceProfileAssociation, error)

	// DisassociateIamInstanceProfile removes an IAM instance profile association.
	DisassociateIamInstanceProfile(associationID string) (*IamInstanceProfileAssociation, error)

	// DescribeIamInstanceProfileAssociations returns IAM instance profile associations.
	DescribeIamInstanceProfileAssociations(
		associationIDs []string,
		instanceID string,
	) []*IamInstanceProfileAssociation

	// ReplaceIamInstanceProfileAssociation replaces the IAM instance profile on an existing association.
	ReplaceIamInstanceProfileAssociation(
		associationID, profileARN string,
	) (*IamInstanceProfileAssociation, error)

	// ReplaceRouteTableAssociation replaces an existing route table association with a new route table.
	ReplaceRouteTableAssociation(associationID, newRouteTableID string) (string, error)

	// AssociateVpcCidrBlock associates a secondary CIDR block with a VPC.
	AssociateVpcCidrBlock(vpcID, cidrBlock string) (*VpcCidrBlockAssociation, error)

	// CreateTransitGatewayRouteTable creates a new TGW route table.
	CreateTransitGatewayRouteTable(tgwID string) (*TransitGatewayRouteTable, error)

	// DescribeTransitGatewayRouteTables returns TGW route tables, optionally filtered by IDs.
	DescribeTransitGatewayRouteTables(ids []string) []*TransitGatewayRouteTable

	// DeleteTransitGatewayRouteTable removes a TGW route table.
	DeleteTransitGatewayRouteTable(id string) error

	// CreateTransitGatewayRoute adds a static route to a TGW route table.
	CreateTransitGatewayRoute(
		routeTableID, destinationCIDR, attachmentID string,
	) (*TransitGatewayRoute, error)

	// DeleteTransitGatewayRoute removes a static route from a TGW route table.
	DeleteTransitGatewayRoute(routeTableID, destinationCIDR string) error

	// ReplaceTransitGatewayRoute replaces or upserts a route in a TGW route table.
	ReplaceTransitGatewayRoute(
		routeTableID, destinationCIDR, attachmentID string,
	) (*TransitGatewayRoute, error)

	// AssociateTransitGatewayRouteTable associates a TGW attachment with a route table.
	AssociateTransitGatewayRouteTable(
		routeTableID, attachmentID string,
	) (*TransitGatewayRouteTableAssociation, error)

	// DisassociateTransitGatewayRouteTable removes an association between a TGW attachment and route table.
	DisassociateTransitGatewayRouteTable(routeTableID, attachmentID string) error

	// GetTransitGatewayRouteTableAssociations returns the attachment associations for a TGW route table.
	GetTransitGatewayRouteTableAssociations(
		routeTableID string,
	) ([]*TransitGatewayRouteTableAssociation, error)

	// GetTransitGatewayRouteTablePropagations returns the propagations for a TGW route table.
	GetTransitGatewayRouteTablePropagations(
		routeTableID string,
	) ([]*TransitGatewayRouteTablePropagation, error)

	// GetTransitGatewayAttachmentPropagations returns the route tables an attachment propagates into.
	GetTransitGatewayAttachmentPropagations(
		attachmentID string,
	) ([]*TransitGatewayAttachmentPropagation, error)

	// SearchTransitGatewayRoutes returns the routes in a TGW route table matching the given filters.
	SearchTransitGatewayRoutes(
		routeTableID string,
		filters map[string][]string,
	) ([]*TransitGatewayRoute, error)

	// ExportTransitGatewayRoutes exports the routes in a TGW route table to S3, returning the S3 URL.
	ExportTransitGatewayRoutes(routeTableID, s3Bucket string) (string, error)

	// ModifyTransitGatewayVpcAttachment adds and/or removes subnets from a TGW VPC attachment.
	ModifyTransitGatewayVpcAttachment(
		attachmentID string,
		addSubnetIDs, removeSubnetIDs []string,
	) (*TransitGatewayVpcAttachment, error)

	// RejectTransitGatewayVpcAttachment rejects a pending TGW VPC attachment.
	RejectTransitGatewayVpcAttachment(attachmentID string) (*TransitGatewayVpcAttachment, error)

	// RejectTransitGatewayPeeringAttachment rejects a pending TGW peering attachment.
	RejectTransitGatewayPeeringAttachment(
		attachmentID string,
	) (*TransitGatewayPeeringAttachment, error)

	// RejectTransitGatewayMulticastDomainAssociations rejects a request to associate
	// subnets with a transit gateway multicast domain.
	RejectTransitGatewayMulticastDomainAssociations(
		domainID, attachmentID string,
		subnetIDs []string,
	) ([]*TransitGatewayMulticastDomainAssociation, error)

	// ModifyTransitGatewayMeteringPolicy adds and/or removes middlebox attachment IDs
	// from a TGW metering policy.
	ModifyTransitGatewayMeteringPolicy(
		policyID string,
		addAttachmentIDs, removeAttachmentIDs []string,
	) (*TransitGatewayMeteringPolicy, error)

	// GetTransitGatewayMeteringPolicyEntries returns the entries for a TGW metering policy.
	GetTransitGatewayMeteringPolicyEntries(
		policyID string,
	) ([]*TransitGatewayMeteringPolicyEntry, error)

	// CreateTransitGatewayPolicyTable creates a new policy table on a transit gateway.
	CreateTransitGatewayPolicyTable(tgwID string) (*TransitGatewayPolicyTable, error)

	// DescribeTransitGatewayPolicyTables returns policy tables, optionally filtered by ID.
	DescribeTransitGatewayPolicyTables(ids []string) []*TransitGatewayPolicyTable

	// DeleteTransitGatewayPolicyTable removes a policy table.
	DeleteTransitGatewayPolicyTable(id string) error

	// AssociateTransitGatewayPolicyTable associates a TGW attachment with a policy table.
	AssociateTransitGatewayPolicyTable(
		policyTableID, attachmentID string,
	) (*TransitGatewayPolicyTableAssociation, error)

	// DisassociateTransitGatewayPolicyTable removes an association between a TGW
	// attachment and a policy table.
	DisassociateTransitGatewayPolicyTable(
		policyTableID, attachmentID string,
	) (*TransitGatewayPolicyTableAssociation, error)

	// GetTransitGatewayPolicyTableAssociations returns the attachment associations for a policy table.
	GetTransitGatewayPolicyTableAssociations(
		policyTableID string,
	) []*TransitGatewayPolicyTableAssociation

	// GetTransitGatewayPolicyTableEntries validates a policy table exists (entries are
	// always empty; see the type doc comment on TransitGatewayPolicyTableEntry usage
	// in the handler layer).
	GetTransitGatewayPolicyTableEntries(policyTableID string) error

	// CreateTransitGatewayRouteTableAnnouncement announces a TGW route table across a
	// peering attachment.
	CreateTransitGatewayRouteTableAnnouncement(
		routeTableID, peeringAttachmentID string,
	) (*TransitGatewayRouteTableAnnouncement, error)

	// DescribeTransitGatewayRouteTableAnnouncements returns route table announcements,
	// optionally filtered by ID.
	DescribeTransitGatewayRouteTableAnnouncements(ids []string) []*TransitGatewayRouteTableAnnouncement

	// DeleteTransitGatewayRouteTableAnnouncement removes a route table announcement.
	DeleteTransitGatewayRouteTableAnnouncement(id string) error

	// CreateTransitGatewayMulticastDomain creates a new multicast domain on a transit gateway.
	CreateTransitGatewayMulticastDomain(
		tgwID, autoAcceptSharedAssociations, igmpv2Support, staticSourcesSupport string,
	) (*TransitGatewayMulticastDomain, error)

	// DescribeTransitGatewayMulticastDomains returns multicast domains, optionally filtered by ID.
	DescribeTransitGatewayMulticastDomains(ids []string) []*TransitGatewayMulticastDomain

	// DeleteTransitGatewayMulticastDomain removes a multicast domain.
	DeleteTransitGatewayMulticastDomain(id string) error

	// AssociateTransitGatewayMulticastDomain associates subnets with a multicast domain.
	AssociateTransitGatewayMulticastDomain(
		domainID, attachmentID string,
		subnetIDs []string,
	) ([]*TransitGatewayMulticastDomainAssociation, error)

	// DisassociateTransitGatewayMulticastDomain removes subnet associations from a multicast domain.
	DisassociateTransitGatewayMulticastDomain(
		domainID, attachmentID string,
		subnetIDs []string,
	) ([]*TransitGatewayMulticastDomainAssociation, error)

	// GetTransitGatewayMulticastDomainAssociations returns the subnet associations for a multicast domain.
	GetTransitGatewayMulticastDomainAssociations(
		domainID string,
	) []*TransitGatewayMulticastDomainAssociation

	// RegisterTransitGatewayMulticastGroupMembers registers network interfaces as multicast group members.
	RegisterTransitGatewayMulticastGroupMembers(
		domainID, groupIP string,
		eniIDs []string,
	) (*TransitGatewayMulticastGroupMembership, error)

	// DeregisterTransitGatewayMulticastGroupMembers removes network interfaces as multicast group members.
	DeregisterTransitGatewayMulticastGroupMembers(
		domainID, groupIP string,
		eniIDs []string,
	) (*TransitGatewayMulticastGroupMembership, error)

	// RegisterTransitGatewayMulticastGroupSources registers network interfaces as multicast group sources.
	RegisterTransitGatewayMulticastGroupSources(
		domainID, groupIP string,
		eniIDs []string,
	) (*TransitGatewayMulticastGroupMembership, error)

	// DeregisterTransitGatewayMulticastGroupSources removes network interfaces as multicast group sources.
	DeregisterTransitGatewayMulticastGroupSources(
		domainID, groupIP string,
		eniIDs []string,
	) (*TransitGatewayMulticastGroupMembership, error)

	// SearchTransitGatewayMulticastGroups returns the multicast group entries for a domain.
	SearchTransitGatewayMulticastGroups(domainID string) []*TransitGatewayMulticastGroupEntry

	// CreateTransitGatewayMeteringPolicy creates a new metering policy on a transit gateway.
	CreateTransitGatewayMeteringPolicy(
		tgwID string,
		middleboxAttachmentIDs []string,
	) (*TransitGatewayMeteringPolicy, error)

	// DescribeTransitGatewayMeteringPolicies returns metering policies, optionally filtered by ID.
	DescribeTransitGatewayMeteringPolicies(ids []string) []*TransitGatewayMeteringPolicy

	// DeleteTransitGatewayMeteringPolicy removes a metering policy.
	DeleteTransitGatewayMeteringPolicy(id string) error

	// CreateTransitGatewayMeteringPolicyEntry adds a rule to a metering policy.
	CreateTransitGatewayMeteringPolicyEntry(
		policyID string,
		entry *TransitGatewayMeteringPolicyEntry,
	) (*TransitGatewayMeteringPolicyEntry, error)

	// DeleteTransitGatewayMeteringPolicyEntry removes a rule from a metering policy.
	DeleteTransitGatewayMeteringPolicyEntry(
		policyID string,
		ruleNumber int,
	) (*TransitGatewayMeteringPolicyEntry, error)

	// CreateVpnGateway creates a new virtual private gateway.
	CreateVpnGateway(gatewayType string) (*VpnGateway, error)

	// DescribeVpnGateways returns virtual private gateways, optionally filtered by IDs.
	DescribeVpnGateways(ids []string) []*VpnGateway

	// DeleteVpnGateway removes a VPN gateway.
	DeleteVpnGateway(id string) error

	// AttachVpnGateway attaches a VPN gateway to a VPC.
	AttachVpnGateway(vgwID, vpcID string) error

	// DetachVpnGateway detaches a VPN gateway from a VPC.
	DetachVpnGateway(vgwID, vpcID string) error

	// CreateCustomerGateway creates a new customer gateway.
	CreateCustomerGateway(gatewayType, ipAddress, bgpAsn string) (*CustomerGateway, error)

	// DescribeCustomerGateways returns customer gateways, optionally filtered by IDs.
	DescribeCustomerGateways(ids []string) []*CustomerGateway

	// DeleteCustomerGateway removes a customer gateway.
	DeleteCustomerGateway(id string) error

	// CreateVpnConnection creates a VPN connection between a customer gateway and VPN gateway.
	CreateVpnConnection(connType, customerGatewayID, vpnGatewayID string) (*VpnConnection, error)

	// DescribeVpnConnections returns VPN connections, optionally filtered by IDs.
	DescribeVpnConnections(ids []string) []*VpnConnection

	// DeleteVpnConnection removes a VPN connection.
	DeleteVpnConnection(id string) error

	// GetVpnConnectionRoutes returns the static routes registered against a VPN connection.
	GetVpnConnectionRoutes(vpnConnectionID string) []*VpnConnectionRoute

	// ModifyVpnConnectionOptions updates the negotiated local/remote IPv4 CIDRs and the
	// static-routes-only flag of a VPN connection.
	ModifyVpnConnectionOptions(
		vpnConnectionID, localIPv4CIDR, remoteIPv4CIDR string, staticRoutesOnly *bool,
	) (*VpnConnection, error)

	// ModifyVpnTunnelOptions updates the configuration of a single tunnel of a VPN connection.
	ModifyVpnTunnelOptions(
		vpnConnectionID, outsideIPAddress string, opts VpnTunnelOptionsModify,
	) (*VpnConnection, error)

	// ModifyVpnTunnelCertificate provisions a certificate-based authentication certificate for
	// a single tunnel of a VPN connection.
	ModifyVpnTunnelCertificate(vpnConnectionID, outsideIPAddress string) (*VpnConnection, error)

	// GetVpnConnectionDeviceTypes returns the static catalog of supported customer gateway
	// device types.
	GetVpnConnectionDeviceTypes() []VpnConnectionDeviceType

	// GetVpnConnectionDeviceSampleConfiguration generates a sample vendor configuration for a
	// VPN connection's tunnels.
	GetVpnConnectionDeviceSampleConfiguration(vpnConnectionID, deviceTypeID, ikeVersion string) (string, error)

	// GetVpnTunnelReplacementStatus reports pending AWS-initiated tunnel endpoint maintenance
	// for a single tunnel of a VPN connection.
	GetVpnTunnelReplacementStatus(vpnConnectionID, outsideIPAddress string) (*VpnTunnelReplacementStatus, error)

	// RejectVpcPeeringConnection rejects a pending VPC peering connection.
	RejectVpcPeeringConnection(id string) error

	// CreateVpcEndpointServiceConfiguration creates a new endpoint service config.
	CreateVpcEndpointServiceConfiguration(
		acceptanceRequired bool,
		nlbARNs []string,
	) (*VpcEndpointServiceConfig, error)

	// DescribeVpcEndpointServiceConfigurations returns endpoint service configs, optionally filtered by IDs.
	DescribeVpcEndpointServiceConfigurations(ids []string) []*VpcEndpointServiceConfig

	// DeleteVpcEndpointServiceConfigurations removes endpoint service configs by IDs.
	DeleteVpcEndpointServiceConfigurations(ids []string) error

	// ModifyVpcEndpointServiceConfiguration updates acceptance required for a service config.
	ModifyVpcEndpointServiceConfiguration(id string, acceptanceRequired bool) error

	// CreateIpam creates a new IPAM instance, along with its default scopes and resource discovery.
	CreateIpam(opts ...IpamOptions) (*Ipam, error)

	// DescribeIpams returns IPAM instances, optionally filtered by IDs.
	DescribeIpams(ids []string) []*Ipam

	// ModifyIpam updates an IPAM's description, operating regions, or tier.
	ModifyIpam(id string, opts IpamOptions) (*Ipam, error)

	// DeleteIpam removes an IPAM instance.
	DeleteIpam(id string) error

	// CreateIpamScope creates an additional (non-default) private IPAM scope.
	CreateIpamScope(ipamID, description string) (*IpamScope, error)

	// DescribeIpamScopes returns IPAM scopes, optionally filtered by IDs.
	DescribeIpamScopes(ids []string) []*IpamScope

	// ModifyIpamScope updates an IPAM scope's description.
	ModifyIpamScope(id, description string) (*IpamScope, error)

	// DeleteIpamScope removes a non-default IPAM scope.
	DeleteIpamScope(id string) error

	// CreateIpamPool creates a new IPAM pool.
	CreateIpamPool(ipamID, addressFamily, locale, cidr string, opts ...IpamPoolOptions) (*IpamPool, error)

	// DescribeIpamPools returns IPAM pools, optionally filtered by IDs.
	DescribeIpamPools(ids []string) []*IpamPool

	// ModifyIpamPool updates mutable attributes of an IPAM pool.
	ModifyIpamPool(id string, opts IpamPoolOptions) (*IpamPool, error)

	// DeleteIpamPool removes an IPAM pool.
	DeleteIpamPool(id string) error

	// ProvisionIpamPoolCidr adds a CIDR range to an IPAM pool's provisioned space.
	ProvisionIpamPoolCidr(poolID, cidr string) (*IpamPoolCidr, error)

	// DeprovisionIpamPoolCidr removes a provisioned CIDR range from an IPAM pool.
	DeprovisionIpamPoolCidr(poolID, cidr string) (*IpamPoolCidr, error)

	// GetIpamPoolCidrs returns the CIDR ranges provisioned to an IPAM pool.
	GetIpamPoolCidrs(poolID string) []*IpamPoolCidr

	// AllocateIpamPoolCidr allocates a CIDR from an IPAM pool.
	AllocateIpamPoolCidr(
		poolID, cidr string, netmaskLength int, opts ...IpamAllocationOptions,
	) (*IpamPoolAllocation, error)

	// GetIpamPoolAllocations returns allocations for an IPAM pool, optionally filtered to one ID.
	GetIpamPoolAllocations(poolID, allocationID string) ([]*IpamPoolAllocation, error)

	// ReleaseIpamPoolAllocation releases an IPAM pool allocation.
	ReleaseIpamPoolAllocation(poolID, allocationID string) error

	// DescribeIpamResourceDiscoveries returns IPAM resource discoveries, optionally filtered by IDs.
	DescribeIpamResourceDiscoveries(ids []string) []*IpamResourceDiscovery

	// DescribeIpamResourceDiscoveryAssociations returns IPAM resource discovery associations.
	DescribeIpamResourceDiscoveryAssociations(ids []string) []*IpamResourceDiscoveryAssociation

	// CreateIpamResourceDiscovery creates a standalone (non-default) IPAM resource discovery.
	CreateIpamResourceDiscovery(description string, operatingRegions []string) (*IpamResourceDiscovery, error)

	// DeleteIpamResourceDiscovery removes a non-default IPAM resource discovery.
	DeleteIpamResourceDiscovery(id string) (*IpamResourceDiscovery, error)

	// AssociateIpamResourceDiscovery associates a resource discovery with an IPAM.
	AssociateIpamResourceDiscovery(ipamID, discoveryID string) (*IpamResourceDiscoveryAssociation, error)

	// DisassociateIpamResourceDiscovery removes a resource discovery association from an IPAM.
	DisassociateIpamResourceDiscovery(assocID string) (*IpamResourceDiscoveryAssociation, error)

	// ModifyIpamResourceDiscovery updates a resource discovery's description/operating regions.
	ModifyIpamResourceDiscovery(
		id, description string, addOperatingRegions, removeOperatingRegions []string,
	) (*IpamResourceDiscovery, error)

	// GetIpamResourceCidrs returns resource CIDRs monitored by IPAM in a given scope.
	GetIpamResourceCidrs(scopeID, poolID, resourceID, resourceOwner, resourceType string) ([]*IpamResourceCidr, error)

	// ModifyIpamResourceCidr moves/updates a monitored resource CIDR.
	ModifyIpamResourceCidr(
		currentScopeID, resourceCidr, resourceID, resourceRegion string, monitored bool, destScopeID string,
	) (*IpamResourceCidr, error)

	// ProvisionIpamByoasn provisions a public ASN for use with an IPAM's BYOIP CIDRs.
	ProvisionIpamByoasn(ipamID, asn string) (*IpamByoasn, error)

	// DeprovisionIpamByoasn releases a previously-provisioned BYOASN.
	DeprovisionIpamByoasn(ipamID, asn string) (*IpamByoasn, error)

	// DescribeIpamByoasn returns all provisioned BYOASNs.
	DescribeIpamByoasn() []*IpamByoasn

	// AssociateIpamByoasn associates a provisioned BYOASN with a BYOIP CIDR.
	AssociateIpamByoasn(asn, cidr string) (*IpamAsnAssociation, error)

	// DisassociateIpamByoasn removes the association between a BYOASN and a BYOIP CIDR.
	DisassociateIpamByoasn(asn, cidr string) (*IpamAsnAssociation, error)

	// CreateIpamExternalResourceVerificationToken creates an external resource verification token.
	CreateIpamExternalResourceVerificationToken(ipamID string) (*IpamExternalResourceVerificationToken, error)

	// DeleteIpamExternalResourceVerificationToken removes a verification token.
	DeleteIpamExternalResourceVerificationToken(id string) (*IpamExternalResourceVerificationToken, error)

	// DescribeIpamExternalResourceVerificationTokens returns verification tokens.
	DescribeIpamExternalResourceVerificationTokens(ids []string) []*IpamExternalResourceVerificationToken

	// CreateIpamPrefixListResolver creates a new IPAM prefix list resolver.
	CreateIpamPrefixListResolver(
		ipamID, addressFamily, description string, rules []IpamPrefixListResolverRule,
	) (*IpamPrefixListResolver, error)

	// DeleteIpamPrefixListResolver removes a prefix list resolver.
	DeleteIpamPrefixListResolver(id string) (*IpamPrefixListResolver, error)

	// DescribeIpamPrefixListResolvers returns prefix list resolvers.
	DescribeIpamPrefixListResolvers(ids []string) []*IpamPrefixListResolver

	// ModifyIpamPrefixListResolver updates a resolver's description and/or rules.
	ModifyIpamPrefixListResolver(
		id, description string, rules []IpamPrefixListResolverRule, rulesProvided bool,
	) (*IpamPrefixListResolver, error)

	// GetIpamPrefixListResolverRules returns a resolver's current CIDR selection rules.
	GetIpamPrefixListResolverRules(resolverID string) ([]IpamPrefixListResolverRule, error)

	// GetIpamPrefixListResolverVersions returns a resolver's recorded version numbers.
	GetIpamPrefixListResolverVersions(resolverID string) ([]int64, error)

	// GetIpamPrefixListResolverVersionEntries returns the CIDR entries of a resolver version.
	GetIpamPrefixListResolverVersionEntries(resolverID string, version int64) ([]string, error)

	// CreateIpamPrefixListResolverTarget associates a managed prefix list with a resolver.
	CreateIpamPrefixListResolverTarget(
		resolverID, prefixListID, prefixListRegion string, trackLatestVersion bool, desiredVersion *int64,
	) (*IpamPrefixListResolverTarget, error)

	// DeleteIpamPrefixListResolverTarget removes a resolver target.
	DeleteIpamPrefixListResolverTarget(id string) (*IpamPrefixListResolverTarget, error)

	// DescribeIpamPrefixListResolverTargets returns resolver targets.
	DescribeIpamPrefixListResolverTargets(resolverID string, ids []string) []*IpamPrefixListResolverTarget

	// ModifyIpamPrefixListResolverTarget updates a target's desired version/tracking flag.
	ModifyIpamPrefixListResolverTarget(
		id string, desiredVersion *int64, trackLatestVersion *bool,
	) (*IpamPrefixListResolverTarget, error)

	// CreateIpamPolicy creates a new IPAM policy under the given IPAM.
	CreateIpamPolicy(ipamID string) (*IpamPolicy, error)

	// DeleteIpamPolicy removes an IPAM policy.
	DeleteIpamPolicy(id string) (*IpamPolicy, error)

	// DescribeIpamPolicies returns IPAM policies, optionally filtered by IDs.
	DescribeIpamPolicies(ids []string) []*IpamPolicy

	// EnableIpamPolicy enables an IPAM policy for the current account or an Organizations target.
	EnableIpamPolicy(id, orgTargetID string) error

	// DisableIpamPolicy disables an IPAM policy for the current account or an Organizations target.
	DisableIpamPolicy(id, orgTargetID string) error

	// GetEnabledIpamPolicy returns the IPAM policy enabled for the current account, if any.
	GetEnabledIpamPolicy() (policyID string, enabled bool, managedBy string)

	// GetIpamPolicyOrganizationTargets returns the Organizations targets an IPAM policy is
	// enabled for.
	GetIpamPolicyOrganizationTargets(id string) ([]string, error)

	// GetIpamPolicyAllocationRules returns an IPAM policy's allocation rule documents.
	GetIpamPolicyAllocationRules(id, locale, resourceType string) ([]*IpamPolicyDocument, error)

	// ModifyIpamPolicyAllocationRules replaces an IPAM policy's allocation rules for a
	// (locale, resourceType) pair.
	ModifyIpamPolicyAllocationRules(
		id, locale, resourceType string, rules []IpamPolicyAllocationRule,
	) (*IpamPolicyDocument, error)

	// EnableIpamOrganizationAdminAccount enables an Organizations member account as the IPAM
	// delegated administrator account.
	EnableIpamOrganizationAdminAccount(accountID string) error

	// DisableIpamOrganizationAdminAccount disables the IPAM Organizations delegated
	// administrator account.
	DisableIpamOrganizationAdminAccount(accountID string) error

	// MoveByoipCidrToIpam associates an existing BYOIP CIDR with an IPAM pool.
	MoveByoipCidrToIpam(cidr, poolID, poolOwner string) (*ByoipCidr, error)

	// RequestSpotFleet creates a new Spot Fleet request and fulfills it.
	RequestSpotFleet(config SpotFleetRequestConfig) (*SpotFleetRequest, error)

	// DescribeSpotFleetRequests returns spot fleet requests, optionally filtered by IDs.
	DescribeSpotFleetRequests(fleetIDs []string) ([]*SpotFleetRequest, error)

	// CancelSpotFleetRequests cancels spot fleet requests.
	CancelSpotFleetRequests(
		fleetIDs []string,
		terminateInstances bool,
	) ([]SpotFleetCancelResult, error)

	// ModifySpotFleetRequest updates the target capacity of a spot fleet request.
	ModifySpotFleetRequest(
		fleetID string,
		targetCapacity int,
		excessTermination string,
	) (*SpotFleetRequest, error)

	// DescribeSpotFleetInstances returns the instances in a spot fleet.
	DescribeSpotFleetInstances(fleetID string) ([]SpotFleetInstance, error)

	// DescribeSpotFleetRequestHistory returns history records for a spot fleet.
	DescribeSpotFleetRequestHistory(
		fleetID string,
		startTime time.Time,
	) ([]SpotFleetHistoryRecord, error)

	// Reset clears all resource state, returning the backend to its initial state.
	Reset()

	ModifyVolume(volumeID, volumeType string, size, iops int) (*VolumeModification, error)
	DescribeVolumeStatus(ids []string) []VolumeStatusItem
	DescribeVolumesModifications(ids []string) []*VolumeModification
	CopySnapshot(sourceSnapshotID, description string) (*Snapshot, error)
	CreateSnapshots(volumeIDs []string, description string) ([]*Snapshot, error)

	GetSnapshotBlockPublicAccessState() string
	EnableSnapshotBlockPublicAccess(state string) error
	DisableSnapshotBlockPublicAccess()
	DescribeSnapshotTierStatus(ids []string) []SnapshotTierItem
	ModifySnapshotTier(snapshotID, storageTier string) error
	ResetSnapshotAttribute(snapshotID string) error

	CreateDefaultVpc() (*VPC, error)
	CreateDefaultSubnet(az string) (*Subnet, error)
	AssociateSubnetCidrBlock(subnetID, ipv6CIDRBlock string) (*SubnetCIDRAssociation, error)
	DisassociateSubnetCidrBlock(associationID string) (string, error)
	AssociateSecurityGroupVpc(sgID, vpcID string) (*SGVpcAssociationState, error)
	DisassociateSecurityGroupVpc(sgID, vpcID string) error
	DescribeSecurityGroupReferences(sgIDs []string) []SGReference
	DescribeStaleSecurityGroups(vpcID string) []StaleSGItem
	DescribeSecurityGroupVpcAssociations(sgIDs []string) []SGVpcAssocItem
	ModifyVpcTenancy(vpcID, tenancy string) error
	ModifyVpcPeeringConnectionOptions(peeringID string, opts PeeringConnectionOptions) error
	GetVpcPeeringConnectionOptions(peeringID string) *PeeringConnectionOptions

	DescribeAddressesAttribute(allocationIDs []string) []AddressAttribute
	ModifyAddressAttribute(allocationID, domainName string) error
	ResetAddressAttribute(allocationID string) error

	GetConsoleOutput(instanceID string) (string, time.Time, error)
	ModifyInstanceMetadataOptions(
		instanceID, httpTokens, httpEndpoint, instanceMetadataTags string,
		hopLimit int,
	) (*IMDSOptions, error)
	GetInstanceMetadataDefaults() *InstanceMetadataDefaults
	ModifyInstanceMetadataDefaults(
		httpTokens, httpEndpoint, instanceMetadataTags string,
		hopLimit int,
	) error
	DescribeInstanceCreditSpecifications(ids []string) []InstanceCreditSpec
	ModifyInstanceCreditSpecification(instanceID, cpuCredits string) error
	DescribeInstanceTopology(ids []string) []InstanceTopologyItem
	MonitorInstances(instanceIDs []string) ([]MonitoringState, error)
	UnmonitorInstances(instanceIDs []string) ([]MonitoringState, error)

	DescribeNetworkInterfaceAttribute(niID, attribute string) (*NIAttributeResult, error)
	ResetNetworkInterfaceAttribute(niID string) error
	DescribeNetworkInterfacePermissions(niIDs []string) []*NetworkInterfacePermission
	CreateNetworkInterfacePermission(
		niID, awsAccountID, awsService, permission string,
	) (*NetworkInterfacePermission, error)
	DeleteNetworkInterfacePermission(permissionID string) error
	AssignIpv6Addresses(niID string, count int) ([]string, error)
	UnassignIpv6Addresses(niID string, addresses []string) error

	DescribeAccountAttributes(names []string) []AccountAttribute
	DescribePrefixLists(ids []string) []PrefixList
	DescribeIDFormat(resources []string) []IDFormatItem
	ModifyIDFormat(resource string, useLongIDs bool) error
	DescribeIdentityIDFormat(_ string, resources []string) []IDFormatItem
	ModifyIdentityIDFormat(_ string, resource string, useLongIDs bool) error
	DescribeAggregateIDFormat() []IDFormatItem
	DescribePrincipalIDFormat(_ string) []IDFormatItem
	DescribeInstanceEventNotificationAttributes() *InstanceEventNotificationAttributes
	DeregisterInstanceEventNotificationAttributes()

	CreateVpcEndpointConnectionNotification(
		serviceID, endpointID, notifARN string,
		events []string,
	) (*VpcEndpointConnectionNotification, error)
	DescribeVpcEndpointConnectionNotifications(ids []string) []*VpcEndpointConnectionNotification
	DeleteVpcEndpointConnectionNotifications(ids []string) error
	ModifyVpcEndpointConnectionNotification(
		id, notifARN string,
		events []string,
	) (*VpcEndpointConnectionNotification, error)
	DescribeVpcEndpointConnections(serviceIDs []string) []*VpcEndpointConnection
	DescribeVpcEndpointAssociations(endpointIDs []string) []*VpcEndpoint
	ModifyVpcEndpointServicePayerResponsibility(serviceID, payerResponsibility string) error
	DescribeVpcEndpointServicePermissions(serviceID string) []string
	ModifyVpcEndpointServicePermissions(serviceID string, add, remove []string) error
	ModifyVpcEndpoint(endpointID string, addSubnetIDs, removeSubnetIDs []string) error
	EnableEbsEncryptionByDefault()
	DisableEbsEncryptionByDefault()
	GetEbsEncryptionByDefault() bool
	GetEbsDefaultKmsKeyID() string
	ModifyEbsDefaultKmsKeyID(kmsKeyID string) error
	EnableVolumeIO(volumeID string) error
	LockSnapshot(snapshotID, lockMode string, durationDays int) (*SnapshotLock, error)
	UnlockSnapshot(snapshotID string) error
	DescribeLockedSnapshots(ids []string) []*SnapshotLock
	CopyVolumes(volumeIDs []string, destinationRegion string) ([]CopyVolumesResult, error)
	DisassociateVpcCidrBlock(associationID string) error
	DisassociateNatGatewayAddress(natGatewayID string) error
	AssociateNatGatewayAddress(natGatewayID, allocationID string) error
	AssignPrivateNatGatewayAddress(natGatewayID string) error
	DisableImage(imageID string) error
	EnableImage(imageID string) error
	EnableImageBlockPublicAccess(state string) error
	DisableImageBlockPublicAccess()
	GetImageBlockPublicAccessState() string
	EnableImageDeprecation(imageID, deprecateAt string) error
	DisableImageDeprecation(imageID string) error
	EnableImageDeregistrationProtection(imageID string) error
	DisableImageDeregistrationProtection(imageID string) error
	ModifyImageAttribute(imageID, attribute, value string) error
	ResetImageAttribute(imageID, attribute string) error
	DescribeInstanceImageMetadata(instanceIDs []string) []InstanceImageMetadataItem
	EnableSerialConsoleAccess()
	DisableSerialConsoleAccess()
	GetSerialConsoleAccessStatus() bool
	EnableVgwRoutePropagation(routeTableID, gatewayID string) error
	DisableVgwRoutePropagation(routeTableID, gatewayID string) error
	GetDefaultCreditSpecification() string
	ModifyDefaultCreditSpecification(cpuCredits string) error
	CreateReplaceRootVolumeTask(instanceID, snapshotID string) (*ReplaceRootVolumeTask, error)
	DescribeReplaceRootVolumeTasks(ids []string) []*ReplaceRootVolumeTask
	EnableAddressTransfer(allocationID, transferAccountID string) (*AddressTransfer, error)
	DisableAddressTransfer(allocationID string) error
	DescribeAddressTransfers(allocationIDs []string) []*AddressTransfer
	CreateSubnetCidrReservation(
		subnetID, cidr, reservationType, description string,
	) (*SubnetCIDRReservation, error)
	DeleteSubnetCidrReservation(reservationID string) error

	CreateCapacityReservation(
		instanceType, availabilityZone string,
		instanceCount int,
	) (*CapacityReservation, error)
	CancelCapacityReservation(reservationID string) error
	ModifyCapacityReservation(reservationID string, instanceCount int) error
	GetGroupsForCapacityReservation(reservationID string) ([]string, error)
	CreateInstanceConnectEndpoint(
		subnetID string,
		securityGroupIDs []string,
		preserveClientIP bool,
	) (*InstanceConnectEndpoint, error)
	DeleteInstanceConnectEndpoint(id string) error
	DescribeInstanceConnectEndpoints(ids []string) []*InstanceConnectEndpoint
	ModifyInstanceConnectEndpoint(id string, preserveClientIP bool) error
	CreateInstanceEventWindow(name, cronExpression string) (*InstanceEventWindow, error)
	DeleteInstanceEventWindow(id string) error
	DescribeInstanceEventWindows(ids []string) []*InstanceEventWindow
	ModifyInstanceEventWindow(id, name, cronExpression string) error
	CreateSpotDatafeedSubscription(bucket, prefix string) (*SpotDatafeed, error)
	DeleteSpotDatafeedSubscription()
	DescribeSpotDatafeedSubscription() *SpotDatafeed
	RegisterImage(name, description, architecture string) (*AMIStub, error)
	ImportImage(description, architecture, platform string) (*ImageImportTask, error)
	DescribeImportImageTasks(taskIDs []string) []*ImageImportTask
	ExportImage(imageID, description, diskImageFormat, s3Bucket, s3Prefix, roleName string) (*ExportImageTaskRec, error)
	DescribeExportImageTasks(ids []string) []*ExportImageTaskRec
	ListImagesInRecycleBin(imageIDs []string) []*RecycleBinImage
	RestoreImageFromRecycleBin(imageID string) error
	ListSnapshotsInRecycleBin(snapshotIDs []string) []*Snapshot
	RestoreSnapshotFromRecycleBin(snapshotID string) error
	RestoreSnapshotTier(snapshotID string) error
	ImportSnapshot(description string) (*SnapshotImportTask, error)
	DescribeImportSnapshotTasks(taskIDs []string) []*SnapshotImportTask
	EnableFastLaunch(imageID string) error
	DisableFastLaunch(imageID string) error
	DescribeFastLaunchImages(imageIDs []string) []FastLaunchImageItem
	EnableFastSnapshotRestores(snapshotIDs, availabilityZones []string) error
	DisableFastSnapshotRestores(snapshotIDs, availabilityZones []string) error
	DescribeFastSnapshotRestores() []FastSnapshotRestoreItem
	GetPasswordData(instanceID string) (string, time.Time, error)
	GetConsoleScreenshot(instanceID string) (string, error)
	GetInstanceTypesFromInstanceRequirements() []string
	GetSubnetCidrReservations(subnetID string) ([]*SubnetCIDRReservation, error)
	GetSecurityGroupsForVpc(vpcID string) ([]SecurityGroupForVpcItem, error)
	ReplaceRoute(rtID, destCIDR, gatewayID, natGatewayID string) error
	RegisterInstanceEventNotificationAttributes(includeAllTags bool)
	ResetEbsDefaultKmsKeyID()
	UpdateSecurityGroupRuleDescriptionsIngress(groupID string, rules []SecurityGroupRule) error
	UpdateSecurityGroupRuleDescriptionsEgress(groupID string, rules []SecurityGroupRule) error
	ListVolumesInRecycleBin(volumeIDs []string) []*RecycleBinVolume
	RestoreVolumeFromRecycleBin(volumeID string) error
	RestoreAddressToClassic(publicIP string) error
	ReportInstanceStatus(instanceID, status, description string) error
	ModifyVpnConnection(vpnConnectionID, vpnGatewayID string) error
	CreateVpnConnectionRoute(vpnConnectionID, destinationCIDR string) (*VpnConnectionRoute, error)
	DeleteVpnConnectionRoute(vpnConnectionID, destinationCIDR string) error
	ModifyTransitGateway(tgwID, description string) error

	// ---- batch4: ManagedPrefixList ----
	CreateManagedPrefixList(name, addressFamily string, maxEntries int) (*ManagedPrefixList, error)
	DeleteManagedPrefixList(id string) error
	DescribeManagedPrefixLists(ids []string) []*ManagedPrefixList
	GetManagedPrefixListEntries(id string) ([]PrefixListEntry, error)
	ModifyManagedPrefixList(id string, addEntries, removeEntries []PrefixListEntry) error
	RestoreManagedPrefixListVersion(id string, version int64) error

	// ---- batch4: ClientVpnEndpoint ----
	CreateClientVpnEndpoint(clientCidrBlock, description string, dnsServers []string) (*ClientVpnEndpoint, error)
	CreateClientVpnEndpointWithOptions(
		clientCidrBlock, description string,
		dnsServers []string,
		opts ClientVpnEndpointOptions,
	) (*ClientVpnEndpoint, error)
	DeleteClientVpnEndpoint(id string) error
	DescribeClientVpnEndpoints(ids []string) []*ClientVpnEndpoint
	AssociateClientVpnTargetNetwork(endpointID, subnetID string) (string, error)
	DisassociateClientVpnTargetNetwork(endpointID, assocID string) error
	DescribeClientVpnTargetNetworks(endpointID string) ([]*ClientVpnTargetNetwork, error)
	CreateClientVpnRoute(endpointID, destinationCidr, description string) error
	DeleteClientVpnRoute(endpointID, destinationCidr string) error
	DescribeClientVpnRoutes(endpointID string) ([]ClientVpnRoute, error)
	AuthorizeClientVpnIngress(endpointID, cidr, description string) error
	RevokeClientVpnIngress(endpointID, cidr string) error
	DescribeClientVpnAuthorizationRules(endpointID string) ([]ClientVpnAuthRule, error)
	ModifyClientVpnEndpoint(endpointID, description string, dnsServers []string) error
	ModifyClientVpnEndpointWithOptions(
		endpointID, description string,
		dnsServers []string,
		opts ClientVpnEndpointOptions,
	) error
	ApplySecurityGroupsToClientVpnTargetNetwork(endpointID string, sgIDs []string) error
	DescribeClientVpnConnections(endpointID string) ([]string, error)
	TerminateClientVpnConnections(endpointID string) error
	ExportClientVpnClientConfiguration(endpointID string) (string, error)
	ExportClientVpnClientCertificateRevocationList(endpointID string) (string, error)
	ImportClientVpnClientCertificateRevocationList(endpointID, crl string) error

	// ---- batch4: TGW Peering ----
	CreateTransitGatewayPeeringAttachment(
		transitGatewayID, peerTransitGatewayID string, _ string,
	) (*TransitGatewayPeeringAttachment, error)
	DeleteTransitGatewayPeeringAttachment(id string) error
	DescribeTransitGatewayPeeringAttachments(ids []string) []*TransitGatewayPeeringAttachment

	// ---- batch4: TGW Connect ----
	CreateTransitGatewayConnect(transportAttachmentID, transitGatewayID string) (*TransitGatewayConnect, error)
	DeleteTransitGatewayConnect(id string) error
	DescribeTransitGatewayConnects(ids []string) []*TransitGatewayConnect
	CreateTransitGatewayConnectPeer(
		connectAttachmentID, peerAddress string,
		insideCidrBlocks []string,
	) (*TransitGatewayConnectPeer, error)
	DeleteTransitGatewayConnectPeer(id string) error
	DescribeTransitGatewayConnectPeers(ids []string) []*TransitGatewayConnectPeer

	// ---- batch4: TGW PrefixListRef ----
	CreateTransitGatewayPrefixListReference(
		routeTableID, prefixListID string,
		blackhole bool,
	) (*TransitGatewayPrefixListReference, error)
	DeleteTransitGatewayPrefixListReference(routeTableID, prefixListID string) error
	GetTransitGatewayPrefixListReferences(routeTableID string) ([]*TransitGatewayPrefixListReference, error)
	ModifyTransitGatewayPrefixListReference(
		routeTableID, prefixListID, attachmentID string,
		blackhole bool,
	) (*TransitGatewayPrefixListReference, error)

	// ---- batch4: VerifiedAccess ----
	CreateVerifiedAccessEndpoint(groupID, endpointType, description string) (*VerifiedAccessEndpoint, error)
	DeleteVerifiedAccessEndpoint(id string) error
	DescribeVerifiedAccessEndpoints(ids []string) []*VerifiedAccessEndpoint
	ModifyVerifiedAccessEndpoint(id, description string) error
	CreateVerifiedAccessGroup(instanceID, description string) (*VerifiedAccessGroup, error)
	DeleteVerifiedAccessGroup(id string) error
	DescribeVerifiedAccessGroups(ids []string) []*VerifiedAccessGroup
	CreateVerifiedAccessInstance(description string) (*VerifiedAccessInstance, error)
	DeleteVerifiedAccessInstance(id string) error
	DescribeVerifiedAccessInstances(ids []string) []*VerifiedAccessInstance
	CreateVerifiedAccessTrustProvider(trustProviderType, description string) (*VerifiedAccessTrustProvider, error)
	DeleteVerifiedAccessTrustProvider(id string) error
	DescribeVerifiedAccessTrustProviders(ids []string) []*VerifiedAccessTrustProvider
	AttachVerifiedAccessTrustProvider(instanceID, trustProviderID string) error
	DetachVerifiedAccessTrustProvider(instanceID, trustProviderID string) error
	GetVerifiedAccessEndpointPolicy(id string) (*VerifiedAccessPolicy, error)
	ModifyVerifiedAccessEndpointPolicy(
		id string,
		policyEnabled bool,
		policyDocument string,
	) (*VerifiedAccessPolicy, error)
	GetVerifiedAccessGroupPolicy(id string) (*VerifiedAccessPolicy, error)
	ModifyVerifiedAccessGroupPolicy(id string, policyEnabled bool, policyDocument string) (*VerifiedAccessPolicy, error)
	DescribeVerifiedAccessInstanceLoggingConfigurations(ids []string) []*VerifiedAccessInstanceLoggingConfig
	ModifyVerifiedAccessInstanceLoggingConfiguration(
		instanceID string,
		accessLogs VerifiedAccessLogOptions,
	) (*VerifiedAccessInstanceLoggingConfig, error)
	GetVerifiedAccessEndpointTargets(id string) ([]*VerifiedAccessEndpointTarget, error)
	ExportVerifiedAccessInstanceClientConfiguration(
		instanceID string,
	) (*VerifiedAccessInstanceClientConfiguration, error)

	// ---- FPGA image (AFI) ----
	CreateFpgaImage(name, description string) (*FpgaImage, error)
	CopyFpgaImage(sourceFpgaImageID, sourceRegion, name, description string) (*FpgaImage, error)
	DeleteFpgaImage(id string) error
	DescribeFpgaImages(ids []string) []*FpgaImage
	DescribeFpgaImageAttribute(id, attribute string) (*FpgaImageAttribute, error)
	ModifyFpgaImageAttribute(id string, mod FpgaImageAttributeModification) (*FpgaImage, error)
	ResetFpgaImageAttribute(id, attribute string) error

	// ---- batch5: TrafficMirror ----
	CreateTrafficMirrorFilter(description string) (*TrafficMirrorFilter, error)
	DeleteTrafficMirrorFilter(id string) error
	DescribeTrafficMirrorFilters(ids []string) []*TrafficMirrorFilter
	ModifyTrafficMirrorFilterNetworkServices(id string, add, remove []string) error
	CreateTrafficMirrorFilterRule(
		filterID, direction, action, srcCIDR, dstCIDR, description string,
		ruleNumber, protocol int,
		ports ...TrafficMirrorPortRangePair,
	) (*TrafficMirrorFilterRule, error)
	DeleteTrafficMirrorFilterRule(id string) error
	DescribeTrafficMirrorFilterRules(filterID string) ([]*TrafficMirrorFilterRule, error)
	ModifyTrafficMirrorFilterRule(id, action, description string) error
	CreateTrafficMirrorSession(
		networkInterfaceID, targetID, filterID, description string,
		sessionNumber int,
		packetLength ...int,
	) (*TrafficMirrorSession, error)
	DeleteTrafficMirrorSession(id string) error
	DescribeTrafficMirrorSessions(ids []string) []*TrafficMirrorSession
	ModifyTrafficMirrorSession(id, targetID, filterID, description string) error
	CreateTrafficMirrorTarget(
		networkInterfaceID, networkLoadBalancerArn, description string,
		gatewayLoadBalancerEndpointID ...string,
	) (*TrafficMirrorTarget, error)
	DeleteTrafficMirrorTarget(id string) error
	DescribeTrafficMirrorTargets(ids []string) []*TrafficMirrorTarget

	// ---- batch5: EC2 Fleet ----
	CreateFleet(fleetType string, totalTargetCapacity int) (*Fleet, error)
	DeleteFleets(ids []string) []string
	DescribeFleets(ids []string) []*Fleet
	ModifyFleet(id string, totalTargetCapacity int, excessPolicy string) error

	// ---- batch5: NetworkInsights ----
	CreateNetworkInsightsPath(
		sourceID, destinationID, protocol string,
		destinationPort int,
	) (*NetworkInsightsPath, error)
	DeleteNetworkInsightsPath(id string) error
	DescribeNetworkInsightsPaths(ids []string) []*NetworkInsightsPath
	StartNetworkInsightsAnalysis(pathID string) (*NetworkInsightsAnalysis, error)
	DeleteNetworkInsightsAnalysis(id string) error
	DescribeNetworkInsightsAnalyses(ids []string) []*NetworkInsightsAnalysis
	CreateNetworkInsightsAccessScope() (*NetworkInsightsAccessScope, error)
	DeleteNetworkInsightsAccessScope(id string) error
	DescribeNetworkInsightsAccessScopes(ids []string) []*NetworkInsightsAccessScope
	StartNetworkInsightsAccessScopeAnalysis(scopeID string) (*NetworkInsightsAccessScopeAnalysis, error)
	DeleteNetworkInsightsAccessScopeAnalysis(id string) error
	DescribeNetworkInsightsAccessScopeAnalyses(ids []string) []*NetworkInsightsAccessScopeAnalysis

	// ---- batch5: BYOIP ----
	ProvisionByoipCidr(cidr, description string) (*ByoipCidr, error)
	DeprovisionByoipCidr(cidr string) (*ByoipCidr, error)
	WithdrawByoipCidr(cidr string) (*ByoipCidr, error)

	// ---- batch5: CarrierGateway ----
	CreateCarrierGateway(vpcID string) (*CarrierGateway, error)
	DeleteCarrierGateway(id string) error
	DescribeCarrierGateways(ids []string) []*CarrierGateway

	// ---- batch5: ReservedInstances ----
	DescribeReservedInstances(ids []string) []*ReservedInstance
	DescribeReservedInstancesOfferings(instanceType, az, productDesc string) []*ReservedInstancesOffering
	PurchaseReservedInstancesOffering(offeringID string, instanceCount int) (*ReservedInstance, error)
	CreateReservedInstancesListing(reservedInstancesID string, instanceCount int) (*ReservedInstancesListing, error)
	CancelReservedInstancesListing(id string) error
	DescribeReservedInstancesListings(ids []string) []*ReservedInstancesListing
	DescribeReservedInstancesModifications(ids []string) []*ReservedInstancesModification
	ModifyReservedInstances(
		reservedInstancesIDs []string,
		targetInstanceType string,
		targetCount int,
	) (*ReservedInstancesModification, error)
	DeleteQueuedReservedInstances(ids []string)

	// ---- Route Server ----
	CreateRouteServer(
		amazonSideAsn int64,
		persistRoutesState string,
		persistRoutesDuration int64,
		snsNotificationsEnabled bool,
	) (*RouteServer, error)
	DescribeRouteServers(ids []string) []*RouteServer
	DeleteRouteServer(id string) (*RouteServer, error)
	ModifyRouteServer(
		id string,
		persistRoutesState string,
		persistRoutesDuration int64,
		snsNotificationsEnabled bool,
	) (*RouteServer, error)
	CreateRouteServerEndpoint(routeServerID, subnetID string) (*RouteServerEndpoint, error)
	DescribeRouteServerEndpoints(ids []string) []*RouteServerEndpoint
	DeleteRouteServerEndpoint(id string) (*RouteServerEndpoint, error)
	CreateRouteServerPeer(
		endpointID, peerAddress string,
		bgpPeerAsn int64,
		livenessDetection string,
	) (*RouteServerPeer, error)
	DescribeRouteServerPeers(ids []string) []*RouteServerPeer
	DeleteRouteServerPeer(id string) (*RouteServerPeer, error)
	AssociateRouteServer(routeServerID, vpcID string) (*RouteServerAssociation, error)
	DisassociateRouteServer(routeServerID, vpcID string) (*RouteServerAssociation, error)
	GetRouteServerAssociations(routeServerID string) []*RouteServerAssociation
	EnableRouteServerPropagation(routeServerID, routeTableID string) (*RouteServerPropagation, error)
	DisableRouteServerPropagation(routeServerID, routeTableID string) (*RouteServerPropagation, error)
	GetRouteServerPropagations(routeServerID string) []*RouteServerPropagation
	GetRouteServerRoutingDatabase(routeServerID string) ([]*RouteServerRoute, error)

	SeedLocalGateway(lg LocalGateway) (*LocalGateway, error)
	SeedLocalGatewayVirtualInterface(
		vif LocalGatewayVirtualInterface,
	) (*LocalGatewayVirtualInterface, error)
	SeedLocalGatewayVirtualInterfaceGroup(
		group LocalGatewayVirtualInterfaceGroup,
	) (*LocalGatewayVirtualInterfaceGroup, error)
	DescribeLocalGateways(ids []string) []*LocalGateway
	DescribeLocalGatewayVirtualInterfaces(ids []string) []*LocalGatewayVirtualInterface
	DescribeLocalGatewayVirtualInterfaceGroups(ids []string) []*LocalGatewayVirtualInterfaceGroup

	CreateLocalGatewayRouteTable(localGatewayID, mode string) (*LocalGatewayRouteTable, error)
	DescribeLocalGatewayRouteTables(ids []string) []*LocalGatewayRouteTable
	DeleteLocalGatewayRouteTable(id string) error

	CreateLocalGatewayRoute(
		routeTableID, destinationCIDR, destinationPrefixListID, vifGroupID, eniID string,
	) (*LocalGatewayRoute, error)
	DeleteLocalGatewayRoute(
		routeTableID, destinationCIDR, destinationPrefixListID string,
	) (*LocalGatewayRoute, error)
	ModifyLocalGatewayRoute(
		routeTableID, destinationCIDR, destinationPrefixListID, vifGroupID, eniID string,
	) (*LocalGatewayRoute, error)
	SearchLocalGatewayRoutes(routeTableID string, states []string) ([]*LocalGatewayRoute, error)

	CreateLocalGatewayRouteTableVpcAssociation(
		routeTableID, vpcID string,
	) (*LocalGatewayRouteTableVpcAssociation, error)
	DeleteLocalGatewayRouteTableVpcAssociation(id string) (*LocalGatewayRouteTableVpcAssociation, error)
	DescribeLocalGatewayRouteTableVpcAssociations(ids []string) []*LocalGatewayRouteTableVpcAssociation

	CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation(
		routeTableID, vifGroupID string,
	) (*LocalGatewayRouteTableVirtualInterfaceGroupAssociation, error)
	DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation(
		id string,
	) (*LocalGatewayRouteTableVirtualInterfaceGroupAssociation, error)
	DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations(
		ids []string,
	) []*LocalGatewayRouteTableVirtualInterfaceGroupAssociation

	AttachClassicLinkVpc(instanceID, vpcID string, groups []string) error
	DetachClassicLinkVpc(instanceID, vpcID string) error
	DescribeClassicLinkInstances(instanceIDs []string) []*ClassicLinkInstance
	EnableVpcClassicLink(vpcID string) error
	DisableVpcClassicLink(vpcID string) error
	DescribeVpcClassicLink(vpcIDs []string) ([]*VPC, error)
	EnableVpcClassicLinkDNSSupport(vpcID string) error
	DisableVpcClassicLinkDNSSupport(vpcID string) error
	DescribeVpcClassicLinkDNSSupport(vpcIDs []string) ([]*VPC, error)

	DescribeVpcBlockPublicAccessOptions() *VpcBlockPublicAccessOptions
	ModifyVpcBlockPublicAccessOptions(blockMode string) (*VpcBlockPublicAccessOptions, error)
	CreateVpcBlockPublicAccessExclusion(
		vpcID, subnetID, mode string,
		tags map[string]string,
	) (*VpcBlockPublicAccessExclusion, error)
	ModifyVpcBlockPublicAccessExclusion(exclusionID, mode string) (*VpcBlockPublicAccessExclusion, error)
	DeleteVpcBlockPublicAccessExclusion(exclusionID string) (*VpcBlockPublicAccessExclusion, error)
	DescribeVpcBlockPublicAccessExclusions(ids []string) []*VpcBlockPublicAccessExclusion

	StartVpcEndpointServicePrivateDNSVerification(serviceID string) error

	CreateCapacityReservationFleet(
		specs []CapacityReservationFleetInstanceSpec,
		totalTargetCapacity int32,
		allocationStrategy, instanceMatchCriteria, tenancy string,
		endDate *time.Time,
		tags map[string]string,
	) (*CapacityReservationFleet, error)
	DescribeCapacityReservationFleets(ids []string, filters map[string][]string) []*CapacityReservationFleet
	ModifyCapacityReservationFleet(
		fleetID string,
		totalTargetCapacity *int32,
		endDate *time.Time,
		removeEndDate bool,
	) error
	CancelCapacityReservationFleets(
		fleetIDs []string,
	) ([]CapacityReservationFleetCancellation, []FailedCapacityReservationFleetCancellation)

	DescribeCapacityBlockOfferings(
		instanceType string,
		durationHours, instanceCount int32,
	) ([]*CapacityBlockOffering, error)
	PurchaseCapacityBlock(
		offeringID, instancePlatform string,
		tags map[string]string,
	) (*CapacityBlock, *CapacityReservation, error)
	DescribeCapacityBlockExtensionOfferings(
		reservationID string,
		durationHours int32,
	) ([]*CapacityBlockExtensionOffering, error)
	PurchaseCapacityBlockExtension(extensionOfferingID, reservationID string) (*CapacityBlockExtension, error)
	DescribeCapacityBlocks(ids []string, filters map[string][]string) []*CapacityBlock
	DescribeCapacityBlockStatus(ids []string, filters map[string][]string) []*CapacityBlockStatus
	DescribeCapacityBlockExtensionHistory(
		reservationIDs []string,
		filters map[string][]string,
	) []*CapacityBlockExtension

	CreateCapacityReservationBySplitting(
		sourceID string,
		instanceCount int,
		tags map[string]string,
	) (*CapacityReservation, *CapacityReservation, error)
	MoveCapacityReservationInstances(
		sourceID, destinationID string,
		instanceCount int,
	) (*CapacityReservation, *CapacityReservation, error)

	AssociateCapacityReservationBillingOwner(reservationID, billingOwnerID string) error
	DisassociateCapacityReservationBillingOwner(reservationID, billingOwnerID string) error
	RejectCapacityReservationBillingOwnership(reservationID string) error
	DescribeCapacityReservationBillingRequests(
		ids []string,
		filters map[string][]string,
	) []*CapacityReservationBillingRequest

	EnableCapacityManager(organizationsAccess bool) (string, bool)
	DisableCapacityManager() (string, bool)
	UpdateCapacityManagerOrganizationsAccess(organizationsAccess bool) (string, bool)
	GetCapacityManagerAttributes() *CapacityManagerAttributes
	GetCapacityManagerMetricData() []MetricDataResult
	GetCapacityManagerMetricDimensions() []CapacityManagerDimension
	CreateCapacityManagerDataExport(
		outputFormat, s3BucketName, s3BucketPrefix, schedule string,
		tags map[string]string,
	) (*CapacityManagerDataExport, error)
	DescribeCapacityManagerDataExports(ids []string) []*CapacityManagerDataExport
	DeleteCapacityManagerDataExport(id string) (string, error)

	DescribeScheduledInstanceAvailability(
		filters map[string][]string,
		minSlotDurationHours, maxSlotDurationHours int32,
	) []ScheduledInstanceAvailability
	PurchaseScheduledInstances(requests []ScheduledInstancePurchaseRequest) ([]*ScheduledInstance, error)
	DescribeScheduledInstances(ids []string) []*ScheduledInstance
	RunScheduledInstances(scheduledInstanceID, imageID, keyName string, instanceCount int32) ([]string, error)

	CreateCoipPool(localGatewayRouteTableID string, tags map[string]string) (*CoipPool, error)
	DeleteCoipPool(poolID string) (*CoipPool, error)
	DescribeCoipPools(ids []string) []*CoipPool
	CreateCoipCidr(poolID, cidr string) (*CoipCidr, error)
	DeleteCoipCidr(poolID, cidr string) (*CoipCidr, error)
	GetCoipPoolUsage(poolID string) (*CoipPool, error)

	CreatePublicIpv4Pool(networkBorderGroup string, tags map[string]string) *Ipv4Pool
	DeletePublicIpv4Pool(poolID string) error
	DescribePublicIpv4Pools(ids []string) []*Ipv4Pool
	ProvisionPublicIpv4PoolCidr(poolID string, netmaskLength int32) (*Ipv4PoolRange, error)
	DeprovisionPublicIpv4PoolCidr(poolID, cidr string) error
	DescribeIpv6Pools(ids []string) []*Ipv6Pool
	GetAssociatedIpv6PoolCidrs(poolID string) ([]Ipv6CidrAssociation, error)

	EnableAllowedImagesSettings(state string) (string, error)
	DisableAllowedImagesSettings() string
	GetAllowedImagesSettings() *AllowedImagesSettings
	ReplaceImageCriteriaInAllowedImagesSettings(criteria []ImageCriterion) bool

	CreateStoreImageTask(imageID, bucket string) (*StoreImageTask, error)
	DescribeStoreImageTasks(imageIDs []string) []*StoreImageTask
	CreateRestoreImageTask(bucket, objectKey, name string) (*AMIStub, error)

	CreateImageUsageReport(imageID string, resourceTypes, accountIDs []string) (*UsageReport, error)
	DeleteImageUsageReport(reportID string) error
	DescribeImageUsageReportEntries(reportIDs, imageIDs []string) []*UsageReportEntry

	ConfirmProductInstance(instanceID, productCode string) (bool, error)

	BundleInstance(instanceID, s3Bucket, s3Prefix string) (*BundleTask, error)
	CancelBundleTask(bundleID string) (*BundleTask, error)
	DescribeBundleTasks(ids []string) []*BundleTask

	ImportInstance(
		description, platform, availabilityZone, diskFormat string, diskBytes, volumeSize int64,
	) (*ConversionTask, error)
	ImportVolume(description, availabilityZone, diskFormat string, diskBytes, volumeSize int64) (*ConversionTask, error)
	DescribeConversionTasks(ids []string) []*ConversionTask
	CancelConversionTask(conversionTaskID string) (*ConversionTask, error)

	CreateInstanceExportTask(
		instanceID, description, targetEnvironment, diskImageFormat, containerFormat, s3Bucket, s3Prefix string,
	) (*ExportTask, error)
	CancelExportTask(exportTaskID string) error
	DescribeExportTasks(ids []string) []*ExportTask

	CancelImportTask(importTaskID string) (previousState, newState string, err error)

	AssociateTrunkInterface(
		branchInterfaceID, trunkInterfaceID string, vlanID, greKey int32, tags map[string]string,
	) (*TrunkInterfaceAssociation, error)
	DisassociateTrunkInterface(associationID string) error
	DescribeTrunkInterfaceAssociations(ids []string) []*TrunkInterfaceAssociation

	AssociateEnclaveCertificateIamRole(certificateArn, roleArn string) (*EnclaveCertIamRoleAssociation, error)
	DisassociateEnclaveCertificateIamRole(certificateArn, roleArn string) error
	GetAssociatedEnclaveCertificateIamRoles(certificateArn string) ([]*EnclaveCertIamRoleAssociation, error)

	DescribeMacHosts(ids []string) []*MacHost
	CreateMacSystemIntegrityProtectionModificationTask(
		instanceID, status string, config *MacSIPConfig, tags map[string]string,
	) (*MacModificationTask, error)
	CreateDelegateMacVolumeOwnershipTask(
		instanceID, macCredentials string, tags map[string]string,
	) (*MacModificationTask, error)
	DescribeMacModificationTasks(ids []string) []*MacModificationTask

	CreateSecondaryNetwork(ipv4CidrBlock, networkType string, tags map[string]string) (*SecondaryNetwork, error)
	DeleteSecondaryNetwork(id string) (*SecondaryNetwork, error)
	DescribeSecondaryNetworks(ids []string) []*SecondaryNetwork
	CreateSecondarySubnet(
		ipv4CidrBlock, secondaryNetworkID, availabilityZone, availabilityZoneID string, tags map[string]string,
	) (*SecondarySubnet, error)
	DeleteSecondarySubnet(id string) (*SecondarySubnet, error)
	DescribeSecondarySubnets(ids []string) []*SecondarySubnet
	SeedSecondaryInterface(si SecondaryInterface) (*SecondaryInterface, error)
	DescribeSecondaryInterfaces(ids []string) []*SecondaryInterface
	SeedServiceLinkVirtualInterface(vif ServiceLinkVirtualInterface) (*ServiceLinkVirtualInterface, error)
	DescribeServiceLinkVirtualInterfaces(ids []string) []*ServiceLinkVirtualInterface
	SeedOutpostLag(lag OutpostLag) (*OutpostLag, error)
	DescribeOutpostLags(ids []string) []*OutpostLag

	ModifyAvailabilityZoneGroup(groupName, optInStatus string) (bool, error)
	ModifyHosts(
		hostIDs []string, autoPlacement, hostMaintenance, hostRecovery, instanceFamily, instanceType string,
	) ([]string, []HostModifyFailure, error)
	ModifyInstanceCapacityReservationAttributes(
		instanceID, preference, targetID, targetArn string,
	) (*Instance, error)
	ModifyInstanceCPUOptions(
		instanceID string, coreCount, threadsPerCore *int32, nestedVirtualization string,
	) (*Instance, error)
	ModifyInstanceEventStartTime(
		instanceID, instanceEventID string, notBefore time.Time,
	) (*InstanceStatusEventRec, error)
	ModifyInstanceMaintenanceOptions(instanceID, autoRecovery, rebootMigration string) (*Instance, error)
	ModifyInstanceNetworkPerformanceOptions(instanceID, bandwidthWeighting string) (*Instance, error)
	ModifyInstancePlacement(in ModifyInstancePlacementInput) (bool, error)
	ModifyPrivateDNSNameOptions(
		instanceID, hostnameType string, enableARecord, enableAAAARecord *bool,
	) (bool, error)
	ModifyPublicIPDNSNameOptions(networkInterfaceID, hostnameType string) (bool, error)
	AssociateInstanceEventWindow(windowID string, instanceIDs, dedicatedHostIDs []string) (*InstanceEventWindow, error)
	DisassociateInstanceEventWindow(
		windowID string, instanceIDs, dedicatedHostIDs []string,
	) (*InstanceEventWindow, error)
	GetInstanceTpmEkPub(instanceID, keyFormat, keyType string) (string, error)
	GetInstanceUefiData(instanceID string) (string, error)

	EnableInstanceSQLHaStandbyDetections(
		instanceIDs []string, sqlServerCredentials string,
	) ([]*RegisteredSQLHaInstance, error)
	DisableInstanceSQLHaStandbyDetections(instanceIDs []string) ([]*RegisteredSQLHaInstance, error)
	DescribeInstanceSQLHaStates(ids []string) []*RegisteredSQLHaInstance
	DescribeInstanceSQLHaHistoryStates(ids []string, startTime, endTime time.Time) []*RegisteredSQLHaInstance

	CreateVpcEncryptionControl(vpcID string, tags map[string]string) (*VpcEncryptionControl, error)
	DeleteVpcEncryptionControl(id string) (*VpcEncryptionControl, error)
	DescribeVpcEncryptionControls(ids, vpcIDs []string) []*VpcEncryptionControl
	ModifyVpcEncryptionControl(
		id, mode string, exclusions VpcEncryptionControlExclusionModify,
	) (*VpcEncryptionControl, error)
	GetVpcResourcesBlockingEncryptionEnforcement(vpcID string) ([]*VpcEncryptionNonCompliantResource, error)

	CreateVpnConcentrator(vpnType, transitGatewayID string, tags map[string]string) (*VpnConcentrator, error)
	DeleteVpnConcentrator(id string) (*VpnConcentrator, error)
	DescribeVpnConcentrators(ids []string) []*VpnConcentrator
	GetActiveVpnTunnelStatus(vpnConnectionID, outsideIPAddress string) (*ActiveVpnTunnelStatus, error)
	ReplaceVpnTunnel(vpnConnectionID, outsideIPAddress string) (bool, error)

	DescribeHostReservationOfferings(offeringID string, minDuration, maxDuration int32) []HostOffering
	GetHostReservationPurchasePreview(
		hostIDs []string, offeringID string,
	) (*HostReservationPurchasePreview, error)
	PurchaseHostReservation(
		hostIDs []string, offeringID string, tags map[string]string,
	) (*HostReservationPurchasePreview, error)
	DescribeHostReservations(ids []string) []*HostReservation
	ReleaseHosts(hostIDs []string) (successful []string, unsuccessful []HostReleaseResult)

	StartDeclarativePoliciesReport(
		s3Bucket, targetID, s3Prefix string, tags map[string]string,
	) (*DeclarativePoliciesReport, error)
	CancelDeclarativePoliciesReport(reportID string) (bool, error)
	DescribeDeclarativePoliciesReports(ids []string) []*DeclarativePoliciesReport
	GetDeclarativePoliciesReportSummary(reportID string) (*DeclarativePoliciesReportSummary, error)

	EnableAwsNetworkPerformanceMetricSubscription(source, destination, metric, statistic string) (bool, error)
	DisableAwsNetworkPerformanceMetricSubscription(source, destination, metric, statistic string) (bool, error)
	DescribeAwsNetworkPerformanceMetricSubscriptions() []*NetworkPerformanceSubscription
	GetAwsNetworkPerformanceData(
		queries []NetworkPerformanceDataQuery, startTime, endTime time.Time,
	) ([]*NetworkPerformanceDataResponse, error)

	CreateLocalGatewayVirtualInterface(
		p LocalGatewayVirtualInterfaceParams,
	) (*LocalGatewayVirtualInterface, error)
	DeleteLocalGatewayVirtualInterface(id string) (*LocalGatewayVirtualInterface, error)
	CreateLocalGatewayVirtualInterfaceGroup(
		localGatewayID string, localBgpAsn int32, localBgpAsnExtended int64, tags map[string]string,
	) (*LocalGatewayVirtualInterfaceGroup, error)
	DeleteLocalGatewayVirtualInterfaceGroup(id string) (*LocalGatewayVirtualInterfaceGroup, error)

	ModifyVerifiedAccessGroup(id, instanceID, description string) (*VerifiedAccessGroup, error)
	ModifyVerifiedAccessInstance(id, description string) (*VerifiedAccessInstance, error)
	ModifyVerifiedAccessTrustProvider(id, description string) (*VerifiedAccessTrustProvider, error)

	EnableTransitGatewayRouteTablePropagation(
		routeTableID, attachmentID string,
	) (*TransitGatewayRouteTablePropagation, error)
	DisableTransitGatewayRouteTablePropagation(
		routeTableID, attachmentID string,
	) (*TransitGatewayRouteTablePropagation, error)
	DescribeTransitGatewayAttachments(ids []string) []*TransitGatewayAttachmentSummary

	CreateInterruptibleCapacityReservationAllocation(
		sourceCapacityReservationID string, instanceCount int32,
	) (*InterruptibleCapacityReservationAllocation, error)
	UpdateInterruptibleCapacityReservationAllocation(
		sourceCapacityReservationID string, targetInstanceCount int32,
	) (*InterruptibleCapacityReservationAllocation, error)
	GetCapacityReservationUsage(id string) (*CapacityReservationUsage, error)
	DescribeCapacityReservationTopology(ids []string) []*CapacityReservationTopologyEntry

	DescribeMovingAddresses(publicIPs []string) []*MovingAddressStatus
	MoveAddressToVpc(publicIP string) (*Address, error)
	RejectVpcEndpointConnections(serviceID string, vpcEndpointIDs []string) ([]string, error)
	UnassignPrivateNatGatewayAddress(natGatewayID string, privateIPs []string) (*NatGateway, error)

	CancelImageLaunchPermission(imageID string) error
	DescribeImageReferences(imageIDs []string) []*ImageReferenceEntry
	GetImageAncestry(imageID string) ([]*ImageAncestryEntry, error)
	GetFlowLogsIntegrationTemplate(flowLogID, s3DestinationArn string) (string, error)

	GetSpotPlacementScores(
		instanceTypes, regionNames []string, singleAZ bool,
	) ([]*SpotPlacementScoreEntry, error)
	SendDiagnosticInterrupt(instanceID string) error
	EnableReachabilityAnalyzerOrganizationSharing() bool
	DescribeElasticGpus(ids []string) []*ElasticGpuStub
}

Backend defines the interface for EC2 backend operations. InMemoryBackend implements this interface; alternative providers (e.g. a real-AWS pass-through or a test double) can do so too, making the Handler backend-agnostic.

type BundleTask

type BundleTask struct {
	BundleID     string    `json:"bundleId,omitempty"`
	InstanceID   string    `json:"instanceId,omitempty"`
	State        string    `json:"state,omitempty"`
	Progress     string    `json:"progress,omitempty"`
	S3Bucket     string    `json:"s3Bucket,omitempty"`
	S3Prefix     string    `json:"s3Prefix,omitempty"`
	StartTime    time.Time `json:"startTime"`
	UpdateTime   time.Time `json:"updateTime"`
	ErrorCode    string    `json:"errorCode,omitempty"`
	ErrorMessage string    `json:"errorMessage,omitempty"`
}

BundleTask represents a BundleInstance task that packages an instance-store backed Windows instance's root volume into an AMI manifest stored in Amazon S3.

type ByoipCidr

type ByoipCidr struct {
	Cidr          string `json:"cidr,omitempty"`
	State         string `json:"state,omitempty"`
	StatusMessage string `json:"statusMessage,omitempty"`
}

ByoipCidr represents a Bring Your Own IP (BYOIP) CIDR entry.

type CPUOptions

type CPUOptions struct {
	NestedVirtualization string `json:"nestedVirtualization,omitempty"`
	CoreCount            int32  `json:"coreCount,omitempty"`
	ThreadsPerCore       int32  `json:"threadsPerCore,omitempty"`
}

CPUOptions holds the per-instance CPU configuration set via ModifyInstanceCpuOptions.

type CapacityBlock

type CapacityBlock struct {
	CreateDate             time.Time         `json:"createDate"`
	StartDate              time.Time         `json:"startDate"`
	EndDate                time.Time         `json:"endDate"`
	CapacityBlockID        string            `json:"capacityBlockId,omitempty"`
	AvailabilityZone       string            `json:"availabilityZone,omitempty"`
	State                  string            `json:"state,omitempty"`
	Tags                   map[string]string `json:"tags,omitempty"`
	CapacityReservationIDs []string          `json:"capacityReservationIds,omitempty"`
}

CapacityBlock represents a purchased Capacity Block (cb-*), grouping the one or more underlying Capacity Reservations that back it.

type CapacityBlockExtension

type CapacityBlockExtension struct {
	CapacityBlockExtensionStartDate     time.Time `json:"capacityBlockExtensionStartDate"`
	CapacityBlockExtensionEndDate       time.Time `json:"capacityBlockExtensionEndDate"`
	CapacityBlockExtensionPurchaseDate  time.Time `json:"capacityBlockExtensionPurchaseDate"`
	CapacityBlockExtensionOfferingID    string    `json:"capacityBlockExtensionOfferingId,omitempty"`
	CapacityReservationID               string    `json:"capacityReservationId,omitempty"`
	AvailabilityZone                    string    `json:"availabilityZone,omitempty"`
	CapacityBlockExtensionStatus        string    `json:"capacityBlockExtensionStatus,omitempty"`
	CapacityBlockExtensionDurationHours int32     `json:"capacityBlockExtensionDurationHours,omitempty"`
}

CapacityBlockExtension represents a purchased Capacity Block extension.

type CapacityBlockExtensionOffering

type CapacityBlockExtensionOffering struct {
	CapacityBlockExtensionStartDate     time.Time `json:"capacityBlockExtensionStartDate"`
	CapacityBlockExtensionEndDate       time.Time `json:"capacityBlockExtensionEndDate"`
	CapacityBlockExtensionOfferingID    string    `json:"capacityBlockExtensionOfferingId,omitempty"`
	CapacityReservationID               string    `json:"capacityReservationId,omitempty"`
	InstanceType                        string    `json:"instanceType,omitempty"`
	AvailabilityZone                    string    `json:"availabilityZone,omitempty"`
	CurrencyCode                        string    `json:"currencyCode,omitempty"`
	UpfrontPrice                        string    `json:"upfrontPrice,omitempty"`
	InstanceCount                       int32     `json:"instanceCount,omitempty"`
	CapacityBlockExtensionDurationHours int32     `json:"capacityBlockExtensionDurationHours,omitempty"`
}

CapacityBlockExtensionOffering represents a purchasable extension to an existing Capacity Block reservation. Like CapacityBlockOffering, generated on demand and cached for a subsequent PurchaseCapacityBlockExtension call.

type CapacityBlockOffering

type CapacityBlockOffering struct {
	StartDate                  time.Time `json:"startDate"`
	EndDate                    time.Time `json:"endDate"`
	CapacityBlockOfferingID    string    `json:"capacityBlockOfferingId,omitempty"`
	InstanceType               string    `json:"instanceType,omitempty"`
	AvailabilityZone           string    `json:"availabilityZone,omitempty"`
	Tenancy                    string    `json:"tenancy,omitempty"`
	CurrencyCode               string    `json:"currencyCode,omitempty"`
	UpfrontPrice               string    `json:"upfrontPrice,omitempty"`
	InstanceCount              int32     `json:"instanceCount,omitempty"`
	CapacityBlockDurationHours int32     `json:"capacityBlockDurationHours,omitempty"`
}

CapacityBlockOffering represents a purchasable Capacity Block offering. Offerings are generated on demand by DescribeCapacityBlockOfferings from a static, realistic catalog and cached so a subsequent PurchaseCapacityBlock call can reference them.

type CapacityBlockReservationStatus

type CapacityBlockReservationStatus struct {
	CapacityReservationID    string `json:"capacityReservationId,omitempty"`
	TotalCapacity            int32  `json:"totalCapacity,omitempty"`
	TotalAvailableCapacity   int32  `json:"totalAvailableCapacity,omitempty"`
	TotalUnavailableCapacity int32  `json:"totalUnavailableCapacity,omitempty"`
}

CapacityBlockReservationStatus mirrors the availability of one Capacity Reservation within a Capacity Block.

type CapacityBlockStatus

type CapacityBlockStatus struct {
	CapacityBlockID             string                           `json:"capacityBlockId,omitempty"`
	InterconnectStatus          string                           `json:"interconnectStatus,omitempty"`
	CapacityReservationStatuses []CapacityBlockReservationStatus `json:"capacityReservationStatuses,omitempty"`
	TotalCapacity               int32                            `json:"totalCapacity,omitempty"`
	TotalAvailableCapacity      int32                            `json:"totalAvailableCapacity,omitempty"`
	TotalUnavailableCapacity    int32                            `json:"totalUnavailableCapacity,omitempty"`
}

CapacityBlockStatus reports capacity/interconnect availability for a purchased Capacity Block.

type CapacityManagerAttributes

type CapacityManagerAttributes struct {
	Status                 string
	IngestionStatus        string
	IngestionStatusMessage string
	OrganizationsAccess    bool
	DataExportCount        int32
}

CapacityManagerAttributes reports the current Capacity Manager status and data ingestion state for the account.

type CapacityManagerDataExport

type CapacityManagerDataExport struct {
	CreateTime                  time.Time         `json:"createTime"`
	Tags                        map[string]string `json:"tags,omitempty"`
	CapacityManagerDataExportID string            `json:"capacityManagerDataExportId,omitempty"`
	OutputFormat                string            `json:"outputFormat,omitempty"`
	S3BucketName                string            `json:"s3BucketName,omitempty"`
	S3BucketPrefix              string            `json:"s3BucketPrefix,omitempty"`
	Schedule                    string            `json:"schedule,omitempty"`
	LatestDeliveryStatus        string            `json:"latestDeliveryStatus,omitempty"`
}

CapacityManagerDataExport represents a configured Capacity Manager data export delivering periodic usage data to an S3 bucket.

type CapacityManagerDimension

type CapacityManagerDimension struct {
	Dimensions map[string]string
}

CapacityManagerDimension is a placeholder for a single Capacity Manager dimension combination. Never populated by this backend.

type CapacityManagerState

type CapacityManagerState struct {
	Status              string `json:"status,omitempty"`
	OrganizationsAccess bool   `json:"organizationsAccess,omitempty"`
}

CapacityManagerState tracks the account-level enable/disable state of Capacity Manager.

type CapacityReservation

type CapacityReservation struct {
	CreateTime            time.Time `json:"createTime"`
	CapacityReservationID string    `json:"capacityReservationID,omitempty"`
	InstanceType          string    `json:"instanceType,omitempty"`
	AvailabilityZone      string    `json:"availabilityZone,omitempty"`
	OwnedBy               string    `json:"ownedBy,omitempty"`
	State                 string    `json:"state,omitempty"`
	// InstancePlatform is the OS platform reserved (e.g. "Linux/UNIX"). Populated
	// for Capacity Block purchases; empty for plain CreateCapacityReservation
	// calls that predate this field.
	InstancePlatform       string `json:"instancePlatform,omitempty"`
	AvailableInstanceCount int    `json:"availableInstanceCount,omitempty"`
	TotalInstanceCount     int    `json:"totalInstanceCount,omitempty"`
}

CapacityReservation represents an EC2 Capacity Reservation.

type CapacityReservationBillingRequest

type CapacityReservationBillingRequest struct {
	LastUpdateTime                  time.Time `json:"lastUpdateTime"`
	CapacityReservationID           string    `json:"capacityReservationId,omitempty"`
	RequestedBy                     string    `json:"requestedBy,omitempty"`
	UnusedReservationBillingOwnerID string    `json:"unusedReservationBillingOwnerId,omitempty"`
	Status                          string    `json:"status,omitempty"`
	StatusMessage                   string    `json:"statusMessage,omitempty"`
}

CapacityReservationBillingRequest tracks a pending/resolved billing-owner transfer request for a shared Capacity Reservation.

type CapacityReservationFleet

type CapacityReservationFleet struct {
	CreateTime                 time.Time                              `json:"createTime"`
	EndDate                    *time.Time                             `json:"endDate,omitempty"`
	CapacityReservationFleetID string                                 `json:"capacityReservationFleetId,omitempty"`
	AllocationStrategy         string                                 `json:"allocationStrategy,omitempty"`
	State                      string                                 `json:"state,omitempty"`
	InstanceMatchCriteria      string                                 `json:"instanceMatchCriteria,omitempty"`
	Tenancy                    string                                 `json:"tenancy,omitempty"`
	Tags                       map[string]string                      `json:"tags,omitempty"`
	InstanceTypeSpecifications []CapacityReservationFleetInstanceSpec `json:"instanceTypeSpecifications,omitempty"`
	TotalTargetCapacity        int32                                  `json:"totalTargetCapacity,omitempty"`
	TotalFulfilledCapacity     float64                                `json:"totalFulfilledCapacity,omitempty"`
}

CapacityReservationFleet represents an EC2 Capacity Reservation Fleet (crf-*).

type CapacityReservationFleetCancellation

type CapacityReservationFleetCancellation struct {
	CapacityReservationFleetID string `json:"capacityReservationFleetId,omitempty"`
	PreviousState              string `json:"previousState,omitempty"`
	CurrentState               string `json:"currentState,omitempty"`
}

CapacityReservationFleetCancellation reports the state transition of a successfully cancelled Capacity Reservation Fleet.

type CapacityReservationFleetInstanceSpec

type CapacityReservationFleetInstanceSpec struct {
	AvailabilityZone      string  `json:"availabilityZone,omitempty"`
	InstanceType          string  `json:"instanceType,omitempty"`
	InstancePlatform      string  `json:"instancePlatform,omitempty"`
	CapacityReservationID string  `json:"capacityReservationId,omitempty"`
	Priority              int32   `json:"priority,omitempty"`
	Weight                float64 `json:"weight,omitempty"`
	TotalInstanceCount    int32   `json:"totalInstanceCount,omitempty"`
	EbsOptimized          bool    `json:"ebsOptimized,omitempty"`
}

CapacityReservationFleetInstanceSpec describes one instance type entry within a Capacity Reservation Fleet, both as request input and as the resolved, stored specification (once TotalInstanceCount/CapacityReservationID are set).

type CapacityReservationInstanceUsage

type CapacityReservationInstanceUsage struct {
	AccountID         string `json:"accountID,omitempty"`
	UsedInstanceCount int32  `json:"usedInstanceCount,omitempty"`
}

CapacityReservationInstanceUsage is a per-account usage row within CapacityReservationUsage.

type CapacityReservationSpec

type CapacityReservationSpec struct {
	CapacityReservationPreference       string `json:"capacityReservationPreference,omitempty"`
	CapacityReservationID               string `json:"capacityReservationId,omitempty"`
	CapacityReservationResourceGroupArn string `json:"capacityReservationResourceGroupArn,omitempty"`
}

CapacityReservationSpec holds the per-instance Capacity Reservation targeting preference set via ModifyInstanceCapacityReservationAttributes.

type CapacityReservationTopologyEntry

type CapacityReservationTopologyEntry struct {
	CapacityReservationID string
	InstanceType          string
	AvailabilityZone      string
}

CapacityReservationTopologyEntry is a single row returned by DescribeCapacityReservationTopology, derived from an existing CapacityReservation.

type CapacityReservationUsage

type CapacityReservationUsage struct {
	InterruptibleAllocation *InterruptibleCapacityReservationAllocation
	CapacityReservationID   string
	InstanceType            string
	State                   string
	InstanceUsages          []CapacityReservationInstanceUsage
	AvailableInstanceCount  int
	TotalInstanceCount      int
	Interruptible           bool
}

CapacityReservationUsage is the real-usage view returned by GetCapacityReservationUsage, derived from the source CapacityReservation plus any instances currently targeting it and any interruptible allocation carved out of it.

type CarrierGateway

type CarrierGateway struct {
	CarrierGatewayID string `json:"carrierGatewayId,omitempty"`
	VpcID            string `json:"vpcId,omitempty"`
	State            string `json:"state,omitempty"`
	OwnerID          string `json:"ownerId,omitempty"`
}

type ClassicLinkInstance

type ClassicLinkInstance struct {
	InstanceID string   `json:"instanceId,omitempty"`
	VpcID      string   `json:"vpcId,omitempty"`
	Groups     []string `json:"groups,omitempty"`
}

ClassicLinkInstance tracks an EC2-Classic instance's ClassicLink attachment to a VPC.

type ClientVpnAuthRule

type ClientVpnAuthRule struct {
	Cidr        string `json:"cidr,omitempty"`
	Status      string `json:"status,omitempty"`
	Description string `json:"description,omitempty"`
	// GroupID is the Active Directory group ID the rule grants access to, if any.
	GroupID string `json:"groupId,omitempty"`
	// AccessAll indicates the rule grants access to all clients (true when
	// GroupID is empty).
	AccessAll bool `json:"accessAll,omitempty"`
}

ClientVpnAuthRule holds a single authorization rule for a Client VPN endpoint.

type ClientVpnConnection

type ClientVpnConnection struct {
	ConnectionID              string `json:"connectionId,omitempty"`
	ClientVpnEndpointID       string `json:"clientVpnEndpointId,omitempty"`
	Username                  string `json:"username,omitempty"`
	ClientIP                  string `json:"clientIp,omitempty"`
	CommonName                string `json:"commonName,omitempty"`
	ConnectionEstablishedTime string `json:"connectionEstablishedTime,omitempty"`
	Status                    string `json:"status,omitempty"`
}

ClientVpnConnection represents an active client connection to a Client VPN endpoint. No API in this backend creates connections (a real client would need to actually establish an OpenVPN session), so DescribeClientVpnConnections always returns an empty set — that is the correct AWS shape when no clients are connected.

type ClientVpnEndpoint

type ClientVpnEndpoint struct {
	ServerCertificateArn      string                    `json:"serverCertificateArn,omitempty"`
	DNSName                   string                    `json:"dnsName,omitempty"`
	Status                    string                    `json:"status,omitempty"`
	Description               string                    `json:"description,omitempty"`
	ClientCidrBlock           string                    `json:"clientCidrBlock,omitempty"`
	ClientVpnEndpointID       string                    `json:"clientVpnEndpointId,omitempty"`
	VpnProtocol               string                    `json:"vpnProtocol,omitempty"`
	TransportProtocol         string                    `json:"transportProtocol,omitempty"`
	VPCID                     string                    `json:"vpcId,omitempty"`
	CertificateRevocationList string                    `json:"certificateRevocationList,omitempty"`
	CreationTime              string                    `json:"creationTime,omitempty"`
	SelfServicePortalURL      string                    `json:"selfServicePortalUrl,omitempty"`
	DNSServers                []string                  `json:"dnsServers,omitempty"`
	SecurityGroupIDs          []string                  `json:"securityGroupIds,omitempty"`
	TargetNetworks            []*ClientVpnTargetNetwork `json:"targetNetworks,omitempty"`
	Routes                    []ClientVpnRoute          `json:"routes,omitempty"`
	AuthRules                 []ClientVpnAuthRule       `json:"authRules,omitempty"`
	SessionTimeoutHours       int32                     `json:"sessionTimeoutHours,omitempty"`
	VpnPort                   int32                     `json:"vpnPort,omitempty"`
	SplitTunnel               bool                      `json:"splitTunnel,omitempty"`
}

ClientVpnEndpoint represents an EC2 Client VPN endpoint.

type ClientVpnEndpointOptions

type ClientVpnEndpointOptions struct {
	SplitTunnel          *bool
	ServerCertificateArn string
	TransportProtocol    string
	VpcID                string
	SelfServicePortalURL string
	SecurityGroupIDs     []string
	VpnPort              int32
	SessionTimeoutHours  int32
}

ClientVpnEndpointOptions holds the optional advanced Client VPN endpoint fields available via CreateClientVpnEndpointWithOptions and ModifyClientVpnEndpointWithOptions.

type ClientVpnRoute

type ClientVpnRoute struct {
	DestinationCidr string `json:"destinationCidr,omitempty"`
	Status          string `json:"status,omitempty"`
	Description     string `json:"description,omitempty"`
	// Origin indicates how the route was added: "add-route" for routes created
	// via CreateClientVpnRoute, "associate" for routes auto-added when a target
	// network is associated.
	Origin string `json:"origin,omitempty"`
	// TargetSubnet is the ID of the subnet through which traffic is routed.
	TargetSubnet string `json:"targetSubnet,omitempty"`
}

ClientVpnRoute holds a single route for a Client VPN endpoint.

type ClientVpnTargetNetwork

type ClientVpnTargetNetwork struct {
	AssociationID       string   `json:"associationId,omitempty"`
	SubnetID            string   `json:"subnetId,omitempty"`
	VPCID               string   `json:"vpcId,omitempty"`
	ClientVpnEndpointID string   `json:"clientVpnEndpointId,omitempty"`
	Status              string   `json:"status,omitempty"`
	SecurityGroups      []string `json:"securityGroups,omitempty"`
}

ClientVpnTargetNetwork represents an associated target network for a Client VPN endpoint.

type CoipCidr

type CoipCidr struct {
	Cidr                     string `json:"cidr,omitempty"`
	CoipPoolID               string `json:"coipPoolId,omitempty"`
	LocalGatewayRouteTableID string `json:"localGatewayRouteTableId,omitempty"`
}

CoipCidr represents a single customer-owned IP address range within a CoIP pool.

type CoipPool

type CoipPool struct {
	LocalGatewayRouteTableID string            `json:"localGatewayRouteTableId,omitempty"`
	PoolID                   string            `json:"poolId,omitempty"`
	PoolArn                  string            `json:"poolArn,omitempty"`
	Tags                     map[string]string `json:"tags,omitempty"`
	PoolCidrs                []string          `json:"poolCidrs,omitempty"`
}

CoipPool represents a Customer-Owned IP address pool associated with a local gateway route table.

type Compute

type Compute interface {
	// Launch starts the underlying compute resource for a freshly created
	// instance. The returned LaunchResult is merged back onto the Instance
	// (PrivateIP, PublicIPAddress, PublicDNSName, ProviderID, SSHPort).
	Launch(ctx context.Context, req LaunchRequest) (LaunchResult, error)

	// Terminate removes the underlying compute resource. It is invoked from
	// TerminateInstances and must be idempotent (no error if the resource is
	// already gone).
	Terminate(ctx context.Context, instanceID, providerID string) error

	// Start resumes a previously stopped resource (analogous to EC2 StartInstances).
	Start(ctx context.Context, instanceID, providerID string) error

	// Stop pauses the underlying resource (analogous to EC2 StopInstances).
	Stop(ctx context.Context, instanceID, providerID string) error
}

Compute is the optional pluggable hook that backs EC2 instances with a real runtime (such as a Docker container). When the InMemoryBackend is configured with a Compute provider via WithCompute, lifecycle methods (RunInstances, TerminateInstances, StartInstances, StopInstances) call into the provider after updating in-memory state, allowing real workloads to be created and torn down alongside the simulated instance metadata.

Implementations must be safe for concurrent use.

type ComputeProviderConfig

type ComputeProviderConfig interface {
	// GetEC2ComputeProvider returns "inmemory" (default) or "docker".
	GetEC2ComputeProvider() string
	// GetEC2DockerComputeConfig returns docker provider settings (only consulted
	// when GetEC2ComputeProvider() == "docker").
	GetEC2DockerComputeConfig() DockerComputeConfig
}

ComputeProviderConfig is the optional interface a Config may implement to switch the EC2 backend onto a real compute provider (e.g. Docker). It is independent of ConfigProvider so adding/removing the docker provider does not require existing Config types to change.

type ConfigProvider

type ConfigProvider interface {
	GetEC2Settings() Settings
}

ConfigProvider is a private interface to extract EC2 configuration from the abstract AppContext Config.

type ConversionTask

type ConversionTask struct {
	ExpirationTime    time.Time `json:"expirationTime"`
	InstanceID        string    `json:"instanceId,omitempty"`
	State             string    `json:"state,omitempty"`
	StatusMessage     string    `json:"statusMessage,omitempty"`
	Kind              string    `json:"kind,omitempty"`
	Description       string    `json:"description,omitempty"`
	ConversionTaskID  string    `json:"conversionTaskId,omitempty"`
	Platform          string    `json:"platform,omitempty"`
	AvailabilityZone  string    `json:"availabilityZone,omitempty"`
	VolumeID          string    `json:"volumeId,omitempty"`
	ImageFormat       string    `json:"imageFormat,omitempty"`
	ImportManifestURL string    `json:"importManifestUrl,omitempty"`
	VolumeSize        int64     `json:"volumeSize,omitempty"`
	ImageBytes        int64     `json:"imageBytes,omitempty"`
}

ConversionTask represents an ImportInstance or ImportVolume conversion task.

type CopyVolumesResult

type CopyVolumesResult struct {
	SourceVolumeID string `json:"sourceVolumeID,omitempty"`
	DestVolumeID   string `json:"destVolumeID,omitempty"`
}

CopyVolumesResult holds the result of copying a volume.

type CreationDateCondition

type CreationDateCondition struct {
	MaximumDaysSinceCreated int32 `json:"maximumDaysSinceCreated,omitempty"`
}

CreationDateCondition bounds allowed images by maximum age since creation.

type CustomerGateway

type CustomerGateway struct {
	CustomerGatewayID string `json:"customerGatewayId,omitempty"`
	State             string `json:"state,omitempty"`
	Type              string `json:"type,omitempty"`
	BgpAsn            string `json:"bgpAsn,omitempty"`
	IPAddress         string `json:"ipAddress,omitempty"`
}

CustomerGateway represents a customer gateway.

type DNSRegistrar

type DNSRegistrar interface {
	Register(hostname string)
	Deregister(hostname string)
}

DNSRegistrar can register and deregister hostnames with an embedded DNS server. It mirrors the optional registrar interfaces used by RDS, OpenSearch and friends so the EC2 docker-compute provider can publish synthetic AWS-style instance hostnames (e.g. ec2-1-2-3-4.compute-1.amazonaws.com) that resolve to the host the container is reachable on.

type DeclarativePoliciesReport

type DeclarativePoliciesReport struct {
	StartTime time.Time         `json:"startTime"`
	EndTime   time.Time         `json:"endTime"`
	Tags      map[string]string `json:"tags,omitempty"`
	ReportID  string            `json:"reportId,omitempty"`
	TargetID  string            `json:"targetId,omitempty"`
	S3Bucket  string            `json:"s3Bucket,omitempty"`
	S3Prefix  string            `json:"s3Prefix,omitempty"`
	Status    string            `json:"status,omitempty"`
}

DeclarativePoliciesReport represents a Declarative Policies report generation task.

type DeclarativePoliciesReportSummary

type DeclarativePoliciesReportSummary struct {
	StartTime              time.Time
	EndTime                time.Time
	ReportID               string
	TargetID               string
	S3Bucket               string
	S3Prefix               string
	NumberOfAccounts       int32
	NumberOfFailedAccounts int32
}

DeclarativePoliciesReportSummary is the result of GetDeclarativePoliciesReportSummary.

type DeprecationTimeCondition

type DeprecationTimeCondition struct {
	MaximumDaysSinceDeprecated int32 `json:"maximumDaysSinceDeprecated,omitempty"`
}

DeprecationTimeCondition bounds allowed images by maximum time since deprecation.

type DhcpConfiguration

type DhcpConfiguration struct {
	Key    string   `json:"key,omitempty"`
	Values []string `json:"values,omitempty"`
}

DhcpConfiguration is a single key-value configuration inside a DHCP options set.

type DhcpOptions

type DhcpOptions struct {
	DhcpOptionsID    string              `json:"dhcpOptionsId,omitempty"`
	Configurations   []DhcpConfiguration `json:"configurations,omitempty"`
	AssociatedVPCIDs []string            `json:"associatedVpcIds,omitempty"`
}

DhcpOptions represents an EC2 DHCP options set.

type DockerCompute

type DockerCompute struct {
	// contains filtered or unexported fields
}

DockerCompute backs EC2 instances with real Docker containers running sshd.

func NewDockerCompute

func NewDockerCompute(cfg DockerComputeConfig) (*DockerCompute, error)

NewDockerCompute creates a Compute provider backed by the local Docker daemon. Honours DOCKER_HOST / DOCKER_TLS_VERIFY via mobyclient.FromEnv.

func (*DockerCompute) Close

func (d *DockerCompute) Close() error

Close releases the underlying Docker client.

func (*DockerCompute) Launch

Launch implements Compute.

func (*DockerCompute) Ping

func (d *DockerCompute) Ping(ctx context.Context) error

Ping verifies the Docker daemon is reachable.

func (*DockerCompute) Start

func (d *DockerCompute) Start(ctx context.Context, _, providerID string) error

Start implements Compute.

func (*DockerCompute) Stop

func (d *DockerCompute) Stop(ctx context.Context, _, providerID string) error

Stop implements Compute.

func (*DockerCompute) Terminate

func (d *DockerCompute) Terminate(ctx context.Context, instanceID, providerID string) error

Terminate implements Compute.

type DockerComputeConfig

type DockerComputeConfig struct {
	Labels    map[string]string `json:"labels,omitempty"`
	Image     string            `json:"image,omitempty"`
	Network   string            `json:"network,omitempty"`
	SSHHostIP string            `json:"sshHostIP,omitempty"`
	// Region is used to render the public DNS name suffix
	// (e.g. us-east-1 → "compute-1.amazonaws.com").
	Region     string `json:"region,omitempty"`
	SSHPortMin int    `json:"sshPortMin,omitempty"`
	SSHPortMax int    `json:"sshPortMax,omitempty"`
}

DockerComputeConfig configures a DockerCompute provider.

type EgressOnlyInternetGateway

type EgressOnlyInternetGateway struct {
	CreateTime time.Time `json:"createTime"`
	ID         string    `json:"id,omitempty"`
	VPCID      string    `json:"vpcID,omitempty"`
	State      string    `json:"state,omitempty"`
}

EgressOnlyInternetGateway represents an EC2 egress-only internet gateway.

type ElasticGpuStub

type ElasticGpuStub struct {
	ElasticGpuID   string
	InstanceID     string
	ElasticGpuType string
}

ElasticGpuStub is the wire shape for DescribeElasticGpus entries. No API in this backend attaches Elastic Graphics accelerators to instances (AWS retired the feature in 2023), so DescribeElasticGpus never populates one — this type exists purely so the response stays correctly shaped, mirroring the ClientVpnConnection precedent elsewhere in this package.

type EnclaveCertIamRoleAssociation

type EnclaveCertIamRoleAssociation struct {
	CertificateArn          string `json:"certificateArn,omitempty"`
	RoleArn                 string `json:"roleArn,omitempty"`
	CertificateS3BucketName string `json:"certificateS3BucketName,omitempty"`
	CertificateS3ObjectKey  string `json:"certificateS3ObjectKey,omitempty"`
	EncryptionKmsKeyID      string `json:"encryptionKmsKeyId,omitempty"`
}

EnclaveCertIamRoleAssociation represents an IAM role granted access to the Amazon S3 object holding an ACM certificate bundle for use inside a Nitro Enclave.

type ExportImageTaskRec

type ExportImageTaskRec struct {
	ExportImageTaskID string `json:"exportImageTaskId,omitempty"`
	Description       string `json:"description,omitempty"`
	ImageID           string `json:"imageId,omitempty"`
	DiskImageFormat   string `json:"diskImageFormat,omitempty"`
	Progress          string `json:"progress,omitempty"`
	Status            string `json:"status,omitempty"`
	StatusMessage     string `json:"statusMessage,omitempty"`
	S3Bucket          string `json:"s3Bucket,omitempty"`
	S3Prefix          string `json:"s3Prefix,omitempty"`
	RoleName          string `json:"roleName,omitempty"`
}

ExportImageTaskRec represents an ExportImage task (AMI export to Amazon S3). Populated by ExportImage in backend_batch3.go and settled by DescribeExportImageTasks below.

type ExportTask

type ExportTask struct {
	ExportTaskID      string `json:"exportTaskId,omitempty"`
	Description       string `json:"description,omitempty"`
	State             string `json:"state,omitempty"`
	StatusMessage     string `json:"statusMessage,omitempty"`
	InstanceID        string `json:"instanceId,omitempty"`
	TargetEnvironment string `json:"targetEnvironment,omitempty"`
	DiskImageFormat   string `json:"diskImageFormat,omitempty"`
	ContainerFormat   string `json:"containerFormat,omitempty"`
	S3Bucket          string `json:"s3Bucket,omitempty"`
	S3Key             string `json:"s3Key,omitempty"`
}

ExportTask represents a CreateInstanceExportTask (instance export) task.

type FailedCapacityReservationFleetCancellation

type FailedCapacityReservationFleetCancellation struct {
	CapacityReservationFleetID string `json:"capacityReservationFleetId,omitempty"`
	ErrorCode                  string `json:"errorCode,omitempty"`
	ErrorMessage               string `json:"errorMessage,omitempty"`
}

FailedCapacityReservationFleetCancellation reports a Capacity Reservation Fleet that could not be cancelled.

type FastLaunchImageItem

type FastLaunchImageItem struct {
	ImageID string `json:"imageID,omitempty"`
	State   string `json:"state,omitempty"`
}

FastLaunchImageItem holds fast launch enabled state for a single AMI.

type FastSnapshotRestoreItem

type FastSnapshotRestoreItem struct {
	SnapshotID       string `json:"snapshotID,omitempty"`
	AvailabilityZone string `json:"availabilityZone,omitempty"`
	State            string `json:"state,omitempty"`
}

FastSnapshotRestoreItem holds fast snapshot restore config for a snapshot/AZ combo.

type Fleet

type Fleet struct {
	FleetID                          string `json:"fleetId,omitempty"`
	FleetState                       string `json:"fleetState,omitempty"`
	FleetType                        string `json:"fleetType,omitempty"`
	TargetCapacityUnitType           string `json:"targetCapacityUnitType,omitempty"`
	ExcessCapacityTerminationPolicy  string `json:"excessCapacityTerminationPolicy,omitempty"`
	TotalTargetCapacity              int    `json:"totalTargetCapacity,omitempty"`
	OnDemandTargetCapacity           int    `json:"onDemandTargetCapacity,omitempty"`
	SpotTargetCapacity               int    `json:"spotTargetCapacity,omitempty"`
	TerminateInstancesWithExpiration bool   `json:"terminateInstancesWithExpiration,omitempty"`
}

type FlowLog

type FlowLog struct {
	CreationTime       time.Time `json:"creationTime"`
	FlowLogID          string    `json:"flowLogId,omitempty"`
	ResourceID         string    `json:"resourceId,omitempty"`
	TrafficType        string    `json:"trafficType,omitempty"`
	LogDestinationType string    `json:"logDestinationType,omitempty"`
	LogDestination     string    `json:"logDestination,omitempty"`
	FlowLogStatus      string    `json:"flowLogStatus,omitempty"`
}

FlowLog represents a VPC Flow Log record.

type FpgaImage

type FpgaImage struct {
	UpdateTime        time.Time                 `json:"updateTime,omitzero"`
	CreateTime        time.Time                 `json:"createTime,omitzero"`
	Tags              map[string]string         `json:"tags,omitempty"`
	OwnerAlias        string                    `json:"ownerAlias,omitempty"`
	ShellVersion      string                    `json:"shellVersion,omitempty"`
	State             string                    `json:"state,omitempty"`
	StateMessage      string                    `json:"stateMessage,omitempty"`
	OwnerID           string                    `json:"ownerId,omitempty"`
	FpgaImageID       string                    `json:"fpgaImageId,omitempty"`
	Description       string                    `json:"description,omitempty"`
	Name              string                    `json:"name,omitempty"`
	FpgaImageGlobalID string                    `json:"fpgaImageGlobalId,omitempty"`
	ProductCodes      []string                  `json:"productCodes,omitempty"`
	LoadPermissions   []FpgaImageLoadPermission `json:"loadPermissions,omitempty"`
	InstanceTypes     []string                  `json:"instanceTypes,omitempty"`
	Public            bool                      `json:"public,omitempty"`
}

FpgaImage represents an Amazon FPGA image (AFI).

type FpgaImageAttribute

type FpgaImageAttribute struct {
	FpgaImageID     string                    `json:"fpgaImageId,omitempty"`
	Description     string                    `json:"description,omitempty"`
	Name            string                    `json:"name,omitempty"`
	LoadPermissions []FpgaImageLoadPermission `json:"loadPermissions,omitempty"`
	ProductCodes    []string                  `json:"productCodes,omitempty"`
}

FpgaImageAttribute is the result of DescribeFpgaImageAttribute: a view of a single mutable attribute of an FPGA image.

type FpgaImageAttributeModification

type FpgaImageAttributeModification struct {
	Attribute         string
	Description       *string
	Name              *string
	OperationType     string
	LoadPermissionAdd []FpgaImageLoadPermission
	LoadPermissionDel []FpgaImageLoadPermission
	ProductCodes      []string
}

FpgaImageAttributeModification describes a requested mutation to an FPGA image's mutable attributes, as accepted by ModifyFpgaImageAttribute.

type FpgaImageLoadPermission

type FpgaImageLoadPermission struct {
	Group  string `json:"group,omitempty"`
	UserID string `json:"userId,omitempty"`
}

FpgaImageLoadPermission describes a single load permission entry granted on an FPGA image (AFI): either the "all" group (public) or a specific AWS account ID.

type Handler

type Handler struct {
	Backend Backend `json:"backend"`

	AccountID string `json:"accountID,omitempty"`
	Region    string `json:"region,omitempty"`
	// contains filtered or unexported fields
}

Handler is the Echo HTTP handler for EC2 operations.

func NewHandler

func NewHandler(backend Backend) *Handler

NewHandler creates a new EC2 handler with the given backend. The dispatch table is built once and cached in h.ops.

func (*Handler) ChaosOperations

func (h *Handler) ChaosOperations() []string

ChaosOperations returns all operations that can be fault-injected.

func (*Handler) ChaosRegions

func (h *Handler) ChaosRegions() []string

ChaosRegions returns all regions this EC2 instance handles.

func (*Handler) ChaosServiceName

func (h *Handler) ChaosServiceName() string

ChaosServiceName returns the lowercase AWS service name for fault rule matching.

func (*Handler) ExecuteFISAction

func (h *Handler) ExecuteFISAction(_ context.Context, action service.FISActionExecution) error

ExecuteFISAction executes a FIS action against resolved EC2 targets.

func (*Handler) ExtractOperation

func (h *Handler) ExtractOperation(c *echo.Context) string

ExtractOperation extracts the EC2 action from the request form.

func (*Handler) ExtractResource

func (h *Handler) ExtractResource(c *echo.Context) string

ExtractResource returns the primary resource identifier from the EC2 request.

func (*Handler) FISActions

func (h *Handler) FISActions() []service.FISActionDefinition

FISActions returns the FIS action definitions that the EC2 service supports.

func (*Handler) GetSupportedOperations

func (h *Handler) GetSupportedOperations() []string

GetSupportedOperations returns the list of supported EC2 operations.

func (*Handler) Handler

func (h *Handler) Handler() echo.HandlerFunc

Handler returns the Echo handler function for EC2 requests.

func (*Handler) MatchPriority

func (h *Handler) MatchPriority() int

MatchPriority returns the routing priority for the EC2 handler.

func (*Handler) Name

func (h *Handler) Name() string

Name returns the service name.

func (*Handler) Reset

func (h *Handler) Reset()

Reset clears all backend resource state and re-caches the dispatch table.

func (*Handler) Restore

func (h *Handler) Restore(ctx context.Context, data []byte) error

Restore implements persistence.Persistable by delegating to the backend. It type-asserts the backend to check for Restore support so that alternative backend implementations that do not persist state still compile.

func (*Handler) RouteMatcher

func (h *Handler) RouteMatcher() service.Matcher

RouteMatcher returns a function that matches EC2 requests. EC2 requests are form-encoded POSTs containing the EC2 API version.

func (*Handler) Shutdown

func (h *Handler) Shutdown(_ context.Context)

Shutdown stops background goroutines started by this handler. Implements service.Shutdowner. Safe to call multiple times.

func (*Handler) Snapshot

func (h *Handler) Snapshot(ctx context.Context) []byte

Snapshot implements persistence.Persistable by delegating to the backend. It type-asserts the backend to check for Snapshot support so that alternative backend implementations that do not persist state still compile.

func (*Handler) StartWorker

func (h *Handler) StartWorker(ctx context.Context) error

StartWorker starts the background janitor if configured and captures the service-lifetime context for detached compute hook calls.

func (*Handler) WithJanitor

func (h *Handler) WithJanitor(
	interval, terminatedTTL, cancelledSpotTTL time.Duration,
	taskTimeout ...time.Duration,
) *Handler

WithJanitor attaches a background janitor to the handler. If the backend is not an *InMemoryBackend, this is a no-op. The optional taskTimeout bounds each sweep; 0 means no per-task timeout.

type Host

type Host struct {
	HostID           string    `json:"hostID,omitempty"`
	InstanceType     string    `json:"instanceType,omitempty"`
	AvailabilityZone string    `json:"availabilityZone,omitempty"`
	State            string    `json:"state,omitempty"`
	AllocationTime   time.Time `json:"allocationTime"`
	OwnedBy          string    `json:"ownedBy,omitempty"`

	// AutoPlacement, HostRecovery, and HostMaintenance mirror the ModifyHosts
	// input fields of the same name (values are AWS enums: "on"/"off").
	AutoPlacement   string `json:"autoPlacement,omitempty"`
	HostRecovery    string `json:"hostRecovery,omitempty"`
	HostMaintenance string `json:"hostMaintenance,omitempty"`

	// InstanceFamily is set instead of InstanceType via ModifyHosts when the
	// host is reconfigured to support an entire instance family rather than a
	// single instance type.
	InstanceFamily string `json:"instanceFamily,omitempty"`
}

Host represents a Dedicated Host.

type HostModifyFailure

type HostModifyFailure struct {
	HostID  string `json:"hostId,omitempty"`
	Code    string `json:"code,omitempty"`
	Message string `json:"message,omitempty"`
}

HostModifyFailure describes a Dedicated Host that ModifyHosts could not update.

type HostOffering

type HostOffering struct {
	OfferingID     string `json:"offeringId,omitempty"`
	InstanceFamily string `json:"instanceFamily,omitempty"`
	PaymentOption  string `json:"paymentOption,omitempty"`
	HourlyPrice    string `json:"hourlyPrice,omitempty"`
	UpfrontPrice   string `json:"upfrontPrice,omitempty"`
	CurrencyCode   string `json:"currencyCode,omitempty"`
	Duration       int32  `json:"duration,omitempty"`
}

HostOffering describes a purchasable Dedicated Host Reservation offering. The catalog is a static, realistic set of offerings (mirroring AWS's own fixed catalog); it is not backed by a map since offerings are not created or deleted.

type HostReleaseResult

type HostReleaseResult struct {
	HostID  string
	Code    string
	Message string
}

HostReleaseResult reports the outcome of releasing a single Dedicated Host.

type HostReservation

type HostReservation struct {
	Start             time.Time         `json:"start"`
	End               time.Time         `json:"end"`
	Tags              map[string]string `json:"tags,omitempty"`
	HostReservationID string            `json:"hostReservationId,omitempty"`
	OfferingID        string            `json:"offeringId,omitempty"`
	InstanceFamily    string            `json:"instanceFamily,omitempty"`
	PaymentOption     string            `json:"paymentOption,omitempty"`
	CurrencyCode      string            `json:"currencyCode,omitempty"`
	HourlyPrice       string            `json:"hourlyPrice,omitempty"`
	UpfrontPrice      string            `json:"upfrontPrice,omitempty"`
	State             string            `json:"state,omitempty"`
	HostIDSet         []string          `json:"hostIdSet,omitempty"`
	Duration          int32             `json:"duration,omitempty"`
	Count             int32             `json:"count,omitempty"`
}

HostReservation represents a purchased Dedicated Host Reservation.

type HostReservationPurchase

type HostReservationPurchase struct {
	HostReservationID string   `json:"hostReservationId,omitempty"`
	InstanceFamily    string   `json:"instanceFamily,omitempty"`
	PaymentOption     string   `json:"paymentOption,omitempty"`
	CurrencyCode      string   `json:"currencyCode,omitempty"`
	HourlyPrice       string   `json:"hourlyPrice,omitempty"`
	UpfrontPrice      string   `json:"upfrontPrice,omitempty"`
	HostIDSet         []string `json:"hostIdSet,omitempty"`
	Duration          int32    `json:"duration,omitempty"`
}

HostReservationPurchase describes a single line item of a host reservation purchase (or preview thereof). HostReservationID is empty for previews, since no reservation is created until PurchaseHostReservation is called.

type HostReservationPurchasePreview

type HostReservationPurchasePreview struct {
	CurrencyCode      string
	TotalHourlyPrice  string
	TotalUpfrontPrice string
	Purchases         []HostReservationPurchase
}

HostReservationPurchasePreview is the result of GetHostReservationPurchasePreview.

type IDFormatItem

type IDFormatItem struct {
	Resource   string `json:"resource,omitempty"`
	Deadline   string `json:"deadline,omitempty"`
	UseLongIDs bool   `json:"useLongIDs,omitempty"`
}

IDFormatItem represents an ID format setting for a resource type.

type IGWAttachment

type IGWAttachment struct {
	VPCID string `json:"vpcID,omitempty"`
	State string `json:"state,omitempty"`
}

IGWAttachment represents the attachment of an Internet Gateway to a VPC.

type IMDSOptions

type IMDSOptions struct {
	HTTPTokens              string `json:"httpTokens,omitempty"`
	HTTPEndpoint            string `json:"httpEndpoint,omitempty"`
	InstanceMetadataTags    string `json:"instanceMetadataTags,omitempty"`
	State                   string `json:"state,omitempty"`
	HTTPPutResponseHopLimit int    `json:"httpPutResponseHopLimit,omitempty"`
}

IMDSOptions holds per-instance IMDS configuration.

type IamInstanceProfileAssociation

type IamInstanceProfileAssociation struct {
	Timestamp          time.Time `json:"timestamp"`
	AssociationID      string    `json:"associationID,omitempty"`
	InstanceID         string    `json:"instanceID,omitempty"`
	IamInstanceProfile string    `json:"iamInstanceProfile,omitempty"` // ARN or name
	State              string    `json:"state,omitempty"`
}

IamInstanceProfileAssociation represents an IAM instance profile association.

type ImageAncestryEntry

type ImageAncestryEntry struct {
	ImageID       string
	SourceImageID string
}

ImageAncestryEntry is a single AMI in the ancestry chain returned by GetImageAncestry.

type ImageCriterion

type ImageCriterion struct {
	CreationDateCondition    *CreationDateCondition    `json:"creationDateCondition,omitempty"`
	DeprecationTimeCondition *DeprecationTimeCondition `json:"deprecationTimeCondition,omitempty"`
	ImageNames               []string                  `json:"imageNames,omitempty"`
	ImageProviders           []string                  `json:"imageProviders,omitempty"`
	MarketplaceProductCodes  []string                  `json:"marketplaceProductCodes,omitempty"`
}

ImageCriterion is a single set of criteria evaluated to determine whether AMIs are discoverable and usable in the account, per the Allowed AMIs feature.

type ImageImportTask

type ImageImportTask struct {
	ImportTaskID string `json:"importTaskId,omitempty"`
	Description  string `json:"description,omitempty"`
	Architecture string `json:"architecture,omitempty"`
	Platform     string `json:"platform,omitempty"`
	Status       string `json:"status,omitempty"`
}

ImageImportTask holds status for an ImportImage task.

type ImageReferenceEntry

type ImageReferenceEntry struct {
	ImageID      string
	ResourceType string
	Arn          string
}

ImageReferenceEntry is a single resource-reference row returned by DescribeImageReferences, derived from existing instance and launch template state.

type ImageUsageReport

type ImageUsageReport struct {
	GenerationDate string `json:"generationDate,omitempty"`
	ImageID        string `json:"imageID,omitempty"`
	State          string `json:"state,omitempty"`
}

ImageUsageReport represents a synthetic AMI usage report entry.

type InMemoryBackend

type InMemoryBackend struct {
	Region    string `json:"region,omitempty"`
	AccountID string `json:"accountID,omitempty"`
	// contains filtered or unexported fields
}

InMemoryBackend is the in-memory store for EC2 resources.

func NewInMemoryBackend

func NewInMemoryBackend(accountID, region string) *InMemoryBackend

NewInMemoryBackend creates a new InMemoryBackend with a default VPC and subnet.

func (*InMemoryBackend) AcceptAddressTransfer

func (b *InMemoryBackend) AcceptAddressTransfer(address string) (*AddressTransfer, error)

AcceptAddressTransfer accepts a pending Elastic IP address transfer. It looks up a pending transfer for the given public IP address and transitions its status to "accepted".

func (*InMemoryBackend) AcceptCapacityReservationBillingOwnership

func (b *InMemoryBackend) AcceptCapacityReservationBillingOwnership(
	capacityReservationID string,
) (*CapacityReservation, error)

AcceptCapacityReservationBillingOwnership accepts the billing ownership of a capacity reservation, transitioning it to "active" state.

func (*InMemoryBackend) AcceptReservedInstancesExchangeQuote

func (b *InMemoryBackend) AcceptReservedInstancesExchangeQuote(
	reservedInstanceIDs []string,
) (*ReservedInstancesExchange, error)

AcceptReservedInstancesExchangeQuote accepts an exchange quote for reserved instances, creating a new exchange record with "successful" status.

func (*InMemoryBackend) AcceptTransitGatewayMulticastDomainAssociations

func (b *InMemoryBackend) AcceptTransitGatewayMulticastDomainAssociations(
	transitGatewayMulticastDomainID, transitGatewayAttachmentID string,
	subnetIDs []string,
) ([]*TransitGatewayMulticastDomainAssociation, error)

AcceptTransitGatewayMulticastDomainAssociations accepts a request to associate subnets with a transit gateway multicast domain. Returns a non-nil (possibly empty) slice of associations.

func (*InMemoryBackend) AcceptTransitGatewayPeeringAttachment

func (b *InMemoryBackend) AcceptTransitGatewayPeeringAttachment(
	transitGatewayAttachmentID string,
) (*TransitGatewayPeeringAttachment, error)

AcceptTransitGatewayPeeringAttachment accepts a TGW peering attachment, transitioning its state to "available".

func (*InMemoryBackend) AcceptTransitGatewayVpcAttachment

func (b *InMemoryBackend) AcceptTransitGatewayVpcAttachment(
	transitGatewayAttachmentID string,
) (*TransitGatewayVpcAttachment, error)

AcceptTransitGatewayVpcAttachment accepts a TGW VPC attachment, transitioning its state to "available".

func (*InMemoryBackend) AcceptVpcEndpointConnections

func (b *InMemoryBackend) AcceptVpcEndpointConnections(
	serviceID string,
	vpcEndpointIDs []string,
) ([]*VpcEndpointConnection, error)

AcceptVpcEndpointConnections accepts VPC endpoint connections to the given service, transitioning each endpoint's state to "available". Returns a non-nil (possibly empty) slice of accepted connections.

func (*InMemoryBackend) AcceptVpcPeeringConnection

func (b *InMemoryBackend) AcceptVpcPeeringConnection(
	vpcPeeringConnectionID string,
) (*VpcPeeringConnection, error)

AcceptVpcPeeringConnection accepts a VPC peering connection, transitioning its state to "active".

func (*InMemoryBackend) AddAddressTransferInternal

func (b *InMemoryBackend) AddAddressTransferInternal(t *AddressTransfer)

AddAddressTransferInternal inserts an AddressTransfer directly (for seeding in tests). The key is the PublicIP field of the transfer. The value is deep-copied.

func (*InMemoryBackend) AddByoipCidrInternal

func (b *InMemoryBackend) AddByoipCidrInternal(cidr *ByoipCidr)

AddByoipCidrInternal inserts a ByoipCidr directly (for seeding in tests). The value is deep-copied.

func (*InMemoryBackend) AddCapacityReservationInternal

func (b *InMemoryBackend) AddCapacityReservationInternal(cr *CapacityReservation)

AddCapacityReservationInternal inserts a CapacityReservation directly (for seeding in tests). OwnedBy is populated from b.AccountID if unset. The value is deep-copied.

func (*InMemoryBackend) AddTGWMulticastDomainAssociationInternal

func (b *InMemoryBackend) AddTGWMulticastDomainAssociationInternal(
	assoc *TransitGatewayMulticastDomainAssociation,
)

AddTGWMulticastDomainAssociationInternal inserts a TGW multicast domain association directly (for seeding in tests). The value is deep-copied.

func (*InMemoryBackend) AddTGWPeeringAttachmentInternal

func (b *InMemoryBackend) AddTGWPeeringAttachmentInternal(att *TransitGatewayPeeringAttachment)

AddTGWPeeringAttachmentInternal inserts a TGW peering attachment (for seeding in tests). CreationTime is populated if zero. The value is deep-copied.

func (*InMemoryBackend) AddTGWVpcAttachmentInternal

func (b *InMemoryBackend) AddTGWVpcAttachmentInternal(att *TransitGatewayVpcAttachment)

AddTGWVpcAttachmentInternal inserts a TGW VPC attachment (for seeding in tests). CreationTime is populated if zero. The value is deep-copied.

func (*InMemoryBackend) AddVpcEndpointConnectionInternal

func (b *InMemoryBackend) AddVpcEndpointConnectionInternal(conn *VpcEndpointConnection)

AddVpcEndpointConnectionInternal inserts a VPC endpoint connection directly (for seeding in tests). The value is deep-copied.

func (*InMemoryBackend) AddVpcPeeringConnectionInternal

func (b *InMemoryBackend) AddVpcPeeringConnectionInternal(pc *VpcPeeringConnection)

AddVpcPeeringConnectionInternal inserts a VPC peering connection (for seeding in tests). ExpirationTime is set to 7 days from now if zero. The value is deep-copied.

func (*InMemoryBackend) AdvertiseByoipCidr

func (b *InMemoryBackend) AdvertiseByoipCidr(cidr string) (*ByoipCidr, error)

AdvertiseByoipCidr marks a BYOIP CIDR as advertised. If the CIDR is not yet tracked, it is created in "advertised" state.

func (*InMemoryBackend) AllocateAddress

func (b *InMemoryBackend) AllocateAddress() (*Address, error)

AllocateAddress allocates a new Elastic IP address.

func (*InMemoryBackend) AllocateHosts

func (b *InMemoryBackend) AllocateHosts(
	availabilityZone, instanceType string,
	hostCount int,
) ([]*Host, error)

AllocateHosts allocates one or more Dedicated Hosts in the given availability zone.

func (*InMemoryBackend) AllocateIpamPoolCidr

func (b *InMemoryBackend) AllocateIpamPoolCidr(
	poolID, cidr string,
	netmaskLength int,
	opts ...IpamAllocationOptions,
) (*IpamPoolAllocation, error)

AllocateIpamPoolCidr allocates a CIDR from an IPAM pool. If cidr is empty, one is auto-generated from the pool's network space.

func (*InMemoryBackend) ApplySecurityGroupsToClientVpnTargetNetwork

func (b *InMemoryBackend) ApplySecurityGroupsToClientVpnTargetNetwork(endpointID string, sgIDs []string) error

ApplySecurityGroupsToClientVpnTargetNetwork applies security groups to all target networks associated with a Client VPN endpoint's VPC.

func (*InMemoryBackend) AssignIpv6Addresses

func (b *InMemoryBackend) AssignIpv6Addresses(niID string, count int) ([]string, error)

AssignIpv6Addresses assigns IPv6 addresses to a network interface.

func (*InMemoryBackend) AssignPrivateIPAddresses

func (b *InMemoryBackend) AssignPrivateIPAddresses(eniID string, count int, ips []string) error

AssignPrivateIPAddresses adds secondary private IP addresses to an ENI. count is used when ips is empty; otherwise the supplied IPs are assigned.

func (*InMemoryBackend) AssignPrivateNatGatewayAddress

func (b *InMemoryBackend) AssignPrivateNatGatewayAddress(natGatewayID string) error

AssignPrivateNatGatewayAddress assigns a new secondary private IP to a NAT gateway, appending it to the gateway's real address state. See UnassignPrivateNatGatewayAddress (nat_gateways.go) for the inverse.

func (*InMemoryBackend) AssociateAddress

func (b *InMemoryBackend) AssociateAddress(allocationID, instanceID string) (string, error)

AssociateAddress associates an Elastic IP with an instance.

func (*InMemoryBackend) AssociateCapacityReservationBillingOwner

func (b *InMemoryBackend) AssociateCapacityReservationBillingOwner(
	reservationID, billingOwnerID string,
) error

AssociateCapacityReservationBillingOwner creates (or replaces) a pending request to assign billing for the given Capacity Reservation to another account.

func (*InMemoryBackend) AssociateClientVpnTargetNetwork

func (b *InMemoryBackend) AssociateClientVpnTargetNetwork(
	endpointID, subnetID string,
) (string, error)

AssociateClientVpnTargetNetwork associates a subnet with a Client VPN endpoint. Returns the generated association ID.

func (*InMemoryBackend) AssociateDhcpOptions

func (b *InMemoryBackend) AssociateDhcpOptions(dhcpOptionsID, vpcID string) error

AssociateDhcpOptions associates a DHCP options set with a VPC.

func (*InMemoryBackend) AssociateEnclaveCertificateIamRole

func (b *InMemoryBackend) AssociateEnclaveCertificateIamRole(
	certificateArn, roleArn string,
) (*EnclaveCertIamRoleAssociation, error)

AssociateEnclaveCertificateIamRole associates an IAM role with an ACM certificate so that Nitro Enclaves applications running under that role can access the certificate bundle from Amazon S3. Re-associating the same certificateArn/roleArn pair is idempotent and returns the existing association.

func (*InMemoryBackend) AssociateIamInstanceProfile

func (b *InMemoryBackend) AssociateIamInstanceProfile(
	instanceID, profileARN string,
) (*IamInstanceProfileAssociation, error)

AssociateIamInstanceProfile associates an IAM instance profile with an instance.

func (*InMemoryBackend) AssociateInstanceEventWindow

func (b *InMemoryBackend) AssociateInstanceEventWindow(
	windowID string, instanceIDs, dedicatedHostIDs []string,
) (*InstanceEventWindow, error)

AssociateInstanceEventWindow adds instances and/or Dedicated Hosts as targets of an instance event window.

func (*InMemoryBackend) AssociateIpamByoasn

func (b *InMemoryBackend) AssociateIpamByoasn(asn, cidr string) (*IpamAsnAssociation, error)

AssociateIpamByoasn associates a provisioned BYOASN with a BYOIP CIDR.

func (*InMemoryBackend) AssociateIpamResourceDiscovery

func (b *InMemoryBackend) AssociateIpamResourceDiscovery(
	ipamID, discoveryID string,
) (*IpamResourceDiscoveryAssociation, error)

AssociateIpamResourceDiscovery associates a standalone resource discovery with an IPAM.

func (*InMemoryBackend) AssociateNatGatewayAddress

func (b *InMemoryBackend) AssociateNatGatewayAddress(natGatewayID, _ string) error

AssociateNatGatewayAddress adds an allocation to a NAT gateway.

func (*InMemoryBackend) AssociateRouteServer

func (b *InMemoryBackend) AssociateRouteServer(routeServerID, vpcID string) (*RouteServerAssociation, error)

AssociateRouteServer associates a route server with a VPC.

func (*InMemoryBackend) AssociateRouteTable

func (b *InMemoryBackend) AssociateRouteTable(rtID, subnetID string) (string, error)

AssociateRouteTable associates a route table with a subnet.

func (*InMemoryBackend) AssociateSecurityGroupVpc

func (b *InMemoryBackend) AssociateSecurityGroupVpc(
	sgID, vpcID string,
) (*SGVpcAssociationState, error)

AssociateSecurityGroupVpc extends a security group to an additional VPC.

func (*InMemoryBackend) AssociateSubnetCidrBlock

func (b *InMemoryBackend) AssociateSubnetCidrBlock(
	subnetID, ipv6CIDRBlock string,
) (*SubnetCIDRAssociation, error)

AssociateSubnetCidrBlock adds an IPv6 CIDR block to a subnet.

func (*InMemoryBackend) AssociateTransitGatewayMulticastDomain

func (b *InMemoryBackend) AssociateTransitGatewayMulticastDomain(
	domainID, attachmentID string,
	subnetIDs []string,
) ([]*TransitGatewayMulticastDomainAssociation, error)

AssociateTransitGatewayMulticastDomain associates one or more subnets, via a transit gateway attachment, with a transit gateway multicast domain.

func (*InMemoryBackend) AssociateTransitGatewayPolicyTable

func (b *InMemoryBackend) AssociateTransitGatewayPolicyTable(
	policyTableID, attachmentID string,
) (*TransitGatewayPolicyTableAssociation, error)

AssociateTransitGatewayPolicyTable associates a TGW attachment with a policy table.

func (*InMemoryBackend) AssociateTransitGatewayRouteTable

func (b *InMemoryBackend) AssociateTransitGatewayRouteTable(
	routeTableID, attachmentID string,
) (*TransitGatewayRouteTableAssociation, error)

AssociateTransitGatewayRouteTable associates a TGW attachment with a route table.

func (*InMemoryBackend) AssociateTrunkInterface

func (b *InMemoryBackend) AssociateTrunkInterface(
	branchInterfaceID, trunkInterfaceID string, vlanID, greKey int32, tags map[string]string,
) (*TrunkInterfaceAssociation, error)

AssociateTrunkInterface associates a branch network interface with a trunk network interface. Exactly one of vlanID or greKey must be provided (greater than zero) to select the multiplexing protocol.

func (*InMemoryBackend) AssociateVpcCidrBlock

func (b *InMemoryBackend) AssociateVpcCidrBlock(
	vpcID, cidrBlock string,
) (*VpcCidrBlockAssociation, error)

AssociateVpcCidrBlock associates a secondary CIDR block with a VPC.

func (*InMemoryBackend) AttachClassicLinkVpc

func (b *InMemoryBackend) AttachClassicLinkVpc(instanceID, vpcID string, groups []string) error

AttachClassicLinkVpc links an EC2-Classic instance to a ClassicLink-enabled VPC.

func (*InMemoryBackend) AttachInternetGateway

func (b *InMemoryBackend) AttachInternetGateway(igwID, vpcID string) error

AttachInternetGateway attaches an IGW to a VPC.

func (*InMemoryBackend) AttachNetworkInterface

func (b *InMemoryBackend) AttachNetworkInterface(
	eniID, instanceID string,
	deviceIndex int,
) (string, error)

AttachNetworkInterface attaches an ENI to an instance and returns the attachment ID.

func (*InMemoryBackend) AttachVerifiedAccessTrustProvider

func (b *InMemoryBackend) AttachVerifiedAccessTrustProvider(instanceID, trustProviderID string) error

AttachVerifiedAccessTrustProvider attaches a trust provider to a Verified Access instance.

func (*InMemoryBackend) AttachVolume

func (b *InMemoryBackend) AttachVolume(
	volumeID, instanceID, device string,
) (*VolumeAttachment, error)

AttachVolume attaches a volume to an instance.

func (*InMemoryBackend) AttachVpnGateway

func (b *InMemoryBackend) AttachVpnGateway(vgwID, vpcID string) error

AttachVpnGateway attaches a VPN gateway to a VPC.

func (*InMemoryBackend) AuthorizeClientVpnIngress

func (b *InMemoryBackend) AuthorizeClientVpnIngress(
	endpointID, cidr, description string,
) error

AuthorizeClientVpnIngress creates an authorization rule for a Client VPN endpoint.

func (*InMemoryBackend) AuthorizeSecurityGroupEgress

func (b *InMemoryBackend) AuthorizeSecurityGroupEgress(
	groupID string,
	rules []SecurityGroupRule,
) error

AuthorizeSecurityGroupEgress adds egress rules to a security group.

func (*InMemoryBackend) AuthorizeSecurityGroupIngress

func (b *InMemoryBackend) AuthorizeSecurityGroupIngress(
	groupID string,
	rules []SecurityGroupRule,
) error

AuthorizeSecurityGroupIngress adds ingress rules to a security group.

func (*InMemoryBackend) BundleInstance

func (b *InMemoryBackend) BundleInstance(instanceID, s3Bucket, s3Prefix string) (*BundleTask, error)

BundleInstance starts a bundle task for an instance-store backed Windows instance.

func (*InMemoryBackend) CancelBundleTask

func (b *InMemoryBackend) CancelBundleTask(bundleID string) (*BundleTask, error)

CancelBundleTask cancels a bundle task that has not yet reached a terminal state.

func (*InMemoryBackend) CancelCapacityReservation

func (b *InMemoryBackend) CancelCapacityReservation(reservationID string) error

CancelCapacityReservation cancels an active capacity reservation.

func (*InMemoryBackend) CancelCapacityReservationFleets

func (b *InMemoryBackend) CancelCapacityReservationFleets(
	fleetIDs []string,
) ([]CapacityReservationFleetCancellation, []FailedCapacityReservationFleetCancellation)

CancelCapacityReservationFleets cancels the given Capacity Reservation Fleets and all of their backing Capacity Reservations. It returns the successfully cancelled fleets (with previous/current state) and any fleet IDs that could not be found.

func (*InMemoryBackend) CancelConversionTask

func (b *InMemoryBackend) CancelConversionTask(conversionTaskID string) (*ConversionTask, error)

CancelConversionTask cancels a conversion task that has not yet reached a terminal state.

func (*InMemoryBackend) CancelDeclarativePoliciesReport

func (b *InMemoryBackend) CancelDeclarativePoliciesReport(reportID string) (bool, error)

CancelDeclarativePoliciesReport cancels a report that has not yet completed.

func (*InMemoryBackend) CancelExportTask

func (b *InMemoryBackend) CancelExportTask(exportTaskID string) error

CancelExportTask cancels an instance or image export task that has not yet reached a terminal state.

func (*InMemoryBackend) CancelImageLaunchPermission

func (b *InMemoryBackend) CancelImageLaunchPermission(imageID string) error

CancelImageLaunchPermission removes the launch permission entry for an AMI, reusing the same imageAttributes store ModifyImageAttribute/ResetImageAttribute maintain for the "launchPermission" attribute.

func (*InMemoryBackend) CancelImportTask

func (b *InMemoryBackend) CancelImportTask(importTaskID string) (string, string, error)

CancelImportTask cancels an in-progress ImportImage or ImportSnapshot task, identified by its import task ID (import-ami-* or import-snap-*). Returns the task's previous and new state. Tasks that have already reached a terminal state cannot be cancelled.

func (*InMemoryBackend) CancelReservedInstancesListing

func (b *InMemoryBackend) CancelReservedInstancesListing(id string) error

func (*InMemoryBackend) CancelSpotFleetRequests

func (b *InMemoryBackend) CancelSpotFleetRequests(
	fleetIDs []string,
	terminateInstances bool,
) ([]SpotFleetCancelResult, error)

CancelSpotFleetRequests cancels spot fleet requests. If terminateInstances is true, spawned instances are also terminated.

func (*InMemoryBackend) CancelSpotInstanceRequests

func (b *InMemoryBackend) CancelSpotInstanceRequests(ids []string) error

CancelSpotInstanceRequests cancels the given spot instance requests (transitions to cancelled).

func (*InMemoryBackend) Compute

func (b *InMemoryBackend) Compute() Compute

Compute returns the currently installed Compute provider (may be nil).

func (*InMemoryBackend) ConfirmProductInstance

func (b *InMemoryBackend) ConfirmProductInstance(instanceID, productCode string) (bool, error)

ConfirmProductInstance verifies that the given instance exists and, if so, reports whether the given product code is associated with it. This mock does not currently populate per-instance product code associations, so it always returns false for an existing instance (matching AWS's behaviour for an instance with no matching product code) while still validating the instance's existence.

func (*InMemoryBackend) CopyFpgaImage

func (b *InMemoryBackend) CopyFpgaImage(
	sourceFpgaImageID, sourceRegion, name, description string,
) (*FpgaImage, error)

CopyFpgaImage copies an FPGA image from a source region into the current region, returning the new image's ID. The source image is looked up only when the copy originates from this same backend's region (cross-region state is not shared between emulator instances); otherwise a new image is synthesised from the supplied identifiers, matching how AWS treats cross-region/cross-account copies as opaque.

func (*InMemoryBackend) CopyImage

func (b *InMemoryBackend) CopyImage(sourceImageID, name, description string) (*AMIStub, error)

CopyImage copies an AMI stub, producing a new ID.

func (*InMemoryBackend) CopySnapshot

func (b *InMemoryBackend) CopySnapshot(sourceSnapshotID, description string) (*Snapshot, error)

CopySnapshot creates a new snapshot as a copy of an existing one.

func (*InMemoryBackend) CopyVolumes

func (b *InMemoryBackend) CopyVolumes(
	volumeIDs []string,
	_ string,
) ([]CopyVolumesResult, error)

CopyVolumes creates copies of the given volumes.

func (*InMemoryBackend) CreateCapacityManagerDataExport

func (b *InMemoryBackend) CreateCapacityManagerDataExport(
	outputFormat, s3BucketName, s3BucketPrefix, schedule string,
	tags map[string]string,
) (*CapacityManagerDataExport, error)

CreateCapacityManagerDataExport configures a new periodic Capacity Manager data export to the given S3 bucket.

func (*InMemoryBackend) CreateCapacityReservation

func (b *InMemoryBackend) CreateCapacityReservation(
	instanceType, availabilityZone string,
	instanceCount int,
) (*CapacityReservation, error)

CreateCapacityReservation creates a new capacity reservation.

func (*InMemoryBackend) CreateCapacityReservationBySplitting

func (b *InMemoryBackend) CreateCapacityReservationBySplitting(
	sourceID string,
	instanceCount int,
	tags map[string]string,
) (*CapacityReservation, *CapacityReservation, error)

CreateCapacityReservationBySplitting splits instanceCount instances off of the source Capacity Reservation into a brand-new destination reservation with the same instance type and Availability Zone.

func (*InMemoryBackend) CreateCapacityReservationFleet

func (b *InMemoryBackend) CreateCapacityReservationFleet(
	specs []CapacityReservationFleetInstanceSpec,
	totalTargetCapacity int32,
	allocationStrategy, instanceMatchCriteria, tenancy string,
	endDate *time.Time,
	tags map[string]string,
) (*CapacityReservationFleet, error)

CreateCapacityReservationFleet creates a Capacity Reservation Fleet, allocating the total target capacity across the given instance type specifications using the "prioritized" allocation strategy: the lowest-Priority spec is fulfilled first (up to the full target capacity), remaining specs are fulfilled with any leftover capacity. A backing CapacityReservation is created for each spec that receives a non-zero instance count.

func (*InMemoryBackend) CreateCarrierGateway

func (b *InMemoryBackend) CreateCarrierGateway(vpcID string) (*CarrierGateway, error)

func (*InMemoryBackend) CreateClientVpnEndpoint

func (b *InMemoryBackend) CreateClientVpnEndpoint(
	clientCidrBlock, description string,
	dnsServers []string,
) (*ClientVpnEndpoint, error)

CreateClientVpnEndpoint creates a new Client VPN endpoint.

func (*InMemoryBackend) CreateClientVpnEndpointWithOptions

func (b *InMemoryBackend) CreateClientVpnEndpointWithOptions(
	clientCidrBlock, description string,
	dnsServers []string,
	opts ClientVpnEndpointOptions,
) (*ClientVpnEndpoint, error)

CreateClientVpnEndpointWithOptions creates a new Client VPN endpoint with the full set of AWS-accepted advanced options.

func (*InMemoryBackend) CreateClientVpnRoute

func (b *InMemoryBackend) CreateClientVpnRoute(
	endpointID, destinationCidr, description string,
) error

CreateClientVpnRoute creates a route for a Client VPN endpoint.

func (*InMemoryBackend) CreateCoipCidr

func (b *InMemoryBackend) CreateCoipCidr(poolID, cidr string) (*CoipCidr, error)

CreateCoipCidr adds a customer-owned IP address range to a CoIP pool.

func (*InMemoryBackend) CreateCoipPool

func (b *InMemoryBackend) CreateCoipPool(localGatewayRouteTableID string, tags map[string]string) (*CoipPool, error)

CreateCoipPool creates a new Customer-Owned IP address pool associated with the given local gateway route table.

func (*InMemoryBackend) CreateCustomerGateway

func (b *InMemoryBackend) CreateCustomerGateway(
	gatewayType, ipAddress, bgpAsn string,
) (*CustomerGateway, error)

CreateCustomerGateway creates a new customer gateway.

func (*InMemoryBackend) CreateDefaultSubnet

func (b *InMemoryBackend) CreateDefaultSubnet(az string) (*Subnet, error)

CreateDefaultSubnet creates a new default subnet in the given availability zone.

func (*InMemoryBackend) CreateDefaultVpc

func (b *InMemoryBackend) CreateDefaultVpc() (*VPC, error)

CreateDefaultVpc creates a new default VPC in the account. Returns error if a default VPC already exists.

func (*InMemoryBackend) CreateDelegateMacVolumeOwnershipTask

func (b *InMemoryBackend) CreateDelegateMacVolumeOwnershipTask(
	instanceID, macCredentials string, tags map[string]string,
) (*MacModificationTask, error)

CreateDelegateMacVolumeOwnershipTask creates a volume ownership delegation task for the given Apple silicon Mac instance.

func (*InMemoryBackend) CreateDhcpOptions

func (b *InMemoryBackend) CreateDhcpOptions(configs []DhcpConfiguration) (*DhcpOptions, error)

CreateDhcpOptions creates a new DHCP options set.

func (*InMemoryBackend) CreateEgressOnlyInternetGateway

func (b *InMemoryBackend) CreateEgressOnlyInternetGateway(
	vpcID string,
) (*EgressOnlyInternetGateway, error)

CreateEgressOnlyInternetGateway creates a new egress-only internet gateway.

func (*InMemoryBackend) CreateFleet

func (b *InMemoryBackend) CreateFleet(fleetType string, totalTargetCapacity int) (*Fleet, error)

func (*InMemoryBackend) CreateFlowLogs

func (b *InMemoryBackend) CreateFlowLogs(
	resourceIDs []string,
	trafficType, logDestinationType, logDestination string,
) ([]*FlowLog, error)

CreateFlowLogs creates flow log records for the given resources.

func (*InMemoryBackend) CreateFpgaImage

func (b *InMemoryBackend) CreateFpgaImage(name, description string) (*FpgaImage, error)

CreateFpgaImage registers a new FPGA image (AFI) from the given design checkpoint. The image transitions immediately to the "available" state since no real bitstream generation pipeline is modelled.

func (*InMemoryBackend) CreateImage

func (b *InMemoryBackend) CreateImage(instanceID, name, description string) (*AMIStub, error)

CreateImage creates an AMI from an instance.

func (*InMemoryBackend) CreateImageUsageReport

func (b *InMemoryBackend) CreateImageUsageReport(
	imageID string, resourceTypes, accountIDs []string,
) (*UsageReport, error)

CreateImageUsageReport creates a usage report for the given AMI, tallying how many instances and launch templates currently reference it across the requested resource types (and, if accountIDs is non-empty, restricted to those accounts).

func (*InMemoryBackend) CreateInstanceConnectEndpoint

func (b *InMemoryBackend) CreateInstanceConnectEndpoint(
	subnetID string,
	securityGroupIDs []string,
	preserveClientIP bool,
) (*InstanceConnectEndpoint, error)

CreateInstanceConnectEndpoint creates a new Instance Connect Endpoint.

func (*InMemoryBackend) CreateInstanceEventWindow

func (b *InMemoryBackend) CreateInstanceEventWindow(
	name, cronExpression string,
) (*InstanceEventWindow, error)

CreateInstanceEventWindow creates a maintenance event window.

func (*InMemoryBackend) CreateInstanceExportTask

func (b *InMemoryBackend) CreateInstanceExportTask(
	instanceID, description, targetEnvironment, diskImageFormat, containerFormat, s3Bucket, s3Prefix string,
) (*ExportTask, error)

CreateInstanceExportTask starts an export task that exports an instance to Amazon S3.

func (*InMemoryBackend) CreateInternetGateway

func (b *InMemoryBackend) CreateInternetGateway() (*InternetGateway, error)

CreateInternetGateway creates a new Internet Gateway.

func (*InMemoryBackend) CreateInterruptibleCapacityReservationAllocation

func (b *InMemoryBackend) CreateInterruptibleCapacityReservationAllocation(
	sourceCapacityReservationID string, instanceCount int32,
) (*InterruptibleCapacityReservationAllocation, error)

CreateInterruptibleCapacityReservationAllocation carves out an interruptible allocation from a source Capacity Reservation's spare capacity, reducing the source's AvailableInstanceCount.

func (*InMemoryBackend) CreateIpam

func (b *InMemoryBackend) CreateIpam(opts ...IpamOptions) (*Ipam, error)

CreateIpam creates a new IPAM instance, along with its default public/private scopes and default resource discovery, mirroring real AWS behavior.

func (*InMemoryBackend) CreateIpamExternalResourceVerificationToken

func (b *InMemoryBackend) CreateIpamExternalResourceVerificationToken(
	ipamID string,
) (*IpamExternalResourceVerificationToken, error)

CreateIpamExternalResourceVerificationToken creates a token an external (non-AWS) resource owner can use to prove ownership of a resource so IPAM can monitor its CIDR.

func (*InMemoryBackend) CreateIpamPolicy

func (b *InMemoryBackend) CreateIpamPolicy(ipamID string) (*IpamPolicy, error)

CreateIpamPolicy creates a new IPAM policy under the given IPAM.

func (*InMemoryBackend) CreateIpamPool

func (b *InMemoryBackend) CreateIpamPool(
	ipamID, addressFamily, locale, cidr string, opts ...IpamPoolOptions,
) (*IpamPool, error)

CreateIpamPool creates a new IPAM pool under the given IPAM (resolved to its default scope for addressFamily). If cidr is non-empty it is immediately provisioned to the pool, matching the CreateIpamPool ProvisionedCidrs request parameter.

func (*InMemoryBackend) CreateIpamPrefixListResolver

func (b *InMemoryBackend) CreateIpamPrefixListResolver(
	ipamID, addressFamily, description string, rules []IpamPrefixListResolverRule,
) (*IpamPrefixListResolver, error)

CreateIpamPrefixListResolver creates a new IPAM prefix list resolver: a component that selects CIDRs from an IPAM's tracked address space according to a set of rules, producing numbered "versions" that a Target can synchronize into a managed prefix list.

func (*InMemoryBackend) CreateIpamPrefixListResolverTarget

func (b *InMemoryBackend) CreateIpamPrefixListResolverTarget(
	resolverID, prefixListID, prefixListRegion string, trackLatestVersion bool, desiredVersion *int64,
) (*IpamPrefixListResolverTarget, error)

CreateIpamPrefixListResolverTarget associates a managed prefix list with a resolver, making it an "IPAM managed prefix list" whose CIDRs are kept in sync with the resolver's rules.

func (*InMemoryBackend) CreateIpamResourceDiscovery

func (b *InMemoryBackend) CreateIpamResourceDiscovery(
	description string, operatingRegions []string,
) (*IpamResourceDiscovery, error)

CreateIpamResourceDiscovery creates a standalone (non-default) IPAM resource discovery that can later be associated with one or more IPAMs via AssociateIpamResourceDiscovery.

func (*InMemoryBackend) CreateIpamScope

func (b *InMemoryBackend) CreateIpamScope(ipamID, description string) (*IpamScope, error)

CreateIpamScope creates an additional (non-default) private IPAM scope.

func (*InMemoryBackend) CreateIpv6Pool

func (b *InMemoryBackend) CreateIpv6Pool(description string, poolCidrBlocks []string) *Ipv6Pool

CreateIpv6Pool creates a new IPv6 address pool. Not an EC2 API by itself (IPv6 pools are created implicitly via ProvisionByoipCidr with an IPv6 CIDR), but exposed so tests and the handler layer can seed pools deterministically.

func (*InMemoryBackend) CreateKeyPair

func (b *InMemoryBackend) CreateKeyPair(name string) (*KeyPair, error)

CreateKeyPair generates a new RSA key pair.

func (*InMemoryBackend) CreateLaunchTemplate

func (b *InMemoryBackend) CreateLaunchTemplate(
	name, imageID, instanceType string,
) (*LaunchTemplate, error)

CreateLaunchTemplate creates a launch template.

func (*InMemoryBackend) CreateLaunchTemplateVersion

func (b *InMemoryBackend) CreateLaunchTemplateVersion(
	id, imageID, instanceType string,
) (*LaunchTemplateVersion, error)

CreateLaunchTemplateVersion adds a new version to an existing launch template.

func (*InMemoryBackend) CreateLocalGatewayRoute

func (b *InMemoryBackend) CreateLocalGatewayRoute(
	routeTableID, destinationCIDR, destinationPrefixListID, vifGroupID, eniID string,
) (*LocalGatewayRoute, error)

CreateLocalGatewayRoute adds a static route to a local gateway route table.

func (*InMemoryBackend) CreateLocalGatewayRouteTable

func (b *InMemoryBackend) CreateLocalGatewayRouteTable(
	localGatewayID, mode string,
) (*LocalGatewayRouteTable, error)

CreateLocalGatewayRouteTable creates a new local gateway route table.

func (*InMemoryBackend) CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation

func (b *InMemoryBackend) CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation(
	routeTableID, vifGroupID string,
) (*LocalGatewayRouteTableVirtualInterfaceGroupAssociation, error)

CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation associates a virtual interface group with a local gateway route table.

func (*InMemoryBackend) CreateLocalGatewayRouteTableVpcAssociation

func (b *InMemoryBackend) CreateLocalGatewayRouteTableVpcAssociation(
	routeTableID, vpcID string,
) (*LocalGatewayRouteTableVpcAssociation, error)

CreateLocalGatewayRouteTableVpcAssociation associates a VPC with a local gateway route table.

func (*InMemoryBackend) CreateLocalGatewayVirtualInterface

func (b *InMemoryBackend) CreateLocalGatewayVirtualInterface(
	p LocalGatewayVirtualInterfaceParams,
) (*LocalGatewayVirtualInterface, error)

CreateLocalGatewayVirtualInterface creates a virtual interface within a real local gateway virtual interface group. The created VIF's ID is appended to the group's LocalGatewayVirtualInterfaceIDs, mirroring AWS's DescribeLocalGatewayVirtualInterfaceGroups behavior.

func (*InMemoryBackend) CreateLocalGatewayVirtualInterfaceGroup

func (b *InMemoryBackend) CreateLocalGatewayVirtualInterfaceGroup(
	localGatewayID string,
	localBgpAsn int32,
	localBgpAsnExtended int64,
	tags map[string]string,
) (*LocalGatewayVirtualInterfaceGroup, error)

CreateLocalGatewayVirtualInterfaceGroup creates a virtual interface group on a real local gateway.

func (*InMemoryBackend) CreateMacSystemIntegrityProtectionModificationTask

func (b *InMemoryBackend) CreateMacSystemIntegrityProtectionModificationTask(
	instanceID, status string, config *MacSIPConfig, tags map[string]string,
) (*MacModificationTask, error)

CreateMacSystemIntegrityProtectionModificationTask creates a SIP modification task for the given Mac instance.

func (*InMemoryBackend) CreateManagedPrefixList

func (b *InMemoryBackend) CreateManagedPrefixList(
	name, addressFamily string,
	maxEntries int,
) (*ManagedPrefixList, error)

CreateManagedPrefixList creates a new managed prefix list.

func (*InMemoryBackend) CreateNatGateway

func (b *InMemoryBackend) CreateNatGateway(subnetID, allocationID string) (*NatGateway, error)

CreateNatGateway creates a new NAT Gateway.

func (*InMemoryBackend) CreateNetworkACL

func (b *InMemoryBackend) CreateNetworkACL(vpcID string) (*StoredNetworkACL, error)

CreateNetworkACL creates a non-default network ACL in a VPC.

func (*InMemoryBackend) CreateNetworkACLEntry

func (b *InMemoryBackend) CreateNetworkACLEntry(
	aclID string, ruleNumber int, protocol, action, cidr string,
	egress bool, fromPort, toPort int,
) error

CreateNetworkACLEntry adds a rule to an existing network ACL.

func (*InMemoryBackend) CreateNetworkInsightsAccessScope

func (b *InMemoryBackend) CreateNetworkInsightsAccessScope() (*NetworkInsightsAccessScope, error)

func (*InMemoryBackend) CreateNetworkInsightsPath

func (b *InMemoryBackend) CreateNetworkInsightsPath(
	sourceID, destinationID, protocol string,
	destinationPort int,
) (*NetworkInsightsPath, error)

func (*InMemoryBackend) CreateNetworkInterface

func (b *InMemoryBackend) CreateNetworkInterface(
	subnetID, description string,
) (*NetworkInterface, error)

CreateNetworkInterface creates a new ENI in the given subnet.

func (*InMemoryBackend) CreateNetworkInterfacePermission

func (b *InMemoryBackend) CreateNetworkInterfacePermission(
	niID, awsAccountID, awsService, permission string,
) (*NetworkInterfacePermission, error)

CreateNetworkInterfacePermission creates a new permission on a network interface.

func (*InMemoryBackend) CreatePlacementGroup

func (b *InMemoryBackend) CreatePlacementGroup(name, strategy string) (*PlacementGroup, error)

CreatePlacementGroup creates a new placement group.

func (*InMemoryBackend) CreatePublicIpv4Pool

func (b *InMemoryBackend) CreatePublicIpv4Pool(networkBorderGroup string, tags map[string]string) *Ipv4Pool

CreatePublicIpv4Pool creates a new empty public IPv4 address pool.

func (*InMemoryBackend) CreateReplaceRootVolumeTask

func (b *InMemoryBackend) CreateReplaceRootVolumeTask(
	instanceID, snapshotID string,
) (*ReplaceRootVolumeTask, error)

CreateReplaceRootVolumeTask creates a task to replace an instance's root volume.

func (*InMemoryBackend) CreateReservedInstancesListing

func (b *InMemoryBackend) CreateReservedInstancesListing(
	reservedInstancesID string,
	_ int,
) (*ReservedInstancesListing, error)

func (*InMemoryBackend) CreateRestoreImageTask

func (b *InMemoryBackend) CreateRestoreImageTask(bucket, objectKey, name string) (*AMIStub, error)

CreateRestoreImageTask restores an AMI previously stored via CreateStoreImageTask from its S3 bucket/object key, registering a new AMI.

func (*InMemoryBackend) CreateRoute

func (b *InMemoryBackend) CreateRoute(rtID, destCIDR, gatewayID, natGatewayID string) error

CreateRoute adds a route to a route table.

func (*InMemoryBackend) CreateRouteServer

func (b *InMemoryBackend) CreateRouteServer(
	amazonSideAsn int64,
	persistRoutesState string,
	persistRoutesDuration int64,
	snsNotificationsEnabled bool,
) (*RouteServer, error)

CreateRouteServer creates a new route server with the given Amazon-side ASN.

func (*InMemoryBackend) CreateRouteServerEndpoint

func (b *InMemoryBackend) CreateRouteServerEndpoint(routeServerID, subnetID string) (*RouteServerEndpoint, error)

CreateRouteServerEndpoint creates an endpoint for a route server in a subnet.

func (*InMemoryBackend) CreateRouteServerPeer

func (b *InMemoryBackend) CreateRouteServerPeer(
	endpointID, peerAddress string,
	bgpPeerAsn int64,
	livenessDetection string,
) (*RouteServerPeer, error)

CreateRouteServerPeer creates a BGP peer on a route server endpoint.

func (*InMemoryBackend) CreateRouteTable

func (b *InMemoryBackend) CreateRouteTable(vpcID string) (*RouteTable, error)

CreateRouteTable creates a new route table in a VPC.

func (*InMemoryBackend) CreateSecondaryNetwork

func (b *InMemoryBackend) CreateSecondaryNetwork(
	ipv4CidrBlock, networkType string, tags map[string]string,
) (*SecondaryNetwork, error)

CreateSecondaryNetwork creates a new secondary network with the given IPv4 CIDR block and type ("rdma").

func (*InMemoryBackend) CreateSecondarySubnet

func (b *InMemoryBackend) CreateSecondarySubnet(
	ipv4CidrBlock, secondaryNetworkID, availabilityZone, availabilityZoneID string, tags map[string]string,
) (*SecondarySubnet, error)

CreateSecondarySubnet creates a new secondary subnet within a secondary network.

func (*InMemoryBackend) CreateSecurityGroup

func (b *InMemoryBackend) CreateSecurityGroup(
	name, description, vpcID string,
) (*SecurityGroup, error)

CreateSecurityGroup creates a new security group and returns its ID.

func (*InMemoryBackend) CreateSnapshot

func (b *InMemoryBackend) CreateSnapshot(volumeID, description string) (*Snapshot, error)

CreateSnapshot creates an EBS snapshot from a volume.

func (*InMemoryBackend) CreateSnapshots

func (b *InMemoryBackend) CreateSnapshots(
	volumeIDs []string,
	description string,
) ([]*Snapshot, error)

CreateSnapshots creates one snapshot per volumeID in the list.

func (*InMemoryBackend) CreateSpotDatafeedSubscription

func (b *InMemoryBackend) CreateSpotDatafeedSubscription(
	bucket, prefix string,
) (*SpotDatafeed, error)

CreateSpotDatafeedSubscription creates the account-level spot data feed.

func (*InMemoryBackend) CreateStoreImageTask

func (b *InMemoryBackend) CreateStoreImageTask(imageID, bucket string) (*StoreImageTask, error)

CreateStoreImageTask stores an existing AMI's contents in an S3 bucket, returning the generated S3 object key. The task completes synchronously (100% progress) since no real S3 upload pipeline is modelled.

func (*InMemoryBackend) CreateSubnet

func (b *InMemoryBackend) CreateSubnet(vpcID, cidr, az string) (*Subnet, error)

CreateSubnet creates a new subnet in the given VPC.

func (*InMemoryBackend) CreateSubnetCidrReservation

func (b *InMemoryBackend) CreateSubnetCidrReservation(
	subnetID, cidr, reservationType, description string,
) (*SubnetCIDRReservation, error)

CreateSubnetCidrReservation creates a CIDR reservation within a subnet.

func (*InMemoryBackend) CreateTags

func (b *InMemoryBackend) CreateTags(resourceIDs []string, tags map[string]string) error

CreateTags adds or updates tags on one or more resources. Returns ErrInvalidParameter if any resource ID does not exist. All IDs are validated before any tags are written, making the operation atomic with respect to failures: either all resources are tagged or none are.

func (*InMemoryBackend) CreateTrafficMirrorFilter

func (b *InMemoryBackend) CreateTrafficMirrorFilter(description string) (*TrafficMirrorFilter, error)

func (*InMemoryBackend) CreateTrafficMirrorFilterRule

func (b *InMemoryBackend) CreateTrafficMirrorFilterRule(
	filterID, direction, action, srcCIDR, dstCIDR, description string,
	ruleNumber, protocol int,
	ports ...TrafficMirrorPortRangePair,
) (*TrafficMirrorFilterRule, error)

func (*InMemoryBackend) CreateTrafficMirrorSession

func (b *InMemoryBackend) CreateTrafficMirrorSession(
	networkInterfaceID, targetID, filterID, description string,
	sessionNumber int,
	packetLength ...int,
) (*TrafficMirrorSession, error)

func (*InMemoryBackend) CreateTrafficMirrorTarget

func (b *InMemoryBackend) CreateTrafficMirrorTarget(
	networkInterfaceID, networkLoadBalancerArn, description string,
	gatewayLoadBalancerEndpointID ...string,
) (*TrafficMirrorTarget, error)

func (*InMemoryBackend) CreateTransitGateway

func (b *InMemoryBackend) CreateTransitGateway(description string) (*TransitGateway, error)

CreateTransitGateway creates a new transit gateway stub.

func (*InMemoryBackend) CreateTransitGatewayConnect

func (b *InMemoryBackend) CreateTransitGatewayConnect(
	transportAttachmentID, transitGatewayID string,
) (*TransitGatewayConnect, error)

CreateTransitGatewayConnect creates a TGW connect attachment.

func (*InMemoryBackend) CreateTransitGatewayConnectPeer

func (b *InMemoryBackend) CreateTransitGatewayConnectPeer(
	connectAttachmentID, peerAddress string,
	insideCidrBlocks []string,
) (*TransitGatewayConnectPeer, error)

CreateTransitGatewayConnectPeer creates a TGW connect peer.

func (*InMemoryBackend) CreateTransitGatewayMeteringPolicy

func (b *InMemoryBackend) CreateTransitGatewayMeteringPolicy(
	tgwID string,
	middleboxAttachmentIDs []string,
) (*TransitGatewayMeteringPolicy, error)

CreateTransitGatewayMeteringPolicy creates a new metering policy on the given transit gateway.

func (*InMemoryBackend) CreateTransitGatewayMeteringPolicyEntry

func (b *InMemoryBackend) CreateTransitGatewayMeteringPolicyEntry(
	policyID string,
	entry *TransitGatewayMeteringPolicyEntry,
) (*TransitGatewayMeteringPolicyEntry, error)

CreateTransitGatewayMeteringPolicyEntry adds a traffic-matching rule to a metering policy. entry's TransitGatewayMeteringPolicyID, State, and timestamp fields are set by this call; the caller fills in PolicyRuleNumber, MeteredAccount, and the rule-matching fields.

func (*InMemoryBackend) CreateTransitGatewayMulticastDomain

func (b *InMemoryBackend) CreateTransitGatewayMulticastDomain(
	tgwID, autoAcceptSharedAssociations, igmpv2Support, staticSourcesSupport string,
) (*TransitGatewayMulticastDomain, error)

CreateTransitGatewayMulticastDomain creates a new multicast domain on the given transit gateway. Any of the three option strings may be empty, in which case they default to "disable" as AWS does.

func (*InMemoryBackend) CreateTransitGatewayPeeringAttachment

func (b *InMemoryBackend) CreateTransitGatewayPeeringAttachment(
	transitGatewayID, peerTransitGatewayID, _ string,
) (*TransitGatewayPeeringAttachment, error)

CreateTransitGatewayPeeringAttachment creates a TGW peering attachment.

func (*InMemoryBackend) CreateTransitGatewayPolicyTable

func (b *InMemoryBackend) CreateTransitGatewayPolicyTable(
	tgwID string,
) (*TransitGatewayPolicyTable, error)

CreateTransitGatewayPolicyTable creates a new policy table on the given transit gateway.

func (*InMemoryBackend) CreateTransitGatewayPrefixListReference

func (b *InMemoryBackend) CreateTransitGatewayPrefixListReference(
	routeTableID, prefixListID string,
	blackhole bool,
) (*TransitGatewayPrefixListReference, error)

CreateTransitGatewayPrefixListReference creates a TGW prefix list reference.

func (*InMemoryBackend) CreateTransitGatewayRoute

func (b *InMemoryBackend) CreateTransitGatewayRoute(
	routeTableID, destinationCIDR, attachmentID string,
) (*TransitGatewayRoute, error)

CreateTransitGatewayRoute adds a static route to a TGW route table.

func (*InMemoryBackend) CreateTransitGatewayRouteTable

func (b *InMemoryBackend) CreateTransitGatewayRouteTable(
	tgwID string,
) (*TransitGatewayRouteTable, error)

CreateTransitGatewayRouteTable creates a new TGW route table.

func (*InMemoryBackend) CreateTransitGatewayRouteTableAnnouncement

func (b *InMemoryBackend) CreateTransitGatewayRouteTableAnnouncement(
	routeTableID, peeringAttachmentID string,
) (*TransitGatewayRouteTableAnnouncement, error)

CreateTransitGatewayRouteTableAnnouncement announces a TGW route table across a peering attachment.

func (*InMemoryBackend) CreateTransitGatewayVpcAttachment

func (b *InMemoryBackend) CreateTransitGatewayVpcAttachment(
	tgwID, vpcID string, _ []string,
) (*TransitGatewayVpcAttachment, error)

CreateTransitGatewayVpcAttachment creates a new TGW VPC attachment.

func (*InMemoryBackend) CreateVerifiedAccessEndpoint

func (b *InMemoryBackend) CreateVerifiedAccessEndpoint(
	groupID, endpointType, description string,
) (*VerifiedAccessEndpoint, error)

CreateVerifiedAccessEndpoint creates a Verified Access endpoint.

func (*InMemoryBackend) CreateVerifiedAccessGroup

func (b *InMemoryBackend) CreateVerifiedAccessGroup(
	instanceID, description string,
) (*VerifiedAccessGroup, error)

CreateVerifiedAccessGroup creates a Verified Access group.

func (*InMemoryBackend) CreateVerifiedAccessInstance

func (b *InMemoryBackend) CreateVerifiedAccessInstance(description string) (*VerifiedAccessInstance, error)

CreateVerifiedAccessInstance creates a Verified Access instance.

func (*InMemoryBackend) CreateVerifiedAccessTrustProvider

func (b *InMemoryBackend) CreateVerifiedAccessTrustProvider(
	trustProviderType, description string,
) (*VerifiedAccessTrustProvider, error)

CreateVerifiedAccessTrustProvider creates a Verified Access trust provider.

func (*InMemoryBackend) CreateVolume

func (b *InMemoryBackend) CreateVolume(az, volType string, size int) (*Volume, error)

CreateVolume creates a new EBS volume stub.

func (*InMemoryBackend) CreateVpc

func (b *InMemoryBackend) CreateVpc(cidr string) (*VPC, error)

CreateVpc creates a new VPC with the given CIDR block.

func (*InMemoryBackend) CreateVpcBlockPublicAccessExclusion

func (b *InMemoryBackend) CreateVpcBlockPublicAccessExclusion(
	vpcID, subnetID, mode string,
	tags map[string]string,
) (*VpcBlockPublicAccessExclusion, error)

CreateVpcBlockPublicAccessExclusion creates an exclusion for a VPC or subnet from the account's VPC Block Public Access mode.

func (*InMemoryBackend) CreateVpcEncryptionControl

func (b *InMemoryBackend) CreateVpcEncryptionControl(
	vpcID string,
	tags map[string]string,
) (*VpcEncryptionControl, error)

CreateVpcEncryptionControl creates a VPC Encryption Control configuration for a VPC. New configurations start in "monitor" mode with all traffic-type exclusions disabled, matching the AWS default; ModifyVpcEncryptionControl subsequently switches to "enforce" mode or adjusts exclusions. Only one configuration is allowed per VPC.

func (*InMemoryBackend) CreateVpcEndpoint

func (b *InMemoryBackend) CreateVpcEndpoint(
	vpcID, serviceName, endpointType string,
	subnetIDs []string,
) (*VpcEndpoint, error)

CreateVpcEndpoint creates a VPC endpoint.

func (*InMemoryBackend) CreateVpcEndpointConnectionNotification

func (b *InMemoryBackend) CreateVpcEndpointConnectionNotification(
	serviceID, endpointID, notifARN string,
	events []string,
) (*VpcEndpointConnectionNotification, error)

CreateVpcEndpointConnectionNotification creates a notification for endpoint connection events.

func (*InMemoryBackend) CreateVpcEndpointServiceConfiguration

func (b *InMemoryBackend) CreateVpcEndpointServiceConfiguration(
	acceptanceRequired bool, nlbARNs []string,
) (*VpcEndpointServiceConfig, error)

CreateVpcEndpointServiceConfiguration creates a new VPC endpoint service configuration.

func (*InMemoryBackend) CreateVpcEndpointWithRouteTableIDs

func (b *InMemoryBackend) CreateVpcEndpointWithRouteTableIDs(
	vpcID, serviceName, endpointType string,
	subnetIDs, routeTableIDs []string,
) (*VpcEndpoint, error)

CreateVpcEndpointWithRouteTableIDs creates a VPC endpoint with optional route table associations.

func (*InMemoryBackend) CreateVpcPeeringConnection

func (b *InMemoryBackend) CreateVpcPeeringConnection(
	requesterVPCID, accepterVPCID string,
) (*VpcPeeringConnection, error)

CreateVpcPeeringConnection creates a new pending VPC peering connection.

func (*InMemoryBackend) CreateVpnConcentrator

func (b *InMemoryBackend) CreateVpnConcentrator(
	vpnType, transitGatewayID string,
	tags map[string]string,
) (*VpnConcentrator, error)

CreateVpnConcentrator creates a VPN concentrator, optionally attaching it to a transit gateway. If a transit gateway ID is supplied it must reference a real transit gateway; a synthetic attachment ID is generated to represent the resulting transit gateway attachment.

func (*InMemoryBackend) CreateVpnConnection

func (b *InMemoryBackend) CreateVpnConnection(
	connType, customerGatewayID, vpnGatewayID string,
) (*VpnConnection, error)

CreateVpnConnection creates a new VPN connection between a customer gateway and VPN gateway.

func (*InMemoryBackend) CreateVpnConnectionRoute

func (b *InMemoryBackend) CreateVpnConnectionRoute(
	vpnConnectionID, destinationCIDR string,
) (*VpnConnectionRoute, error)

CreateVpnConnectionRoute adds a static route to a VPN connection.

func (*InMemoryBackend) CreateVpnGateway

func (b *InMemoryBackend) CreateVpnGateway(gatewayType string) (*VpnGateway, error)

CreateVpnGateway creates a new virtual private gateway.

func (*InMemoryBackend) DNSRegistrar

func (b *InMemoryBackend) DNSRegistrar() DNSRegistrar

DNSRegistrar returns the configured DNS registrar (may be nil).

func (*InMemoryBackend) DeleteCapacityManagerDataExport

func (b *InMemoryBackend) DeleteCapacityManagerDataExport(id string) (string, error)

DeleteCapacityManagerDataExport removes a Capacity Manager data export configuration, returning its ID.

func (*InMemoryBackend) DeleteCarrierGateway

func (b *InMemoryBackend) DeleteCarrierGateway(id string) error

func (*InMemoryBackend) DeleteClientVpnEndpoint

func (b *InMemoryBackend) DeleteClientVpnEndpoint(id string) error

DeleteClientVpnEndpoint removes a Client VPN endpoint.

func (*InMemoryBackend) DeleteClientVpnRoute

func (b *InMemoryBackend) DeleteClientVpnRoute(endpointID, destinationCidr string) error

DeleteClientVpnRoute removes a route from a Client VPN endpoint.

func (*InMemoryBackend) DeleteCoipCidr

func (b *InMemoryBackend) DeleteCoipCidr(poolID, cidr string) (*CoipCidr, error)

DeleteCoipCidr removes a customer-owned IP address range from a CoIP pool.

func (*InMemoryBackend) DeleteCoipPool

func (b *InMemoryBackend) DeleteCoipPool(poolID string) (*CoipPool, error)

DeleteCoipPool removes a CoIP pool and all of its address ranges.

func (*InMemoryBackend) DeleteCustomerGateway

func (b *InMemoryBackend) DeleteCustomerGateway(id string) error

DeleteCustomerGateway removes a customer gateway.

func (*InMemoryBackend) DeleteDhcpOptions

func (b *InMemoryBackend) DeleteDhcpOptions(id string) error

DeleteDhcpOptions removes a DHCP options set.

func (*InMemoryBackend) DeleteEgressOnlyInternetGateway

func (b *InMemoryBackend) DeleteEgressOnlyInternetGateway(id string) error

DeleteEgressOnlyInternetGateway removes an egress-only internet gateway.

func (*InMemoryBackend) DeleteFleets

func (b *InMemoryBackend) DeleteFleets(ids []string) []string

func (*InMemoryBackend) DeleteFlowLogs

func (b *InMemoryBackend) DeleteFlowLogs(ids []string) error

DeleteFlowLogs removes flow logs by ID.

func (*InMemoryBackend) DeleteFpgaImage

func (b *InMemoryBackend) DeleteFpgaImage(id string) error

DeleteFpgaImage removes an FPGA image (AFI).

func (*InMemoryBackend) DeleteImageUsageReport

func (b *InMemoryBackend) DeleteImageUsageReport(reportID string) error

DeleteImageUsageReport removes a usage report and its entries.

func (*InMemoryBackend) DeleteInstanceConnectEndpoint

func (b *InMemoryBackend) DeleteInstanceConnectEndpoint(id string) error

DeleteInstanceConnectEndpoint removes an Instance Connect Endpoint.

func (*InMemoryBackend) DeleteInstanceEventWindow

func (b *InMemoryBackend) DeleteInstanceEventWindow(id string) error

DeleteInstanceEventWindow removes an event window.

func (*InMemoryBackend) DeleteInternetGateway

func (b *InMemoryBackend) DeleteInternetGateway(id string) error

DeleteInternetGateway removes an Internet Gateway.

func (*InMemoryBackend) DeleteIpam

func (b *InMemoryBackend) DeleteIpam(id string) error

DeleteIpam removes an IPAM instance and its default scopes/resource discovery.

func (*InMemoryBackend) DeleteIpamExternalResourceVerificationToken

func (b *InMemoryBackend) DeleteIpamExternalResourceVerificationToken(
	id string,
) (*IpamExternalResourceVerificationToken, error)

DeleteIpamExternalResourceVerificationToken removes a verification token.

func (*InMemoryBackend) DeleteIpamPolicy

func (b *InMemoryBackend) DeleteIpamPolicy(id string) (*IpamPolicy, error)

DeleteIpamPolicy removes an IPAM policy and clears any enablement referencing it.

func (*InMemoryBackend) DeleteIpamPool

func (b *InMemoryBackend) DeleteIpamPool(id string) error

DeleteIpamPool removes an IPAM pool and its provisioned CIDRs.

func (*InMemoryBackend) DeleteIpamPrefixListResolver

func (b *InMemoryBackend) DeleteIpamPrefixListResolver(id string) (*IpamPrefixListResolver, error)

DeleteIpamPrefixListResolver removes a prefix list resolver and its version history.

func (*InMemoryBackend) DeleteIpamPrefixListResolverTarget

func (b *InMemoryBackend) DeleteIpamPrefixListResolverTarget(id string) (*IpamPrefixListResolverTarget, error)

DeleteIpamPrefixListResolverTarget removes a resolver target.

func (*InMemoryBackend) DeleteIpamResourceDiscovery

func (b *InMemoryBackend) DeleteIpamResourceDiscovery(id string) (*IpamResourceDiscovery, error)

DeleteIpamResourceDiscovery removes a non-default IPAM resource discovery. Default resource discoveries (auto-created by CreateIpam) and discoveries still associated with an IPAM cannot be deleted.

func (*InMemoryBackend) DeleteIpamScope

func (b *InMemoryBackend) DeleteIpamScope(id string) error

DeleteIpamScope removes a non-default IPAM scope. Default scopes cannot be deleted.

func (*InMemoryBackend) DeleteKeyPair

func (b *InMemoryBackend) DeleteKeyPair(name string) error

DeleteKeyPair removes a key pair by name.

func (*InMemoryBackend) DeleteLaunchTemplate

func (b *InMemoryBackend) DeleteLaunchTemplate(id string) error

DeleteLaunchTemplate removes a launch template by ID.

func (*InMemoryBackend) DeleteLaunchTemplateVersions

func (b *InMemoryBackend) DeleteLaunchTemplateVersions(
	id string,
	versions []int64,
) ([]int64, error)

DeleteLaunchTemplateVersions removes specific versions from a launch template. It returns the list of successfully deleted version numbers.

func (*InMemoryBackend) DeleteLocalGatewayRoute

func (b *InMemoryBackend) DeleteLocalGatewayRoute(
	routeTableID, destinationCIDR, destinationPrefixListID string,
) (*LocalGatewayRoute, error)

DeleteLocalGatewayRoute removes a route from a local gateway route table.

func (*InMemoryBackend) DeleteLocalGatewayRouteTable

func (b *InMemoryBackend) DeleteLocalGatewayRouteTable(id string) error

DeleteLocalGatewayRouteTable removes a local gateway route table.

func (*InMemoryBackend) DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation

func (b *InMemoryBackend) DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation(
	id string,
) (*LocalGatewayRouteTableVirtualInterfaceGroupAssociation, error)

DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation removes a virtual interface group association from a local gateway route table.

func (*InMemoryBackend) DeleteLocalGatewayRouteTableVpcAssociation

func (b *InMemoryBackend) DeleteLocalGatewayRouteTableVpcAssociation(
	id string,
) (*LocalGatewayRouteTableVpcAssociation, error)

DeleteLocalGatewayRouteTableVpcAssociation removes a VPC association from a local gateway route table.

func (*InMemoryBackend) DeleteLocalGatewayVirtualInterface

func (b *InMemoryBackend) DeleteLocalGatewayVirtualInterface(
	id string,
) (*LocalGatewayVirtualInterface, error)

DeleteLocalGatewayVirtualInterface removes a virtual interface, also removing its ID from its group's LocalGatewayVirtualInterfaceIDs.

func (*InMemoryBackend) DeleteLocalGatewayVirtualInterfaceGroup

func (b *InMemoryBackend) DeleteLocalGatewayVirtualInterfaceGroup(
	id string,
) (*LocalGatewayVirtualInterfaceGroup, error)

DeleteLocalGatewayVirtualInterfaceGroup removes a virtual interface group. It fails if any virtual interfaces still reference the group, matching AWS's dependency check.

func (*InMemoryBackend) DeleteManagedPrefixList

func (b *InMemoryBackend) DeleteManagedPrefixList(id string) error

DeleteManagedPrefixList removes a managed prefix list.

func (*InMemoryBackend) DeleteNatGateway

func (b *InMemoryBackend) DeleteNatGateway(id string) error

DeleteNatGateway removes a NAT Gateway and recycles its private IP.

func (*InMemoryBackend) DeleteNetworkACL

func (b *InMemoryBackend) DeleteNetworkACL(id string) error

DeleteNetworkACL removes a non-default network ACL.

func (*InMemoryBackend) DeleteNetworkACLEntry

func (b *InMemoryBackend) DeleteNetworkACLEntry(aclID string, ruleNumber int, egress bool) error

DeleteNetworkACLEntry removes a rule from a network ACL.

func (*InMemoryBackend) DeleteNetworkInsightsAccessScope

func (b *InMemoryBackend) DeleteNetworkInsightsAccessScope(id string) error

func (*InMemoryBackend) DeleteNetworkInsightsAccessScopeAnalysis

func (b *InMemoryBackend) DeleteNetworkInsightsAccessScopeAnalysis(id string) error

func (*InMemoryBackend) DeleteNetworkInsightsAnalysis

func (b *InMemoryBackend) DeleteNetworkInsightsAnalysis(id string) error

func (*InMemoryBackend) DeleteNetworkInsightsPath

func (b *InMemoryBackend) DeleteNetworkInsightsPath(id string) error

func (*InMemoryBackend) DeleteNetworkInterface

func (b *InMemoryBackend) DeleteNetworkInterface(id string) error

DeleteNetworkInterface removes a network interface by ID. Returns ErrNetworkInterfaceInUse if the ENI is currently attached.

func (*InMemoryBackend) DeleteNetworkInterfacePermission

func (b *InMemoryBackend) DeleteNetworkInterfacePermission(permissionID string) error

DeleteNetworkInterfacePermission removes a network interface permission.

func (*InMemoryBackend) DeletePlacementGroup

func (b *InMemoryBackend) DeletePlacementGroup(name string) error

DeletePlacementGroup removes a placement group by name.

func (*InMemoryBackend) DeletePublicIpv4Pool

func (b *InMemoryBackend) DeletePublicIpv4Pool(poolID string) error

DeletePublicIpv4Pool deletes a public IPv4 address pool.

func (*InMemoryBackend) DeleteQueuedReservedInstances

func (b *InMemoryBackend) DeleteQueuedReservedInstances(ids []string)

func (*InMemoryBackend) DeleteRoute

func (b *InMemoryBackend) DeleteRoute(rtID, destCIDR string) error

DeleteRoute removes a route from a route table by destination CIDR.

func (*InMemoryBackend) DeleteRouteServer

func (b *InMemoryBackend) DeleteRouteServer(id string) (*RouteServer, error)

DeleteRouteServer deletes a route server by ID.

func (*InMemoryBackend) DeleteRouteServerEndpoint

func (b *InMemoryBackend) DeleteRouteServerEndpoint(id string) (*RouteServerEndpoint, error)

DeleteRouteServerEndpoint deletes a route server endpoint by ID.

func (*InMemoryBackend) DeleteRouteServerPeer

func (b *InMemoryBackend) DeleteRouteServerPeer(id string) (*RouteServerPeer, error)

DeleteRouteServerPeer deletes a route server peer by ID.

func (*InMemoryBackend) DeleteRouteTable

func (b *InMemoryBackend) DeleteRouteTable(id string) error

DeleteRouteTable removes a route table.

func (*InMemoryBackend) DeleteSecondaryNetwork

func (b *InMemoryBackend) DeleteSecondaryNetwork(id string) (*SecondaryNetwork, error)

DeleteSecondaryNetwork deletes a secondary network. Fails with ErrSecondaryNetworkHasSubnets if any secondary subnets still reference it.

func (*InMemoryBackend) DeleteSecondarySubnet

func (b *InMemoryBackend) DeleteSecondarySubnet(id string) (*SecondarySubnet, error)

DeleteSecondarySubnet deletes a secondary subnet.

func (*InMemoryBackend) DeleteSecurityGroup

func (b *InMemoryBackend) DeleteSecurityGroup(id string) error

DeleteSecurityGroup removes a security group by ID.

func (*InMemoryBackend) DeleteSnapshot

func (b *InMemoryBackend) DeleteSnapshot(id string) error

DeleteSnapshot removes a snapshot.

func (*InMemoryBackend) DeleteSpotDatafeedSubscription

func (b *InMemoryBackend) DeleteSpotDatafeedSubscription()

DeleteSpotDatafeedSubscription removes the spot data feed.

func (*InMemoryBackend) DeleteSubnet

func (b *InMemoryBackend) DeleteSubnet(id string) error

DeleteSubnet removes a subnet by ID, cascade-deleting any instances, NAT gateways, and network interfaces in that subnet along with their tags.

func (*InMemoryBackend) DeleteSubnetCidrReservation

func (b *InMemoryBackend) DeleteSubnetCidrReservation(reservationID string) error

DeleteSubnetCidrReservation removes a subnet CIDR reservation.

func (*InMemoryBackend) DeleteTags

func (b *InMemoryBackend) DeleteTags(resourceIDs []string, keys []string) error

DeleteTags removes the specified tag keys from one or more resources. If keys is empty, the operation is a no-op (EC2 requires at least one tag key). Empty per-resource tag maps are removed after deletions.

func (*InMemoryBackend) DeleteTrafficMirrorFilter

func (b *InMemoryBackend) DeleteTrafficMirrorFilter(id string) error

func (*InMemoryBackend) DeleteTrafficMirrorFilterRule

func (b *InMemoryBackend) DeleteTrafficMirrorFilterRule(id string) error

func (*InMemoryBackend) DeleteTrafficMirrorSession

func (b *InMemoryBackend) DeleteTrafficMirrorSession(id string) error

func (*InMemoryBackend) DeleteTrafficMirrorTarget

func (b *InMemoryBackend) DeleteTrafficMirrorTarget(id string) error

func (*InMemoryBackend) DeleteTransitGateway

func (b *InMemoryBackend) DeleteTransitGateway(id string) error

DeleteTransitGateway removes a transit gateway stub.

func (*InMemoryBackend) DeleteTransitGatewayConnect

func (b *InMemoryBackend) DeleteTransitGatewayConnect(id string) error

DeleteTransitGatewayConnect removes a TGW connect attachment.

func (*InMemoryBackend) DeleteTransitGatewayConnectPeer

func (b *InMemoryBackend) DeleteTransitGatewayConnectPeer(id string) error

DeleteTransitGatewayConnectPeer removes a TGW connect peer.

func (*InMemoryBackend) DeleteTransitGatewayMeteringPolicy

func (b *InMemoryBackend) DeleteTransitGatewayMeteringPolicy(id string) error

DeleteTransitGatewayMeteringPolicy removes a metering policy along with any entries defined within it.

func (*InMemoryBackend) DeleteTransitGatewayMeteringPolicyEntry

func (b *InMemoryBackend) DeleteTransitGatewayMeteringPolicyEntry(
	policyID string,
	ruleNumber int,
) (*TransitGatewayMeteringPolicyEntry, error)

DeleteTransitGatewayMeteringPolicyEntry removes a single rule from a metering policy.

func (*InMemoryBackend) DeleteTransitGatewayMulticastDomain

func (b *InMemoryBackend) DeleteTransitGatewayMulticastDomain(id string) error

DeleteTransitGatewayMulticastDomain removes a multicast domain along with any subnet associations and multicast group registrations tied to it.

func (*InMemoryBackend) DeleteTransitGatewayPeeringAttachment

func (b *InMemoryBackend) DeleteTransitGatewayPeeringAttachment(id string) error

DeleteTransitGatewayPeeringAttachment removes a TGW peering attachment.

func (*InMemoryBackend) DeleteTransitGatewayPolicyTable

func (b *InMemoryBackend) DeleteTransitGatewayPolicyTable(id string) error

DeleteTransitGatewayPolicyTable removes a policy table along with any attachment associations tied to it.

func (*InMemoryBackend) DeleteTransitGatewayPrefixListReference

func (b *InMemoryBackend) DeleteTransitGatewayPrefixListReference(
	routeTableID, prefixListID string,
) error

DeleteTransitGatewayPrefixListReference removes a TGW prefix list reference.

func (*InMemoryBackend) DeleteTransitGatewayRoute

func (b *InMemoryBackend) DeleteTransitGatewayRoute(routeTableID, destinationCIDR string) error

DeleteTransitGatewayRoute removes a static route from a TGW route table.

func (*InMemoryBackend) DeleteTransitGatewayRouteTable

func (b *InMemoryBackend) DeleteTransitGatewayRouteTable(id string) error

DeleteTransitGatewayRouteTable removes a TGW route table.

func (*InMemoryBackend) DeleteTransitGatewayRouteTableAnnouncement

func (b *InMemoryBackend) DeleteTransitGatewayRouteTableAnnouncement(id string) error

DeleteTransitGatewayRouteTableAnnouncement removes a route table announcement.

func (*InMemoryBackend) DeleteTransitGatewayVpcAttachment

func (b *InMemoryBackend) DeleteTransitGatewayVpcAttachment(id string) error

DeleteTransitGatewayVpcAttachment removes a TGW VPC attachment.

func (*InMemoryBackend) DeleteVerifiedAccessEndpoint

func (b *InMemoryBackend) DeleteVerifiedAccessEndpoint(id string) error

DeleteVerifiedAccessEndpoint removes a Verified Access endpoint.

func (*InMemoryBackend) DeleteVerifiedAccessGroup

func (b *InMemoryBackend) DeleteVerifiedAccessGroup(id string) error

DeleteVerifiedAccessGroup removes a Verified Access group.

func (*InMemoryBackend) DeleteVerifiedAccessInstance

func (b *InMemoryBackend) DeleteVerifiedAccessInstance(id string) error

DeleteVerifiedAccessInstance removes a Verified Access instance.

func (*InMemoryBackend) DeleteVerifiedAccessTrustProvider

func (b *InMemoryBackend) DeleteVerifiedAccessTrustProvider(id string) error

DeleteVerifiedAccessTrustProvider removes a Verified Access trust provider.

func (*InMemoryBackend) DeleteVolume

func (b *InMemoryBackend) DeleteVolume(id string) error

DeleteVolume removes a volume by ID.

func (*InMemoryBackend) DeleteVpc

func (b *InMemoryBackend) DeleteVpc(id string) error

DeleteVpc removes a VPC by ID, cascade-deleting all dependent resources (instances, internet gateways, NAT gateways, route tables, security groups, network interfaces, and subnets) along with their tags. Uses secondary indexes for instances, subnets, route tables, and security groups to avoid O(n_all) scans for each resource type.

func (*InMemoryBackend) DeleteVpcBlockPublicAccessExclusion

func (b *InMemoryBackend) DeleteVpcBlockPublicAccessExclusion(
	exclusionID string,
) (*VpcBlockPublicAccessExclusion, error)

DeleteVpcBlockPublicAccessExclusion removes an exclusion.

func (*InMemoryBackend) DeleteVpcEncryptionControl

func (b *InMemoryBackend) DeleteVpcEncryptionControl(id string) (*VpcEncryptionControl, error)

DeleteVpcEncryptionControl removes a VPC Encryption Control configuration.

func (*InMemoryBackend) DeleteVpcEndpointConnectionNotifications

func (b *InMemoryBackend) DeleteVpcEndpointConnectionNotifications(ids []string) error

DeleteVpcEndpointConnectionNotifications removes notifications by ID.

func (*InMemoryBackend) DeleteVpcEndpointServiceConfigurations

func (b *InMemoryBackend) DeleteVpcEndpointServiceConfigurations(ids []string) error

DeleteVpcEndpointServiceConfigurations removes VPC endpoint service configurations by IDs.

func (*InMemoryBackend) DeleteVpcEndpoints

func (b *InMemoryBackend) DeleteVpcEndpoints(ids []string) ([]string, error)

DeleteVpcEndpoints deletes one or more VPC endpoints.

func (*InMemoryBackend) DeleteVpcPeeringConnection

func (b *InMemoryBackend) DeleteVpcPeeringConnection(id string) error

DeleteVpcPeeringConnection removes a VPC peering connection.

func (*InMemoryBackend) DeleteVpnConcentrator

func (b *InMemoryBackend) DeleteVpnConcentrator(id string) (*VpnConcentrator, error)

DeleteVpnConcentrator removes a VPN concentrator.

func (*InMemoryBackend) DeleteVpnConnection

func (b *InMemoryBackend) DeleteVpnConnection(id string) error

DeleteVpnConnection removes a VPN connection along with any static routes registered against it.

func (*InMemoryBackend) DeleteVpnConnectionRoute

func (b *InMemoryBackend) DeleteVpnConnectionRoute(vpnConnectionID, destinationCIDR string) error

DeleteVpnConnectionRoute removes a static route from a VPN connection.

func (*InMemoryBackend) DeleteVpnGateway

func (b *InMemoryBackend) DeleteVpnGateway(id string) error

DeleteVpnGateway removes a VPN gateway.

func (*InMemoryBackend) DeprovisionByoipCidr

func (b *InMemoryBackend) DeprovisionByoipCidr(cidr string) (*ByoipCidr, error)

func (*InMemoryBackend) DeprovisionIpamByoasn

func (b *InMemoryBackend) DeprovisionIpamByoasn(ipamID, asn string) (*IpamByoasn, error)

DeprovisionIpamByoasn releases a previously-provisioned BYOASN.

func (*InMemoryBackend) DeprovisionIpamPoolCidr

func (b *InMemoryBackend) DeprovisionIpamPoolCidr(poolID, cidr string) (*IpamPoolCidr, error)

DeprovisionIpamPoolCidr removes a previously provisioned CIDR range from an IPAM pool.

func (*InMemoryBackend) DeprovisionPublicIpv4PoolCidr

func (b *InMemoryBackend) DeprovisionPublicIpv4PoolCidr(poolID, cidr string) error

DeprovisionPublicIpv4PoolCidr removes a previously-provisioned CIDR range (identified by its first address) from a public IPv4 pool.

func (*InMemoryBackend) DeregisterImage

func (b *InMemoryBackend) DeregisterImage(imageID string) error

DeregisterImage removes an AMI from the image store.

func (*InMemoryBackend) DeregisterInstanceEventNotificationAttributes

func (b *InMemoryBackend) DeregisterInstanceEventNotificationAttributes()

DeregisterInstanceEventNotificationAttributes clears event notification attributes.

func (*InMemoryBackend) DeregisterTransitGatewayMulticastGroupMembers

func (b *InMemoryBackend) DeregisterTransitGatewayMulticastGroupMembers(
	domainID, groupIP string,
	eniIDs []string,
) (*TransitGatewayMulticastGroupMembership, error)

DeregisterTransitGatewayMulticastGroupMembers removes network interfaces as members of a transit gateway multicast group.

func (*InMemoryBackend) DeregisterTransitGatewayMulticastGroupSources

func (b *InMemoryBackend) DeregisterTransitGatewayMulticastGroupSources(
	domainID, groupIP string,
	eniIDs []string,
) (*TransitGatewayMulticastGroupMembership, error)

DeregisterTransitGatewayMulticastGroupSources removes network interfaces as sources of a transit gateway multicast group.

func (*InMemoryBackend) DescribeAccountAttributes

func (b *InMemoryBackend) DescribeAccountAttributes(names []string) []AccountAttribute

DescribeAccountAttributes returns fixed account attributes.

func (*InMemoryBackend) DescribeAddressTransfers

func (b *InMemoryBackend) DescribeAddressTransfers(allocationIDs []string) []*AddressTransfer

DescribeAddressTransfers returns address transfers, optionally filtered by allocation ID.

func (*InMemoryBackend) DescribeAddresses

func (b *InMemoryBackend) DescribeAddresses(allocationIDs []string) []*Address

DescribeAddresses returns Elastic IPs, optionally filtered by allocation IDs. When allocationIDs are provided, lookups are O(len(allocationIDs)) via the address map rather than scanning every address in the backend.

func (*InMemoryBackend) DescribeAddressesAttribute

func (b *InMemoryBackend) DescribeAddressesAttribute(allocationIDs []string) []AddressAttribute

DescribeAddressesAttribute returns domain-name attributes for Elastic IPs.

func (*InMemoryBackend) DescribeAggregateIDFormat

func (b *InMemoryBackend) DescribeAggregateIDFormat() []IDFormatItem

DescribeAggregateIDFormat returns ID format settings for all resource types.

func (*InMemoryBackend) DescribeAvailabilityZones

func (b *InMemoryBackend) DescribeAvailabilityZones(region string) []string

DescribeAvailabilityZones returns AZs for a region.

func (*InMemoryBackend) DescribeAwsNetworkPerformanceMetricSubscriptions

func (b *InMemoryBackend) DescribeAwsNetworkPerformanceMetricSubscriptions() []*NetworkPerformanceSubscription

DescribeAwsNetworkPerformanceMetricSubscriptions returns all enabled metric subscriptions.

func (*InMemoryBackend) DescribeBundleTasks

func (b *InMemoryBackend) DescribeBundleTasks(ids []string) []*BundleTask

DescribeBundleTasks returns bundle tasks, optionally filtered by ID. Non-terminal tasks settle to their terminal state as a side effect of being described, mirroring how bundle tasks in AWS complete asynchronously in the background.

func (*InMemoryBackend) DescribeByoipCidrs

func (b *InMemoryBackend) DescribeByoipCidrs(state string) []*ByoipCidr

DescribeByoipCidrs returns BYOIP CIDRs sorted by CIDR string. If state is non-empty, only CIDRs in that state are returned.

func (*InMemoryBackend) DescribeCapacityBlockExtensionHistory

func (b *InMemoryBackend) DescribeCapacityBlockExtensionHistory(
	reservationIDs []string,
	filters map[string][]string,
) []*CapacityBlockExtension

DescribeCapacityBlockExtensionHistory returns purchased Capacity Block extensions for the given Capacity Reservation IDs (all, if empty), filtered by capacity-reservation-id, availability-zone, and capacity-block-extension-status.

func (*InMemoryBackend) DescribeCapacityBlockExtensionOfferings

func (b *InMemoryBackend) DescribeCapacityBlockExtensionOfferings(
	reservationID string,
	durationHours int32,
) ([]*CapacityBlockExtensionOffering, error)

DescribeCapacityBlockExtensionOfferings generates a purchasable extension offering for the given Capacity Reservation, starting at the Capacity Block's current end date.

func (*InMemoryBackend) DescribeCapacityBlockOfferings

func (b *InMemoryBackend) DescribeCapacityBlockOfferings(
	instanceType string,
	durationHours, instanceCount int32,
) ([]*CapacityBlockOffering, error)

DescribeCapacityBlockOfferings generates a static, realistic catalog of purchasable Capacity Block offerings for the requested instance type and duration across the region's "a" and "b" Availability Zones, caching each generated offering so a subsequent PurchaseCapacityBlock call can reference it.

func (*InMemoryBackend) DescribeCapacityBlockStatus

func (b *InMemoryBackend) DescribeCapacityBlockStatus(
	ids []string,
	filters map[string][]string,
) []*CapacityBlockStatus

DescribeCapacityBlockStatus returns the capacity/interconnect availability of the given Capacity Blocks (all, if ids is empty), filtered by interconnect-status.

func (*InMemoryBackend) DescribeCapacityBlocks

func (b *InMemoryBackend) DescribeCapacityBlocks(
	ids []string,
	filters map[string][]string,
) []*CapacityBlock

DescribeCapacityBlocks returns Capacity Blocks matching the given IDs (all, if empty) and filters (capacity-block-id, availability-zone, state), sorted by ID.

func (*InMemoryBackend) DescribeCapacityManagerDataExports

func (b *InMemoryBackend) DescribeCapacityManagerDataExports(
	ids []string,
) []*CapacityManagerDataExport

DescribeCapacityManagerDataExports returns Capacity Manager data export configurations matching the given IDs (all, if empty).

func (*InMemoryBackend) DescribeCapacityReservationBillingRequests

func (b *InMemoryBackend) DescribeCapacityReservationBillingRequests(
	ids []string,
	filters map[string][]string,
) []*CapacityReservationBillingRequest

DescribeCapacityReservationBillingRequests returns billing ownership requests matching the given Capacity Reservation IDs (all, if empty) and filters (status).

func (*InMemoryBackend) DescribeCapacityReservationFleets

func (b *InMemoryBackend) DescribeCapacityReservationFleets(
	ids []string,
	filters map[string][]string,
) []*CapacityReservationFleet

DescribeCapacityReservationFleets returns Capacity Reservation Fleets matching the given IDs (all, if empty) and filters (state, tenancy, allocation-strategy, instance-match-criteria), sorted by ID.

func (*InMemoryBackend) DescribeCapacityReservationTopology

func (b *InMemoryBackend) DescribeCapacityReservationTopology(ids []string) []*CapacityReservationTopologyEntry

DescribeCapacityReservationTopology returns per-reservation topology rows derived from the existing Capacity Reservation state.

func (*InMemoryBackend) DescribeCapacityReservations

func (b *InMemoryBackend) DescribeCapacityReservations(ids []string) []*CapacityReservation

DescribeCapacityReservations returns capacity reservations sorted by ID. If ids is non-empty, only reservations matching those IDs are returned.

func (*InMemoryBackend) DescribeCarrierGateways

func (b *InMemoryBackend) DescribeCarrierGateways(ids []string) []*CarrierGateway

func (*InMemoryBackend) DescribeClassicLinkInstances

func (b *InMemoryBackend) DescribeClassicLinkInstances(instanceIDs []string) []*ClassicLinkInstance

DescribeClassicLinkInstances returns linked ClassicLink instances, optionally filtered by instance ID.

func (*InMemoryBackend) DescribeClientVpnAuthorizationRules

func (b *InMemoryBackend) DescribeClientVpnAuthorizationRules(
	endpointID string,
) ([]ClientVpnAuthRule, error)

DescribeClientVpnAuthorizationRules returns authorization rules for a Client VPN endpoint.

func (*InMemoryBackend) DescribeClientVpnConnections

func (b *InMemoryBackend) DescribeClientVpnConnections(endpointID string) ([]string, error)

DescribeClientVpnConnections returns client VPN connections (empty list in mock).

func (*InMemoryBackend) DescribeClientVpnEndpoints

func (b *InMemoryBackend) DescribeClientVpnEndpoints(ids []string) []*ClientVpnEndpoint

DescribeClientVpnEndpoints returns Client VPN endpoints, optionally filtered by IDs.

func (*InMemoryBackend) DescribeClientVpnRoutes

func (b *InMemoryBackend) DescribeClientVpnRoutes(endpointID string) ([]ClientVpnRoute, error)

DescribeClientVpnRoutes returns routes for a Client VPN endpoint.

func (*InMemoryBackend) DescribeClientVpnTargetNetworks

func (b *InMemoryBackend) DescribeClientVpnTargetNetworks(endpointID string) ([]*ClientVpnTargetNetwork, error)

DescribeClientVpnTargetNetworks returns associated target networks for an endpoint.

func (*InMemoryBackend) DescribeCoipPools

func (b *InMemoryBackend) DescribeCoipPools(ids []string) []*CoipPool

DescribeCoipPools returns CoIP pools, optionally filtered by pool ID.

func (*InMemoryBackend) DescribeConversionTasks

func (b *InMemoryBackend) DescribeConversionTasks(ids []string) []*ConversionTask

DescribeConversionTasks returns conversion tasks, optionally filtered by ID. Active tasks settle to "completed" (or cancelling tasks to "cancelled") as a side effect of being described.

func (*InMemoryBackend) DescribeCustomerGateways

func (b *InMemoryBackend) DescribeCustomerGateways(ids []string) []*CustomerGateway

DescribeCustomerGateways returns customer gateways, optionally filtered by IDs.

func (*InMemoryBackend) DescribeDeclarativePoliciesReports

func (b *InMemoryBackend) DescribeDeclarativePoliciesReports(ids []string) []*DeclarativePoliciesReport

DescribeDeclarativePoliciesReports returns Declarative Policies reports, optionally filtered by report ID. Running reports settle to "complete" as a side effect of being described.

func (*InMemoryBackend) DescribeDhcpOptions

func (b *InMemoryBackend) DescribeDhcpOptions(ids []string) []*DhcpOptions

DescribeDhcpOptions returns DHCP option sets, optionally filtered by IDs.

func (*InMemoryBackend) DescribeEgressOnlyInternetGateways

func (b *InMemoryBackend) DescribeEgressOnlyInternetGateways(
	ids []string,
) []*EgressOnlyInternetGateway

DescribeEgressOnlyInternetGateways returns egress-only internet gateways, optionally filtered by IDs.

func (*InMemoryBackend) DescribeElasticGpus

func (b *InMemoryBackend) DescribeElasticGpus(_ []string) []*ElasticGpuStub

DescribeElasticGpus returns Elastic Graphics accelerators. No API in this backend attaches Elastic Graphics accelerators to instances (AWS retired the feature in 2023), so this always returns an empty, correctly shaped list — the same "no API populates this" precedent already established for ClientVpnConnection elsewhere in this package.

func (*InMemoryBackend) DescribeExportImageTasks

func (b *InMemoryBackend) DescribeExportImageTasks(ids []string) []*ExportImageTaskRec

DescribeExportImageTasks returns AMI export tasks, optionally filtered by ID. Active tasks settle to "completed" as a side effect of being described.

func (*InMemoryBackend) DescribeExportTasks

func (b *InMemoryBackend) DescribeExportTasks(ids []string) []*ExportTask

DescribeExportTasks returns instance export tasks, optionally filtered by ID. Active tasks settle to "completed" (or cancelling tasks to "cancelled") as a side effect of being described.

func (*InMemoryBackend) DescribeFastLaunchImages

func (b *InMemoryBackend) DescribeFastLaunchImages(imageIDs []string) []FastLaunchImageItem

DescribeFastLaunchImages returns AMIs with fast launch enabled.

func (*InMemoryBackend) DescribeFastSnapshotRestores

func (b *InMemoryBackend) DescribeFastSnapshotRestores() []FastSnapshotRestoreItem

DescribeFastSnapshotRestores returns fast snapshot restore enabled items.

func (*InMemoryBackend) DescribeFleets

func (b *InMemoryBackend) DescribeFleets(ids []string) []*Fleet

func (*InMemoryBackend) DescribeFlowLogs

func (b *InMemoryBackend) DescribeFlowLogs(ids []string) []*FlowLog

DescribeFlowLogs returns flow logs, optionally filtered by IDs.

func (*InMemoryBackend) DescribeFpgaImageAttribute

func (b *InMemoryBackend) DescribeFpgaImageAttribute(id, attribute string) (*FpgaImageAttribute, error)

DescribeFpgaImageAttribute returns a single named attribute of an FPGA image: "description", "name", "loadPermission", or "productCodes".

func (*InMemoryBackend) DescribeFpgaImages

func (b *InMemoryBackend) DescribeFpgaImages(ids []string) []*FpgaImage

DescribeFpgaImages returns FPGA images, optionally filtered by AFI ID.

func (*InMemoryBackend) DescribeHostReservationOfferings

func (b *InMemoryBackend) DescribeHostReservationOfferings(
	offeringID string,
	minDuration, maxDuration int32,
) []HostOffering

DescribeHostReservationOfferings returns the static catalog of purchasable Dedicated Host Reservation offerings, optionally filtered by offering ID and/or min/max duration in seconds. The catalog is static (no Create/Delete API), so this method needs no lock.

func (*InMemoryBackend) DescribeHostReservations

func (b *InMemoryBackend) DescribeHostReservations(ids []string) []*HostReservation

DescribeHostReservations returns purchased Dedicated Host Reservations, optionally filtered by reservation ID.

func (*InMemoryBackend) DescribeHosts

func (b *InMemoryBackend) DescribeHosts(ids []string) []*Host

DescribeHosts returns dedicated hosts sorted by host ID. If ids is non-empty, only hosts matching those IDs are returned.

func (*InMemoryBackend) DescribeIDFormat

func (b *InMemoryBackend) DescribeIDFormat(resources []string) []IDFormatItem

DescribeIDFormat returns ID format settings for the account.

func (*InMemoryBackend) DescribeIamInstanceProfileAssociations

func (b *InMemoryBackend) DescribeIamInstanceProfileAssociations(
	associationIDs []string,
	instanceID string,
) []*IamInstanceProfileAssociation

DescribeIamInstanceProfileAssociations returns IAM instance profile associations, optionally filtered by IDs or instance ID.

func (*InMemoryBackend) DescribeIdentityIDFormat

func (b *InMemoryBackend) DescribeIdentityIDFormat(
	_ string,
	resources []string,
) []IDFormatItem

DescribeIdentityIDFormat returns ID format settings for a given principal (same as account-level here).

func (*InMemoryBackend) DescribeImageReferences

func (b *InMemoryBackend) DescribeImageReferences(imageIDs []string) []*ImageReferenceEntry

DescribeImageReferences scans existing instance and launch template state for resources referencing the given AMIs.

func (*InMemoryBackend) DescribeImageUsageReportEntries

func (b *InMemoryBackend) DescribeImageUsageReportEntries(reportIDs, imageIDs []string) []*UsageReportEntry

DescribeImageUsageReportEntries returns usage report entries, optionally filtered by report ID and/or image ID.

func (*InMemoryBackend) DescribeImageUsageReports

func (b *InMemoryBackend) DescribeImageUsageReports() []*ImageUsageReport

DescribeImageUsageReports returns synthetic image usage reports.

func (*InMemoryBackend) DescribeImages

func (b *InMemoryBackend) DescribeImages() []AMIStub

DescribeImages returns stub AMIs.

func (*InMemoryBackend) DescribeImportImageTasks

func (b *InMemoryBackend) DescribeImportImageTasks(taskIDs []string) []*ImageImportTask

DescribeImportImageTasks returns import image tasks.

func (*InMemoryBackend) DescribeImportSnapshotTasks

func (b *InMemoryBackend) DescribeImportSnapshotTasks(taskIDs []string) []*SnapshotImportTask

DescribeImportSnapshotTasks returns import snapshot tasks.

func (*InMemoryBackend) DescribeInstanceConnectEndpoints

func (b *InMemoryBackend) DescribeInstanceConnectEndpoints(
	ids []string,
) []*InstanceConnectEndpoint

DescribeInstanceConnectEndpoints returns endpoints, optionally filtered by IDs.

func (*InMemoryBackend) DescribeInstanceCreditSpecifications

func (b *InMemoryBackend) DescribeInstanceCreditSpecifications(ids []string) []InstanceCreditSpec

DescribeInstanceCreditSpecifications returns CPU credit specs for the given instances.

func (*InMemoryBackend) DescribeInstanceEventNotificationAttributes

func (b *InMemoryBackend) DescribeInstanceEventNotificationAttributes() *InstanceEventNotificationAttributes

DescribeInstanceEventNotificationAttributes returns account-level settings.

func (*InMemoryBackend) DescribeInstanceEventWindows

func (b *InMemoryBackend) DescribeInstanceEventWindows(ids []string) []*InstanceEventWindow

DescribeInstanceEventWindows returns event windows, optionally filtered by IDs.

func (*InMemoryBackend) DescribeInstanceImageMetadata

func (b *InMemoryBackend) DescribeInstanceImageMetadata(
	instanceIDs []string,
) []InstanceImageMetadataItem

DescribeInstanceImageMetadata returns image metadata for instances (or all).

func (*InMemoryBackend) DescribeInstanceSQLHaHistoryStates

func (b *InMemoryBackend) DescribeInstanceSQLHaHistoryStates(
	ids []string, startTime, endTime time.Time,
) []*RegisteredSQLHaInstance

DescribeInstanceSQLHaHistoryStates returns historical SQL Server High Availability state transitions for the given instances (or all instances with history if ids is empty), optionally bounded by [startTime, endTime].

func (*InMemoryBackend) DescribeInstanceSQLHaStates

func (b *InMemoryBackend) DescribeInstanceSQLHaStates(ids []string) []*RegisteredSQLHaInstance

DescribeInstanceSQLHaStates returns the current SQL Server High Availability registration state for the given instances (or all registered instances if ids is empty). Registrations that are still "processing" settle to "active" as a side effect of being described.

func (*InMemoryBackend) DescribeInstanceStatus

func (b *InMemoryBackend) DescribeInstanceStatus(ids []string) []*Instance

DescribeInstanceStatus returns instances for status reporting.

func (*InMemoryBackend) DescribeInstanceTopology

func (b *InMemoryBackend) DescribeInstanceTopology(ids []string) []InstanceTopologyItem

DescribeInstanceTopology returns placement topology info for instances.

func (*InMemoryBackend) DescribeInstanceTypeOfferings

func (b *InMemoryBackend) DescribeInstanceTypeOfferings() []InstanceTypeOffering

DescribeInstanceTypeOfferings returns a static list of instance type / AZ pairs.

func (*InMemoryBackend) DescribeInstances

func (b *InMemoryBackend) DescribeInstances(ids []string, state string) []*Instance

DescribeInstances returns instances, optionally filtered by IDs or state. When ids are provided, lookups are O(len(ids)) via the instance map rather than scanning every instance in the backend.

func (*InMemoryBackend) DescribeInstancesByVPC

func (b *InMemoryBackend) DescribeInstancesByVPC(vpcID string) []*Instance

DescribeInstancesByVPC returns running instances in a given VPC using the secondary index.

func (*InMemoryBackend) DescribeInternetGateways

func (b *InMemoryBackend) DescribeInternetGateways(ids []string) []*InternetGateway

DescribeInternetGateways returns IGWs, optionally filtered by IDs. When ids are provided, lookups are O(len(ids)) via the IGW map rather than scanning every IGW in the backend.

func (*InMemoryBackend) DescribeIpamByoasn

func (b *InMemoryBackend) DescribeIpamByoasn() []*IpamByoasn

DescribeIpamByoasn returns all BYOASNs provisioned across all IPAMs.

func (*InMemoryBackend) DescribeIpamExternalResourceVerificationTokens

func (b *InMemoryBackend) DescribeIpamExternalResourceVerificationTokens(
	ids []string,
) []*IpamExternalResourceVerificationToken

DescribeIpamExternalResourceVerificationTokens returns verification tokens, optionally filtered by IDs.

func (*InMemoryBackend) DescribeIpamPolicies

func (b *InMemoryBackend) DescribeIpamPolicies(ids []string) []*IpamPolicy

DescribeIpamPolicies returns IPAM policies, optionally filtered by IDs.

func (*InMemoryBackend) DescribeIpamPools

func (b *InMemoryBackend) DescribeIpamPools(ids []string) []*IpamPool

DescribeIpamPools returns IPAM pools, optionally filtered by IDs.

func (*InMemoryBackend) DescribeIpamPrefixListResolverTargets

func (b *InMemoryBackend) DescribeIpamPrefixListResolverTargets(
	resolverID string, ids []string,
) []*IpamPrefixListResolverTarget

DescribeIpamPrefixListResolverTargets returns resolver targets, optionally filtered by resolver ID and/or target IDs.

func (*InMemoryBackend) DescribeIpamPrefixListResolvers

func (b *InMemoryBackend) DescribeIpamPrefixListResolvers(ids []string) []*IpamPrefixListResolver

DescribeIpamPrefixListResolvers returns prefix list resolvers, optionally filtered by IDs.

func (*InMemoryBackend) DescribeIpamResourceDiscoveries

func (b *InMemoryBackend) DescribeIpamResourceDiscoveries(ids []string) []*IpamResourceDiscovery

DescribeIpamResourceDiscoveries returns IPAM resource discoveries, optionally filtered by IDs.

func (*InMemoryBackend) DescribeIpamResourceDiscoveryAssociations

func (b *InMemoryBackend) DescribeIpamResourceDiscoveryAssociations(
	ids []string,
) []*IpamResourceDiscoveryAssociation

DescribeIpamResourceDiscoveryAssociations returns IPAM resource discovery associations, optionally filtered by IDs.

func (*InMemoryBackend) DescribeIpamScopes

func (b *InMemoryBackend) DescribeIpamScopes(ids []string) []*IpamScope

DescribeIpamScopes returns IPAM scopes, optionally filtered by IDs.

func (*InMemoryBackend) DescribeIpams

func (b *InMemoryBackend) DescribeIpams(ids []string) []*Ipam

DescribeIpams returns IPAM instances, optionally filtered by IDs.

func (*InMemoryBackend) DescribeIpv6Pools

func (b *InMemoryBackend) DescribeIpv6Pools(ids []string) []*Ipv6Pool

DescribeIpv6Pools returns IPv6 address pools, optionally filtered by ID.

func (*InMemoryBackend) DescribeKeyPairs

func (b *InMemoryBackend) DescribeKeyPairs(names []string) []*KeyPair

DescribeKeyPairs returns key pairs, optionally filtered by name. When names are provided, lookups are O(len(names)) via the key-pair map rather than scanning every key pair in the backend.

func (*InMemoryBackend) DescribeLaunchTemplateVersions

func (b *InMemoryBackend) DescribeLaunchTemplateVersions(id string) ([]*LaunchTemplate, error)

DescribeLaunchTemplateVersions returns versions of a specific launch template. In this mock, every template has exactly one version.

func (*InMemoryBackend) DescribeLaunchTemplates

func (b *InMemoryBackend) DescribeLaunchTemplates(names []string) []*LaunchTemplate

DescribeLaunchTemplates returns launch templates, optionally filtered by names.

func (*InMemoryBackend) DescribeLaunchTemplatesSorted

func (b *InMemoryBackend) DescribeLaunchTemplatesSorted(names []string) []*LaunchTemplate

DescribeLaunchTemplatesSorted returns launch templates sorted by ID.

func (*InMemoryBackend) DescribeLaunchTemplatesSortedByName

func (b *InMemoryBackend) DescribeLaunchTemplatesSortedByName() []*LaunchTemplate

DescribeLaunchTemplatesSortedByName returns launch templates sorted by name (no filter).

func (*InMemoryBackend) DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations

func (b *InMemoryBackend) DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations(
	ids []string,
) []*LocalGatewayRouteTableVirtualInterfaceGroupAssociation

DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations returns local gateway route table virtual interface group associations, optionally filtered by IDs.

func (*InMemoryBackend) DescribeLocalGatewayRouteTableVpcAssociations

func (b *InMemoryBackend) DescribeLocalGatewayRouteTableVpcAssociations(
	ids []string,
) []*LocalGatewayRouteTableVpcAssociation

DescribeLocalGatewayRouteTableVpcAssociations returns local gateway route table VPC associations, optionally filtered by IDs.

func (*InMemoryBackend) DescribeLocalGatewayRouteTables

func (b *InMemoryBackend) DescribeLocalGatewayRouteTables(ids []string) []*LocalGatewayRouteTable

DescribeLocalGatewayRouteTables returns local gateway route tables, optionally filtered by IDs.

func (*InMemoryBackend) DescribeLocalGatewayVirtualInterfaceGroups

func (b *InMemoryBackend) DescribeLocalGatewayVirtualInterfaceGroups(
	ids []string,
) []*LocalGatewayVirtualInterfaceGroup

DescribeLocalGatewayVirtualInterfaceGroups returns local gateway virtual interface groups, optionally filtered by IDs.

func (*InMemoryBackend) DescribeLocalGatewayVirtualInterfaces

func (b *InMemoryBackend) DescribeLocalGatewayVirtualInterfaces(
	ids []string,
) []*LocalGatewayVirtualInterface

DescribeLocalGatewayVirtualInterfaces returns local gateway virtual interfaces, optionally filtered by IDs.

func (*InMemoryBackend) DescribeLocalGateways

func (b *InMemoryBackend) DescribeLocalGateways(ids []string) []*LocalGateway

DescribeLocalGateways returns local gateways, optionally filtered by IDs.

func (*InMemoryBackend) DescribeLockedSnapshots

func (b *InMemoryBackend) DescribeLockedSnapshots(ids []string) []*SnapshotLock

DescribeLockedSnapshots returns locked snapshots, optionally filtered by IDs.

func (*InMemoryBackend) DescribeMacHosts

func (b *InMemoryBackend) DescribeMacHosts(ids []string) []*MacHost

DescribeMacHosts returns the Mac Dedicated Hosts (i.e. Dedicated Hosts allocated with a mac1/mac2/mac-m* instance type), optionally filtered by host ID.

func (*InMemoryBackend) DescribeMacModificationTasks

func (b *InMemoryBackend) DescribeMacModificationTasks(ids []string) []*MacModificationTask

DescribeMacModificationTasks returns Mac modification tasks, optionally filtered by ID. Pending tasks settle to "successful" as a side effect of being described, mirroring how these tasks complete asynchronously in AWS.

func (*InMemoryBackend) DescribeManagedPrefixLists

func (b *InMemoryBackend) DescribeManagedPrefixLists(ids []string) []*ManagedPrefixList

DescribeManagedPrefixLists returns managed prefix lists, optionally filtered by IDs.

func (*InMemoryBackend) DescribeMovingAddresses

func (b *InMemoryBackend) DescribeMovingAddresses(publicIPs []string) []*MovingAddressStatus

DescribeMovingAddresses returns the moving-address status entries created by MoveAddressToVpc, optionally filtered by public IP.

func (*InMemoryBackend) DescribeNatGateways

func (b *InMemoryBackend) DescribeNatGateways(ids []string) []*NatGateway

DescribeNatGateways returns NAT Gateways, optionally filtered by IDs. When ids are provided, lookups are O(len(ids)) via the NAT-gateway map rather than scanning every gateway in the backend.

func (*InMemoryBackend) DescribeNetworkAcls

func (b *InMemoryBackend) DescribeNetworkAcls(vpcIDs []string) []*NetworkACL

DescribeNetworkAcls returns one default ACL per VPC, optionally filtered by VPC IDs.

func (*InMemoryBackend) DescribeNetworkAclsFiltered

func (b *InMemoryBackend) DescribeNetworkAclsFiltered(vpcIDs []string) []*NetworkACL

DescribeNetworkAclsFiltered returns ACLs from both default (auto-generated) and stored (CreateNetworkAcl) collections, with optional VPC-ID filter.

func (*InMemoryBackend) DescribeNetworkInsightsAccessScopeAnalyses

func (b *InMemoryBackend) DescribeNetworkInsightsAccessScopeAnalyses(
	ids []string,
) []*NetworkInsightsAccessScopeAnalysis

func (*InMemoryBackend) DescribeNetworkInsightsAccessScopes

func (b *InMemoryBackend) DescribeNetworkInsightsAccessScopes(ids []string) []*NetworkInsightsAccessScope

func (*InMemoryBackend) DescribeNetworkInsightsAnalyses

func (b *InMemoryBackend) DescribeNetworkInsightsAnalyses(ids []string) []*NetworkInsightsAnalysis

func (*InMemoryBackend) DescribeNetworkInsightsPaths

func (b *InMemoryBackend) DescribeNetworkInsightsPaths(ids []string) []*NetworkInsightsPath

func (*InMemoryBackend) DescribeNetworkInterfaceAttribute

func (b *InMemoryBackend) DescribeNetworkInterfaceAttribute(
	niID string, _ string,
) (*NIAttributeResult, error)

DescribeNetworkInterfaceAttribute returns a requested attribute for a network interface.

func (*InMemoryBackend) DescribeNetworkInterfacePermissions

func (b *InMemoryBackend) DescribeNetworkInterfacePermissions(
	niIDs []string,
) []*NetworkInterfacePermission

DescribeNetworkInterfacePermissions returns permissions for the given NIDs (or all).

func (*InMemoryBackend) DescribeNetworkInterfaces

func (b *InMemoryBackend) DescribeNetworkInterfaces(ids []string) []*NetworkInterface

DescribeNetworkInterfaces returns network interfaces, optionally filtered by IDs. When ids are provided, lookups are O(len(ids)) via the ENI map rather than scanning every interface in the backend.

func (*InMemoryBackend) DescribeOutpostLags

func (b *InMemoryBackend) DescribeOutpostLags(ids []string) []*OutpostLag

DescribeOutpostLags returns Outpost LAGs, optionally filtered by ID.

func (*InMemoryBackend) DescribePlacementGroups

func (b *InMemoryBackend) DescribePlacementGroups(names []string) []*PlacementGroup

DescribePlacementGroups returns placement groups, optionally filtered by names. When names are provided, lookups are O(len(names)) via the placement-group map rather than scanning every group in the backend.

func (*InMemoryBackend) DescribePrefixLists

func (b *InMemoryBackend) DescribePrefixLists(ids []string) []PrefixList

DescribePrefixLists returns AWS-managed prefix lists (static).

func (*InMemoryBackend) DescribePrincipalIDFormat

func (b *InMemoryBackend) DescribePrincipalIDFormat(_ string) []IDFormatItem

DescribePrincipalIDFormat returns ID format for a principal (same as aggregate here).

func (*InMemoryBackend) DescribePublicIpv4Pools

func (b *InMemoryBackend) DescribePublicIpv4Pools(ids []string) []*Ipv4Pool

DescribePublicIpv4Pools returns public IPv4 address pools, optionally filtered by ID.

func (*InMemoryBackend) DescribeRegions

func (b *InMemoryBackend) DescribeRegions() []string

DescribeRegions returns stub region names.

func (*InMemoryBackend) DescribeReplaceRootVolumeTasks

func (b *InMemoryBackend) DescribeReplaceRootVolumeTasks(ids []string) []*ReplaceRootVolumeTask

DescribeReplaceRootVolumeTasks returns replace root volume tasks.

func (*InMemoryBackend) DescribeReservedInstances

func (b *InMemoryBackend) DescribeReservedInstances(ids []string) []*ReservedInstance

func (*InMemoryBackend) DescribeReservedInstancesListings

func (b *InMemoryBackend) DescribeReservedInstancesListings(ids []string) []*ReservedInstancesListing

func (*InMemoryBackend) DescribeReservedInstancesModifications

func (b *InMemoryBackend) DescribeReservedInstancesModifications(ids []string) []*ReservedInstancesModification

func (*InMemoryBackend) DescribeReservedInstancesOfferings

func (b *InMemoryBackend) DescribeReservedInstancesOfferings(
	instanceType, az, productDesc string,
) []*ReservedInstancesOffering

func (*InMemoryBackend) DescribeRouteServerEndpoints

func (b *InMemoryBackend) DescribeRouteServerEndpoints(ids []string) []*RouteServerEndpoint

DescribeRouteServerEndpoints returns route server endpoints, optionally filtered by ID.

func (*InMemoryBackend) DescribeRouteServerPeers

func (b *InMemoryBackend) DescribeRouteServerPeers(ids []string) []*RouteServerPeer

DescribeRouteServerPeers returns route server peers, optionally filtered by ID.

func (*InMemoryBackend) DescribeRouteServers

func (b *InMemoryBackend) DescribeRouteServers(ids []string) []*RouteServer

DescribeRouteServers returns route servers, optionally filtered by ID.

func (*InMemoryBackend) DescribeRouteTables

func (b *InMemoryBackend) DescribeRouteTables(ids []string) []*RouteTable

DescribeRouteTables returns route tables, optionally filtered by IDs. When ids are provided, lookups are O(len(ids)) via the route-table map rather than scanning every route table in the backend.

func (*InMemoryBackend) DescribeScheduledInstanceAvailability

func (b *InMemoryBackend) DescribeScheduledInstanceAvailability(
	filters map[string][]string, minSlotDurationHours, maxSlotDurationHours int32,
) []ScheduledInstanceAvailability

DescribeScheduledInstanceAvailability returns the static catalog entries matching the given instance type / availability zone filters and slot duration bounds.

func (*InMemoryBackend) DescribeScheduledInstances

func (b *InMemoryBackend) DescribeScheduledInstances(ids []string) []*ScheduledInstance

DescribeScheduledInstances returns purchased Scheduled Instances, optionally filtered by ID.

func (*InMemoryBackend) DescribeSecondaryInterfaces

func (b *InMemoryBackend) DescribeSecondaryInterfaces(ids []string) []*SecondaryInterface

DescribeSecondaryInterfaces returns secondary interfaces, optionally filtered by ID.

func (*InMemoryBackend) DescribeSecondaryNetworks

func (b *InMemoryBackend) DescribeSecondaryNetworks(ids []string) []*SecondaryNetwork

DescribeSecondaryNetworks returns secondary networks, optionally filtered by ID.

func (*InMemoryBackend) DescribeSecondarySubnets

func (b *InMemoryBackend) DescribeSecondarySubnets(ids []string) []*SecondarySubnet

DescribeSecondarySubnets returns secondary subnets, optionally filtered by ID.

func (*InMemoryBackend) DescribeSecurityGroupReferences

func (b *InMemoryBackend) DescribeSecurityGroupReferences(sgIDs []string) []SGReference

DescribeSecurityGroupReferences returns cross-VPC references for the given SG IDs. Returns empty for SGs not referenced externally (stub-level accuracy).

func (*InMemoryBackend) DescribeSecurityGroupRules

func (b *InMemoryBackend) DescribeSecurityGroupRules(
	groupID string,
) ([]*SecurityGroupRuleDetail, error)

DescribeSecurityGroupRules returns all ingress and egress rules for the given group.

func (*InMemoryBackend) DescribeSecurityGroupVpcAssociations

func (b *InMemoryBackend) DescribeSecurityGroupVpcAssociations(sgIDs []string) []SGVpcAssocItem

DescribeSecurityGroupVpcAssociations returns SG-VPC associations for the given SG IDs.

func (*InMemoryBackend) DescribeSecurityGroups

func (b *InMemoryBackend) DescribeSecurityGroups(ids []string) []*SecurityGroup

DescribeSecurityGroups returns security groups, optionally filtered by IDs. When ids are provided, lookups are O(len(ids)) via the security-group map rather than scanning every group in the backend.

func (*InMemoryBackend) DescribeServiceLinkVirtualInterfaces

func (b *InMemoryBackend) DescribeServiceLinkVirtualInterfaces(ids []string) []*ServiceLinkVirtualInterface

DescribeServiceLinkVirtualInterfaces returns service link virtual interfaces, optionally filtered by ID.

func (*InMemoryBackend) DescribeSnapshotTierStatus

func (b *InMemoryBackend) DescribeSnapshotTierStatus(ids []string) []SnapshotTierItem

DescribeSnapshotTierStatus returns tier info for given snapshot IDs (or all).

func (*InMemoryBackend) DescribeSnapshots

func (b *InMemoryBackend) DescribeSnapshots(ids []string) []*Snapshot

DescribeSnapshots returns snapshots, optionally filtered by IDs.

func (*InMemoryBackend) DescribeSnapshotsSorted

func (b *InMemoryBackend) DescribeSnapshotsSorted(ids []string) []*Snapshot

DescribeSnapshotsSorted returns snapshots sorted by snapshot ID.

func (*InMemoryBackend) DescribeSpotDatafeedSubscription

func (b *InMemoryBackend) DescribeSpotDatafeedSubscription() *SpotDatafeed

DescribeSpotDatafeedSubscription returns the current spot data feed.

func (*InMemoryBackend) DescribeSpotFleetInstances

func (b *InMemoryBackend) DescribeSpotFleetInstances(fleetID string) ([]SpotFleetInstance, error)

DescribeSpotFleetInstances returns the instances in a spot fleet.

func (*InMemoryBackend) DescribeSpotFleetRequestHistory

func (b *InMemoryBackend) DescribeSpotFleetRequestHistory(
	fleetID string,
	startTime time.Time,
) ([]SpotFleetHistoryRecord, error)

DescribeSpotFleetRequestHistory returns history records for a spot fleet request.

func (*InMemoryBackend) DescribeSpotFleetRequests

func (b *InMemoryBackend) DescribeSpotFleetRequests(
	fleetIDs []string,
) ([]*SpotFleetRequest, error)

DescribeSpotFleetRequests returns spot fleet requests, optionally filtered by IDs.

func (*InMemoryBackend) DescribeSpotInstanceRequests

func (b *InMemoryBackend) DescribeSpotInstanceRequests(ids []string) []*SpotInstanceRequest

DescribeSpotInstanceRequests returns spot requests, optionally filtered by IDs. When ids are provided, lookups are O(len(ids)) via the spot-request map rather than scanning every spot request in the backend.

func (*InMemoryBackend) DescribeStaleSecurityGroups

func (b *InMemoryBackend) DescribeStaleSecurityGroups(vpcID string) []StaleSGItem

DescribeStaleSecurityGroups returns security groups in stale peering state for the VPC. In this implementation, stale SGs are those with dangling VPC peering references.

func (*InMemoryBackend) DescribeStoreImageTasks

func (b *InMemoryBackend) DescribeStoreImageTasks(imageIDs []string) []*StoreImageTask

DescribeStoreImageTasks returns store image tasks, optionally filtered by AMI ID.

func (*InMemoryBackend) DescribeStoredNetworkAcls

func (b *InMemoryBackend) DescribeStoredNetworkAcls(ids []string) []*StoredNetworkACL

DescribeStoredNetworkAcls returns explicitly created network ACLs, filtered by VPC IDs.

func (*InMemoryBackend) DescribeSubnets

func (b *InMemoryBackend) DescribeSubnets(ids []string) []*Subnet

DescribeSubnets returns subnets, optionally filtered by IDs. When ids are provided, lookups are O(len(ids)) via the subnet map rather than scanning every subnet in the backend.

func (*InMemoryBackend) DescribeSubnetsByVPC

func (b *InMemoryBackend) DescribeSubnetsByVPC(vpcID string) []*Subnet

DescribeSubnetsByVPC returns subnets filtered by VPC ID using the secondary index.

func (*InMemoryBackend) DescribeTags

func (b *InMemoryBackend) DescribeTags(resourceIDs []string) []TagEntry

DescribeTags returns all tag entries, optionally filtered by resource IDs.

func (*InMemoryBackend) DescribeTrafficMirrorFilterRules

func (b *InMemoryBackend) DescribeTrafficMirrorFilterRules(filterID string) ([]*TrafficMirrorFilterRule, error)

func (*InMemoryBackend) DescribeTrafficMirrorFilters

func (b *InMemoryBackend) DescribeTrafficMirrorFilters(ids []string) []*TrafficMirrorFilter

func (*InMemoryBackend) DescribeTrafficMirrorSessions

func (b *InMemoryBackend) DescribeTrafficMirrorSessions(ids []string) []*TrafficMirrorSession

func (*InMemoryBackend) DescribeTrafficMirrorTargets

func (b *InMemoryBackend) DescribeTrafficMirrorTargets(ids []string) []*TrafficMirrorTarget

func (*InMemoryBackend) DescribeTransitGatewayAttachments

func (b *InMemoryBackend) DescribeTransitGatewayAttachments(ids []string) []*TransitGatewayAttachmentSummary

DescribeTransitGatewayAttachments returns a unified view over the existing VPC, peering, and Connect attachment maps.

func (*InMemoryBackend) DescribeTransitGatewayConnectPeers

func (b *InMemoryBackend) DescribeTransitGatewayConnectPeers(
	ids []string,
) []*TransitGatewayConnectPeer

DescribeTransitGatewayConnectPeers returns TGW connect peers.

func (*InMemoryBackend) DescribeTransitGatewayConnects

func (b *InMemoryBackend) DescribeTransitGatewayConnects(ids []string) []*TransitGatewayConnect

DescribeTransitGatewayConnects returns TGW connect attachments.

func (*InMemoryBackend) DescribeTransitGatewayMeteringPolicies

func (b *InMemoryBackend) DescribeTransitGatewayMeteringPolicies(
	ids []string,
) []*TransitGatewayMeteringPolicy

DescribeTransitGatewayMeteringPolicies returns metering policies, optionally filtered by policy ID.

func (*InMemoryBackend) DescribeTransitGatewayMulticastDomains

func (b *InMemoryBackend) DescribeTransitGatewayMulticastDomains(
	ids []string,
) []*TransitGatewayMulticastDomain

DescribeTransitGatewayMulticastDomains returns multicast domains, optionally filtered by domain ID.

func (*InMemoryBackend) DescribeTransitGatewayPeeringAttachments

func (b *InMemoryBackend) DescribeTransitGatewayPeeringAttachments(
	ids []string,
) []*TransitGatewayPeeringAttachment

DescribeTransitGatewayPeeringAttachments returns TGW peering attachments.

func (*InMemoryBackend) DescribeTransitGatewayPolicyTables

func (b *InMemoryBackend) DescribeTransitGatewayPolicyTables(
	ids []string,
) []*TransitGatewayPolicyTable

DescribeTransitGatewayPolicyTables returns policy tables, optionally filtered by ID.

func (*InMemoryBackend) DescribeTransitGatewayRouteTableAnnouncements

func (b *InMemoryBackend) DescribeTransitGatewayRouteTableAnnouncements(
	ids []string,
) []*TransitGatewayRouteTableAnnouncement

DescribeTransitGatewayRouteTableAnnouncements returns route table announcements, optionally filtered by ID.

func (*InMemoryBackend) DescribeTransitGatewayRouteTables

func (b *InMemoryBackend) DescribeTransitGatewayRouteTables(
	ids []string,
) []*TransitGatewayRouteTable

DescribeTransitGatewayRouteTables returns TGW route tables, optionally filtered by IDs.

func (*InMemoryBackend) DescribeTransitGatewayVpcAttachments

func (b *InMemoryBackend) DescribeTransitGatewayVpcAttachments(
	ids []string,
) []*TransitGatewayVpcAttachment

DescribeTransitGatewayVpcAttachments returns TGW VPC attachments, optionally filtered by attachment IDs.

func (*InMemoryBackend) DescribeTransitGateways

func (b *InMemoryBackend) DescribeTransitGateways(ids []string) []*TransitGateway

DescribeTransitGateways returns transit gateways, optionally filtered by IDs.

func (*InMemoryBackend) DescribeTrunkInterfaceAssociations

func (b *InMemoryBackend) DescribeTrunkInterfaceAssociations(ids []string) []*TrunkInterfaceAssociation

DescribeTrunkInterfaceAssociations returns trunk interface associations, optionally filtered by association ID.

func (*InMemoryBackend) DescribeVerifiedAccessEndpoints

func (b *InMemoryBackend) DescribeVerifiedAccessEndpoints(ids []string) []*VerifiedAccessEndpoint

DescribeVerifiedAccessEndpoints returns Verified Access endpoints.

func (*InMemoryBackend) DescribeVerifiedAccessGroups

func (b *InMemoryBackend) DescribeVerifiedAccessGroups(ids []string) []*VerifiedAccessGroup

DescribeVerifiedAccessGroups returns Verified Access groups.

func (*InMemoryBackend) DescribeVerifiedAccessInstanceLoggingConfigurations

func (b *InMemoryBackend) DescribeVerifiedAccessInstanceLoggingConfigurations(
	ids []string,
) []*VerifiedAccessInstanceLoggingConfig

DescribeVerifiedAccessInstanceLoggingConfigurations returns the logging configuration for the given instance IDs, or for every instance when ids is empty. Instances without an explicit logging configuration report the zero-value configuration (all destinations disabled), matching AWS.

func (*InMemoryBackend) DescribeVerifiedAccessInstances

func (b *InMemoryBackend) DescribeVerifiedAccessInstances(ids []string) []*VerifiedAccessInstance

DescribeVerifiedAccessInstances returns Verified Access instances.

func (*InMemoryBackend) DescribeVerifiedAccessTrustProviders

func (b *InMemoryBackend) DescribeVerifiedAccessTrustProviders(
	ids []string,
) []*VerifiedAccessTrustProvider

DescribeVerifiedAccessTrustProviders returns Verified Access trust providers.

func (*InMemoryBackend) DescribeVolumeStatus

func (b *InMemoryBackend) DescribeVolumeStatus(ids []string) []VolumeStatusItem

DescribeVolumeStatus returns health status for the given volumes (all if ids is empty).

func (*InMemoryBackend) DescribeVolumes

func (b *InMemoryBackend) DescribeVolumes(ids []string) []*Volume

DescribeVolumes returns volumes, optionally filtered by IDs. When ids are provided, lookups are O(len(ids)) via the volume map rather than scanning every volume in the backend.

func (*InMemoryBackend) DescribeVolumesModifications

func (b *InMemoryBackend) DescribeVolumesModifications(ids []string) []*VolumeModification

DescribeVolumesModifications returns stored modification records.

func (*InMemoryBackend) DescribeVpcBlockPublicAccessExclusions

func (b *InMemoryBackend) DescribeVpcBlockPublicAccessExclusions(ids []string) []*VpcBlockPublicAccessExclusion

DescribeVpcBlockPublicAccessExclusions returns exclusions, optionally filtered by ID.

func (*InMemoryBackend) DescribeVpcBlockPublicAccessOptions

func (b *InMemoryBackend) DescribeVpcBlockPublicAccessOptions() *VpcBlockPublicAccessOptions

DescribeVpcBlockPublicAccessOptions returns the account+region VPC BPA options.

func (b *InMemoryBackend) DescribeVpcClassicLink(vpcIDs []string) ([]*VPC, error)

DescribeVpcClassicLink returns the ClassicLink status of VPCs, optionally filtered by ID.

func (*InMemoryBackend) DescribeVpcClassicLinkDNSSupport

func (b *InMemoryBackend) DescribeVpcClassicLinkDNSSupport(vpcIDs []string) ([]*VPC, error)

DescribeVpcClassicLinkDNSSupport returns ClassicLink DNS support status for VPCs.

func (*InMemoryBackend) DescribeVpcEncryptionControls

func (b *InMemoryBackend) DescribeVpcEncryptionControls(ids, vpcIDs []string) []*VpcEncryptionControl

DescribeVpcEncryptionControls returns VPC Encryption Control configurations, optionally filtered by configuration ID and/or VPC ID.

func (*InMemoryBackend) DescribeVpcEndpointAssociations

func (b *InMemoryBackend) DescribeVpcEndpointAssociations(endpointIDs []string) []*VpcEndpoint

DescribeVpcEndpointAssociations returns VPC-endpoint associations.

func (*InMemoryBackend) DescribeVpcEndpointConnectionNotifications

func (b *InMemoryBackend) DescribeVpcEndpointConnectionNotifications(
	ids []string,
) []*VpcEndpointConnectionNotification

DescribeVpcEndpointConnectionNotifications returns notifications, optionally filtered by IDs.

func (*InMemoryBackend) DescribeVpcEndpointConnections

func (b *InMemoryBackend) DescribeVpcEndpointConnections(
	serviceIDs []string,
) []*VpcEndpointConnection

DescribeVpcEndpointConnections returns endpoint connections for owned services.

func (*InMemoryBackend) DescribeVpcEndpointServiceConfigurations

func (b *InMemoryBackend) DescribeVpcEndpointServiceConfigurations(
	ids []string,
) []*VpcEndpointServiceConfig

DescribeVpcEndpointServiceConfigurations returns endpoint service configs, optionally filtered by IDs.

func (*InMemoryBackend) DescribeVpcEndpointServicePermissions

func (b *InMemoryBackend) DescribeVpcEndpointServicePermissions(serviceID string) []string

DescribeVpcEndpointServicePermissions returns allowed principals for a service.

func (*InMemoryBackend) DescribeVpcEndpointServices

func (b *InMemoryBackend) DescribeVpcEndpointServices() []string

DescribeVpcEndpointServices returns the set of commonly available AWS endpoint service names for the backend region.

func (*InMemoryBackend) DescribeVpcEndpoints

func (b *InMemoryBackend) DescribeVpcEndpoints(ids []string) []*VpcEndpoint

DescribeVpcEndpoints returns VPC endpoints, optionally filtered by IDs.

func (*InMemoryBackend) DescribeVpcEndpointsByVPC

func (b *InMemoryBackend) DescribeVpcEndpointsByVPC(vpcID string) []*VpcEndpoint

DescribeVpcEndpointsByVPC returns VPC endpoints for a specific VPC.

func (*InMemoryBackend) DescribeVpcPeeringConnections

func (b *InMemoryBackend) DescribeVpcPeeringConnections(ids []string) []*VpcPeeringConnection

DescribeVpcPeeringConnections returns VPC peering connections sorted by ID. If ids is non-empty, only connections matching those IDs are returned.

func (*InMemoryBackend) DescribeVpcs

func (b *InMemoryBackend) DescribeVpcs(ids []string) []*VPC

DescribeVpcs returns VPCs, optionally filtered by IDs. When ids are provided, lookups are O(len(ids)) via the VPC map rather than scanning every VPC in the backend.

func (*InMemoryBackend) DescribeVpnConcentrators

func (b *InMemoryBackend) DescribeVpnConcentrators(ids []string) []*VpnConcentrator

DescribeVpnConcentrators returns VPN concentrators, optionally filtered by ID.

func (*InMemoryBackend) DescribeVpnConnections

func (b *InMemoryBackend) DescribeVpnConnections(ids []string) []*VpnConnection

DescribeVpnConnections returns VPN connections, optionally filtered by IDs.

func (*InMemoryBackend) DescribeVpnGateways

func (b *InMemoryBackend) DescribeVpnGateways(ids []string) []*VpnGateway

DescribeVpnGateways returns virtual private gateways, optionally filtered by IDs.

func (*InMemoryBackend) DetachClassicLinkVpc

func (b *InMemoryBackend) DetachClassicLinkVpc(instanceID, vpcID string) error

DetachClassicLinkVpc unlinks a ClassicLink instance from a VPC.

func (*InMemoryBackend) DetachInternetGateway

func (b *InMemoryBackend) DetachInternetGateway(igwID, vpcID string) error

DetachInternetGateway detaches an IGW from a VPC.

func (*InMemoryBackend) DetachNetworkInterface

func (b *InMemoryBackend) DetachNetworkInterface(attachmentID string, _ bool) error

DetachNetworkInterface detaches a network interface by attachment ID.

func (*InMemoryBackend) DetachVerifiedAccessTrustProvider

func (b *InMemoryBackend) DetachVerifiedAccessTrustProvider(instanceID, trustProviderID string) error

DetachVerifiedAccessTrustProvider detaches a trust provider from a Verified Access instance.

func (*InMemoryBackend) DetachVolume

func (b *InMemoryBackend) DetachVolume(volumeID string, _ bool) (*VolumeAttachment, error)

DetachVolume detaches a volume from its instance.

func (*InMemoryBackend) DetachVpnGateway

func (b *InMemoryBackend) DetachVpnGateway(vgwID, vpcID string) error

DetachVpnGateway detaches a VPN gateway from a VPC.

func (*InMemoryBackend) DisableAddressTransfer

func (b *InMemoryBackend) DisableAddressTransfer(allocationID string) error

DisableAddressTransfer cancels an EIP transfer.

func (*InMemoryBackend) DisableAllowedImagesSettings

func (b *InMemoryBackend) DisableAllowedImagesSettings() string

DisableAllowedImagesSettings disables the Allowed AMIs setting, allowing all AMIs again.

func (*InMemoryBackend) DisableAwsNetworkPerformanceMetricSubscription

func (b *InMemoryBackend) DisableAwsNetworkPerformanceMetricSubscription(
	source, destination, metric, statistic string,
) (bool, error)

DisableAwsNetworkPerformanceMetricSubscription removes a metric subscription for a source/destination pair. Disabling a subscription that does not exist is a no-op that still reports success, matching AWS's idempotent behavior.

func (*InMemoryBackend) DisableCapacityManager

func (b *InMemoryBackend) DisableCapacityManager() (string, bool)

DisableCapacityManager disables Capacity Manager for the account, clearing any Organizations data aggregation setting.

func (*InMemoryBackend) DisableEbsEncryptionByDefault

func (b *InMemoryBackend) DisableEbsEncryptionByDefault()

DisableEbsEncryptionByDefault disables EBS encryption by default for the account.

func (*InMemoryBackend) DisableFastLaunch

func (b *InMemoryBackend) DisableFastLaunch(imageID string) error

DisableFastLaunch disables Windows fast launch for an AMI.

func (*InMemoryBackend) DisableFastSnapshotRestores

func (b *InMemoryBackend) DisableFastSnapshotRestores(
	snapshotIDs, availabilityZones []string,
) error

DisableFastSnapshotRestores disables fast snapshot restores.

func (*InMemoryBackend) DisableImage

func (b *InMemoryBackend) DisableImage(imageID string) error

DisableImage sets an AMI to disabled state.

func (*InMemoryBackend) DisableImageBlockPublicAccess

func (b *InMemoryBackend) DisableImageBlockPublicAccess()

DisableImageBlockPublicAccess clears the account-level block.

func (*InMemoryBackend) DisableImageDeprecation

func (b *InMemoryBackend) DisableImageDeprecation(imageID string) error

DisableImageDeprecation removes deprecation from an AMI.

func (*InMemoryBackend) DisableImageDeregistrationProtection

func (b *InMemoryBackend) DisableImageDeregistrationProtection(imageID string) error

DisableImageDeregistrationProtection removes deregistration protection from an AMI.

func (*InMemoryBackend) DisableInstanceSQLHaStandbyDetections

func (b *InMemoryBackend) DisableInstanceSQLHaStandbyDetections(
	instanceIDs []string,
) ([]*RegisteredSQLHaInstance, error)

DisableInstanceSQLHaStandbyDetections unregisters one or more instances from SQL Server High Availability standby detection monitoring.

func (*InMemoryBackend) DisableIpamOrganizationAdminAccount

func (b *InMemoryBackend) DisableIpamOrganizationAdminAccount(accountID string) error

DisableIpamOrganizationAdminAccount disables the IPAM Organizations delegated administrator account. Returns ErrIpamOrgAdminAccountNotFound if accountID does not match the currently enabled admin account.

func (*InMemoryBackend) DisableIpamPolicy

func (b *InMemoryBackend) DisableIpamPolicy(id, orgTargetID string) error

DisableIpamPolicy disables an IPAM policy for the current account, or for a specific Organizations target when orgTargetID is non-empty. Disabling a policy that is not currently enabled for that target is a no-op, matching AWS's idempotent Disable semantics.

func (*InMemoryBackend) DisableRouteServerPropagation

func (b *InMemoryBackend) DisableRouteServerPropagation(
	routeServerID, routeTableID string,
) (*RouteServerPropagation, error)

DisableRouteServerPropagation disables route propagation from a route server into a route table.

func (*InMemoryBackend) DisableSerialConsoleAccess

func (b *InMemoryBackend) DisableSerialConsoleAccess()

DisableSerialConsoleAccess disables serial console access for the account.

func (*InMemoryBackend) DisableSnapshotBlockPublicAccess

func (b *InMemoryBackend) DisableSnapshotBlockPublicAccess()

DisableSnapshotBlockPublicAccess sets the block state to unblocked.

func (*InMemoryBackend) DisableTransitGatewayRouteTablePropagation

func (b *InMemoryBackend) DisableTransitGatewayRouteTablePropagation(
	routeTableID, attachmentID string,
) (*TransitGatewayRouteTablePropagation, error)

DisableTransitGatewayRouteTablePropagation disables a previously enabled route propagation.

func (*InMemoryBackend) DisableVgwRoutePropagation

func (b *InMemoryBackend) DisableVgwRoutePropagation(routeTableID, gatewayID string) error

DisableVgwRoutePropagation disables route propagation for a VGW in a route table.

func (b *InMemoryBackend) DisableVpcClassicLink(vpcID string) error

DisableVpcClassicLink disables ClassicLink for a VPC. Fails if any instances remain linked to it, matching real AWS's dependency check.

func (*InMemoryBackend) DisableVpcClassicLinkDNSSupport

func (b *InMemoryBackend) DisableVpcClassicLinkDNSSupport(vpcID string) error

DisableVpcClassicLinkDNSSupport disables ClassicLink DNS support for a VPC.

func (*InMemoryBackend) DisassociateAddress

func (b *InMemoryBackend) DisassociateAddress(associationID string) error

DisassociateAddress removes an Elastic IP association.

func (*InMemoryBackend) DisassociateCapacityReservationBillingOwner

func (b *InMemoryBackend) DisassociateCapacityReservationBillingOwner(
	reservationID, billingOwnerID string,
) error

DisassociateCapacityReservationBillingOwner revokes a pending or accepted billing ownership request for the given Capacity Reservation.

func (*InMemoryBackend) DisassociateClientVpnTargetNetwork

func (b *InMemoryBackend) DisassociateClientVpnTargetNetwork(
	endpointID, assocID string,
) error

DisassociateClientVpnTargetNetwork disassociates a target network by association ID.

func (*InMemoryBackend) DisassociateEnclaveCertificateIamRole

func (b *InMemoryBackend) DisassociateEnclaveCertificateIamRole(certificateArn, roleArn string) error

DisassociateEnclaveCertificateIamRole removes the association between an IAM role and an ACM certificate.

func (*InMemoryBackend) DisassociateIamInstanceProfile

func (b *InMemoryBackend) DisassociateIamInstanceProfile(
	associationID string,
) (*IamInstanceProfileAssociation, error)

DisassociateIamInstanceProfile removes an IAM instance profile association.

func (*InMemoryBackend) DisassociateInstanceEventWindow

func (b *InMemoryBackend) DisassociateInstanceEventWindow(
	windowID string, instanceIDs, dedicatedHostIDs []string,
) (*InstanceEventWindow, error)

DisassociateInstanceEventWindow removes instances and/or Dedicated Hosts as targets of an instance event window.

func (*InMemoryBackend) DisassociateIpamByoasn

func (b *InMemoryBackend) DisassociateIpamByoasn(asn, cidr string) (*IpamAsnAssociation, error)

DisassociateIpamByoasn removes the association between a BYOASN and a BYOIP CIDR.

func (*InMemoryBackend) DisassociateIpamResourceDiscovery

func (b *InMemoryBackend) DisassociateIpamResourceDiscovery(
	assocID string,
) (*IpamResourceDiscoveryAssociation, error)

DisassociateIpamResourceDiscovery removes a (non-default) resource discovery association from an IPAM.

func (*InMemoryBackend) DisassociateNatGatewayAddress

func (b *InMemoryBackend) DisassociateNatGatewayAddress(natGatewayID string) error

DisassociateNatGatewayAddress removes a secondary IP from a NAT gateway.

func (*InMemoryBackend) DisassociateRouteServer

func (b *InMemoryBackend) DisassociateRouteServer(routeServerID, vpcID string) (*RouteServerAssociation, error)

DisassociateRouteServer removes the association between a route server and a VPC.

func (*InMemoryBackend) DisassociateRouteTable

func (b *InMemoryBackend) DisassociateRouteTable(assocID string) error

DisassociateRouteTable removes a route table association.

func (*InMemoryBackend) DisassociateSecurityGroupVpc

func (b *InMemoryBackend) DisassociateSecurityGroupVpc(sgID, vpcID string) error

DisassociateSecurityGroupVpc removes a security group from a VPC.

func (*InMemoryBackend) DisassociateSubnetCidrBlock

func (b *InMemoryBackend) DisassociateSubnetCidrBlock(associationID string) (string, error)

DisassociateSubnetCidrBlock removes an IPv6 CIDR block association from a subnet.

func (*InMemoryBackend) DisassociateTransitGatewayMulticastDomain

func (b *InMemoryBackend) DisassociateTransitGatewayMulticastDomain(
	domainID, attachmentID string,
	subnetIDs []string,
) ([]*TransitGatewayMulticastDomainAssociation, error)

DisassociateTransitGatewayMulticastDomain removes the association between the given subnets and a transit gateway multicast domain.

func (*InMemoryBackend) DisassociateTransitGatewayPolicyTable

func (b *InMemoryBackend) DisassociateTransitGatewayPolicyTable(
	policyTableID, attachmentID string,
) (*TransitGatewayPolicyTableAssociation, error)

DisassociateTransitGatewayPolicyTable removes an association between a TGW attachment and a policy table.

func (*InMemoryBackend) DisassociateTransitGatewayRouteTable

func (b *InMemoryBackend) DisassociateTransitGatewayRouteTable(
	routeTableID, attachmentID string,
) error

DisassociateTransitGatewayRouteTable removes an association between a TGW attachment and route table.

func (*InMemoryBackend) DisassociateTrunkInterface

func (b *InMemoryBackend) DisassociateTrunkInterface(associationID string) error

DisassociateTrunkInterface removes a trunk interface association.

func (*InMemoryBackend) DisassociateVpcCidrBlock

func (b *InMemoryBackend) DisassociateVpcCidrBlock(associationID string) error

DisassociateVpcCidrBlock removes a secondary CIDR block association from a VPC.

func (*InMemoryBackend) EnableAddressTransfer

func (b *InMemoryBackend) EnableAddressTransfer(
	allocationID, transferAccountID string,
) (*AddressTransfer, error)

EnableAddressTransfer enables EIP transfer to another account.

func (*InMemoryBackend) EnableAllowedImagesSettings

func (b *InMemoryBackend) EnableAllowedImagesSettings(state string) (string, error)

EnableAllowedImagesSettings enables (or sets to audit-mode) the Allowed AMIs setting.

func (*InMemoryBackend) EnableAwsNetworkPerformanceMetricSubscription

func (b *InMemoryBackend) EnableAwsNetworkPerformanceMetricSubscription(
	source, destination, metric, statistic string,
) (bool, error)

EnableAwsNetworkPerformanceMetricSubscription enables (creates, or updates if already present) a metric subscription for a source/destination pair.

func (*InMemoryBackend) EnableCapacityManager

func (b *InMemoryBackend) EnableCapacityManager(organizationsAccess bool) (string, bool)

EnableCapacityManager enables Capacity Manager for the account, optionally enabling cross-account Organizations data aggregation.

func (*InMemoryBackend) EnableEbsEncryptionByDefault

func (b *InMemoryBackend) EnableEbsEncryptionByDefault()

EnableEbsEncryptionByDefault enables EBS encryption by default for the account.

func (*InMemoryBackend) EnableFastLaunch

func (b *InMemoryBackend) EnableFastLaunch(imageID string) error

EnableFastLaunch enables Windows fast launch for an AMI.

func (*InMemoryBackend) EnableFastSnapshotRestores

func (b *InMemoryBackend) EnableFastSnapshotRestores(
	snapshotIDs, availabilityZones []string,
) error

EnableFastSnapshotRestores enables fast snapshot restores for given AZ/snapshot combos.

func (*InMemoryBackend) EnableImage

func (b *InMemoryBackend) EnableImage(imageID string) error

EnableImage restores an AMI from disabled state.

func (*InMemoryBackend) EnableImageBlockPublicAccess

func (b *InMemoryBackend) EnableImageBlockPublicAccess(state string) error

EnableImageBlockPublicAccess sets the account-level block for public AMI sharing.

func (*InMemoryBackend) EnableImageDeprecation

func (b *InMemoryBackend) EnableImageDeprecation(imageID, deprecateAt string) error

EnableImageDeprecation sets a deprecation time for an AMI.

func (*InMemoryBackend) EnableImageDeregistrationProtection

func (b *InMemoryBackend) EnableImageDeregistrationProtection(imageID string) error

EnableImageDeregistrationProtection protects an AMI from deregistration.

func (*InMemoryBackend) EnableInstanceSQLHaStandbyDetections

func (b *InMemoryBackend) EnableInstanceSQLHaStandbyDetections(
	instanceIDs []string, sqlServerCredentials string,
) ([]*RegisteredSQLHaInstance, error)

EnableInstanceSQLHaStandbyDetections registers one or more instances for SQL Server High Availability standby detection monitoring.

func (*InMemoryBackend) EnableIpamOrganizationAdminAccount

func (b *InMemoryBackend) EnableIpamOrganizationAdminAccount(accountID string) error

EnableIpamOrganizationAdminAccount enables an Organizations member account as the IPAM delegated administrator account.

func (*InMemoryBackend) EnableIpamPolicy

func (b *InMemoryBackend) EnableIpamPolicy(id, orgTargetID string) error

EnableIpamPolicy enables an IPAM policy for the current account, or for a specific Organizations target when orgTargetID is non-empty.

func (*InMemoryBackend) EnableReachabilityAnalyzerOrganizationSharing

func (b *InMemoryBackend) EnableReachabilityAnalyzerOrganizationSharing() bool

EnableReachabilityAnalyzerOrganizationSharing sets the per-account flag enabling Reachability Analyzer resource sharing across an organization.

func (*InMemoryBackend) EnableRouteServerPropagation

func (b *InMemoryBackend) EnableRouteServerPropagation(
	routeServerID, routeTableID string,
) (*RouteServerPropagation, error)

EnableRouteServerPropagation enables route propagation from a route server into a route table.

func (*InMemoryBackend) EnableSerialConsoleAccess

func (b *InMemoryBackend) EnableSerialConsoleAccess()

EnableSerialConsoleAccess enables serial console access for the account.

func (*InMemoryBackend) EnableSnapshotBlockPublicAccess

func (b *InMemoryBackend) EnableSnapshotBlockPublicAccess(state string) error

EnableSnapshotBlockPublicAccess sets the block state to block-all-sharing or block-new-sharing.

func (*InMemoryBackend) EnableTransitGatewayRouteTablePropagation

func (b *InMemoryBackend) EnableTransitGatewayRouteTablePropagation(
	routeTableID, attachmentID string,
) (*TransitGatewayRouteTablePropagation, error)

EnableTransitGatewayRouteTablePropagation enables route propagation from an attachment into a TGW route table.

func (*InMemoryBackend) EnableVgwRoutePropagation

func (b *InMemoryBackend) EnableVgwRoutePropagation(routeTableID, gatewayID string) error

EnableVgwRoutePropagation enables route propagation for a VGW in a route table.

func (*InMemoryBackend) EnableVolumeIO

func (b *InMemoryBackend) EnableVolumeIO(volumeID string) error

EnableVolumeIO enables IO for a volume stuck in impaired state.

func (b *InMemoryBackend) EnableVpcClassicLink(vpcID string) error

EnableVpcClassicLink enables a VPC for ClassicLink.

func (*InMemoryBackend) EnableVpcClassicLinkDNSSupport

func (b *InMemoryBackend) EnableVpcClassicLinkDNSSupport(vpcID string) error

EnableVpcClassicLinkDNSSupport enables ClassicLink DNS support for a VPC.

func (*InMemoryBackend) ExportClientVpnClientCertificateRevocationList

func (b *InMemoryBackend) ExportClientVpnClientCertificateRevocationList(endpointID string) (string, error)

ExportClientVpnClientCertificateRevocationList returns the certificate revocation list currently configured on the Client VPN endpoint.

func (*InMemoryBackend) ExportClientVpnClientConfiguration

func (b *InMemoryBackend) ExportClientVpnClientConfiguration(endpointID string) (string, error)

ExportClientVpnClientConfiguration returns an OpenVPN client configuration file for the given Client VPN endpoint.

func (*InMemoryBackend) ExportImage

func (b *InMemoryBackend) ExportImage(
	imageID, description, diskImageFormat, s3Bucket, s3Prefix, roleName string,
) (*ExportImageTaskRec, error)

ExportImage creates an export task for an AMI, storing task state so it can later be retrieved (and settled to "completed") via DescribeExportImageTasks. If imageID matches a registered AMI, its architecture is folded into the task description when the caller did not supply one.

func (*InMemoryBackend) ExportKeyPair

func (b *InMemoryBackend) ExportKeyPair(name string) (string, error)

ExportKeyPair returns the public-key material for a stored key pair. For keys created via CreateKeyPair a deterministic SSH-authorized-keys line is generated from the fingerprint. AWS similarly stores only the public half.

func (*InMemoryBackend) ExportTransitGatewayRoutes

func (b *InMemoryBackend) ExportTransitGatewayRoutes(routeTableID, s3Bucket string) (string, error)

ExportTransitGatewayRoutes validates the route table exists and returns the S3 URL the (simulated) export was written to.

func (*InMemoryBackend) ExportVerifiedAccessInstanceClientConfiguration

func (b *InMemoryBackend) ExportVerifiedAccessInstanceClientConfiguration(
	instanceID string,
) (*VerifiedAccessInstanceClientConfiguration, error)

ExportVerifiedAccessInstanceClientConfiguration returns the generated client configuration for a Verified Access instance. Device trust provider types and OpenVPN configurations are not modelled (no device-trust-provider subtype or OpenVPN backing is stored), so they are correctly reported as empty; the user trust provider's OIDC configuration is likewise unmodelled and omitted.

func (*InMemoryBackend) GetActiveVpnTunnelStatus

func (b *InMemoryBackend) GetActiveVpnTunnelStatus(
	vpnConnectionID, outsideIPAddress string,
) (*ActiveVpnTunnelStatus, error)

GetActiveVpnTunnelStatus reports the current negotiated security configuration of a single tunnel of a VPN connection, identified by its outside IP address. It reads the real tunnel options already stored on the VPN connection.

func (*InMemoryBackend) GetAllowedImagesSettings

func (b *InMemoryBackend) GetAllowedImagesSettings() *AllowedImagesSettings

GetAllowedImagesSettings returns the current Allowed AMIs setting.

func (*InMemoryBackend) GetAssociatedEnclaveCertificateIamRoles

func (b *InMemoryBackend) GetAssociatedEnclaveCertificateIamRoles(
	certificateArn string,
) ([]*EnclaveCertIamRoleAssociation, error)

GetAssociatedEnclaveCertificateIamRoles returns all IAM roles associated with an ACM certificate. An empty slice (not an error) is returned when the certificate has no associated roles.

func (*InMemoryBackend) GetAssociatedIpv6PoolCidrs

func (b *InMemoryBackend) GetAssociatedIpv6PoolCidrs(poolID string) ([]Ipv6CidrAssociation, error)

GetAssociatedIpv6PoolCidrs returns the CIDR block associations for an IPv6 address pool. This mock does not track live VPC/subnet associations, so it always returns the pool's declared CIDR blocks with no associated resource.

func (*InMemoryBackend) GetAwsNetworkPerformanceData

func (b *InMemoryBackend) GetAwsNetworkPerformanceData(
	queries []NetworkPerformanceDataQuery,
	startTime, endTime time.Time,
) ([]*NetworkPerformanceDataResponse, error)

GetAwsNetworkPerformanceData returns network performance data points for the given queries. Each query's data point is derived deterministically from its source/destination pair so results are stable across repeated calls, since this mock has no real network telemetry to sample from.

func (*InMemoryBackend) GetCapacityManagerAttributes

func (b *InMemoryBackend) GetCapacityManagerAttributes() *CapacityManagerAttributes

GetCapacityManagerAttributes returns the current Capacity Manager status, data export count, and ingestion state for the account.

func (*InMemoryBackend) GetCapacityManagerMetricData

func (b *InMemoryBackend) GetCapacityManagerMetricData() []MetricDataResult

GetCapacityManagerMetricData always returns an empty result set: this backend does not simulate the historical utilization pipeline Capacity Manager aggregates from, so there is no ingested data to report. The response shape matches AWS's for an account with no data points yet available.

func (*InMemoryBackend) GetCapacityManagerMetricDimensions

func (b *InMemoryBackend) GetCapacityManagerMetricDimensions() []CapacityManagerDimension

GetCapacityManagerMetricDimensions always returns an empty result set for the same reason as GetCapacityManagerMetricData.

func (*InMemoryBackend) GetCapacityReservationUsage

func (b *InMemoryBackend) GetCapacityReservationUsage(id string) (*CapacityReservationUsage, error)

GetCapacityReservationUsage derives real usage for a Capacity Reservation from the reservation itself, any instances currently targeting it, and any interruptible allocation carved out of it.

func (*InMemoryBackend) GetCoipPoolUsage

func (b *InMemoryBackend) GetCoipPoolUsage(poolID string) (*CoipPool, error)

GetCoipPoolUsage returns the pool's local gateway route table ID and address usage. This mock does not track live address allocations, so CoipAddressUsages is always empty.

func (*InMemoryBackend) GetConsoleOutput

func (b *InMemoryBackend) GetConsoleOutput(instanceID string) (string, time.Time, error)

GetConsoleOutput returns a base64-encoded console output for an instance. Instances in this mock don't generate real console output; returns empty string.

func (*InMemoryBackend) GetConsoleScreenshot

func (b *InMemoryBackend) GetConsoleScreenshot(instanceID string) (string, error)

GetConsoleScreenshot returns an empty base64-encoded console screenshot.

func (*InMemoryBackend) GetDeclarativePoliciesReportSummary

func (b *InMemoryBackend) GetDeclarativePoliciesReportSummary(
	reportID string,
) (*DeclarativePoliciesReportSummary, error)

GetDeclarativePoliciesReportSummary returns the summary of a Declarative Policies report, settling it to "complete" first if it was still running.

func (*InMemoryBackend) GetDefaultCreditSpecification

func (b *InMemoryBackend) GetDefaultCreditSpecification() string

GetDefaultCreditSpecification returns the account-level default CPU credit spec.

func (*InMemoryBackend) GetEbsDefaultKmsKeyID

func (b *InMemoryBackend) GetEbsDefaultKmsKeyID() string

GetEbsDefaultKmsKeyID returns the default KMS key ID for EBS encryption.

func (*InMemoryBackend) GetEbsEncryptionByDefault

func (b *InMemoryBackend) GetEbsEncryptionByDefault() bool

GetEbsEncryptionByDefault returns the current EBS encryption by default setting.

func (*InMemoryBackend) GetEnabledIpamPolicy

func (b *InMemoryBackend) GetEnabledIpamPolicy() (string, bool, string)

GetEnabledIpamPolicy returns the IPAM policy currently enabled for the current account (the ipamPolicyOrgTargetAccount target), whether one is enabled at all, and who manages it.

func (*InMemoryBackend) GetFlowLogsIntegrationTemplate

func (b *InMemoryBackend) GetFlowLogsIntegrationTemplate(flowLogID, s3DestinationArn string) (string, error)

GetFlowLogsIntegrationTemplate generates a CloudFormation template string wiring an existing flow log to Athena, referencing the flow log's real ID and the requested S3 destination ARN.

func (*InMemoryBackend) GetGroupsForCapacityReservation

func (b *InMemoryBackend) GetGroupsForCapacityReservation(reservationID string) ([]string, error)

GetGroupsForCapacityReservation returns placement groups associated with a reservation. In this implementation, returns an empty list (no group associations tracked).

func (*InMemoryBackend) GetHostReservationPurchasePreview

func (b *InMemoryBackend) GetHostReservationPurchasePreview(
	hostIDs []string,
	offeringID string,
) (*HostReservationPurchasePreview, error)

GetHostReservationPurchasePreview previews the cost of purchasing a Dedicated Host Reservation for the given real Dedicated Hosts and offering, without creating one.

func (*InMemoryBackend) GetImageAncestry

func (b *InMemoryBackend) GetImageAncestry(imageID string) ([]*ImageAncestryEntry, error)

GetImageAncestry walks the SourceImageID chain (populated by CopyImage) from the given AMI up to its root.

func (*InMemoryBackend) GetImageBlockPublicAccessState

func (b *InMemoryBackend) GetImageBlockPublicAccessState() string

GetImageBlockPublicAccessState returns the current image block public access state.

func (*InMemoryBackend) GetInstanceMetadataDefaults

func (b *InMemoryBackend) GetInstanceMetadataDefaults() *InstanceMetadataDefaults

GetInstanceMetadataDefaults returns account-level IMDS defaults.

func (*InMemoryBackend) GetInstanceTpmEkPub

func (b *InMemoryBackend) GetInstanceTpmEkPub(instanceID, keyFormat, keyType string) (string, error)

GetInstanceTpmEkPub returns a deterministic, base64-encoded TPM endorsement key blob for the given instance/format/type. The value is stable across calls for the same (instanceID, keyFormat, keyType) tuple but is not a real cryptographic key.

func (*InMemoryBackend) GetInstanceTypesFromInstanceRequirements

func (b *InMemoryBackend) GetInstanceTypesFromInstanceRequirements() []string

GetInstanceTypesFromInstanceRequirements returns a static list of instance types matching the given requirements (simplified mock).

func (*InMemoryBackend) GetInstanceUefiData

func (b *InMemoryBackend) GetInstanceUefiData(instanceID string) (string, error)

GetInstanceUefiData returns a deterministic, base64-encoded UEFI non-volatile variable store blob for the given instance. The value is stable across calls for the same instance but is not real UEFI data.

func (*InMemoryBackend) GetIpamPolicyAllocationRules

func (b *InMemoryBackend) GetIpamPolicyAllocationRules(
	id, locale, resourceType string,
) ([]*IpamPolicyDocument, error)

GetIpamPolicyAllocationRules returns the allocation rule documents of an IPAM policy, optionally filtered by locale and/or resource type.

func (*InMemoryBackend) GetIpamPolicyOrganizationTargets

func (b *InMemoryBackend) GetIpamPolicyOrganizationTargets(id string) ([]string, error)

GetIpamPolicyOrganizationTargets returns the Organizations target IDs for which the given IPAM policy is currently enabled.

func (*InMemoryBackend) GetIpamPoolAllocations

func (b *InMemoryBackend) GetIpamPoolAllocations(poolID, allocationID string) ([]*IpamPoolAllocation, error)

GetIpamPoolAllocations returns allocations for an IPAM pool, optionally filtered to a single allocation ID.

func (*InMemoryBackend) GetIpamPoolCidrs

func (b *InMemoryBackend) GetIpamPoolCidrs(poolID string) []*IpamPoolCidr

GetIpamPoolCidrs returns the CIDR ranges provisioned to an IPAM pool.

func (*InMemoryBackend) GetIpamPrefixListResolverRules

func (b *InMemoryBackend) GetIpamPrefixListResolverRules(resolverID string) ([]IpamPrefixListResolverRule, error)

GetIpamPrefixListResolverRules returns the current CIDR selection rules of a resolver.

func (*InMemoryBackend) GetIpamPrefixListResolverVersionEntries

func (b *InMemoryBackend) GetIpamPrefixListResolverVersionEntries(resolverID string, version int64) ([]string, error)

GetIpamPrefixListResolverVersionEntries returns the CIDR entries selected by a resolver at a given version. This mock does not implement the live CIDR selection pipeline (matching resources/rules against real infrastructure), so it always returns an empty (but correctly validated and shaped) entry list for any version that was actually created.

func (*InMemoryBackend) GetIpamPrefixListResolverVersions

func (b *InMemoryBackend) GetIpamPrefixListResolverVersions(resolverID string) ([]int64, error)

GetIpamPrefixListResolverVersions returns the version numbers recorded for a resolver: one at creation, plus one for every Modify call that replaced its rules.

func (*InMemoryBackend) GetIpamResourceCidrs

func (b *InMemoryBackend) GetIpamResourceCidrs(
	scopeID, poolID, resourceID, resourceOwner, resourceType string,
) ([]*IpamResourceCidr, error)

GetIpamResourceCidrs returns resource CIDRs monitored by IPAM in the given scope, optionally filtered by pool, resource ID, resource owner, or resource type.

func (*InMemoryBackend) GetLaunchTemplateData

func (b *InMemoryBackend) GetLaunchTemplateData(instanceID string) (*LaunchTemplate, error)

GetLaunchTemplateData returns the launch template data for an instance.

func (*InMemoryBackend) GetManagedPrefixListEntries

func (b *InMemoryBackend) GetManagedPrefixListEntries(id string) ([]PrefixListEntry, error)

GetManagedPrefixListEntries returns the entries for a prefix list.

func (*InMemoryBackend) GetPasswordData

func (b *InMemoryBackend) GetPasswordData(instanceID string) (string, time.Time, error)

GetPasswordData returns the password data for a Windows instance (empty in mock).

func (*InMemoryBackend) GetRouteServerAssociations

func (b *InMemoryBackend) GetRouteServerAssociations(routeServerID string) []*RouteServerAssociation

GetRouteServerAssociations returns the VPC associations for a route server.

func (*InMemoryBackend) GetRouteServerPropagations

func (b *InMemoryBackend) GetRouteServerPropagations(routeServerID string) []*RouteServerPropagation

GetRouteServerPropagations returns the route table propagations for a route server.

func (*InMemoryBackend) GetRouteServerRoutingDatabase

func (b *InMemoryBackend) GetRouteServerRoutingDatabase(routeServerID string) ([]*RouteServerRoute, error)

GetRouteServerRoutingDatabase returns the current computed routing database for a route server, i.e. the routes learned across all of its BGP peers. This emulator does not run a real BGP speaker, so the database reflects the (currently empty, since no peer session has exchanged routes) set of installed routes rather than fabricated entries.

func (*InMemoryBackend) GetSecurityGroupsForVpc

func (b *InMemoryBackend) GetSecurityGroupsForVpc(vpcID string) ([]SecurityGroupForVpcItem, error)

GetSecurityGroupsForVpc returns security groups associated with a VPC.

func (*InMemoryBackend) GetSerialConsoleAccessStatus

func (b *InMemoryBackend) GetSerialConsoleAccessStatus() bool

GetSerialConsoleAccessStatus returns whether serial console access is enabled.

func (*InMemoryBackend) GetSnapshotBlockPublicAccessState

func (b *InMemoryBackend) GetSnapshotBlockPublicAccessState() string

GetSnapshotBlockPublicAccessState returns the account-level block state. Returns "block-all-sharing" (default) if never explicitly set.

func (*InMemoryBackend) GetSpotPlacementScores

func (b *InMemoryBackend) GetSpotPlacementScores(
	instanceTypes, regionNames []string, singleAZ bool,
) ([]*SpotPlacementScoreEntry, error)

GetSpotPlacementScores returns deterministic Spot placement scores for the requested instance types across the requested (or default) regions/AZs.

func (*InMemoryBackend) GetSubnetCidrReservations

func (b *InMemoryBackend) GetSubnetCidrReservations(
	subnetID string,
) ([]*SubnetCIDRReservation, error)

GetSubnetCidrReservations returns CIDR reservations for a subnet.

func (*InMemoryBackend) GetTransitGatewayAttachmentPropagations

func (b *InMemoryBackend) GetTransitGatewayAttachmentPropagations(
	attachmentID string,
) ([]*TransitGatewayAttachmentPropagation, error)

GetTransitGatewayAttachmentPropagations validates the attachment exists and returns its propagations, sourced from the same state EnableTransitGatewayRouteTablePropagation and DisableTransitGatewayRouteTablePropagation maintain.

func (*InMemoryBackend) GetTransitGatewayMeteringPolicyEntries

func (b *InMemoryBackend) GetTransitGatewayMeteringPolicyEntries(
	policyID string,
) ([]*TransitGatewayMeteringPolicyEntry, error)

GetTransitGatewayMeteringPolicyEntries returns the entries for a TGW metering policy, sourced from the same state CreateTransitGatewayMeteringPolicyEntry and DeleteTransitGatewayMeteringPolicyEntry maintain.

func (*InMemoryBackend) GetTransitGatewayMulticastDomainAssociations

func (b *InMemoryBackend) GetTransitGatewayMulticastDomainAssociations(
	domainID string,
) []*TransitGatewayMulticastDomainAssociation

GetTransitGatewayMulticastDomainAssociations returns the subnet associations for a transit gateway multicast domain.

func (*InMemoryBackend) GetTransitGatewayPolicyTableAssociations

func (b *InMemoryBackend) GetTransitGatewayPolicyTableAssociations(
	policyTableID string,
) []*TransitGatewayPolicyTableAssociation

GetTransitGatewayPolicyTableAssociations returns the attachment associations for a policy table.

func (*InMemoryBackend) GetTransitGatewayPolicyTableEntries

func (b *InMemoryBackend) GetTransitGatewayPolicyTableEntries(policyTableID string) error

GetTransitGatewayPolicyTableEntries validates that a policy table exists and returns an empty entry list. Real AWS exposes no API to create policy table entries directly (they are derived internally from attached resources), so an empty list is the correct, non-placeholder shape here.

func (*InMemoryBackend) GetTransitGatewayPrefixListReferences

func (b *InMemoryBackend) GetTransitGatewayPrefixListReferences(
	routeTableID string,
) ([]*TransitGatewayPrefixListReference, error)

GetTransitGatewayPrefixListReferences returns TGW prefix list references for a route table.

func (*InMemoryBackend) GetTransitGatewayRouteTableAssociations

func (b *InMemoryBackend) GetTransitGatewayRouteTableAssociations(
	routeTableID string,
) ([]*TransitGatewayRouteTableAssociation, error)

GetTransitGatewayRouteTableAssociations returns the attachment associations for a TGW route table, sourced from the same state AssociateTransitGatewayRouteTable and DisassociateTransitGatewayRouteTable maintain.

func (*InMemoryBackend) GetTransitGatewayRouteTablePropagations

func (b *InMemoryBackend) GetTransitGatewayRouteTablePropagations(
	routeTableID string,
) ([]*TransitGatewayRouteTablePropagation, error)

GetTransitGatewayRouteTablePropagations validates the route table exists and returns its propagations, sourced from the same state EnableTransitGatewayRouteTablePropagation and DisableTransitGatewayRouteTablePropagation maintain.

func (*InMemoryBackend) GetVerifiedAccessEndpointPolicy

func (b *InMemoryBackend) GetVerifiedAccessEndpointPolicy(id string) (*VerifiedAccessPolicy, error)

GetVerifiedAccessEndpointPolicy returns the stored policy for a Verified Access endpoint. If no policy has ever been set, the zero-value policy (disabled, no document) is returned, matching AWS's default state.

func (*InMemoryBackend) GetVerifiedAccessEndpointTargets

func (b *InMemoryBackend) GetVerifiedAccessEndpointTargets(id string) ([]*VerifiedAccessEndpointTarget, error)

GetVerifiedAccessEndpointTargets returns the resolved network targets for a Verified Access endpoint. Only "cidr" (network-CIDR) endpoints have resolvable targets; since no real network-level target resolution is modelled, this returns the correct empty AWS shape for every endpoint.

func (*InMemoryBackend) GetVerifiedAccessGroupPolicy

func (b *InMemoryBackend) GetVerifiedAccessGroupPolicy(id string) (*VerifiedAccessPolicy, error)

GetVerifiedAccessGroupPolicy returns the stored policy for a Verified Access group. If no policy has ever been set, the zero-value policy (disabled, no document) is returned, matching AWS's default state.

func (*InMemoryBackend) GetVpcPeeringConnectionOptions

func (b *InMemoryBackend) GetVpcPeeringConnectionOptions(
	peeringID string,
) *PeeringConnectionOptions

GetVpcPeeringConnectionOptions returns stored options for a peering connection.

func (*InMemoryBackend) GetVpcResourcesBlockingEncryptionEnforcement

func (b *InMemoryBackend) GetVpcResourcesBlockingEncryptionEnforcement(
	vpcID string,
) ([]*VpcEncryptionNonCompliantResource, error)

GetVpcResourcesBlockingEncryptionEnforcement returns the VPC sub-resources that are blocking encryption enforcement for a VPC. Enforcement blockers arise from unencrypted-traffic-capable resources (e.g. gateways lacking exclusions); this mock's resource set has no such non-compliant resources, so it returns an empty, valid list once the VPC itself is confirmed to exist.

func (*InMemoryBackend) GetVpnConnectionDeviceSampleConfiguration

func (b *InMemoryBackend) GetVpnConnectionDeviceSampleConfiguration(
	vpnConnectionID, deviceTypeID, ikeVersion string,
) (string, error)

GetVpnConnectionDeviceSampleConfiguration generates a sample vendor configuration for a VPN connection's tunnels, targeting the given device type and IKE version.

func (*InMemoryBackend) GetVpnConnectionDeviceTypes

func (b *InMemoryBackend) GetVpnConnectionDeviceTypes() []VpnConnectionDeviceType

GetVpnConnectionDeviceTypes returns the static catalog of customer gateway device vendor/platform/software combinations AWS publishes sample configurations for.

func (*InMemoryBackend) GetVpnConnectionRoutes

func (b *InMemoryBackend) GetVpnConnectionRoutes(vpnConnectionID string) []*VpnConnectionRoute

GetVpnConnectionRoutes returns the static routes registered against a VPN connection.

func (*InMemoryBackend) GetVpnTunnelReplacementStatus

func (b *InMemoryBackend) GetVpnTunnelReplacementStatus(
	vpnConnectionID, outsideIPAddress string,
) (*VpnTunnelReplacementStatus, error)

GetVpnTunnelReplacementStatus reports whether AWS-initiated tunnel endpoint maintenance is pending for a single tunnel of a VPN connection. This mock never schedules maintenance.

func (*InMemoryBackend) ImportClientVpnClientCertificateRevocationList

func (b *InMemoryBackend) ImportClientVpnClientCertificateRevocationList(endpointID, crl string) error

ImportClientVpnClientCertificateRevocationList uploads a certificate revocation list to the Client VPN endpoint.

func (*InMemoryBackend) ImportImage

func (b *InMemoryBackend) ImportImage(
	description, architecture, platform string,
) (*ImageImportTask, error)

ImportImage creates an import task for importing a VM image.

func (*InMemoryBackend) ImportInstance

func (b *InMemoryBackend) ImportInstance(
	description, platform, availabilityZone, diskFormat string, diskBytes, volumeSize int64,
) (*ConversionTask, error)

ImportInstance starts a conversion task that imports a VM image as a new instance.

func (*InMemoryBackend) ImportKeyPair

func (b *InMemoryBackend) ImportKeyPair(name, publicKeyMaterial string) (*KeyPair, error)

ImportKeyPair stores a pre-existing key pair by name. publicKeyMaterial is the OpenSSH-format ("ssh-rsa AAAA...") public key the caller passed in PublicKeyMaterial; when non-empty it is persisted on the KeyPair so the optional Compute provider can write it to authorized_keys on launch.

func (*InMemoryBackend) ImportSnapshot

func (b *InMemoryBackend) ImportSnapshot(description string) (*SnapshotImportTask, error)

ImportSnapshot creates an import task for a snapshot.

func (*InMemoryBackend) ImportVolume

func (b *InMemoryBackend) ImportVolume(
	description, availabilityZone, diskFormat string, diskBytes, volumeSize int64,
) (*ConversionTask, error)

ImportVolume starts a conversion task that imports a disk image as a new EBS volume.

func (*InMemoryBackend) ListImagesInRecycleBin

func (b *InMemoryBackend) ListImagesInRecycleBin(imageIDs []string) []*RecycleBinImage

ListImagesInRecycleBin returns soft-deleted AMIs.

func (*InMemoryBackend) ListSnapshotsInRecycleBin

func (b *InMemoryBackend) ListSnapshotsInRecycleBin(snapshotIDs []string) []*Snapshot

ListSnapshotsInRecycleBin returns soft-deleted snapshots.

func (*InMemoryBackend) ListVolumesInRecycleBin

func (b *InMemoryBackend) ListVolumesInRecycleBin(volumeIDs []string) []*RecycleBinVolume

ListVolumesInRecycleBin returns soft-deleted volumes.

func (*InMemoryBackend) LockSnapshot

func (b *InMemoryBackend) LockSnapshot(
	snapshotID, lockMode string,
	durationDays int,
) (*SnapshotLock, error)

LockSnapshot locks a snapshot to prevent deletion.

func (*InMemoryBackend) LookupInstanceProviderID

func (b *InMemoryBackend) LookupInstanceProviderID(instanceID string) string

LookupInstanceProviderID returns the ProviderID stored on an instance, or empty string when the instance is unknown.

func (*InMemoryBackend) LookupInstancePublicDNSName

func (b *InMemoryBackend) LookupInstancePublicDNSName(instanceID string) string

LookupInstancePublicDNSName returns the synthetic public DNS name assigned to an instance, or empty string when the instance is unknown or has none.

func (*InMemoryBackend) LookupKeyPairAuthorizedKey

func (b *InMemoryBackend) LookupKeyPairAuthorizedKey(name string) string

LookupKeyPairAuthorizedKey returns the OpenSSH authorized_keys-format public key for the named key pair, or empty string when the key pair is unknown or has no derivable public key. Used by Compute providers to seed the launched container's authorized_keys.

func (*InMemoryBackend) ModifyAddressAttribute

func (b *InMemoryBackend) ModifyAddressAttribute(allocationID, domainName string) error

ModifyAddressAttribute sets the domain name for an Elastic IP.

func (*InMemoryBackend) ModifyAvailabilityZoneGroup

func (b *InMemoryBackend) ModifyAvailabilityZoneGroup(groupName, optInStatus string) (bool, error)

ModifyAvailabilityZoneGroup opts an account in (or out) of a Local Zone/Wavelength Zone group.

func (*InMemoryBackend) ModifyCapacityReservation

func (b *InMemoryBackend) ModifyCapacityReservation(reservationID string, instanceCount int) error

ModifyCapacityReservation updates instance count for a capacity reservation.

func (*InMemoryBackend) ModifyCapacityReservationFleet

func (b *InMemoryBackend) ModifyCapacityReservationFleet(
	fleetID string,
	totalTargetCapacity *int32,
	endDate *time.Time,
	removeEndDate bool,
) error

ModifyCapacityReservationFleet updates the total target capacity and/or end date of a Capacity Reservation Fleet. When totalTargetCapacity is non-nil, the fleet's highest-priority instance type specification (and its backing CapacityReservation) is resized to match the new target.

func (*InMemoryBackend) ModifyClientVpnEndpoint

func (b *InMemoryBackend) ModifyClientVpnEndpoint(
	endpointID, description string,
	dnsServers []string,
) error

ModifyClientVpnEndpoint modifies a Client VPN endpoint.

func (*InMemoryBackend) ModifyClientVpnEndpointWithOptions

func (b *InMemoryBackend) ModifyClientVpnEndpointWithOptions(
	endpointID, description string,
	dnsServers []string,
	opts ClientVpnEndpointOptions,
) error

ModifyClientVpnEndpointWithOptions modifies a Client VPN endpoint, including the advanced fields AWS accepts on ModifyClientVpnEndpoint.

func (*InMemoryBackend) ModifyDefaultCreditSpecification

func (b *InMemoryBackend) ModifyDefaultCreditSpecification(cpuCredits string) error

ModifyDefaultCreditSpecification sets the account-level default CPU credit spec.

func (*InMemoryBackend) ModifyEbsDefaultKmsKeyID

func (b *InMemoryBackend) ModifyEbsDefaultKmsKeyID(kmsKeyID string) error

ModifyEbsDefaultKmsKeyID sets the default KMS key ID for EBS encryption.

func (*InMemoryBackend) ModifyFleet

func (b *InMemoryBackend) ModifyFleet(id string, totalTargetCapacity int, excessPolicy string) error

func (*InMemoryBackend) ModifyFpgaImageAttribute

func (b *InMemoryBackend) ModifyFpgaImageAttribute(
	id string,
	mod FpgaImageAttributeModification,
) (*FpgaImage, error)

ModifyFpgaImageAttribute mutates a single attribute of an FPGA image and returns the updated image.

func (*InMemoryBackend) ModifyHosts

func (b *InMemoryBackend) ModifyHosts(
	hostIDs []string, autoPlacement, hostMaintenance, hostRecovery, instanceFamily, instanceType string,
) ([]string, []HostModifyFailure, error)

ModifyHosts updates auto-placement/maintenance/recovery/instance-type-or-family settings on one or more Dedicated Hosts.

func (*InMemoryBackend) ModifyIDFormat

func (b *InMemoryBackend) ModifyIDFormat(resource string, useLongIDs bool) error

ModifyIDFormat updates the long-ID setting for a resource type.

func (*InMemoryBackend) ModifyIdentityIDFormat

func (b *InMemoryBackend) ModifyIdentityIDFormat(
	_ string, resource string,
	useLongIDs bool,
) error

ModifyIdentityIDFormat updates the long-ID setting for a resource type (identity-scoped; same store as account).

func (*InMemoryBackend) ModifyImageAttribute

func (b *InMemoryBackend) ModifyImageAttribute(imageID, attribute, value string) error

ModifyImageAttribute modifies a mutable AMI attribute.

func (*InMemoryBackend) ModifyInstanceCPUOptions

func (b *InMemoryBackend) ModifyInstanceCPUOptions(
	instanceID string, coreCount, threadsPerCore *int32, nestedVirtualization string,
) (*Instance, error)

ModifyInstanceCPUOptions updates an instance's CPU core count, threads per core, and nested virtualization setting. The instance must be stopped.

func (*InMemoryBackend) ModifyInstanceCapacityReservationAttributes

func (b *InMemoryBackend) ModifyInstanceCapacityReservationAttributes(
	instanceID, preference, targetID, targetArn string,
) (*Instance, error)

ModifyInstanceCapacityReservationAttributes updates an instance's Capacity Reservation targeting preference.

func (*InMemoryBackend) ModifyInstanceConnectEndpoint

func (b *InMemoryBackend) ModifyInstanceConnectEndpoint(id string, preserveClientIP bool) error

ModifyInstanceConnectEndpoint modifies preserveClientIP for an endpoint.

func (*InMemoryBackend) ModifyInstanceCreditSpecification

func (b *InMemoryBackend) ModifyInstanceCreditSpecification(
	instanceID, cpuCredits string,
) error

ModifyInstanceCreditSpecification updates the CPU credit spec for an instance.

func (*InMemoryBackend) ModifyInstanceEventStartTime

func (b *InMemoryBackend) ModifyInstanceEventStartTime(
	instanceID, instanceEventID string, notBefore time.Time,
) (*InstanceStatusEventRec, error)

ModifyInstanceEventStartTime overrides the start time of a scheduled instance event.

func (*InMemoryBackend) ModifyInstanceEventWindow

func (b *InMemoryBackend) ModifyInstanceEventWindow(id, name, cronExpression string) error

ModifyInstanceEventWindow updates the cron expression for an event window.

func (*InMemoryBackend) ModifyInstanceMaintenanceOptions

func (b *InMemoryBackend) ModifyInstanceMaintenanceOptions(
	instanceID, autoRecovery, rebootMigration string,
) (*Instance, error)

ModifyInstanceMaintenanceOptions updates an instance's automatic recovery and reboot migration behavior.

func (*InMemoryBackend) ModifyInstanceMetadataDefaults

func (b *InMemoryBackend) ModifyInstanceMetadataDefaults(
	httpTokens, httpEndpoint, instanceMetadataTags string,
	hopLimit int,
) error

ModifyInstanceMetadataDefaults updates account-level IMDS defaults.

func (*InMemoryBackend) ModifyInstanceMetadataOptions

func (b *InMemoryBackend) ModifyInstanceMetadataOptions(
	instanceID, httpTokens, httpEndpoint, instanceMetadataTags string,
	hopLimit int,
) (*IMDSOptions, error)

ModifyInstanceMetadataOptions updates IMDS settings for an instance.

func (*InMemoryBackend) ModifyInstanceNetworkPerformanceOptions

func (b *InMemoryBackend) ModifyInstanceNetworkPerformanceOptions(
	instanceID, bandwidthWeighting string,
) (*Instance, error)

ModifyInstanceNetworkPerformanceOptions updates an instance's bandwidth weighting configuration.

func (*InMemoryBackend) ModifyInstancePlacement

func (b *InMemoryBackend) ModifyInstancePlacement(in ModifyInstancePlacementInput) (bool, error)

ModifyInstancePlacement updates an instance's placement group, tenancy, affinity, or Dedicated Host association. The instance must be stopped.

func (*InMemoryBackend) ModifyIpam

func (b *InMemoryBackend) ModifyIpam(id string, opts IpamOptions) (*Ipam, error)

ModifyIpam updates an IPAM's description, operating regions, or tier.

func (*InMemoryBackend) ModifyIpamPolicyAllocationRules

func (b *InMemoryBackend) ModifyIpamPolicyAllocationRules(
	id, locale, resourceType string, rules []IpamPolicyAllocationRule,
) (*IpamPolicyDocument, error)

ModifyIpamPolicyAllocationRules replaces the allocation rules of an IPAM policy for the given (locale, resourceType) pair.

func (*InMemoryBackend) ModifyIpamPool

func (b *InMemoryBackend) ModifyIpamPool(id string, opts IpamPoolOptions) (*IpamPool, error)

ModifyIpamPool updates mutable attributes of an IPAM pool.

func (*InMemoryBackend) ModifyIpamPrefixListResolver

func (b *InMemoryBackend) ModifyIpamPrefixListResolver(
	id, description string, rules []IpamPrefixListResolverRule, rulesProvided bool,
) (*IpamPrefixListResolver, error)

ModifyIpamPrefixListResolver updates a resolver's description and, if rulesProvided is true, replaces its CIDR selection rules entirely (creating a new version).

func (*InMemoryBackend) ModifyIpamPrefixListResolverTarget

func (b *InMemoryBackend) ModifyIpamPrefixListResolverTarget(
	id string, desiredVersion *int64, trackLatestVersion *bool,
) (*IpamPrefixListResolverTarget, error)

ModifyIpamPrefixListResolverTarget updates a target's desired version and/or track-latest-version flag. Nil pointers leave the corresponding field unchanged.

func (*InMemoryBackend) ModifyIpamResourceCidr

func (b *InMemoryBackend) ModifyIpamResourceCidr(
	currentScopeID, resourceCidr, resourceID, resourceRegion string, monitored bool, destScopeID string,
) (*IpamResourceCidr, error)

ModifyIpamResourceCidr moves a monitored resource CIDR between scopes and/or updates its monitored flag.

func (*InMemoryBackend) ModifyIpamResourceDiscovery

func (b *InMemoryBackend) ModifyIpamResourceDiscovery(
	id, description string, addOperatingRegions, removeOperatingRegions []string,
) (*IpamResourceDiscovery, error)

ModifyIpamResourceDiscovery updates a resource discovery's description and operating regions.

func (*InMemoryBackend) ModifyIpamScope

func (b *InMemoryBackend) ModifyIpamScope(id, description string) (*IpamScope, error)

ModifyIpamScope updates an IPAM scope's description.

func (*InMemoryBackend) ModifyLaunchTemplate

func (b *InMemoryBackend) ModifyLaunchTemplate(
	id string,
	defaultVersion int64,
) (*LaunchTemplate, error)

ModifyLaunchTemplate updates the default version of a launch template.

func (*InMemoryBackend) ModifyLocalGatewayRoute

func (b *InMemoryBackend) ModifyLocalGatewayRoute(
	routeTableID, destinationCIDR, destinationPrefixListID, vifGroupID, eniID string,
) (*LocalGatewayRoute, error)

ModifyLocalGatewayRoute updates the target of an existing local gateway route.

func (*InMemoryBackend) ModifyManagedPrefixList

func (b *InMemoryBackend) ModifyManagedPrefixList(
	id string,
	addEntries, removeEntries []PrefixListEntry,
) error

ModifyManagedPrefixList modifies a managed prefix list.

func (*InMemoryBackend) ModifyNetworkInterfaceAttribute

func (b *InMemoryBackend) ModifyNetworkInterfaceAttribute(eniID, attr, value string) error

ModifyNetworkInterfaceAttribute updates a single attribute of an ENI. Supported attributes: description, sourceDestCheck.

func (*InMemoryBackend) ModifyPrivateDNSNameOptions

func (b *InMemoryBackend) ModifyPrivateDNSNameOptions(
	instanceID, hostnameType string, enableARecord, enableAAAARecord *bool,
) (bool, error)

ModifyPrivateDNSNameOptions updates an instance's private DNS hostname type and DNS record settings.

func (*InMemoryBackend) ModifyPublicIPDNSNameOptions

func (b *InMemoryBackend) ModifyPublicIPDNSNameOptions(networkInterfaceID, hostnameType string) (bool, error)

ModifyPublicIPDNSNameOptions updates a network interface's public DNS hostname type.

func (*InMemoryBackend) ModifyReservedInstances

func (b *InMemoryBackend) ModifyReservedInstances(
	_ []string,
	_ string,
	_ int,
) (*ReservedInstancesModification, error)

func (*InMemoryBackend) ModifyRouteServer

func (b *InMemoryBackend) ModifyRouteServer(
	id string,
	persistRoutesState string,
	persistRoutesDuration int64,
	snsNotificationsEnabled bool,
) (*RouteServer, error)

ModifyRouteServer updates mutable fields of an existing route server.

func (*InMemoryBackend) ModifySecurityGroupRules

func (b *InMemoryBackend) ModifySecurityGroupRules(
	groupID string,
	updates []SecurityGroupRule,
	egress bool,
) error

ModifySecurityGroupRules updates one or more rules (by position index) within a security group. Only protocol, IPRange, and port range can be mutated; egress/ingress direction is immutable.

func (*InMemoryBackend) ModifySnapshotTier

func (b *InMemoryBackend) ModifySnapshotTier(snapshotID, storageTier string) error

ModifySnapshotTier updates the storage tier for a snapshot ("archive" or "standard").

func (*InMemoryBackend) ModifySpotFleetRequest

func (b *InMemoryBackend) ModifySpotFleetRequest(
	fleetID string,
	targetCapacity int,
	excessTermination string,
) (*SpotFleetRequest, error)

ModifySpotFleetRequest updates the target capacity of a spot fleet request.

func (*InMemoryBackend) ModifySubnetAttribute

func (b *InMemoryBackend) ModifySubnetAttribute(subnetID, attribute string, value bool) error

ModifySubnetAttribute enables or disables auto-assign public IP for a subnet.

func (*InMemoryBackend) ModifyTrafficMirrorFilterNetworkServices

func (b *InMemoryBackend) ModifyTrafficMirrorFilterNetworkServices(id string, add, remove []string) error

func (*InMemoryBackend) ModifyTrafficMirrorFilterRule

func (b *InMemoryBackend) ModifyTrafficMirrorFilterRule(id, action, description string) error

func (*InMemoryBackend) ModifyTrafficMirrorSession

func (b *InMemoryBackend) ModifyTrafficMirrorSession(id, targetID, filterID, description string) error

func (*InMemoryBackend) ModifyTransitGateway

func (b *InMemoryBackend) ModifyTransitGateway(tgwID, description string) error

ModifyTransitGateway updates properties of a transit gateway.

func (*InMemoryBackend) ModifyTransitGatewayAttribute

func (b *InMemoryBackend) ModifyTransitGatewayAttribute(id, description string) error

ModifyTransitGatewayAttribute updates the description of a transit gateway.

func (*InMemoryBackend) ModifyTransitGatewayMeteringPolicy

func (b *InMemoryBackend) ModifyTransitGatewayMeteringPolicy(
	policyID string,
	addAttachmentIDs, removeAttachmentIDs []string,
) (*TransitGatewayMeteringPolicy, error)

ModifyTransitGatewayMeteringPolicy adds and/or removes middlebox attachment IDs from a TGW metering policy.

func (*InMemoryBackend) ModifyTransitGatewayPrefixListReference

func (b *InMemoryBackend) ModifyTransitGatewayPrefixListReference(
	routeTableID, prefixListID, attachmentID string,
	blackhole bool,
) (*TransitGatewayPrefixListReference, error)

ModifyTransitGatewayPrefixListReference updates the blackhole flag and/or target attachment of an existing TGW prefix list reference.

func (*InMemoryBackend) ModifyTransitGatewayVpcAttachment

func (b *InMemoryBackend) ModifyTransitGatewayVpcAttachment(
	attachmentID string,
	addSubnetIDs, removeSubnetIDs []string,
) (*TransitGatewayVpcAttachment, error)

ModifyTransitGatewayVpcAttachment adds and/or removes subnets from a TGW VPC attachment.

func (*InMemoryBackend) ModifyVerifiedAccessEndpoint

func (b *InMemoryBackend) ModifyVerifiedAccessEndpoint(id, description string) error

ModifyVerifiedAccessEndpoint modifies a Verified Access endpoint.

func (*InMemoryBackend) ModifyVerifiedAccessEndpointPolicy

func (b *InMemoryBackend) ModifyVerifiedAccessEndpointPolicy(
	id string,
	policyEnabled bool,
	policyDocument string,
) (*VerifiedAccessPolicy, error)

ModifyVerifiedAccessEndpointPolicy sets the policy document/status for a Verified Access endpoint and returns the resulting stored policy.

func (*InMemoryBackend) ModifyVerifiedAccessGroup

func (b *InMemoryBackend) ModifyVerifiedAccessGroup(
	id, instanceID, description string,
) (*VerifiedAccessGroup, error)

ModifyVerifiedAccessGroup updates a Verified Access group's description and/or moves it to a different Verified Access instance, mutating the existing group created by CreateVerifiedAccessGroup.

func (*InMemoryBackend) ModifyVerifiedAccessGroupPolicy

func (b *InMemoryBackend) ModifyVerifiedAccessGroupPolicy(
	id string,
	policyEnabled bool,
	policyDocument string,
) (*VerifiedAccessPolicy, error)

ModifyVerifiedAccessGroupPolicy sets the policy document/status for a Verified Access group and returns the resulting stored policy.

func (*InMemoryBackend) ModifyVerifiedAccessInstance

func (b *InMemoryBackend) ModifyVerifiedAccessInstance(id, description string) (*VerifiedAccessInstance, error)

ModifyVerifiedAccessInstance updates a Verified Access instance's description, mutating the existing instance created by CreateVerifiedAccessInstance.

func (*InMemoryBackend) ModifyVerifiedAccessInstanceLoggingConfiguration

func (b *InMemoryBackend) ModifyVerifiedAccessInstanceLoggingConfiguration(
	instanceID string,
	accessLogs VerifiedAccessLogOptions,
) (*VerifiedAccessInstanceLoggingConfig, error)

ModifyVerifiedAccessInstanceLoggingConfiguration sets the logging configuration for a Verified Access instance and returns the resulting stored configuration.

func (*InMemoryBackend) ModifyVerifiedAccessTrustProvider

func (b *InMemoryBackend) ModifyVerifiedAccessTrustProvider(
	id, description string,
) (*VerifiedAccessTrustProvider, error)

ModifyVerifiedAccessTrustProvider updates a Verified Access trust provider's description, mutating the existing trust provider created by CreateVerifiedAccessTrustProvider.

func (*InMemoryBackend) ModifyVolume

func (b *InMemoryBackend) ModifyVolume(
	volumeID, volumeType string,
	size, iops int,
) (*VolumeModification, error)

ModifyVolume records a volume modification request and immediately applies the target type/size so DescribeVolumes reflects the change.

func (*InMemoryBackend) ModifyVpcAttribute

func (b *InMemoryBackend) ModifyVpcAttribute(vpcID, attribute string, value bool) error

ModifyVpcAttribute enables or disables DNS support or DNS hostnames for a VPC.

func (*InMemoryBackend) ModifyVpcBlockPublicAccessExclusion

func (b *InMemoryBackend) ModifyVpcBlockPublicAccessExclusion(
	exclusionID, mode string,
) (*VpcBlockPublicAccessExclusion, error)

ModifyVpcBlockPublicAccessExclusion updates the exclusion mode of an existing exclusion.

func (*InMemoryBackend) ModifyVpcBlockPublicAccessOptions

func (b *InMemoryBackend) ModifyVpcBlockPublicAccessOptions(blockMode string) (*VpcBlockPublicAccessOptions, error)

ModifyVpcBlockPublicAccessOptions updates the account+region VPC BPA mode.

func (*InMemoryBackend) ModifyVpcEncryptionControl

func (b *InMemoryBackend) ModifyVpcEncryptionControl(
	id, mode string,
	exclusions VpcEncryptionControlExclusionModify,
) (*VpcEncryptionControl, error)

ModifyVpcEncryptionControl updates the mode and/or per-traffic-type exclusions of an existing VPC Encryption Control configuration.

func (*InMemoryBackend) ModifyVpcEndpoint

func (b *InMemoryBackend) ModifyVpcEndpoint(
	endpointID string,
	addSubnetIDs, removeSubnetIDs []string,
) error

ModifyVpcEndpoint modifies a VPC endpoint (adds/removes subnets, SGs, route tables).

func (*InMemoryBackend) ModifyVpcEndpointConnectionNotification

func (b *InMemoryBackend) ModifyVpcEndpointConnectionNotification(
	id, notifARN string,
	events []string,
) (*VpcEndpointConnectionNotification, error)

ModifyVpcEndpointConnectionNotification updates events or state for a notification.

func (*InMemoryBackend) ModifyVpcEndpointServiceConfiguration

func (b *InMemoryBackend) ModifyVpcEndpointServiceConfiguration(
	id string,
	acceptanceRequired bool,
) error

ModifyVpcEndpointServiceConfiguration updates acceptance required for a service config.

func (*InMemoryBackend) ModifyVpcEndpointServicePayerResponsibility

func (b *InMemoryBackend) ModifyVpcEndpointServicePayerResponsibility(
	serviceID, _ string,
) error

ModifyVpcEndpointServicePayerResponsibility updates payer responsibility.

func (*InMemoryBackend) ModifyVpcEndpointServicePermissions

func (b *InMemoryBackend) ModifyVpcEndpointServicePermissions(
	serviceID string,
	add, remove []string,
) error

ModifyVpcEndpointServicePermissions adds/removes allowed principals for a service.

func (*InMemoryBackend) ModifyVpcPeeringConnectionOptions

func (b *InMemoryBackend) ModifyVpcPeeringConnectionOptions(
	peeringID string,
	opts PeeringConnectionOptions,
) error

ModifyVpcPeeringConnectionOptions updates DNS options for a VPC peering connection.

func (*InMemoryBackend) ModifyVpcTenancy

func (b *InMemoryBackend) ModifyVpcTenancy(vpcID, tenancy string) error

ModifyVpcTenancy sets the instance tenancy for a VPC ("default" or "dedicated").

func (*InMemoryBackend) ModifyVpnConnection

func (b *InMemoryBackend) ModifyVpnConnection(vpnConnectionID, vpnGatewayID string) error

ModifyVpnConnection moves a VPN connection onto a different VPN Gateway. An empty vpnGatewayID leaves the connection's gateway attachment unchanged.

func (*InMemoryBackend) ModifyVpnConnectionOptions

func (b *InMemoryBackend) ModifyVpnConnectionOptions(
	vpnConnectionID, localIPv4CIDR, remoteIPv4CIDR string, staticRoutesOnly *bool,
) (*VpnConnection, error)

ModifyVpnConnectionOptions updates the negotiated local/remote IPv4 network CIDRs and the static-routes-only flag of a VPN connection. Empty strings and a nil staticRoutesOnly leave the corresponding field unchanged.

func (*InMemoryBackend) ModifyVpnTunnelCertificate

func (b *InMemoryBackend) ModifyVpnTunnelCertificate(
	vpnConnectionID, outsideIPAddress string,
) (*VpnConnection, error)

ModifyVpnTunnelCertificate provisions a private-certificate-based authentication certificate for a single tunnel of a VPN connection, identified by its outside IP address.

func (*InMemoryBackend) ModifyVpnTunnelOptions

func (b *InMemoryBackend) ModifyVpnTunnelOptions(
	vpnConnectionID, outsideIPAddress string, opts VpnTunnelOptionsModify,
) (*VpnConnection, error)

ModifyVpnTunnelOptions updates the configuration of a single tunnel of a VPN connection, identified by its outside IP address. Zero-valued fields in opts leave the corresponding tunnel field unchanged.

func (*InMemoryBackend) MonitorInstances

func (b *InMemoryBackend) MonitorInstances(instanceIDs []string) ([]MonitoringState, error)

MonitorInstances enables detailed monitoring for the given instances.

func (*InMemoryBackend) MoveAddressToVpc

func (b *InMemoryBackend) MoveAddressToVpc(publicIP string) (*Address, error)

MoveAddressToVpc marks an existing Elastic IP as moving into the VPC platform, overlaying EC2-Classic move status on top of the existing address state.

func (*InMemoryBackend) MoveByoipCidrToIpam

func (b *InMemoryBackend) MoveByoipCidrToIpam(cidr, poolID, poolOwner string) (*ByoipCidr, error)

MoveByoipCidrToIpam associates an existing BYOIPv4 CIDR with an IPAM pool, making it allocatable from that pool going forward. poolOwner (the AWS account ID that owns the IPAM pool) is required by the AWS API but, since this mock only models a single account, is not otherwise validated against pool ownership.

func (*InMemoryBackend) MoveCapacityReservationInstances

func (b *InMemoryBackend) MoveCapacityReservationInstances(
	sourceID, destinationID string,
	instanceCount int,
) (*CapacityReservation, *CapacityReservation, error)

MoveCapacityReservationInstances moves instanceCount instances from the source Capacity Reservation into the destination Capacity Reservation. Both reservations must already exist and share the same instance type.

func (*InMemoryBackend) PrimaryNetworkInterfaceSourceDestCheck

func (b *InMemoryBackend) PrimaryNetworkInterfaceSourceDestCheck(instanceID string) bool

PrimaryNetworkInterfaceSourceDestCheck returns the sourceDestCheck flag of instanceID's primary network interface. AWS defaults this to true for VPC instances; unknown instances/interfaces also report true to match that default rather than a zero-value false.

func (*InMemoryBackend) ProvisionByoipCidr

func (b *InMemoryBackend) ProvisionByoipCidr(cidr, description string) (*ByoipCidr, error)

func (*InMemoryBackend) ProvisionIpamByoasn

func (b *InMemoryBackend) ProvisionIpamByoasn(ipamID, asn string) (*IpamByoasn, error)

ProvisionIpamByoasn provisions a public ASN for use with an IPAM's BYOIP CIDRs.

func (*InMemoryBackend) ProvisionIpamPoolCidr

func (b *InMemoryBackend) ProvisionIpamPoolCidr(poolID, cidr string) (*IpamPoolCidr, error)

ProvisionIpamPoolCidr adds a CIDR range to an IPAM pool's provisioned space.

func (*InMemoryBackend) ProvisionPublicIpv4PoolCidr

func (b *InMemoryBackend) ProvisionPublicIpv4PoolCidr(poolID string, netmaskLength int32) (*Ipv4PoolRange, error)

ProvisionPublicIpv4PoolCidr provisions a CIDR of the given netmask length (carved out of a synthetic /16 derived from the pool ID) into a public IPv4 pool.

func (*InMemoryBackend) PurchaseCapacityBlock

func (b *InMemoryBackend) PurchaseCapacityBlock(
	offeringID, instancePlatform string,
	tags map[string]string,
) (*CapacityBlock, *CapacityReservation, error)

PurchaseCapacityBlock purchases a previously described Capacity Block offering, creating a backing CapacityReservation and a CapacityBlock record.

func (*InMemoryBackend) PurchaseCapacityBlockExtension

func (b *InMemoryBackend) PurchaseCapacityBlockExtension(
	extensionOfferingID, reservationID string,
) (*CapacityBlockExtension, error)

PurchaseCapacityBlockExtension purchases a previously described Capacity Block extension offering, extending the backing Capacity Block's end date.

func (*InMemoryBackend) PurchaseHostReservation

func (b *InMemoryBackend) PurchaseHostReservation(
	hostIDs []string,
	offeringID string,
	tags map[string]string,
) (*HostReservationPurchasePreview, error)

PurchaseHostReservation purchases a Dedicated Host Reservation for the given real Dedicated Hosts and offering, creating real reservation state.

func (*InMemoryBackend) PurchaseReservedInstancesOffering

func (b *InMemoryBackend) PurchaseReservedInstancesOffering(
	offeringID string,
	instanceCount int,
) (*ReservedInstance, error)

func (*InMemoryBackend) PurchaseScheduledInstances

func (b *InMemoryBackend) PurchaseScheduledInstances(
	requests []ScheduledInstancePurchaseRequest,
) ([]*ScheduledInstance, error)

PurchaseScheduledInstances purchases one or more schedules from the static availability catalog identified by purchase token, creating a ScheduledInstance for each request.

func (*InMemoryBackend) RebootInstances

func (b *InMemoryBackend) RebootInstances(ids []string) error

RebootInstances validates that all given instances exist (no state change).

func (*InMemoryBackend) RegisterImage

func (b *InMemoryBackend) RegisterImage(name, description, architecture string) (*AMIStub, error)

RegisterImage registers a new AMI from a snapshot or manifest.

func (*InMemoryBackend) RegisterInstanceEventNotificationAttributes

func (b *InMemoryBackend) RegisterInstanceEventNotificationAttributes(includeAllTags bool)

RegisterInstanceEventNotificationAttributes enables all-tag notification for instance events.

func (*InMemoryBackend) RegisterTransitGatewayMulticastGroupMembers

func (b *InMemoryBackend) RegisterTransitGatewayMulticastGroupMembers(
	domainID, groupIP string,
	eniIDs []string,
) (*TransitGatewayMulticastGroupMembership, error)

RegisterTransitGatewayMulticastGroupMembers registers network interfaces as members of a transit gateway multicast group.

func (*InMemoryBackend) RegisterTransitGatewayMulticastGroupSources

func (b *InMemoryBackend) RegisterTransitGatewayMulticastGroupSources(
	domainID, groupIP string,
	eniIDs []string,
) (*TransitGatewayMulticastGroupMembership, error)

RegisterTransitGatewayMulticastGroupSources registers network interfaces as sources of a transit gateway multicast group.

func (*InMemoryBackend) RejectCapacityReservationBillingOwnership

func (b *InMemoryBackend) RejectCapacityReservationBillingOwnership(
	reservationID string,
) error

RejectCapacityReservationBillingOwnership rejects a pending billing ownership request sent to this account for the given Capacity Reservation.

func (*InMemoryBackend) RejectTransitGatewayMulticastDomainAssociations

func (b *InMemoryBackend) RejectTransitGatewayMulticastDomainAssociations(
	domainID, attachmentID string,
	subnetIDs []string,
) ([]*TransitGatewayMulticastDomainAssociation, error)

RejectTransitGatewayMulticastDomainAssociations rejects a request to associate subnets with a transit gateway multicast domain, transitioning the association state to "rejected". Mirrors DisassociateTransitGatewayMulticastDomain.

func (*InMemoryBackend) RejectTransitGatewayPeeringAttachment

func (b *InMemoryBackend) RejectTransitGatewayPeeringAttachment(
	attachmentID string,
) (*TransitGatewayPeeringAttachment, error)

RejectTransitGatewayPeeringAttachment rejects a pending TGW peering attachment, transitioning its state to "rejected".

func (*InMemoryBackend) RejectTransitGatewayVpcAttachment

func (b *InMemoryBackend) RejectTransitGatewayVpcAttachment(
	attachmentID string,
) (*TransitGatewayVpcAttachment, error)

RejectTransitGatewayVpcAttachment rejects a pending TGW VPC attachment, transitioning its state to "rejected".

func (*InMemoryBackend) RejectVpcEndpointConnections

func (b *InMemoryBackend) RejectVpcEndpointConnections(serviceID string, vpcEndpointIDs []string) ([]string, error)

RejectVpcEndpointConnections rejects existing pending VPC endpoint connections for a service. Endpoint IDs with no matching connection are reported back as unsuccessful, matching AcceptVpcEndpointConnections' sibling behaviour of never fabricating a connection that was never requested.

func (*InMemoryBackend) RejectVpcPeeringConnection

func (b *InMemoryBackend) RejectVpcPeeringConnection(id string) error

RejectVpcPeeringConnection rejects a pending VPC peering connection.

func (*InMemoryBackend) ReleaseAddress

func (b *InMemoryBackend) ReleaseAddress(allocationID string) error

ReleaseAddress releases an Elastic IP allocation.

func (*InMemoryBackend) ReleaseHosts

func (b *InMemoryBackend) ReleaseHosts(hostIDs []string) ([]string, []HostReleaseResult)

ReleaseHosts releases real Dedicated Hosts, removing them from backend state. Hosts that do not exist are reported as unsuccessful rather than causing the whole request to fail, matching AWS's per-resource partial-failure behavior.

func (*InMemoryBackend) ReleaseIpamPoolAllocation

func (b *InMemoryBackend) ReleaseIpamPoolAllocation(poolID, allocationID string) error

ReleaseIpamPoolAllocation releases an IPAM pool allocation.

func (*InMemoryBackend) ReplaceIamInstanceProfileAssociation

func (b *InMemoryBackend) ReplaceIamInstanceProfileAssociation(
	associationID, profileARN string,
) (*IamInstanceProfileAssociation, error)

ReplaceIamInstanceProfileAssociation replaces an IAM instance profile on an existing association.

func (*InMemoryBackend) ReplaceImageCriteriaInAllowedImagesSettings

func (b *InMemoryBackend) ReplaceImageCriteriaInAllowedImagesSettings(criteria []ImageCriterion) bool

ReplaceImageCriteriaInAllowedImagesSettings replaces the full list of image criteria.

func (*InMemoryBackend) ReplaceNetworkACLAssociation

func (b *InMemoryBackend) ReplaceNetworkACLAssociation(aclID, subnetID string) (string, error)

ReplaceNetworkACLAssociation moves a subnet from its current NACL to the specified one and returns a new association ID.

func (*InMemoryBackend) ReplaceNetworkACLEntry

func (b *InMemoryBackend) ReplaceNetworkACLEntry(
	aclID string, ruleNumber int, protocol, action, cidr string,
	egress bool, fromPort, toPort int,
) error

ReplaceNetworkACLEntry replaces an existing NACL rule identified by (aclID, ruleNumber, egress) with new parameters.

func (*InMemoryBackend) ReplaceRoute

func (b *InMemoryBackend) ReplaceRoute(rtID, destCIDR, gatewayID, natGatewayID string) error

ReplaceRoute replaces an existing route in a route table.

func (*InMemoryBackend) ReplaceRouteTableAssociation

func (b *InMemoryBackend) ReplaceRouteTableAssociation(
	associationID, newRouteTableID string,
) (string, error)

ReplaceRouteTableAssociation replaces an existing route table association with a new route table. Returns the new association ID.

func (*InMemoryBackend) ReplaceTransitGatewayRoute

func (b *InMemoryBackend) ReplaceTransitGatewayRoute(
	routeTableID, destinationCIDR, attachmentID string,
) (*TransitGatewayRoute, error)

ReplaceTransitGatewayRoute replaces (or upserts) a route in a TGW route table.

func (*InMemoryBackend) ReplaceVpnTunnel

func (b *InMemoryBackend) ReplaceVpnTunnel(vpnConnectionID, outsideIPAddress string) (bool, error)

ReplaceVpnTunnel rotates a single tunnel of a VPN connection: a new pre-shared key is generated and the tunnel's telemetry is stamped to reflect the replacement, mirroring AWS's tunnel endpoint replacement behavior.

func (*InMemoryBackend) ReportInstanceStatus

func (b *InMemoryBackend) ReportInstanceStatus(instanceID string, _ string, _ string) error

ReportInstanceStatus records a custom status for an instance.

func (*InMemoryBackend) RequestSpotFleet

func (b *InMemoryBackend) RequestSpotFleet(
	config SpotFleetRequestConfig,
) (*SpotFleetRequest, error)

RequestSpotFleet creates a new Spot Fleet request and fulfills it by spawning instances up to TargetCapacity.

func (*InMemoryBackend) RequestSpotInstances

func (b *InMemoryBackend) RequestSpotInstances(
	imageID, instanceType, subnetID, spotPrice string,
) (*SpotInstanceRequest, error)

RequestSpotInstances creates a spot instance request and immediately fulfils it with a running instance.

func (*InMemoryBackend) Reset

func (b *InMemoryBackend) Reset()

Reset clears all resource state in the backend, returning it to its initial state. All resource maps for original and new operations are re-created, and defaults (default VPC, subnet, security group) are re-populated.

func (*InMemoryBackend) ResetAddressAttribute

func (b *InMemoryBackend) ResetAddressAttribute(allocationID string) error

ResetAddressAttribute clears the domain name for an Elastic IP.

func (*InMemoryBackend) ResetEbsDefaultKmsKeyID

func (b *InMemoryBackend) ResetEbsDefaultKmsKeyID()

ResetEbsDefaultKmsKeyID resets the EBS default KMS key to the AWS-managed key.

func (*InMemoryBackend) ResetFpgaImageAttribute

func (b *InMemoryBackend) ResetFpgaImageAttribute(id, attribute string) error

ResetFpgaImageAttribute resets an FPGA image attribute to its default value. Only "loadPermission" is resettable, matching AWS.

func (*InMemoryBackend) ResetImageAttribute

func (b *InMemoryBackend) ResetImageAttribute(imageID, attribute string) error

ResetImageAttribute resets an AMI attribute to its default.

func (*InMemoryBackend) ResetNetworkInterfaceAttribute

func (b *InMemoryBackend) ResetNetworkInterfaceAttribute(niID string) error

ResetNetworkInterfaceAttribute resets sourceDestCheck to true for a network interface.

func (*InMemoryBackend) ResetSnapshotAttribute

func (b *InMemoryBackend) ResetSnapshotAttribute(snapshotID string) error

ResetSnapshotAttribute resets the createVolumePermission attribute of a snapshot.

func (*InMemoryBackend) Restore

func (b *InMemoryBackend) Restore(ctx context.Context, data []byte) error

Restore loads backend state from a JSON snapshot. It implements persistence.Persistable.

func (*InMemoryBackend) RestoreAddressToClassic

func (b *InMemoryBackend) RestoreAddressToClassic(publicIP string) error

RestoreAddressToClassic moves an EIP from VPC to EC2-Classic (no-op in mock).

func (*InMemoryBackend) RestoreImageFromRecycleBin

func (b *InMemoryBackend) RestoreImageFromRecycleBin(imageID string) error

RestoreImageFromRecycleBin restores a soft-deleted AMI.

func (*InMemoryBackend) RestoreManagedPrefixListVersion

func (b *InMemoryBackend) RestoreManagedPrefixListVersion(id string, version int64) error

RestoreManagedPrefixListVersion restores a previous version of a prefix list.

func (*InMemoryBackend) RestoreSnapshotFromRecycleBin

func (b *InMemoryBackend) RestoreSnapshotFromRecycleBin(snapshotID string) error

RestoreSnapshotFromRecycleBin restores a snapshot from recycle bin.

func (*InMemoryBackend) RestoreSnapshotTier

func (b *InMemoryBackend) RestoreSnapshotTier(snapshotID string) error

RestoreSnapshotTier restores a snapshot from archive tier to standard.

func (*InMemoryBackend) RestoreVolumeFromRecycleBin

func (b *InMemoryBackend) RestoreVolumeFromRecycleBin(volumeID string) error

RestoreVolumeFromRecycleBin restores a volume from recycle bin.

func (*InMemoryBackend) RevokeClientVpnIngress

func (b *InMemoryBackend) RevokeClientVpnIngress(endpointID, cidr string) error

RevokeClientVpnIngress removes an authorization rule from a Client VPN endpoint.

func (*InMemoryBackend) RevokeSecurityGroupEgress

func (b *InMemoryBackend) RevokeSecurityGroupEgress(
	groupID string,
	rules []SecurityGroupRule,
) error

RevokeSecurityGroupEgress removes matching egress rules from a security group. Returns InvalidPermission.NotFound if any requested rule does not exist.

func (*InMemoryBackend) RevokeSecurityGroupIngress

func (b *InMemoryBackend) RevokeSecurityGroupIngress(
	groupID string,
	rules []SecurityGroupRule,
) error

RevokeSecurityGroupIngress removes matching ingress rules from a security group.

func (*InMemoryBackend) RunInstances

func (b *InMemoryBackend) RunInstances(
	imageID, instanceType, subnetID string,
	count int,
) ([]*Instance, error)

RunInstances creates one or more EC2 instance stubs.

func (*InMemoryBackend) RunScheduledInstances

func (b *InMemoryBackend) RunScheduledInstances(
	scheduledInstanceID, imageID, keyName string, instanceCount int32,
) ([]string, error)

RunScheduledInstances launches instanceCount instances against a previously-purchased Scheduled Instance, up to its purchased InstanceCount, returning the newly-created instance IDs.

func (*InMemoryBackend) SearchLocalGatewayRoutes

func (b *InMemoryBackend) SearchLocalGatewayRoutes(
	routeTableID string,
	states []string,
) ([]*LocalGatewayRoute, error)

SearchLocalGatewayRoutes returns routes in a local gateway route table, optionally filtered by state.

func (*InMemoryBackend) SearchTransitGatewayMulticastGroups

func (b *InMemoryBackend) SearchTransitGatewayMulticastGroups(
	domainID string,
) []*TransitGatewayMulticastGroupEntry

SearchTransitGatewayMulticastGroups returns the multicast group member/source entries registered within a transit gateway multicast domain.

func (*InMemoryBackend) SearchTransitGatewayRoutes

func (b *InMemoryBackend) SearchTransitGatewayRoutes(
	routeTableID string,
	filters map[string][]string,
) ([]*TransitGatewayRoute, error)

SearchTransitGatewayRoutes returns the routes in a TGW route table matching the given filters.

func (*InMemoryBackend) SeedLocalGateway

func (b *InMemoryBackend) SeedLocalGateway(lg LocalGateway) (*LocalGateway, error)

SeedLocalGateway injects a local gateway into the backend so Describe calls return realistic data, mirroring inspector2.SeedFinding: local gateways are provisioned by AWS alongside an Outpost and have no Create API, so operators/tests populate them directly. Unset fields are defaulted to AWS-plausible values. Returns the stored local gateway (with a generated ID when none was supplied).

func (*InMemoryBackend) SeedLocalGatewayVirtualInterface

func (b *InMemoryBackend) SeedLocalGatewayVirtualInterface(
	vif LocalGatewayVirtualInterface,
) (*LocalGatewayVirtualInterface, error)

SeedLocalGatewayVirtualInterface injects a local gateway virtual interface into the backend so DescribeLocalGatewayVirtualInterfaces returns realistic data. See SeedLocalGateway for rationale.

func (*InMemoryBackend) SeedLocalGatewayVirtualInterfaceGroup

func (b *InMemoryBackend) SeedLocalGatewayVirtualInterfaceGroup(
	group LocalGatewayVirtualInterfaceGroup,
) (*LocalGatewayVirtualInterfaceGroup, error)

SeedLocalGatewayVirtualInterfaceGroup injects a local gateway virtual interface group into the backend so DescribeLocalGatewayVirtualInterfaceGroups returns realistic data. See SeedLocalGateway for rationale.

func (*InMemoryBackend) SeedOutpostLag

func (b *InMemoryBackend) SeedOutpostLag(lag OutpostLag) (*OutpostLag, error)

SeedOutpostLag injects an Outpost LAG into the backend for testing. Like LocalGatewayVirtualInterface, this is an Outpost-provisioned hardware resource with no Create API in EC2. The value is deep-copied; a generated ID is assigned if empty.

func (*InMemoryBackend) SeedSecondaryInterface

func (b *InMemoryBackend) SeedSecondaryInterface(si SecondaryInterface) (*SecondaryInterface, error)

SeedSecondaryInterface injects a secondary interface into the backend for testing. Secondary interfaces are created implicitly when an RDMA-capable instance is launched into a secondary subnet; EC2 exposes no Create API for them directly, so this emulator seeds them the same way it seeds LocalGatewayVirtualInterface. The value is deep-copied; a generated ID is assigned if si.SecondaryInterfaceID is empty.

func (*InMemoryBackend) SeedServiceLinkVirtualInterface

func (b *InMemoryBackend) SeedServiceLinkVirtualInterface(
	vif ServiceLinkVirtualInterface,
) (*ServiceLinkVirtualInterface, error)

SeedServiceLinkVirtualInterface injects a service link virtual interface into the backend for testing. Like LocalGatewayVirtualInterface, these are Outpost-provisioned hardware resources with no Create API in EC2. The value is deep-copied; a generated ID is assigned if empty.

func (*InMemoryBackend) SendDiagnosticInterrupt

func (b *InMemoryBackend) SendDiagnosticInterrupt(instanceID string) error

SendDiagnosticInterrupt validates that the instance exists. Real AWS sends a diagnostic NMI/QMP interrupt to the underlying hypervisor guest, which has no observable effect this backend can emulate beyond the existence check every real call also performs.

func (*InMemoryBackend) SetComputeResult

func (b *InMemoryBackend) SetComputeResult(instanceID string, r LaunchResult) error

SetComputeResult merges a LaunchResult onto an existing instance and its primary ENI. Empty string fields in the result are ignored. Returns ErrInstanceNotFound when the instance has been removed before the compute provider returned.

func (*InMemoryBackend) SetDNSRegistrar

func (b *InMemoryBackend) SetDNSRegistrar(r DNSRegistrar)

SetDNSRegistrar wires an embedded DNS server so synthetic instance hostnames produced by the Compute provider can be resolved by callers outside the gopherstack process.

func (*InMemoryBackend) SetInstanceAttribute

func (b *InMemoryBackend) SetInstanceAttribute(instanceID, attribute, value string) error

SetInstanceAttribute persists a modifiable attribute on an instance. Attributes requiring stopped state (instanceType, userData, etc.) reject requests against running instances with ErrInvalidInstanceState.

func (*InMemoryBackend) SetVolumeEncryption

func (b *InMemoryBackend) SetVolumeEncryption(
	volumeID string,
	encrypted bool,
	kmsKeyID string,
) error

SetVolumeEncryption marks a volume as encrypted and records its KMS key ID. If encrypted is false the KMS key ID is cleared. If encrypted is true and kmsKeyID is empty an AWS-managed key ("aws/ebs") is implied.

func (*InMemoryBackend) SetVolumePerformance

func (b *InMemoryBackend) SetVolumePerformance(volumeID string, iops, throughput int) error

SetVolumePerformance sets the IOPS and throughput (MB/s) on an existing volume. A value of 0 leaves that field unchanged.

func (*InMemoryBackend) Snapshot

func (b *InMemoryBackend) Snapshot(ctx context.Context) []byte

Snapshot serialises the backend state to JSON. It implements persistence.Persistable.

func (*InMemoryBackend) StartDeclarativePoliciesReport

func (b *InMemoryBackend) StartDeclarativePoliciesReport(
	s3Bucket, targetID, s3Prefix string,
	tags map[string]string,
) (*DeclarativePoliciesReport, error)

StartDeclarativePoliciesReport starts generating a Declarative Policies report for the given target (root, organizational unit, or account ID), to be written to S3.

func (*InMemoryBackend) StartInstances

func (b *InMemoryBackend) StartInstances(ids []string) ([]*InstanceStateChange, error)

StartInstances transitions stopped instances to running. Returns ErrInvalidInstanceState if any instance is not in the stopped state.

func (*InMemoryBackend) StartLifecycleReconciler

func (b *InMemoryBackend) StartLifecycleReconciler(ctx context.Context)

StartLifecycleReconciler starts the background goroutine that advances instances through their transitional states (pending→running, stopping→stopped, shutting-down→terminated). It is started by the production provider; tests drive lifecycle transitions deterministically via TickLifecycleForTest and so deliberately do NOT start the background ticker (which would otherwise race with their direct ticks and state assertions). Idempotent — safe to call multiple times; only the first call starts the goroutine.

The goroutine exits when ctx is cancelled OR when StopLifecycleReconciler is called, whichever comes first.

func (*InMemoryBackend) StartNetworkInsightsAccessScopeAnalysis

func (b *InMemoryBackend) StartNetworkInsightsAccessScopeAnalysis(
	scopeID string,
) (*NetworkInsightsAccessScopeAnalysis, error)

func (*InMemoryBackend) StartNetworkInsightsAnalysis

func (b *InMemoryBackend) StartNetworkInsightsAnalysis(pathID string) (*NetworkInsightsAnalysis, error)

func (*InMemoryBackend) StartVpcEndpointServicePrivateDNSVerification

func (b *InMemoryBackend) StartVpcEndpointServicePrivateDNSVerification(id string) error

StartVpcEndpointServicePrivateDNSVerification initiates (and, for this in-memory backend, immediately completes) private DNS name verification for a VPC endpoint service configuration.

func (*InMemoryBackend) StopInstances

func (b *InMemoryBackend) StopInstances(ids []string) ([]*InstanceStateChange, error)

StopInstances transitions running instances to stopped. Returns ErrInvalidInstanceState if any instance is not in the running state.

func (*InMemoryBackend) StopLifecycleReconciler

func (b *InMemoryBackend) StopLifecycleReconciler()

StopLifecycleReconciler signals the background lifecycle goroutine (if any) to exit. Idempotent and safe to call even if the reconciler was never started.

func (*InMemoryBackend) TagsForResource

func (b *InMemoryBackend) TagsForResource(resourceID string) map[string]string

TagsForResource returns a copy of the tags currently set on the given resource, or an empty map when nothing is tagged. Safe for concurrent use.

func (*InMemoryBackend) TerminateClientVpnConnections

func (b *InMemoryBackend) TerminateClientVpnConnections(endpointID string) error

TerminateClientVpnConnections terminates client VPN connections (no-op in mock).

func (*InMemoryBackend) TerminateInstances

func (b *InMemoryBackend) TerminateInstances(ids []string) ([]*InstanceStateChange, error)

TerminateInstances transitions instances to shutting-down then terminated. Returns the previous and current state for each instance. Terminated instances remain visible (matching AWS ~1 hour grace period) until the janitor sweeps them.

func (*InMemoryBackend) UnassignIpv6Addresses

func (b *InMemoryBackend) UnassignIpv6Addresses(niID string, addresses []string) error

UnassignIpv6Addresses removes IPv6 addresses from a network interface.

func (*InMemoryBackend) UnassignPrivateIPAddresses

func (b *InMemoryBackend) UnassignPrivateIPAddresses(eniID string, ips []string) error

UnassignPrivateIPAddresses removes secondary private IP addresses from an ENI. Auto-allocated IPs (172.31.x.y) are returned to the free list so they can be reused by subsequent allocations.

func (*InMemoryBackend) UnassignPrivateNatGatewayAddress

func (b *InMemoryBackend) UnassignPrivateNatGatewayAddress(
	natGatewayID string, privateIPs []string,
) (*NatGateway, error)

UnassignPrivateNatGatewayAddress removes previously assigned secondary private IPs from a NAT gateway, mutating the existing NAT gateway's address state.

func (*InMemoryBackend) UnlockSnapshot

func (b *InMemoryBackend) UnlockSnapshot(snapshotID string) error

UnlockSnapshot removes the lock from a snapshot.

func (*InMemoryBackend) UnmonitorInstances

func (b *InMemoryBackend) UnmonitorInstances(instanceIDs []string) ([]MonitoringState, error)

UnmonitorInstances disables detailed monitoring for the given instances.

func (*InMemoryBackend) UpdateCapacityManagerOrganizationsAccess

func (b *InMemoryBackend) UpdateCapacityManagerOrganizationsAccess(
	organizationsAccess bool,
) (string, bool)

UpdateCapacityManagerOrganizationsAccess updates the Organizations cross-account data aggregation setting for Capacity Manager.

func (*InMemoryBackend) UpdateInterruptibleCapacityReservationAllocation

func (b *InMemoryBackend) UpdateInterruptibleCapacityReservationAllocation(
	sourceCapacityReservationID string, targetInstanceCount int32,
) (*InterruptibleCapacityReservationAllocation, error)

UpdateInterruptibleCapacityReservationAllocation resizes a previously created interruptible allocation, adjusting the source reservation's AvailableInstanceCount by the delta.

func (*InMemoryBackend) UpdateSecurityGroupRuleDescriptionsEgress

func (b *InMemoryBackend) UpdateSecurityGroupRuleDescriptionsEgress(
	groupID string,
	updates []SecurityGroupRule,
) error

UpdateSecurityGroupRuleDescriptionsEgress updates descriptions of egress rules.

func (*InMemoryBackend) UpdateSecurityGroupRuleDescriptionsIngress

func (b *InMemoryBackend) UpdateSecurityGroupRuleDescriptionsIngress(
	groupID string,
	updates []SecurityGroupRule,
) error

UpdateSecurityGroupRuleDescriptionsIngress updates descriptions of ingress rules.

func (*InMemoryBackend) WithCompute

func (b *InMemoryBackend) WithCompute(c Compute)

WithCompute installs an optional Compute provider. When non-nil, RunInstances, TerminateInstances, StartInstances and StopInstances will call into the provider after updating in-memory state. Passing nil disables the hook.

func (*InMemoryBackend) WithdrawByoipCidr

func (b *InMemoryBackend) WithdrawByoipCidr(cidr string) (*ByoipCidr, error)

type Instance

type Instance struct {
	TerminatedAt            time.Time                  `json:"terminatedAt"`
	LaunchTime              time.Time                  `json:"launchTime"`
	EventStartTimeOverrides map[string]time.Time       `json:"eventStartTimeOverrides,omitempty"`
	CapacityReservationSpec CapacityReservationSpec    `json:"capacityReservationSpecification"`
	MaintenanceOptions      InstanceMaintenanceOptions `json:"maintenanceOptions"`
	PublicDNSName           string                     `json:"publicDNSName,omitempty"`
	MetadataOptionsTokens   string                     `json:"metadataOptionsTokens,omitempty"`
	MetadataOptionsState    string                     `json:"metadataOptionsState,omitempty"`
	VPCID                   string                     `json:"vpcID,omitempty"`
	ID                      string                     `json:"id,omitempty"`
	PrivateIP               string                     `json:"privateIP,omitempty"`
	PublicIPAddress         string                     `json:"publicIPAddress,omitempty"`
	SubnetID                string                     `json:"subnetID,omitempty"`
	UserData                string                     `json:"userData,omitempty"`
	SriovNetSupport         string                     `json:"sriovNetSupport,omitempty"`
	ProviderID              string                     `json:"providerID,omitempty"`
	// InstanceInitiatedShutdownBehavior is "stop" (default) or "terminate".
	InstanceInitiatedShutdownBehavior string `json:"instanceInitiatedShutdownBehavior,omitempty"`
	// NetworkPerformanceOptions carries the bandwidth-weighting mode.
	NetworkPerformanceOptions InstanceNetworkPerformanceOptions `json:"networkPerformanceOptions"`
	KeyName                   string                            `json:"keyName,omitempty"`
	InstanceType              string                            `json:"instanceType,omitempty"`
	// StateTransitionReason mirrors AWS's legacy <reason> element (e.g.
	// "User initiated (2016-05-...)").
	StateTransitionReason string `json:"stateTransitionReason,omitempty"`
	ImageID               string `json:"imageID,omitempty"`
	// StateReasonCode/StateReasonMessage mirror AWS's <stateReason> element,
	// populated on user-initiated stop/terminate and cleared on start.
	StateReasonMessage    string                `json:"stateReasonMessage,omitempty"`
	StateReasonCode       string                `json:"stateReasonCode,omitempty"`
	Placement             InstancePlacement     `json:"placement"`
	SecurityGroups        []string              `json:"securityGroups,omitempty"`
	State                 InstanceState         `json:"state"`
	PrivateDNSNameOptions PrivateDNSNameOptions `json:"privateDnsNameOptions"`
	CPUOptions            CPUOptions            `json:"cpuOptions"`
	SSHPort               int                   `json:"sshPort,omitempty"`
	EnaSupport            bool                  `json:"enaSupport,omitempty"`
	// DisableAPITermination / DisableAPIStop gate TerminateInstances /
	// StopInstances respectively (ModifyInstanceAttribute-settable).
	DisableAPITermination bool `json:"disableApiTermination,omitempty"`
	DisableAPIStop        bool `json:"disableApiStop,omitempty"`
	EBSOptimized          bool `json:"ebsOptimized,omitempty"`
}

Instance represents an EC2 instance (metadata only, no actual compute).

type InstanceConnectEndpoint

type InstanceConnectEndpoint struct {
	CreateTime                 time.Time `json:"createTime"`
	InstanceConnectEndpointID  string    `json:"instanceConnectEndpointId,omitempty"`
	InstanceConnectEndpointARN string    `json:"instanceConnectEndpointArn,omitempty"`
	SubnetID                   string    `json:"subnetId,omitempty"`
	VPCID                      string    `json:"vpcId,omitempty"`
	State                      string    `json:"state,omitempty"`
	SecurityGroupIDs           []string  `json:"securityGroupIds,omitempty"`
	PreserveClientIP           bool      `json:"preserveClientIp,omitempty"`
}

InstanceConnectEndpoint represents an EC2 Instance Connect Endpoint.

type InstanceCreditSpec

type InstanceCreditSpec struct {
	InstanceID string `json:"instanceID,omitempty"`
	CPUCredits string `json:"cpuCredits,omitempty"` // "standard" or "unlimited"
}

InstanceCreditSpec holds the CPU credit configuration for burstable instances.

type InstanceEventNotificationAttributes

type InstanceEventNotificationAttributes struct {
	IncludeAllTagsOfInstance bool `json:"includeAllTagsOfInstance,omitempty"`
}

InstanceEventNotificationAttributes holds account-level event notification settings.

type InstanceEventWindow

type InstanceEventWindow struct {
	InstanceEventWindowID string `json:"instanceEventWindowId,omitempty"`
	Name                  string `json:"name,omitempty"`
	CronExpression        string `json:"cronExpression,omitempty"`
	State                 string `json:"state,omitempty"`

	// InstanceIDs and DedicatedHostIDs hold the association targets added via
	// AssociateInstanceEventWindow and removed via DisassociateInstanceEventWindow.
	InstanceIDs      []string `json:"instanceIds,omitempty"`
	DedicatedHostIDs []string `json:"dedicatedHostIds,omitempty"`
}

InstanceEventWindow represents a scheduled maintenance window for instances.

type InstanceImageMetadataItem

type InstanceImageMetadataItem struct {
	InstanceID string `json:"instanceID,omitempty"`
	ImageID    string `json:"imageID,omitempty"`
	ImageState string `json:"imageState,omitempty"`
}

InstanceImageMetadataItem holds image-related metadata for a single instance.

type InstanceMaintenanceOptions

type InstanceMaintenanceOptions struct {
	AutoRecovery    string `json:"autoRecovery,omitempty"`
	RebootMigration string `json:"rebootMigration,omitempty"`
}

InstanceMaintenanceOptions holds the per-instance auto-recovery/reboot migration configuration set via ModifyInstanceMaintenanceOptions.

type InstanceMetadataDefaults

type InstanceMetadataDefaults struct {
	HTTPTokens              string `json:"httpTokens,omitempty"`
	HTTPEndpoint            string `json:"httpEndpoint,omitempty"`
	InstanceMetadataTags    string `json:"instanceMetadataTags,omitempty"`
	HTTPPutResponseHopLimit int    `json:"httpPutResponseHopLimit,omitempty"`
}

InstanceMetadataDefaults holds account-level IMDS defaults.

type InstanceNetworkPerformanceOptions

type InstanceNetworkPerformanceOptions struct {
	BandwidthWeighting string `json:"bandwidthWeighting,omitempty"`
}

InstanceNetworkPerformanceOptions holds the per-instance bandwidth weighting configuration set via ModifyInstanceNetworkPerformanceOptions.

type InstancePlacement

type InstancePlacement struct {
	Affinity             string `json:"affinity,omitempty"`
	GroupName            string `json:"groupName,omitempty"`
	GroupID              string `json:"groupId,omitempty"`
	HostID               string `json:"hostId,omitempty"`
	Tenancy              string `json:"tenancy,omitempty"`
	HostResourceGroupArn string `json:"hostResourceGroupArn,omitempty"`
	// AvailabilityZone is set at RunInstances time from the launch subnet/AZ
	// and echoed back verbatim by DescribeInstances; ModifyInstancePlacement
	// does not currently support relocating an instance's AZ.
	AvailabilityZone string `json:"availabilityZone,omitempty"`
	PartitionNumber  int32  `json:"partitionNumber,omitempty"`
}

InstancePlacement holds the per-instance placement configuration set via ModifyInstancePlacement.

type InstanceState

type InstanceState struct {
	Name string `json:"name,omitempty"`
	Code int    `json:"code,omitempty"`
}

InstanceState represents the state of an EC2 instance.

type InstanceStateChange

type InstanceStateChange struct {
	InstanceID    string        `json:"instanceID,omitempty"`
	PreviousState InstanceState `json:"previousState"`
	CurrentState  InstanceState `json:"currentState"`
}

InstanceStateChange records the state transition for a single instance. It is returned by StartInstances, StopInstances, and TerminateInstances so callers have accurate before/after information without hard-coding states.

type InstanceStatusEventRec

type InstanceStatusEventRec struct {
	NotAfter          time.Time `json:"notAfter"`
	NotBefore         time.Time `json:"notBefore"`
	NotBeforeDeadline time.Time `json:"notBeforeDeadline"`
	Code              string    `json:"code,omitempty"`
	Description       string    `json:"description,omitempty"`
	InstanceEventID   string    `json:"instanceEventId,omitempty"`
}

InstanceStatusEventRec represents a scheduled instance status event, as returned by ModifyInstanceEventStartTime.

type InstanceTopologyItem

type InstanceTopologyItem struct {
	InstanceID       string   `json:"instanceID,omitempty"`
	InstanceType     string   `json:"instanceType,omitempty"`
	GroupName        string   `json:"groupName,omitempty"`
	AvailabilityZone string   `json:"availabilityZone,omitempty"`
	ZoneID           string   `json:"zoneID,omitempty"`
	NetworkNodes     []string `json:"networkNodes,omitempty"`
}

InstanceTopologyItem holds topology info for an instance.

type InstanceTypeOffering

type InstanceTypeOffering struct {
	InstanceType     string `json:"instanceType,omitempty"`
	AvailabilityZone string `json:"availabilityZone,omitempty"`
	Location         string `json:"location,omitempty"`
	LocationType     string `json:"locationType,omitempty"`
}

InstanceTypeOffering pairs an instance type with an AZ offering.

type InternetGateway

type InternetGateway struct {
	ID          string          `json:"id,omitempty"`
	Attachments []IGWAttachment `json:"attachments,omitempty"`
}

InternetGateway represents an EC2 Internet Gateway.

type InterruptibleCapacityReservationAllocation

type InterruptibleCapacityReservationAllocation struct {
	SourceCapacityReservationID string `json:"sourceCapacityReservationID,omitempty"`
	Status                      string `json:"status,omitempty"`
	TargetInstanceCount         int32  `json:"targetInstanceCount,omitempty"`
}

InterruptibleCapacityReservationAllocation tracks an interruptible allocation carved out of an existing (source) Capacity Reservation's spare capacity. It overlays the source CapacityReservation rather than minting a new reservation resource: the real CreateInterruptibleCapacityReservationAllocation and UpdateInterruptibleCapacityReservationAllocation outputs identify the allocation by its source reservation, not a distinct ID.

type Ipam

type Ipam struct {
	PrivateDefaultScopeID                 string   `json:"privateDefaultScopeId,omitempty"`
	DefaultResourceDiscoveryAssociationID string   `json:"defaultResourceDiscoveryAssociationId,omitempty"`
	State                                 string   `json:"state,omitempty"`
	Region                                string   `json:"region,omitempty"`
	OwnerID                               string   `json:"ownerId,omitempty"`
	Description                           string   `json:"description,omitempty"`
	PublicDefaultScopeID                  string   `json:"publicDefaultScopeId,omitempty"`
	Tier                                  string   `json:"tier,omitempty"`
	IpamARN                               string   `json:"ipamArn,omitempty"`
	IpamID                                string   `json:"ipamId,omitempty"`
	DefaultResourceDiscoveryID            string   `json:"defaultResourceDiscoveryId,omitempty"`
	OperatingRegions                      []string `json:"operatingRegions,omitempty"`
	ScopeCount                            int32    `json:"scopeCount,omitempty"`
	ResourceDiscoveryAssociationCount     int32    `json:"resourceDiscoveryAssociationCount,omitempty"`
}

Ipam represents an AWS IPAM instance.

type IpamAllocationOptions

type IpamAllocationOptions struct {
	Description   string
	ResourceType  string
	ResourceID    string
	ResourceOwner string
}

IpamAllocationOptions holds optional parameters accepted by AllocateIpamPoolCidr.

type IpamAsnAssociation

type IpamAsnAssociation struct {
	Asn           string `json:"asn,omitempty"`
	Cidr          string `json:"cidr,omitempty"`
	State         string `json:"state,omitempty"`
	StatusMessage string `json:"statusMessage,omitempty"`
}

IpamAsnAssociation represents the association between a BYOASN and a BYOIP CIDR, as returned by AssociateIpamByoasn/DisassociateIpamByoasn.

type IpamByoasn

type IpamByoasn struct {
	Asn           string `json:"asn,omitempty"`
	IpamID        string `json:"ipamId,omitempty"`
	State         string `json:"state,omitempty"`
	StatusMessage string `json:"statusMessage,omitempty"`
}

IpamByoasn represents a Bring-Your-Own ASN provisioned to an IPAM.

type IpamExternalResourceVerificationToken

type IpamExternalResourceVerificationToken struct {
	NotAfter                                 time.Time `json:"notAfter"`
	IpamExternalResourceVerificationTokenID  string    `json:"tokenId,omitempty"`
	IpamExternalResourceVerificationTokenARN string    `json:"tokenArn,omitempty"`
	IpamID                                   string    `json:"ipamId,omitempty"`
	IpamARN                                  string    `json:"ipamArn,omitempty"`
	IpamRegion                               string    `json:"ipamRegion,omitempty"`
	State                                    string    `json:"state,omitempty"`
	Status                                   string    `json:"status,omitempty"`
	TokenName                                string    `json:"tokenName,omitempty"`
	TokenValue                               string    `json:"tokenValue,omitempty"`
}

IpamExternalResourceVerificationToken represents a token used to verify ownership of a non-AWS ("external") resource so IPAM can monitor its CIDR.

type IpamOptions

type IpamOptions struct {
	Description      string
	Tier             string
	OperatingRegions []string
}

IpamOptions holds optional parameters accepted by CreateIpam and ModifyIpam.

type IpamPolicy

type IpamPolicy struct {
	AllocationDocs   map[string]*IpamPolicyDocument `json:"allocationDocs,omitempty"`
	IpamPolicyID     string                         `json:"ipamPolicyId,omitempty"`
	IpamPolicyARN    string                         `json:"ipamPolicyArn,omitempty"`
	IpamPolicyRegion string                         `json:"ipamPolicyRegion,omitempty"`
	IpamID           string                         `json:"ipamId,omitempty"`
	OwnerID          string                         `json:"ownerId,omitempty"`
	State            string                         `json:"state,omitempty"`
	StateMessage     string                         `json:"stateMessage,omitempty"`
}

IpamPolicy represents an AWS IPAM policy: a set of rules that define how public IPv4 addresses from IPAM pools are allocated to AWS resources.

type IpamPolicyAllocationRule

type IpamPolicyAllocationRule struct {
	SourceIpamPoolID string `json:"sourceIpamPoolId,omitempty"`
}

IpamPolicyAllocationRule mirrors AWS's IpamPolicyAllocationRule: a single source IPAM pool entry within an IPAM policy allocation rule document.

type IpamPolicyDocument

type IpamPolicyDocument struct {
	IpamPolicyID    string                     `json:"ipamPolicyId,omitempty"`
	Locale          string                     `json:"locale,omitempty"`
	ResourceType    string                     `json:"resourceType,omitempty"`
	AllocationRules []IpamPolicyAllocationRule `json:"allocationRules,omitempty"`
}

IpamPolicyDocument represents the allocation rules configured for one (Locale, ResourceType) pair of an IPAM policy, as returned/replaced by Get/ModifyIpamPolicyAllocationRules.

type IpamPool

type IpamPool struct {
	IpamPoolID                     string `json:"ipamPoolId,omitempty"`
	IpamPoolARN                    string `json:"ipamPoolArn,omitempty"`
	IpamID                         string `json:"ipamId,omitempty"`
	IpamScopeID                    string `json:"ipamScopeId,omitempty"`
	SourceIpamPoolID               string `json:"sourceIpamPoolId,omitempty"`
	State                          string `json:"state,omitempty"`
	Locale                         string `json:"locale,omitempty"`
	AddressFamily                  string `json:"addressFamily,omitempty"`
	Cidr                           string `json:"cidr,omitempty"`
	Description                    string `json:"description,omitempty"`
	AutoImport                     bool   `json:"autoImport,omitempty"`
	PubliclyAdvertisable           bool   `json:"publiclyAdvertisable,omitempty"`
	AllocationMinNetmaskLength     int32  `json:"allocationMinNetmaskLength,omitempty"`
	AllocationMaxNetmaskLength     int32  `json:"allocationMaxNetmaskLength,omitempty"`
	AllocationDefaultNetmaskLength int32  `json:"allocationDefaultNetmaskLength,omitempty"`
}

IpamPool represents an IPAM pool.

type IpamPoolAllocation

type IpamPoolAllocation struct {
	IpamPoolAllocationID string `json:"ipamPoolAllocationId,omitempty"`
	IpamPoolID           string `json:"ipamPoolId,omitempty"`
	Cidr                 string `json:"cidr,omitempty"`
	Description          string `json:"description,omitempty"`
	ResourceType         string `json:"resourceType,omitempty"`
	ResourceID           string `json:"resourceId,omitempty"`
	ResourceOwner        string `json:"resourceOwner,omitempty"`
}

IpamPoolAllocation represents an allocated CIDR from an IPAM pool.

type IpamPoolCidr

type IpamPoolCidr struct {
	Cidr  string `json:"cidr,omitempty"`
	State string `json:"state,omitempty"`
}

IpamPoolCidr represents a CIDR range provisioned to an IPAM pool via ProvisionIpamPoolCidr.

type IpamPoolOptions

type IpamPoolOptions struct {
	IpamScopeID                    string
	Description                    string
	AutoImport                     bool
	PubliclyAdvertisable           bool
	AllocationMinNetmaskLength     int32
	AllocationMaxNetmaskLength     int32
	AllocationDefaultNetmaskLength int32
}

IpamPoolOptions holds optional parameters accepted by CreateIpamPool and ModifyIpamPool.

type IpamPrefixListResolver

type IpamPrefixListResolver struct {
	IpamPrefixListResolverID         string                       `json:"ipamPrefixListResolverId,omitempty"`
	IpamPrefixListResolverARN        string                       `json:"ipamPrefixListResolverArn,omitempty"`
	IpamID                           string                       `json:"ipamId,omitempty"`
	IpamARN                          string                       `json:"ipamArn,omitempty"`
	IpamRegion                       string                       `json:"ipamRegion,omitempty"`
	OwnerID                          string                       `json:"ownerId,omitempty"`
	AddressFamily                    string                       `json:"addressFamily,omitempty"`
	Description                      string                       `json:"description,omitempty"`
	State                            string                       `json:"state,omitempty"`
	LastVersionCreationStatus        string                       `json:"lastVersionCreationStatus,omitempty"`
	LastVersionCreationStatusMessage string                       `json:"lastVersionCreationStatusMessage,omitempty"`
	Rules                            []IpamPrefixListResolverRule `json:"rules,omitempty"`
	CurrentVersion                   int64                        `json:"-"`
}

IpamPrefixListResolver represents an IPAM prefix list resolver: a component that synchronizes CIDRs selected from an IPAM's tracked address space into a managed prefix list.

type IpamPrefixListResolverRule

type IpamPrefixListResolverRule struct {
	RuleType     string                                `json:"ruleType,omitempty"`
	IpamScopeID  string                                `json:"ipamScopeId,omitempty"`
	ResourceType string                                `json:"resourceType,omitempty"`
	StaticCidr   string                                `json:"staticCidr,omitempty"`
	Conditions   []IpamPrefixListResolverRuleCondition `json:"conditions,omitempty"`
}

IpamPrefixListResolverRule is a CIDR selection rule for a prefix list resolver.

type IpamPrefixListResolverRuleCondition

type IpamPrefixListResolverRuleCondition struct {
	Operation      string `json:"operation,omitempty"`
	Cidr           string `json:"cidr,omitempty"`
	IpamPoolID     string `json:"ipamPoolId,omitempty"`
	ResourceID     string `json:"resourceId,omitempty"`
	ResourceOwner  string `json:"resourceOwner,omitempty"`
	ResourceRegion string `json:"resourceRegion,omitempty"`
}

IpamPrefixListResolverRuleCondition is a single condition of a CIDR selection rule.

type IpamPrefixListResolverTarget

type IpamPrefixListResolverTarget struct {
	DesiredVersion                  *int64 `json:"desiredVersion,omitempty"`
	LastSyncedVersion               *int64 `json:"lastSyncedVersion,omitempty"`
	IpamPrefixListResolverTargetID  string `json:"ipamPrefixListResolverTargetId,omitempty"`
	IpamPrefixListResolverTargetARN string `json:"ipamPrefixListResolverTargetArn,omitempty"`
	IpamPrefixListResolverID        string `json:"ipamPrefixListResolverId,omitempty"`
	OwnerID                         string `json:"ownerId,omitempty"`
	PrefixListID                    string `json:"prefixListId,omitempty"`
	PrefixListRegion                string `json:"prefixListRegion,omitempty"`
	State                           string `json:"state,omitempty"`
	StateMessage                    string `json:"stateMessage,omitempty"`
	TrackLatestVersion              bool   `json:"trackLatestVersion,omitempty"`
}

IpamPrefixListResolverTarget represents a managed prefix list kept in sync by an IPAM prefix list resolver.

type IpamResourceCidr

type IpamResourceCidr struct {
	IpamID          string  `json:"ipamId,omitempty"`
	IpamPoolID      string  `json:"ipamPoolId,omitempty"`
	IpamScopeID     string  `json:"ipamScopeId,omitempty"`
	ResourceID      string  `json:"resourceId,omitempty"`
	ResourceCidr    string  `json:"resourceCidr,omitempty"`
	ResourceRegion  string  `json:"resourceRegion,omitempty"`
	ResourceType    string  `json:"resourceType,omitempty"`
	ResourceOwnerID string  `json:"resourceOwnerId,omitempty"`
	ManagementState string  `json:"managementState,omitempty"`
	Monitored       bool    `json:"-"`
	IPUsage         float64 `json:"ipUsage,omitempty"`
}

IpamResourceCidr represents a resource CIDR monitored by IPAM. This mock derives resource CIDRs from IPAM pool allocations (see AllocateIpamPoolCidr): allocating a pool CIDR to a resource ID creates a corresponding monitored resource CIDR entry, and releasing the allocation removes it.

type IpamResourceDiscovery

type IpamResourceDiscovery struct {
	IpamResourceDiscoveryID  string   `json:"ipamResourceDiscoveryId,omitempty"`
	IpamResourceDiscoveryARN string   `json:"ipamResourceDiscoveryArn,omitempty"`
	OwnerID                  string   `json:"ownerId,omitempty"`
	Region                   string   `json:"ipamResourceDiscoveryRegion,omitempty"`
	State                    string   `json:"state,omitempty"`
	Description              string   `json:"description,omitempty"`
	OperatingRegions         []string `json:"operatingRegions,omitempty"`
	IsDefault                bool     `json:"isDefault,omitempty"`
}

IpamResourceDiscovery represents an IPAM resource discovery, which scans a set of operating regions for resources whose CIDRs should be tracked by an IPAM.

type IpamResourceDiscoveryAssociation

type IpamResourceDiscoveryAssociation struct {
	IpamResourceDiscoveryAssociationID  string `json:"ipamResourceDiscoveryAssociationId,omitempty"`
	IpamResourceDiscoveryAssociationARN string `json:"ipamResourceDiscoveryAssociationArn,omitempty"`
	IpamID                              string `json:"ipamId,omitempty"`
	IpamARN                             string `json:"ipamArn,omitempty"`
	IpamRegion                          string `json:"ipamRegion,omitempty"`
	IpamResourceDiscoveryID             string `json:"ipamResourceDiscoveryId,omitempty"`
	OwnerID                             string `json:"ownerId,omitempty"`
	ResourceDiscoveryStatus             string `json:"resourceDiscoveryStatus,omitempty"`
	State                               string `json:"state,omitempty"`
	IsDefault                           bool   `json:"isDefault,omitempty"`
}

IpamResourceDiscoveryAssociation represents the association between an IPAM and a resource discovery (every IPAM has at least its own default resource discovery associated).

type IpamScope

type IpamScope struct {
	IpamScopeID   string `json:"ipamScopeId,omitempty"`
	IpamScopeARN  string `json:"ipamScopeArn,omitempty"`
	IpamID        string `json:"ipamId,omitempty"`
	IpamScopeType string `json:"ipamScopeType,omitempty"`
	State         string `json:"state,omitempty"`
	Description   string `json:"description,omitempty"`
	PoolCount     int32  `json:"poolCount,omitempty"`
	IsDefault     bool   `json:"isDefault,omitempty"`
}

IpamScope represents an IPAM scope: a private or public routing domain within an IPAM.

type Ipv4Pool

type Ipv4Pool struct {
	PoolID             string            `json:"poolId,omitempty"`
	Description        string            `json:"description,omitempty"`
	NetworkBorderGroup string            `json:"networkBorderGroup,omitempty"`
	Tags               map[string]string `json:"tags,omitempty"`
	PoolAddressRanges  []Ipv4PoolRange   `json:"poolAddressRanges,omitempty"`
}

Ipv4Pool represents a public IPv4 address pool used for BYOIP CIDR provisioning.

type Ipv4PoolRange

type Ipv4PoolRange struct {
	FirstAddress          string `json:"firstAddress,omitempty"`
	LastAddress           string `json:"lastAddress,omitempty"`
	AddressCount          int32  `json:"addressCount,omitempty"`
	AvailableAddressCount int32  `json:"availableAddressCount,omitempty"`
}

Ipv4PoolRange represents a provisioned address range within a public IPv4 pool.

type Ipv6CidrAssociation

type Ipv6CidrAssociation struct {
	Ipv6Cidr           string `json:"ipv6Cidr,omitempty"`
	AssociatedResource string `json:"associatedResource,omitempty"`
}

Ipv6CidrAssociation represents a resource association for a CIDR block within an IPv6 address pool.

type Ipv6Pool

type Ipv6Pool struct {
	PoolID         string            `json:"poolId,omitempty"`
	Description    string            `json:"description,omitempty"`
	Tags           map[string]string `json:"tags,omitempty"`
	PoolCidrBlocks []string          `json:"poolCidrBlocks,omitempty"`
}

Ipv6Pool represents an IPv6 address pool.

type Janitor

type Janitor struct {
	Backend          *InMemoryBackend `json:"backend,omitempty"`
	Interval         time.Duration    `json:"interval"`
	TerminatedTTL    time.Duration    `json:"terminatedTTL"`
	CancelledSpotTTL time.Duration    `json:"cancelledSpotTTL"`
	TaskTimeout      time.Duration    `json:"taskTimeout"`
}

Janitor is the EC2 background worker that sweeps terminated instances after a configurable TTL, matching the AWS behavior where terminated instances remain visible for approximately one hour. It also removes cancelled/closed spot instance requests after a separate TTL.

func NewJanitor

func NewJanitor(
	backend *InMemoryBackend,
	interval, terminatedTTL, cancelledSpotTTL time.Duration,
) *Janitor

NewJanitor creates a new EC2 Janitor for the given backend. If interval, terminatedTTL, or cancelledSpotTTL are zero, defaults are used.

func (*Janitor) Run

func (j *Janitor) Run(ctx context.Context)

Run runs the janitor loop until ctx is cancelled.

func (*Janitor) SweepOnce

func (j *Janitor) SweepOnce(ctx context.Context)

SweepOnce runs a single sweep pass. Exposed for testing.

type KeyPair

type KeyPair struct {
	Name        string `json:"name,omitempty"`
	Fingerprint string `json:"fingerprint,omitempty"`
	Material    string `json:"material,omitempty"` // private key PEM, only on create
	// PublicKey is the OpenSSH "ssh-rsa AAAA..." authorized_keys-format public
	// key, populated by CreateKeyPair (derived from the generated private key)
	// and by ImportKeyPair (decoded from PublicKeyMaterial). Used by the
	// optional Compute provider to seed authorized_keys on launch.
	PublicKey string `json:"publicKey,omitempty"`
}

KeyPair represents an EC2 key pair.

type LaunchRequest

type LaunchRequest struct {
	// InstanceID is the synthetic EC2 instance ID (i-...).
	InstanceID string `json:"instanceID,omitempty"`
	// ImageID is the AMI ID requested by the caller. The Compute provider may
	// use this to pick a Docker image but is also free to ignore it and use
	// a configured default image.
	ImageID string `json:"imageID,omitempty"`
	// InstanceType is the requested EC2 instance type (e.g. t3.micro).
	InstanceType string `json:"instanceType,omitempty"`
	// KeyName is the EC2 key pair name (may be empty).
	KeyName string `json:"keyName,omitempty"`
	// AuthorizedKey is the OpenSSH-format public key derived from the named
	// EC2 key pair. When non-empty the provider should write it to the
	// container's ~ec2-user/.ssh/authorized_keys so the demo can ssh in.
	AuthorizedKey string `json:"authorizedKey,omitempty"`
	// UserData is the raw (already base64-decoded) user data, if any.
	UserData string `json:"userData,omitempty"`
}

LaunchRequest describes a new instance the Compute provider should back.

type LaunchResult

type LaunchResult struct {
	// ProviderID is the provider-specific opaque identifier (Docker container ID).
	ProviderID string `json:"providerID,omitempty"`
	// PrivateIP overrides the in-memory allocated private IP.
	PrivateIP string `json:"privateIP,omitempty"`
	// PublicIPAddress overrides the in-memory allocated public IP, if any.
	PublicIPAddress string `json:"publicIPAddress,omitempty"`
	// PublicDNSName overrides the in-memory generated public DNS name, if any.
	PublicDNSName string `json:"publicDNSName,omitempty"`
	// SSHPort is the host TCP port that maps to the container's sshd. 0 means
	// no host-side mapping was configured.
	SSHPort int `json:"sshPort,omitempty"`
}

LaunchResult is what the Compute provider returns after creating a backing resource. Empty string fields are ignored (in-memory defaults are kept).

type LaunchTemplate

type LaunchTemplate struct {
	CreateTime           time.Time `json:"createTime"`
	ID                   string    `json:"id,omitempty"`
	Name                 string    `json:"name,omitempty"`
	ImageID              string    `json:"imageID,omitempty"`
	InstanceType         string    `json:"instanceType,omitempty"`
	CreatedBy            string    `json:"createdBy,omitempty"`
	DefaultVersionNumber int64     `json:"defaultVersionNumber"`
	LatestVersionNumber  int64     `json:"latestVersionNumber"`
}

LaunchTemplate represents an EC2 launch template.

type LaunchTemplateVersion

type LaunchTemplateVersion struct {
	CreateTime         time.Time `json:"createTime"`
	LaunchTemplateID   string    `json:"launchTemplateId,omitempty"`
	LaunchTemplateName string    `json:"launchTemplateName,omitempty"`
	ImageID            string    `json:"imageId,omitempty"`
	InstanceType       string    `json:"instanceType,omitempty"`
	VersionNumber      int64     `json:"versionNumber"`
	DefaultVersion     bool      `json:"defaultVersion,omitempty"`
}

LaunchTemplateVersion holds the versioned launch template data.

type LocalGateway

type LocalGateway struct {
	LocalGatewayID string `json:"localGatewayID,omitempty"`
	OutpostArn     string `json:"outpostArn,omitempty"`
	OwnerID        string `json:"ownerID,omitempty"`
	State          string `json:"state,omitempty"`
}

LocalGateway represents an Outpost local gateway. Local gateways are provisioned by AWS alongside an Outpost and have no Create/Delete API; SeedLocalGateway populates them so Describe calls return realistic data.

type LocalGatewayRoute

type LocalGatewayRoute struct {
	LocalGatewayRouteTableID            string `json:"localGatewayRouteTableID,omitempty"`
	LocalGatewayRouteTableArn           string `json:"localGatewayRouteTableArn,omitempty"`
	DestinationCidrBlock                string `json:"destinationCidrBlock,omitempty"`
	DestinationPrefixListID             string `json:"destinationPrefixListID,omitempty"`
	LocalGatewayVirtualInterfaceGroupID string `json:"localGatewayVirtualInterfaceGroupID,omitempty"`
	NetworkInterfaceID                  string `json:"networkInterfaceID,omitempty"`
	Type                                string `json:"type,omitempty"`
	State                               string `json:"state,omitempty"`
	OwnerID                             string `json:"ownerID,omitempty"`
}

LocalGatewayRoute represents a route in a local gateway route table.

type LocalGatewayRouteTable

type LocalGatewayRouteTable struct {
	LocalGatewayRouteTableID  string `json:"localGatewayRouteTableID,omitempty"`
	LocalGatewayRouteTableArn string `json:"localGatewayRouteTableArn,omitempty"`
	LocalGatewayID            string `json:"localGatewayID,omitempty"`
	OutpostArn                string `json:"outpostArn,omitempty"`
	Mode                      string `json:"mode,omitempty"`
	State                     string `json:"state,omitempty"`
	OwnerID                   string `json:"ownerID,omitempty"`
}

LocalGatewayRouteTable represents a local gateway route table.

type LocalGatewayRouteTableVirtualInterfaceGroupAssociation

type LocalGatewayRouteTableVirtualInterfaceGroupAssociation struct {
	LocalGatewayRouteTableVirtualInterfaceGroupAssociationID string `json:"id,omitempty"`
	LocalGatewayRouteTableID                                 string `json:"localGatewayRouteTableID,omitempty"`
	LocalGatewayRouteTableArn                                string `json:"localGatewayRouteTableArn,omitempty"`
	LocalGatewayID                                           string `json:"localGatewayID,omitempty"`
	LocalGatewayVirtualInterfaceGroupID                      string `json:"localGatewayVirtualInterfaceGroupID,omitempty"`
	State                                                    string `json:"state,omitempty"`
	OwnerID                                                  string `json:"ownerID,omitempty"`
}

LocalGatewayRouteTableVirtualInterfaceGroupAssociation represents an association between a local gateway route table and a virtual interface group.

type LocalGatewayRouteTableVpcAssociation

type LocalGatewayRouteTableVpcAssociation struct {
	LocalGatewayRouteTableVpcAssociationID string `json:"localGatewayRouteTableVpcAssociationID,omitempty"`
	LocalGatewayRouteTableID               string `json:"localGatewayRouteTableID,omitempty"`
	LocalGatewayRouteTableArn              string `json:"localGatewayRouteTableArn,omitempty"`
	LocalGatewayID                         string `json:"localGatewayID,omitempty"`
	VpcID                                  string `json:"vpcID,omitempty"`
	State                                  string `json:"state,omitempty"`
	OwnerID                                string `json:"ownerID,omitempty"`
}

LocalGatewayRouteTableVpcAssociation represents an association between a local gateway route table and a VPC.

type LocalGatewayVirtualInterface

type LocalGatewayVirtualInterface struct {
	Tags                                map[string]string `json:"tags,omitempty"`
	LocalGatewayVirtualInterfaceGroupID string            `json:"localGatewayVirtualInterfaceGroupID,omitempty"`
	LocalGatewayID                      string            `json:"localGatewayID,omitempty"`
	LocalGatewayVirtualInterfaceID      string            `json:"localGatewayVirtualInterfaceID,omitempty"`
	OutpostLagID                        string            `json:"outpostLagID,omitempty"`
	ConfigurationState                  string            `json:"configurationState,omitempty"`
	LocalAddress                        string            `json:"localAddress,omitempty"`
	PeerAddress                         string            `json:"peerAddress,omitempty"`
	OwnerID                             string            `json:"ownerID,omitempty"`
	LocalGatewayVirtualInterfaceArn     string            `json:"localGatewayVirtualInterfaceArn,omitempty"`
	PeerBgpAsnExtended                  int64             `json:"peerBgpAsnExtended,omitempty"`
	LocalBgpAsn                         int32             `json:"localBgpAsn,omitempty"`
	PeerBgpAsn                          int32             `json:"peerBgpAsn,omitempty"`
	Vlan                                int32             `json:"vlan,omitempty"`
}

LocalGatewayVirtualInterface represents an Outpost local gateway virtual interface. Like LocalGateway, VIFs are Outpost-provisioned; SeedLocalGatewayVirtualInterface populates them so Describe calls return realistic data.

type LocalGatewayVirtualInterfaceGroup

type LocalGatewayVirtualInterfaceGroup struct {
	LocalGatewayVirtualInterfaceGroupID  string            `json:"localGatewayVirtualInterfaceGroupID,omitempty"`
	LocalGatewayVirtualInterfaceGroupArn string            `json:"localGatewayVirtualInterfaceGroupArn,omitempty"`
	LocalGatewayID                       string            `json:"localGatewayID,omitempty"`
	ConfigurationState                   string            `json:"configurationState,omitempty"`
	OwnerID                              string            `json:"ownerID,omitempty"`
	Tags                                 map[string]string `json:"tags,omitempty"`
	LocalGatewayVirtualInterfaceIDs      []string          `json:"localGatewayVirtualInterfaceIDs,omitempty"`
	LocalBgpAsn                          int32             `json:"localBgpAsn,omitempty"`
	LocalBgpAsnExtended                  int64             `json:"localBgpAsnExtended,omitempty"`
}

LocalGatewayVirtualInterfaceGroup represents an Outpost local gateway virtual interface group. Seeded via SeedLocalGatewayVirtualInterfaceGroup.

type LocalGatewayVirtualInterfaceParams

type LocalGatewayVirtualInterfaceParams struct {
	Tags                                map[string]string
	LocalGatewayVirtualInterfaceGroupID string
	OutpostLagID                        string
	LocalAddress                        string
	PeerAddress                         string
	PeerBgpAsnExtended                  int64
	Vlan                                int32
	PeerBgpAsn                          int32
}

LocalGatewayVirtualInterfaceParams holds the parameters accepted by CreateLocalGatewayVirtualInterface.

type MacHost

type MacHost struct {
	HostID                       string   `json:"hostId,omitempty"`
	MacOSLatestSupportedVersions []string `json:"macOSLatestSupportedVersions,omitempty"`
}

MacHost represents an EC2 Mac Dedicated Host, derived on read from the dedicated host allocated for it.

type MacModificationTask

type MacModificationTask struct {
	StartTime             time.Time         `json:"startTime"`
	SIPConfig             *MacSIPConfig     `json:"sipConfig,omitempty"`
	Tags                  map[string]string `json:"tags,omitempty"`
	MacModificationTaskID string            `json:"macModificationTaskId,omitempty"`
	InstanceID            string            `json:"instanceId,omitempty"`
	TaskType              string            `json:"taskType,omitempty"`
	TaskState             string            `json:"taskState,omitempty"`
}

MacModificationTask represents a System Integrity Protection (SIP) modification task or volume ownership delegation task for an EC2 Mac instance.

type MacSIPConfig

type MacSIPConfig struct {
	AppleInternal         string `json:"appleInternal,omitempty"`
	BaseSystem            string `json:"baseSystem,omitempty"`
	DTraceRestrictions    string `json:"dTraceRestrictions,omitempty"`
	DebuggingRestrictions string `json:"debuggingRestrictions,omitempty"`
	FilesystemProtections string `json:"filesystemProtections,omitempty"`
	KextSigning           string `json:"kextSigning,omitempty"`
	NvramProtections      string `json:"nvramProtections,omitempty"`
	Status                string `json:"status,omitempty"`
}

MacSIPConfig captures the resolved per-setting System Integrity Protection configuration recorded by a sip-modification MacModificationTask.

type ManagedPrefixList

type ManagedPrefixList struct {
	PrefixListID   string            `json:"prefixListId,omitempty"`
	PrefixListName string            `json:"prefixListName,omitempty"`
	PrefixListArn  string            `json:"prefixListArn,omitempty"`
	AddressFamily  string            `json:"addressFamily,omitempty"`
	State          string            `json:"state,omitempty"`
	OwnerID        string            `json:"ownerId,omitempty"`
	Entries        []PrefixListEntry `json:"entries,omitempty"`
	Version        int64             `json:"version"`
	MaxEntries     int               `json:"maxEntries,omitempty"`
}

ManagedPrefixList represents a managed prefix list.

type MetricDataResult

type MetricDataResult struct {
	MetricName string
	Timestamps []time.Time
	Values     []float64
}

MetricDataResult is a placeholder for a single Capacity Manager metric data result. It is never populated by this backend (see GetCapacityManagerMetricData) but is defined so callers have a stable, documented return type.

type ModifyInstancePlacementInput

type ModifyInstancePlacementInput struct {
	PartitionNumber      *int32
	InstanceID           string
	Affinity             string
	GroupID              string
	GroupName            string
	HostID               string
	HostResourceGroupArn string
	Tenancy              string
}

ModifyInstancePlacementInput bundles the (mostly optional) fields accepted by ModifyInstancePlacement, avoiding a long positional parameter list.

type MonitoringState

type MonitoringState struct {
	InstanceID string `json:"instanceID,omitempty"`
	State      string `json:"state,omitempty"` // "pending" | "enabled" | "disabling" | "disabled"
}

MonitoringState holds the monitoring state for an instance.

type MovingAddressStatus

type MovingAddressStatus struct {
	PublicIP   string `json:"publicIP,omitempty"`
	MoveStatus string `json:"moveStatus,omitempty"`
}

MovingAddressStatus represents the EC2-Classic move state of an Elastic IP, as tracked by MoveAddressToVpc/DescribeMovingAddresses.

type NACLEntry

type NACLEntry struct {
	Protocol   string `json:"protocol,omitempty"`
	CIDRBlock  string `json:"cidrBlock,omitempty"`
	RuleAction string `json:"ruleAction,omitempty"`
	RuleNumber int    `json:"ruleNumber,omitempty"`
	FromPort   int    `json:"fromPort,omitempty"`
	ToPort     int    `json:"toPort,omitempty"`
	Egress     bool   `json:"egress,omitempty"`
}

type NIAttributeResult

type NIAttributeResult struct {
	NetworkInterfaceID string   `json:"networkInterfaceID,omitempty"`
	Description        string   `json:"description,omitempty"`
	GroupIDs           []string `json:"groupIDs,omitempty"`
	SourceDestCheck    bool     `json:"sourceDestCheck,omitempty"`
}

NIAttributeResult holds the result of DescribeNetworkInterfaceAttribute.

type NatGateway

type NatGateway struct {
	CreateTime   time.Time `json:"createTime"`
	ID           string    `json:"id,omitempty"`
	SubnetID     string    `json:"subnetID,omitempty"`
	VPCID        string    `json:"vpcID,omitempty"`
	AllocationID string    `json:"allocationID,omitempty"`
	PublicIP     string    `json:"publicIP,omitempty"`
	PrivateIP    string    `json:"privateIP,omitempty"`
	State        string    `json:"state,omitempty"`
	// SecondaryPrivateIPs holds additional private IPs assigned via
	// AssignPrivateNatGatewayAddress and removed via
	// UnassignPrivateNatGatewayAddress.
	SecondaryPrivateIPs []string `json:"secondaryPrivateIPs,omitempty"`
}

NatGateway represents an EC2 NAT Gateway.

type NetworkACL

type NetworkACL struct {
	ID             string   `json:"id,omitempty"`
	VPCID          string   `json:"vpcID,omitempty"`
	AssociationIDs []string `json:"associationIDs,omitempty"`
	IsDefault      bool     `json:"isDefault,omitempty"`
}

NetworkACL represents an EC2 network ACL.

type NetworkInsightsAccessScope

type NetworkInsightsAccessScope struct {
	NetworkInsightsAccessScopeID  string `json:"networkInsightsAccessScopeId,omitempty"`
	NetworkInsightsAccessScopeArn string `json:"networkInsightsAccessScopeArn,omitempty"`
}

type NetworkInsightsAccessScopeAnalysis

type NetworkInsightsAccessScopeAnalysis struct {
	NetworkInsightsAccessScopeAnalysisID string `json:"networkInsightsAccessScopeAnalysisId,omitempty"`
	NetworkInsightsAccessScopeID         string `json:"networkInsightsAccessScopeId,omitempty"`
	Status                               string `json:"status,omitempty"`
	AnalyzedEniCount                     int    `json:"analyzedEniCount,omitempty"`
}

type NetworkInsightsAnalysis

type NetworkInsightsAnalysis struct {
	NetworkInsightsAnalysisID string `json:"networkInsightsAnalysisId,omitempty"`
	NetworkInsightsPathID     string `json:"networkInsightsPathId,omitempty"`
	Status                    string `json:"status,omitempty"`
	NetworkPathFound          bool   `json:"networkPathFound,omitempty"`
}

type NetworkInsightsPath

type NetworkInsightsPath struct {
	NetworkInsightsPathID  string `json:"networkInsightsPathId,omitempty"`
	NetworkInsightsPathArn string `json:"networkInsightsPathArn,omitempty"`
	SourceID               string `json:"sourceId,omitempty"`
	DestinationID          string `json:"destinationId,omitempty"`
	Protocol               string `json:"protocol,omitempty"`
	DestinationPort        int    `json:"destinationPort,omitempty"`
}

type NetworkInterface

type NetworkInterface struct {
	ID                    string   `json:"id,omitempty"`
	SubnetID              string   `json:"subnetID,omitempty"`
	VPCID                 string   `json:"vpcID,omitempty"`
	PrivateIP             string   `json:"privateIP,omitempty"`
	Description           string   `json:"description,omitempty"`
	InstanceID            string   `json:"instanceID,omitempty"`
	AttachmentID          string   `json:"attachmentID,omitempty"`
	Status                string   `json:"status,omitempty"`
	PublicDNSHostnameType string   `json:"publicDnsHostnameType,omitempty"`
	SecondaryPrivateIPs   []string `json:"secondaryPrivateIPs,omitempty"`
	DeviceIndex           int      `json:"deviceIndex,omitempty"`
	SourceDestCheck       bool     `json:"sourceDestCheck,omitempty"`
}

NetworkInterface represents an EC2 Network Interface (ENI).

type NetworkInterfacePermission

type NetworkInterfacePermission struct {
	PermissionID       string `json:"permissionID,omitempty"`
	NetworkInterfaceID string `json:"networkInterfaceID,omitempty"`
	AwsAccountID       string `json:"awsAccountID,omitempty"`
	AwsService         string `json:"awsService,omitempty"`
	Permission         string `json:"permission,omitempty"`
	State              string `json:"state,omitempty"`
}

NetworkInterfacePermission is a permission granted on a network interface.

type NetworkPerformanceDataQuery

type NetworkPerformanceDataQuery struct {
	ID          string
	Source      string
	Destination string
	Metric      string
	Statistic   string
	Period      string
}

NetworkPerformanceDataQuery is a single query passed to GetAwsNetworkPerformanceData.

type NetworkPerformanceDataResponse

type NetworkPerformanceDataResponse struct {
	ID           string
	Source       string
	Destination  string
	Metric       string
	Statistic    string
	Period       string
	MetricPoints []NetworkPerformanceMetricPoint
}

NetworkPerformanceDataResponse is the response to a single NetworkPerformanceDataQuery.

type NetworkPerformanceMetricPoint

type NetworkPerformanceMetricPoint struct {
	StartDate time.Time
	EndDate   time.Time
	Status    string
	Value     float32
}

NetworkPerformanceMetricPoint is a single deterministic data point of a network performance data query response.

type NetworkPerformanceSubscription

type NetworkPerformanceSubscription struct {
	Source      string `json:"source,omitempty"`
	Destination string `json:"destination,omitempty"`
	Metric      string `json:"metric,omitempty"`
	Statistic   string `json:"statistic,omitempty"`
	Period      string `json:"period,omitempty"`
}

NetworkPerformanceSubscription represents an enabled AWS Network Performance metric subscription for a source/destination Region or Availability Zone pair.

type OutpostLag

type OutpostLag struct {
	Tags                            map[string]string `json:"tags,omitempty"`
	OutpostLagID                    string            `json:"outpostLagId,omitempty"`
	OutpostArn                      string            `json:"outpostArn,omitempty"`
	OwnerID                         string            `json:"ownerId,omitempty"`
	State                           string            `json:"state,omitempty"`
	LocalGatewayVirtualInterfaceIDs []string          `json:"localGatewayVirtualInterfaceIds,omitempty"`
	ServiceLinkVirtualInterfaceIDs  []string          `json:"serviceLinkVirtualInterfaceIds,omitempty"`
}

OutpostLag represents an Outpost link aggregation group (LAG). Like LocalGatewayVirtualInterface, this is an Outpost-provisioned hardware resource with no Create API in EC2; SeedOutpostLag injects it for tests.

type PeeringConnectionOptions

type PeeringConnectionOptions struct {
	AllowDNSResolutionFromRemoteVPC            bool `json:"allowDnsResolutionFromRemoteVpc,omitempty"`
	AllowEgressFromLocalClassicLinkToRemoteVPC bool `json:"allowEgressFromLocalClassicLinkToRemoteVpc,omitempty"`
	AllowEgressFromLocalVPCToRemoteClassicLink bool `json:"allowEgressFromLocalVpcToRemoteClassicLink,omitempty"`
}

PeeringConnectionOptions holds DNS/routing options for a VPC peering connection.

type PlacementGroup

type PlacementGroup struct {
	Name     string `json:"name,omitempty"`
	Strategy string `json:"strategy,omitempty"`
	State    string `json:"state,omitempty"`
}

PlacementGroup represents an EC2 placement group.

type PrefixList

type PrefixList struct {
	PrefixListID   string   `json:"prefixListID,omitempty"`
	PrefixListName string   `json:"prefixListName,omitempty"`
	CIDRs          []string `json:"cidRs,omitempty"`
}

PrefixList represents an AWS-managed prefix list.

type PrefixListEntry

type PrefixListEntry struct {
	Cidr        string `json:"cidr,omitempty"`
	Description string `json:"description,omitempty"`
}

PrefixListEntry holds a single CIDR entry in a managed prefix list.

type PrivateDNSNameOptions

type PrivateDNSNameOptions struct {
	HostnameType                    string `json:"hostnameType,omitempty"`
	EnableResourceNameDNSARecord    bool   `json:"enableResourceNameDnsARecord,omitempty"`
	EnableResourceNameDNSAAAARecord bool   `json:"enableResourceNameDnsAAAARecord,omitempty"`
}

PrivateDNSNameOptions holds the per-instance private DNS hostname configuration set via ModifyPrivateDnsNameOptions.

type Provider

type Provider struct{}

Provider implements service.Provider for the EC2 service.

func (*Provider) Init

Init initializes the EC2 service backend and handler.

func (*Provider) Name

func (p *Provider) Name() string

Name returns the logical name of the provider.

type RecycleBinImage

type RecycleBinImage struct {
	RecycleBinEnterTime time.Time `json:"recycleBinEnterTime"`
	RecycleBinExitTime  time.Time `json:"recycleBinExitTime"`
	ImageID             string    `json:"imageId,omitempty"`
	Name                string    `json:"name,omitempty"`
}

RecycleBinImage holds a soft-deleted AMI.

type RecycleBinVolume

type RecycleBinVolume struct {
	RecycleBinEnterTime time.Time `json:"recycleBinEnterTime"`
	RecycleBinExitTime  time.Time `json:"recycleBinExitTime"`
	VolumeID            string    `json:"volumeId,omitempty"`
}

RecycleBinVolume holds a soft-deleted EBS volume.

type RegisteredSQLHaInstance

type RegisteredSQLHaInstance struct {
	LastUpdatedTime       time.Time         `json:"lastUpdatedTime"`
	Tags                  map[string]string `json:"tags,omitempty"`
	InstanceID            string            `json:"instanceId,omitempty"`
	HaStatus              string            `json:"haStatus,omitempty"`
	ProcessingStatus      string            `json:"processingStatus,omitempty"`
	SQLServerCredentials  string            `json:"sqlServerCredentials,omitempty"`
	SQLServerLicenseUsage string            `json:"sqlServerLicenseUsage,omitempty"`
}

RegisteredSQLHaInstance represents an instance registered for SQL Server High Availability standby detection monitoring.

type ReplaceRootVolumeTask

type ReplaceRootVolumeTask struct {
	StartTime               time.Time `json:"startTime"`
	CompleteTime            time.Time `json:"completeTime"`
	ReplaceRootVolumeTaskID string    `json:"replaceRootVolumeTaskID,omitempty"`
	InstanceID              string    `json:"instanceID,omitempty"`
	TaskState               string    `json:"taskState,omitempty"`
	SnapshotID              string    `json:"snapshotID,omitempty"`
}

ReplaceRootVolumeTask tracks a replace-root-volume operation.

type ReservedInstance

type ReservedInstance struct {
	ReservedInstancesID string  `json:"reservedInstancesId,omitempty"`
	InstanceType        string  `json:"instanceType,omitempty"`
	AvailabilityZone    string  `json:"availabilityZone,omitempty"`
	ProductDescription  string  `json:"productDescription,omitempty"`
	State               string  `json:"state,omitempty"`
	OfferingType        string  `json:"offeringType,omitempty"`
	InstanceCount       int     `json:"instanceCount,omitempty"`
	Duration            int64   `json:"duration"`
	FixedPrice          float64 `json:"fixedPrice"`
	UsagePrice          float64 `json:"usagePrice"`
}

type ReservedInstancesExchange

type ReservedInstancesExchange struct {
	ExchangeID              string   `json:"exchangeID,omitempty"`
	Status                  string   `json:"status,omitempty"`
	ReservedInstanceIDs     []string `json:"reservedInstanceIDs,omitempty"`
	TargetReservedInstances []string `json:"targetReservedInstances,omitempty"`
}

ReservedInstancesExchange represents a completed reserved instances exchange.

type ReservedInstancesListing

type ReservedInstancesListing struct {
	ReservedInstancesListingID string `json:"reservedInstancesListingId,omitempty"`
	ReservedInstancesID        string `json:"reservedInstancesId,omitempty"`
	Status                     string `json:"status,omitempty"`
	StatusMessage              string `json:"statusMessage,omitempty"`
}

type ReservedInstancesModification

type ReservedInstancesModification struct {
	ReservedInstancesModificationID string `json:"reservedInstancesModificationId,omitempty"`
	Status                          string `json:"status,omitempty"`
	StatusMessage                   string `json:"statusMessage,omitempty"`
}

type ReservedInstancesOffering

type ReservedInstancesOffering struct {
	ReservedInstancesOfferingID string  `json:"reservedInstancesOfferingId,omitempty"`
	InstanceType                string  `json:"instanceType,omitempty"`
	AvailabilityZone            string  `json:"availabilityZone,omitempty"`
	ProductDescription          string  `json:"productDescription,omitempty"`
	OfferingType                string  `json:"offeringType,omitempty"`
	Duration                    int64   `json:"duration"`
	FixedPrice                  float64 `json:"fixedPrice"`
	UsagePrice                  float64 `json:"usagePrice"`
}

type Route

type Route struct {
	DestinationCIDR string `json:"destinationCIDR,omitempty"`
	GatewayID       string `json:"gatewayID,omitempty"`
	NatGatewayID    string `json:"natGatewayID,omitempty"`
	State           string `json:"state,omitempty"`
}

Route represents a route table entry.

type RouteAssociation

type RouteAssociation struct {
	ID           string `json:"id,omitempty"`
	RouteTableID string `json:"routeTableID,omitempty"`
	SubnetID     string `json:"subnetID,omitempty"`
}

RouteAssociation represents an association between a route table and a subnet.

type RouteServer

type RouteServer struct {
	RouteServerID           string `json:"routeServerId,omitempty"`
	State                   string `json:"state,omitempty"`
	SnsTopicArn             string `json:"snsTopicArn,omitempty"`
	PersistRoutesState      string `json:"persistRoutesState,omitempty"`
	AmazonSideAsn           int64  `json:"amazonSideAsn,omitempty"`
	PersistRoutesDuration   int64  `json:"persistRoutesDuration,omitempty"`
	SnsNotificationsEnabled bool   `json:"snsNotificationsEnabled,omitempty"`
}

RouteServer holds a VPC Route Server, a managed BGP speaker that VPC resources can peer with to exchange dynamic routes.

type RouteServerAssociation

type RouteServerAssociation struct {
	RouteServerID string `json:"routeServerId,omitempty"`
	VpcID         string `json:"vpcId,omitempty"`
	State         string `json:"state,omitempty"`
}

RouteServerAssociation holds the association between a route server and a VPC.

type RouteServerEndpoint

type RouteServerEndpoint struct {
	RouteServerEndpointID string `json:"routeServerEndpointId,omitempty"`
	RouteServerID         string `json:"routeServerId,omitempty"`
	SubnetID              string `json:"subnetId,omitempty"`
	VpcID                 string `json:"vpcId,omitempty"`
	EniID                 string `json:"eniId,omitempty"`
	EniAddress            string `json:"eniAddress,omitempty"`
	State                 string `json:"state,omitempty"`
	StateReasonCode       string `json:"stateReasonCode,omitempty"`
	StateReasonMessage    string `json:"stateReasonMessage,omitempty"`
}

RouteServerEndpoint holds a network interface, in a given subnet, through which a route server exchanges routes with VPC resources.

type RouteServerPeer

type RouteServerPeer struct {
	RouteServerPeerID            string `json:"routeServerPeerId,omitempty"`
	RouteServerEndpointID        string `json:"routeServerEndpointId,omitempty"`
	RouteServerID                string `json:"routeServerId,omitempty"`
	SubnetID                     string `json:"subnetId,omitempty"`
	VpcID                        string `json:"vpcId,omitempty"`
	State                        string `json:"state,omitempty"`
	StateReasonCode              string `json:"stateReasonCode,omitempty"`
	StateReasonMessage           string `json:"stateReasonMessage,omitempty"`
	EniID                        string `json:"eniId,omitempty"`
	EniAddress                   string `json:"eniAddress,omitempty"`
	PeerAddress                  string `json:"peerAddress,omitempty"`
	BgpPeerLivenessDetectionMode string `json:"bgpPeerLivenessDetectionMode,omitempty"`
	BgpStatus                    string `json:"bgpStatus,omitempty"`
	BgpStatusPeerState           string `json:"bgpStatusPeerState,omitempty"`
	BgpPeerAsn                   int64  `json:"bgpPeerAsn,omitempty"`
}

RouteServerPeer holds a BGP peer configured on a route server endpoint.

type RouteServerPropagation

type RouteServerPropagation struct {
	RouteServerID string `json:"routeServerId,omitempty"`
	RouteTableID  string `json:"routeTableId,omitempty"`
	State         string `json:"state,omitempty"`
}

RouteServerPropagation holds route propagation from a route server into a route table.

type RouteServerRoute

type RouteServerRoute struct {
	RouteServerEndpointID string  `json:"routeServerEndpointId,omitempty"`
	RouteServerPeerID     string  `json:"routeServerPeerId,omitempty"`
	Prefix                string  `json:"prefix,omitempty"`
	AsPaths               []int64 `json:"asPaths,omitempty"`
	Med                   int64   `json:"med,omitempty"`
	RouteInstalled        bool    `json:"routeInstalled,omitempty"`
}

RouteServerRoute holds a single route in a route server's routing database.

type RouteTable

type RouteTable struct {
	ID           string             `json:"id,omitempty"`
	VPCID        string             `json:"vpcID,omitempty"`
	Routes       []Route            `json:"routes,omitempty"`
	Associations []RouteAssociation `json:"associations,omitempty"`
}

RouteTable represents an EC2 Route Table.

type SGReference

type SGReference struct {
	GroupID                string `json:"groupID,omitempty"`
	ReferencingVPCID       string `json:"referencingVPCID,omitempty"`
	VpcPeeringConnectionID string `json:"vpcPeeringConnectionID,omitempty"`
}

SGReference represents a reference to a security group from another VPC.

type SGVpcAssocItem

type SGVpcAssocItem struct {
	SGID  string `json:"sgid,omitempty"`
	VPCID string `json:"vpcid,omitempty"`
	State string `json:"state,omitempty"`
}

SGVpcAssocItem is an entry returned by DescribeSecurityGroupVpcAssociations.

type SGVpcAssociationState

type SGVpcAssociationState struct {
	SGID  string `json:"sgid,omitempty"`
	VPCID string `json:"vpcid,omitempty"`
	State string `json:"state,omitempty"`
}

SGVpcAssociationState holds the state of a security group VPC association.

type ScheduledInstance

type ScheduledInstance struct {
	CreateDate                  time.Time                   `json:"createDate"`
	NextSlotStartTime           time.Time                   `json:"nextSlotStartTime"`
	PreviousSlotEndTime         time.Time                   `json:"previousSlotEndTime"`
	TermStartDate               time.Time                   `json:"termStartDate"`
	TermEndDate                 time.Time                   `json:"termEndDate"`
	ScheduledInstanceID         string                      `json:"scheduledInstanceId,omitempty"`
	AvailabilityZone            string                      `json:"availabilityZone,omitempty"`
	InstanceType                string                      `json:"instanceType,omitempty"`
	Platform                    string                      `json:"platform,omitempty"`
	NetworkPlatform             string                      `json:"networkPlatform,omitempty"`
	HourlyPrice                 string                      `json:"hourlyPrice,omitempty"`
	Recurrence                  ScheduledInstanceRecurrence `json:"recurrence"`
	InstanceCount               int32                       `json:"instanceCount,omitempty"`
	SlotDurationInHours         int32                       `json:"slotDurationInHours,omitempty"`
	TotalScheduledInstanceHours int32                       `json:"totalScheduledInstanceHours,omitempty"`
}

ScheduledInstance represents a purchased Scheduled Instance schedule.

type ScheduledInstanceAvailability

type ScheduledInstanceAvailability struct {
	FirstSlotStartTime          time.Time                   `json:"firstSlotStartTime"`
	AvailabilityZone            string                      `json:"availabilityZone,omitempty"`
	InstanceType                string                      `json:"instanceType,omitempty"`
	Platform                    string                      `json:"platform,omitempty"`
	NetworkPlatform             string                      `json:"networkPlatform,omitempty"`
	PurchaseToken               string                      `json:"purchaseToken,omitempty"`
	HourlyPrice                 string                      `json:"hourlyPrice,omitempty"`
	Recurrence                  ScheduledInstanceRecurrence `json:"recurrence"`
	AvailableInstanceCount      int32                       `json:"availableInstanceCount,omitempty"`
	SlotDurationInHours         int32                       `json:"slotDurationInHours,omitempty"`
	TotalScheduledInstanceHours int32                       `json:"totalScheduledInstanceHours,omitempty"`
	MaxTermDurationInDays       int32                       `json:"maxTermDurationInDays,omitempty"`
	MinTermDurationInDays       int32                       `json:"minTermDurationInDays,omitempty"`
}

ScheduledInstanceAvailability describes a single purchasable schedule in the static availability catalog returned by DescribeScheduledInstanceAvailability.

type ScheduledInstancePurchaseRequest

type ScheduledInstancePurchaseRequest struct {
	PurchaseToken string
	InstanceCount int32
}

ScheduledInstancePurchaseRequest is a single purchase request accepted by PurchaseScheduledInstances.

type ScheduledInstanceRecurrence

type ScheduledInstanceRecurrence struct {
	Frequency               string  `json:"frequency,omitempty"`
	OccurrenceUnit          string  `json:"occurrenceUnit,omitempty"`
	OccurrenceDaySet        []int32 `json:"occurrenceDaySet,omitempty"`
	Interval                int32   `json:"interval,omitempty"`
	OccurrenceRelativeToEnd bool    `json:"occurrenceRelativeToEnd,omitempty"`
}

ScheduledInstanceRecurrence describes the recurring schedule of a Scheduled Instance or availability catalog entry.

type SecondaryInterface

type SecondaryInterface struct {
	Tags                   map[string]string `json:"tags,omitempty"`
	OwnerID                string            `json:"ownerId,omitempty"`
	AvailabilityZoneID     string            `json:"availabilityZoneId,omitempty"`
	SecondaryNetworkID     string            `json:"secondaryNetworkId,omitempty"`
	SecondaryNetworkType   string            `json:"secondaryNetworkType,omitempty"`
	SecondarySubnetID      string            `json:"secondarySubnetId,omitempty"`
	SecondaryInterfaceID   string            `json:"secondaryInterfaceId,omitempty"`
	AvailabilityZone       string            `json:"availabilityZone,omitempty"`
	SecondaryInterfaceType string            `json:"secondaryInterfaceType,omitempty"`
	MacAddress             string            `json:"macAddress,omitempty"`
	Status                 string            `json:"status,omitempty"`
	SecondaryInterfaceArn  string            `json:"secondaryInterfaceArn,omitempty"`
	InstanceID             string            `json:"instanceId,omitempty"`
	PrivateIpv4Addresses   []string          `json:"privateIpv4Addresses,omitempty"`
	SourceDestCheck        bool              `json:"sourceDestCheck,omitempty"`
}

SecondaryInterface represents an EC2 secondary network interface attached to an RDMA-capable instance. Secondary interfaces have no Create API in EC2 -- they are exposed for Describe only and populated via SeedSecondaryInterface.

type SecondaryNetwork

type SecondaryNetwork struct {
	Tags                      map[string]string           `json:"tags,omitempty"`
	SecondaryNetworkID        string                      `json:"secondaryNetworkId,omitempty"`
	SecondaryNetworkArn       string                      `json:"secondaryNetworkArn,omitempty"`
	OwnerID                   string                      `json:"ownerId,omitempty"`
	Type                      string                      `json:"type,omitempty"`
	State                     string                      `json:"state,omitempty"`
	Ipv4CidrBlockAssociations []SecondaryNetworkCidrAssoc `json:"ipv4CidrBlockAssociations,omitempty"`
}

SecondaryNetwork represents an EC2 secondary network (e.g. an RDMA network used by EFA-capable instance types).

type SecondaryNetworkCidrAssoc

type SecondaryNetworkCidrAssoc struct {
	AssociationID string `json:"associationId,omitempty"`
	CidrBlock     string `json:"cidrBlock,omitempty"`
	State         string `json:"state,omitempty"`
}

SecondaryNetworkCidrAssoc represents an IPv4 CIDR block association on a SecondaryNetwork.

type SecondarySubnet

type SecondarySubnet struct {
	Tags                      map[string]string          `json:"tags,omitempty"`
	SecondarySubnetID         string                     `json:"secondarySubnetId,omitempty"`
	SecondarySubnetArn        string                     `json:"secondarySubnetArn,omitempty"`
	SecondaryNetworkID        string                     `json:"secondaryNetworkId,omitempty"`
	SecondaryNetworkType      string                     `json:"secondaryNetworkType,omitempty"`
	OwnerID                   string                     `json:"ownerId,omitempty"`
	AvailabilityZone          string                     `json:"availabilityZone,omitempty"`
	AvailabilityZoneID        string                     `json:"availabilityZoneId,omitempty"`
	State                     string                     `json:"state,omitempty"`
	Ipv4CidrBlockAssociations []SecondarySubnetCidrAssoc `json:"ipv4CidrBlockAssociations,omitempty"`
}

SecondarySubnet represents an EC2 secondary subnet within a SecondaryNetwork.

type SecondarySubnetCidrAssoc

type SecondarySubnetCidrAssoc struct {
	AssociationID string `json:"associationId,omitempty"`
	CidrBlock     string `json:"cidrBlock,omitempty"`
	State         string `json:"state,omitempty"`
}

SecondarySubnetCidrAssoc represents an IPv4 CIDR block association on a SecondarySubnet.

type SecurityGroup

type SecurityGroup struct {
	ID           string              `json:"id,omitempty"`
	Name         string              `json:"name,omitempty"`
	Description  string              `json:"description,omitempty"`
	VPCID        string              `json:"vpcID,omitempty"`
	IngressRules []SecurityGroupRule `json:"ingressRules,omitempty"`
	EgressRules  []SecurityGroupRule `json:"egressRules,omitempty"`
}

SecurityGroup represents an EC2 security group.

type SecurityGroupForVpcItem

type SecurityGroupForVpcItem struct {
	GroupID     string `json:"groupID,omitempty"`
	GroupName   string `json:"groupName,omitempty"`
	Description string `json:"description,omitempty"`
	VPCID       string `json:"vpcid,omitempty"`
}

SecurityGroupForVpcItem is a SG returned by GetSecurityGroupsForVpc.

type SecurityGroupRule

type SecurityGroupRule struct {
	Protocol           string `json:"protocol,omitempty"`
	IPRange            string `json:"ipRange,omitempty"`
	SourceGroupID      string `json:"sourceGroupId,omitempty"`
	SourceGroupOwnerID string `json:"sourceGroupOwnerId,omitempty"`
	Description        string `json:"description,omitempty"`
	FromPort           int    `json:"fromPort,omitempty"`
	ToPort             int    `json:"toPort,omitempty"`
}

SecurityGroupRule represents an inbound or outbound rule. Either IPRange or SourceGroupID is set; both can be empty for protocol-only rules.

Description is metadata only: it does not participate in a rule's identity for authorize/revoke/duplicate-detection purposes (see ruleKey), matching AWS's UpdateSecurityGroupRuleDescriptions* semantics of changing a rule's description without it becoming a "different" rule.

type SecurityGroupRuleDetail

type SecurityGroupRuleDetail struct {
	SecurityGroupRuleID string `json:"securityGroupRuleID,omitempty"`
	GroupID             string `json:"groupID,omitempty"`
	Protocol            string `json:"protocol,omitempty"`
	CIDRIPv4            string `json:"cidrIpv4,omitempty"`
	Description         string `json:"description,omitempty"`
	FromPort            int    `json:"fromPort,omitempty"`
	ToPort              int    `json:"toPort,omitempty"`
	IsEgress            bool   `json:"isEgress,omitempty"`
}

type ServiceLinkVirtualInterface

type ServiceLinkVirtualInterface struct {
	Tags                           map[string]string `json:"tags,omitempty"`
	ServiceLinkVirtualInterfaceID  string            `json:"serviceLinkVirtualInterfaceId,omitempty"`
	ServiceLinkVirtualInterfaceArn string            `json:"serviceLinkVirtualInterfaceArn,omitempty"`
	OutpostID                      string            `json:"outpostId,omitempty"`
	OutpostArn                     string            `json:"outpostArn,omitempty"`
	OutpostLagID                   string            `json:"outpostLagId,omitempty"`
	OwnerID                        string            `json:"ownerId,omitempty"`
	LocalAddress                   string            `json:"localAddress,omitempty"`
	PeerAddress                    string            `json:"peerAddress,omitempty"`
	ConfigurationState             string            `json:"configurationState,omitempty"`
	PeerBgpAsn                     int64             `json:"peerBgpAsn,omitempty"`
	Vlan                           int32             `json:"vlan,omitempty"`
}

ServiceLinkVirtualInterface represents an Outpost service link virtual interface. Like LocalGatewayVirtualInterface, these are Outpost-provisioned hardware resources with no Create API in EC2; SeedServiceLinkVirtualInterface injects them for tests.

type Settings

type Settings struct {
	JanitorInterval time.Duration `json:"janitor_interval"   env:"EC2_JANITOR_INTERVAL"   default:"1m" help:"Janitor tick interval."` //nolint:lll // Kong struct tag makes this line long
	TerminatedTTL   time.Duration ``                                                                                                  //nolint:lll // Kong struct tag makes this line long
	/* 128-byte string literal not displayed */
	CancelledSpotTTL time.Duration `` //nolint:lll // Kong struct tag makes this line long
	/* 131-byte string literal not displayed */
}

Settings holds service-level configuration for the EC2 backend. Fields are picked up by the Kong CLI parser when this struct is embedded in the root CLI command.

type Snapshot

type Snapshot struct {
	StartTime   time.Time `json:"startTime"`
	VolumeID    string    `json:"volumeID,omitempty"`
	SnapshotID  string    `json:"snapshotID,omitempty"`
	Description string    `json:"description,omitempty"`
	State       string    `json:"state,omitempty"`
	Progress    string    `json:"progress,omitempty"`
	KmsKeyID    string    `json:"kmsKeyId,omitempty"`
	VolumeSize  int       `json:"volumeSize,omitempty"`
	Encrypted   bool      `json:"encrypted,omitempty"`
}

Snapshot represents an EBS snapshot.

type SnapshotEntry

type SnapshotEntry struct {
	VolumeID    string `json:"volumeID,omitempty"`
	SnapshotID  string `json:"snapshotID,omitempty"`
	Description string `json:"description,omitempty"`
	State       string `json:"state,omitempty"`
}

SnapshotEntry is used by CreateSnapshots to specify a volume.

type SnapshotImportTask

type SnapshotImportTask struct {
	ImportTaskID string `json:"importTaskId,omitempty"`
	Description  string `json:"description,omitempty"`
	SnapshotID   string `json:"snapshotId,omitempty"`
	Status       string `json:"status,omitempty"`
}

SnapshotImportTask holds status for an ImportSnapshot task.

type SnapshotLock

type SnapshotLock struct {
	LockCreatedOn    time.Time `json:"lockCreatedOn"`
	LockExpiresOn    time.Time `json:"lockExpiresOn"`
	SnapshotID       string    `json:"snapshotID,omitempty"`
	LockState        string    `json:"lockState,omitempty"`
	LockDurationDays int       `json:"lockDurationDays,omitempty"`
}

SnapshotLock holds lock state for an EBS snapshot.

type SnapshotTierItem

type SnapshotTierItem struct {
	SnapshotID  string `json:"snapshotID,omitempty"`
	VolumeID    string `json:"volumeID,omitempty"`
	StorageTier string `json:"storageTier,omitempty"`
}

SnapshotTierItem contains tier info for a single snapshot.

type SpotDatafeed

type SpotDatafeed struct {
	Bucket string `json:"bucket,omitempty"`
	Prefix string `json:"prefix,omitempty"`
	State  string `json:"state,omitempty"`
}

SpotDatafeed holds the spot instance data feed subscription settings.

type SpotFleetCancelResult

type SpotFleetCancelResult struct {
	SpotFleetRequestID            string `json:"spotFleetRequestId,omitempty"`
	CurrentSpotFleetRequestState  string `json:"currentSpotFleetRequestState,omitempty"`
	PreviousSpotFleetRequestState string `json:"previousSpotFleetRequestState,omitempty"`
	Error                         string `json:"error,omitempty"`
}

SpotFleetCancelResult is the result of a single CancelSpotFleetRequests item.

type SpotFleetHistoryRecord

type SpotFleetHistoryRecord struct {
	Timestamp        time.Time `json:"timestamp"`
	EventType        string    `json:"eventType,omitempty"`
	EventInformation string    `json:"eventInformation,omitempty"`
}

SpotFleetHistoryRecord is a history event for a spot fleet.

type SpotFleetInstance

type SpotFleetInstance struct {
	InstanceID            string  `json:"instanceId,omitempty"`
	InstanceType          string  `json:"instanceType,omitempty"`
	SpotInstanceRequestID string  `json:"spotInstanceRequestId,omitempty"`
	InstanceHealth        string  `json:"instanceHealth,omitempty"`
	WeightedCapacity      float64 `json:"weightedCapacity"`
}

SpotFleetInstance is a single instance within a spot fleet.

type SpotFleetLaunchSpecification

type SpotFleetLaunchSpecification struct {
	ImageID          string  `json:"imageId,omitempty"`
	InstanceType     string  `json:"instanceType,omitempty"`
	SubnetID         string  `json:"subnetId,omitempty"`
	KeyName          string  `json:"keyName,omitempty"`
	SpotPrice        string  `json:"spotPrice,omitempty"`
	WeightedCapacity float64 `json:"weightedCapacity"`
}

SpotFleetLaunchSpecification is a single launch spec within a spot fleet config.

type SpotFleetRequest

type SpotFleetRequest struct {
	CreateTime                time.Time              `json:"createTime"`
	Tags                      map[string]string      `json:"tags,omitempty"`
	SpotFleetRequestID        string                 `json:"spotFleetRequestId,omitempty"`
	SpotFleetRequestState     string                 `json:"spotFleetRequestState,omitempty"`
	ActivityStatus            string                 `json:"activityStatus,omitempty"`
	InstanceIDs               []string               `json:"instanceIds,omitempty"`
	SpotFleetRequestConfig    SpotFleetRequestConfig `json:"spotFleetRequestConfig"`
	FulfilledCapacity         float64                `json:"fulfilledCapacity"`
	OnDemandFulfilledCapacity float64                `json:"onDemandFulfilledCapacity"`
}

SpotFleetRequest represents a Spot Fleet request.

type SpotFleetRequestConfig

type SpotFleetRequestConfig struct {
	ValidFrom                        time.Time                      `json:"validFrom"`
	ValidUntil                       time.Time                      `json:"validUntil"`
	SpotPrice                        string                         `json:"spotPrice,omitempty"`
	AllocationStrategy               string                         `json:"allocationStrategy,omitempty"`
	ExcessCapacityTerminationPolicy  string                         `json:"excessCapacityTerminationPolicy,omitempty"`
	IamFleetRole                     string                         `json:"iamFleetRole,omitempty"`
	Type                             string                         `json:"type,omitempty"`
	LaunchSpecifications             []SpotFleetLaunchSpecification `json:"launchSpecifications,omitempty"`
	TargetCapacity                   int                            `json:"targetCapacity,omitempty"`
	TerminateInstancesWithExpiration bool                           `json:"terminateInstancesWithExpiration,omitempty"`
	ReplaceUnhealthyInstances        bool                           `json:"replaceUnhealthyInstances,omitempty"`
}

SpotFleetRequestConfig is the configuration submitted with RequestSpotFleet.

type SpotInstanceRequest

type SpotInstanceRequest struct {
	CreateTime  time.Time               `json:"createTime"`
	CancelledAt time.Time               `json:"cancelledAt"`
	LaunchSpec  SpotLaunchSpecification `json:"launchSpec"`
	ID          string                  `json:"id,omitempty"`
	InstanceID  string                  `json:"instanceID,omitempty"`
	State       string                  `json:"state,omitempty"`
	SpotPrice   string                  `json:"spotPrice,omitempty"`
	Type        string                  `json:"type,omitempty"`
}

SpotInstanceRequest represents an EC2 spot instance request.

type SpotLaunchSpecification

type SpotLaunchSpecification struct {
	ImageID      string `json:"imageID,omitempty"`
	InstanceType string `json:"instanceType,omitempty"`
	SubnetID     string `json:"subnetID,omitempty"`
}

SpotLaunchSpecification holds launch parameters for a spot instance request.

type SpotPlacementScoreEntry

type SpotPlacementScoreEntry struct {
	Region             string
	AvailabilityZoneID string
	Score              int32
}

SpotPlacementScoreEntry is a single deterministic Spot placement score returned by GetSpotPlacementScores.

type SpotPriceRecord

type SpotPriceRecord struct {
	Timestamp          time.Time `json:"timestamp"`
	InstanceType       string    `json:"instanceType,omitempty"`
	AvailabilityZone   string    `json:"availabilityZone,omitempty"`
	ProductDescription string    `json:"productDescription,omitempty"`
	SpotPrice          string    `json:"spotPrice,omitempty"`
}

SpotPriceRecord represents a single spot price history data point.

func GenerateSpotPriceHistory

func GenerateSpotPriceHistory(
	instanceTypes, azs, products []string,
	startTime time.Time,
	region string,
) []SpotPriceRecord

GenerateSpotPriceHistory produces a deterministic slice of spot price records for the given filters. startTime defaults to 24 h ago if zero. Each (instanceType, az, product) combination gets one record per hour in the window.

type StaleSGItem

type StaleSGItem struct {
	GroupID     string `json:"groupID,omitempty"`
	GroupName   string `json:"groupName,omitempty"`
	Description string `json:"description,omitempty"`
	VPCID       string `json:"vpcid,omitempty"`
}

StaleSGItem is a stale security group entry.

type StoreImageTask

type StoreImageTask struct {
	TaskStartTime          time.Time `json:"taskStartTime"`
	AmiID                  string    `json:"amiId,omitempty"`
	Bucket                 string    `json:"bucket,omitempty"`
	S3ObjectKey            string    `json:"s3ObjectKey,omitempty"`
	StoreTaskState         string    `json:"storeTaskState,omitempty"`
	StoreTaskFailureReason string    `json:"storeTaskFailureReason,omitempty"`
	ProgressPercentage     int32     `json:"progressPercentage,omitempty"`
}

StoreImageTask represents an in-flight or completed CreateStoreImageTask operation, storing an AMI's contents as an object in an S3 bucket.

type StoredNetworkACL

type StoredNetworkACL struct {
	ID             string      `json:"id,omitempty"`
	VPCID          string      `json:"vpcID,omitempty"`
	AssociationIDs []string    `json:"associationIDs,omitempty"`
	Entries        []NACLEntry `json:"entries,omitempty"`
	IsDefault      bool        `json:"isDefault,omitempty"`
}

type Subnet

type Subnet struct {
	ID                  string `json:"id,omitempty"`
	VPCID               string `json:"vpcID,omitempty"`
	CIDRBlock           string `json:"cidrBlock,omitempty"`
	AvailabilityZone    string `json:"availabilityZone,omitempty"`
	IsDefault           bool   `json:"isDefault,omitempty"`
	MapPublicIPOnLaunch bool   `json:"mapPublicIpOnLaunch,omitempty"`
}

Subnet represents an EC2 Subnet.

type SubnetCIDRAssociation

type SubnetCIDRAssociation struct {
	AssociationID string `json:"associationID,omitempty"`
	IPv6CIDRBlock string `json:"ipv6CidrBlock,omitempty"`
	State         string `json:"state,omitempty"`
}

SubnetCIDRAssociation tracks an IPv6 CIDR associated with a subnet.

type SubnetCIDRReservation

type SubnetCIDRReservation struct {
	SubnetCIDRReservationID string `json:"subnetCidrReservationID,omitempty"`
	SubnetID                string `json:"subnetID,omitempty"`
	CIDR                    string `json:"cidr,omitempty"`
	ReservationType         string `json:"reservationType,omitempty"`
	Description             string `json:"description,omitempty"`
	OwnerID                 string `json:"ownerID,omitempty"`
	State                   string `json:"state,omitempty"`
}

SubnetCIDRReservation tracks a CIDR reservation within a subnet.

type TagEntry

type TagEntry struct {
	ResourceID   string `json:"resourceID,omitempty"`
	ResourceType string `json:"resourceType,omitempty"`
	Key          string `json:"key,omitempty"`
	Value        string `json:"value,omitempty"`
}

TagEntry holds a single resource-tag association returned by DescribeTags.

type TrafficMirrorFilter

type TrafficMirrorFilter struct {
	TrafficMirrorFilterID string                     `json:"trafficMirrorFilterId,omitempty"`
	Description           string                     `json:"description,omitempty"`
	NetworkServices       []string                   `json:"networkServices,omitempty"`
	IngressFilterRules    []*TrafficMirrorFilterRule `json:"ingressFilterRules,omitempty"`
	EgressFilterRules     []*TrafficMirrorFilterRule `json:"egressFilterRules,omitempty"`
}

type TrafficMirrorFilterRule

type TrafficMirrorFilterRule struct {
	DestinationPortRange      *TrafficMirrorPortRange `json:"destinationPortRange,omitempty"`
	SourcePortRange           *TrafficMirrorPortRange `json:"sourcePortRange,omitempty"`
	TrafficMirrorFilterRuleID string                  `json:"trafficMirrorFilterRuleId,omitempty"`
	TrafficMirrorFilterID     string                  `json:"trafficMirrorFilterId,omitempty"`
	RuleAction                string                  `json:"ruleAction,omitempty"`
	TrafficDirection          string                  `json:"trafficDirection,omitempty"`
	DestinationCidrBlock      string                  `json:"destinationCidrBlock,omitempty"`
	SourceCidrBlock           string                  `json:"sourceCidrBlock,omitempty"`
	Description               string                  `json:"description,omitempty"`
	RuleNumber                int                     `json:"ruleNumber,omitempty"`
	Protocol                  int                     `json:"protocol,omitempty"`
}

type TrafficMirrorPortRange

type TrafficMirrorPortRange struct {
	FromPort int `json:"fromPort,omitempty"`
	ToPort   int `json:"toPort,omitempty"`
}

type TrafficMirrorPortRangePair

type TrafficMirrorPortRangePair struct {
	Source      *TrafficMirrorPortRange
	Destination *TrafficMirrorPortRange
}

type TrafficMirrorSession

type TrafficMirrorSession struct {
	TrafficMirrorSessionID string `json:"trafficMirrorSessionId,omitempty"`
	NetworkInterfaceID     string `json:"networkInterfaceId,omitempty"`
	OwnerID                string `json:"ownerId,omitempty"`
	TrafficMirrorTargetID  string `json:"trafficMirrorTargetId,omitempty"`
	TrafficMirrorFilterID  string `json:"trafficMirrorFilterId,omitempty"`
	Description            string `json:"description,omitempty"`
	SessionNumber          int    `json:"sessionNumber,omitempty"`
	PacketLength           int    `json:"packetLength,omitempty"`
	VirtualNetworkID       int    `json:"virtualNetworkId,omitempty"`
}

type TrafficMirrorTarget

type TrafficMirrorTarget struct {
	TrafficMirrorTargetID         string `json:"trafficMirrorTargetId,omitempty"`
	NetworkInterfaceID            string `json:"networkInterfaceId,omitempty"`
	NetworkLoadBalancerArn        string `json:"networkLoadBalancerArn,omitempty"`
	GatewayLoadBalancerEndpointID string `json:"gatewayLoadBalancerEndpointId,omitempty"`
	OwnerID                       string `json:"ownerId,omitempty"`
	Type                          string `json:"type,omitempty"`
	Description                   string `json:"description,omitempty"`
}

type TransitGateway

type TransitGateway struct {
	ID          string `json:"transitGatewayId,omitempty"`
	Description string `json:"description,omitempty"`
	State       string `json:"state,omitempty"`
	OwnerID     string `json:"ownerId,omitempty"`
}

TransitGateway is a stub for an AWS Transit Gateway resource.

type TransitGatewayAttachmentPropagation

type TransitGatewayAttachmentPropagation struct {
	TransitGatewayRouteTableID string `json:"transitGatewayRouteTableID,omitempty"`
	State                      string `json:"state,omitempty"`
}

TransitGatewayAttachmentPropagation represents a route table an attachment propagates routes into.

type TransitGatewayAttachmentSummary

type TransitGatewayAttachmentSummary struct {
	TransitGatewayAttachmentID string
	TransitGatewayID           string
	ResourceID                 string
	ResourceType               string
	State                      string
}

TransitGatewayAttachmentSummary is the unified view of a TGW attachment returned by DescribeTransitGatewayAttachments. It aggregates rows sourced from the existing per-type attachment maps (VPC, peering, Connect) rather than a dedicated map, since each attachment already has a single owning map elsewhere in the backend.

type TransitGatewayConnect

type TransitGatewayConnect struct {
	TransitGatewayAttachmentID          string `json:"transitGatewayAttachmentId,omitempty"`
	TransportTransitGatewayAttachmentID string `json:"transportTransitGatewayAttachmentId,omitempty"`
	TransitGatewayID                    string `json:"transitGatewayId,omitempty"`
	State                               string `json:"state,omitempty"`
}

TransitGatewayConnect represents a TGW connect attachment.

type TransitGatewayConnectPeer

type TransitGatewayConnectPeer struct {
	TransitGatewayConnectPeerID string   `json:"transitGatewayConnectPeerId,omitempty"`
	TransitGatewayAttachmentID  string   `json:"transitGatewayAttachmentId,omitempty"`
	PeerAddress                 string   `json:"peerAddress,omitempty"`
	State                       string   `json:"state,omitempty"`
	InsideCidrBlocks            []string `json:"insideCidrBlocks,omitempty"`
}

TransitGatewayConnectPeer represents a TGW connect peer.

type TransitGatewayMeteringPolicy

type TransitGatewayMeteringPolicy struct {
	UpdateEffectiveAt      time.Time `json:"updateEffectiveAt"`
	ID                     string    `json:"id,omitempty"`
	TransitGatewayID       string    `json:"transitGatewayID,omitempty"`
	State                  string    `json:"state,omitempty"`
	MiddleboxAttachmentIDs []string  `json:"middleboxAttachmentIDs,omitempty"`
}

TransitGatewayMeteringPolicy represents an EC2 transit gateway metering policy.

type TransitGatewayMeteringPolicyEntry

type TransitGatewayMeteringPolicyEntry struct {
	UpdateEffectiveAt                       time.Time `json:"updateEffectiveAt"`
	UpdatedAt                               time.Time `json:"updatedAt"`
	TransitGatewayMeteringPolicyID          string    `json:"transitGatewayMeteringPolicyID,omitempty"`
	MeteredAccount                          string    `json:"meteredAccount,omitempty"`
	State                                   string    `json:"state,omitempty"`
	DestinationCidrBlock                    string    `json:"destinationCidrBlock,omitempty"`
	DestinationPortRange                    string    `json:"destinationPortRange,omitempty"`
	DestinationTransitGatewayAttachmentID   string    `json:"destinationTransitGatewayAttachmentID,omitempty"`
	DestinationTransitGatewayAttachmentType string    `json:"destinationTransitGatewayAttachmentType,omitempty"`
	Protocol                                string    `json:"protocol,omitempty"`
	SourceCidrBlock                         string    `json:"sourceCidrBlock,omitempty"`
	SourcePortRange                         string    `json:"sourcePortRange,omitempty"`
	SourceTransitGatewayAttachmentID        string    `json:"sourceTransitGatewayAttachmentID,omitempty"`
	SourceTransitGatewayAttachmentType      string    `json:"sourceTransitGatewayAttachmentType,omitempty"`
	PolicyRuleNumber                        int       `json:"policyRuleNumber,omitempty"`
}

TransitGatewayMeteringPolicyEntry represents a single traffic-matching rule within a transit gateway metering policy.

type TransitGatewayMulticastDomain

type TransitGatewayMulticastDomain struct {
	CreationTime                 time.Time `json:"creationTime"`
	ID                           string    `json:"id,omitempty"`
	TransitGatewayID             string    `json:"transitGatewayID,omitempty"`
	State                        string    `json:"state,omitempty"`
	OwnerID                      string    `json:"ownerID,omitempty"`
	AutoAcceptSharedAssociations string    `json:"autoAcceptSharedAssociations,omitempty"`
	Igmpv2Support                string    `json:"igmpv2Support,omitempty"`
	StaticSourcesSupport         string    `json:"staticSourcesSupport,omitempty"`
}

TransitGatewayMulticastDomain represents an EC2 transit gateway multicast domain.

type TransitGatewayMulticastDomainAssociation

type TransitGatewayMulticastDomainAssociation struct {
	TransitGatewayMulticastDomainID string `json:"transitGatewayMulticastDomainID,omitempty"`
	TransitGatewayAttachmentID      string `json:"transitGatewayAttachmentID,omitempty"`
	SubnetID                        string `json:"subnetID,omitempty"`
	State                           string `json:"state,omitempty"`
}

TransitGatewayMulticastDomainAssociation represents a multicast domain association.

type TransitGatewayMulticastGroupEntry

type TransitGatewayMulticastGroupEntry struct {
	TransitGatewayMulticastDomainID string `json:"transitGatewayMulticastDomainID,omitempty"`
	GroupIPAddress                  string `json:"groupIPAddress,omitempty"`
	NetworkInterfaceID              string `json:"networkInterfaceID,omitempty"`
	ResourceID                      string `json:"resourceID,omitempty"`
	ResourceType                    string `json:"resourceType,omitempty"`
	IsMember                        bool   `json:"isMember,omitempty"`
	IsSource                        bool   `json:"isSource,omitempty"`
}

TransitGatewayMulticastGroupEntry represents a network interface's membership and/or source registration within a transit gateway multicast group, keyed by (domain, group IP, network interface).

type TransitGatewayMulticastGroupMembership

type TransitGatewayMulticastGroupMembership struct {
	TransitGatewayMulticastDomainID string   `json:"transitGatewayMulticastDomainID,omitempty"`
	GroupIPAddress                  string   `json:"groupIPAddress,omitempty"`
	NetworkInterfaceIDs             []string `json:"networkInterfaceIDs,omitempty"`
}

TransitGatewayMulticastGroupMembership is returned by the multicast group member/source register and deregister operations, listing the network interfaces affected by the call.

type TransitGatewayPeeringAttachment

type TransitGatewayPeeringAttachment struct {
	CreationTime               time.Time `json:"creationTime"`
	TransitGatewayAttachmentID string    `json:"transitGatewayAttachmentID,omitempty"`
	RequesterTransitGatewayID  string    `json:"requesterTransitGatewayID,omitempty"`
	AccepterTransitGatewayID   string    `json:"accepterTransitGatewayID,omitempty"`
	State                      string    `json:"state,omitempty"`
}

TransitGatewayPeeringAttachment represents a TGW peering attachment.

type TransitGatewayPolicyTable

type TransitGatewayPolicyTable struct {
	CreationTime                time.Time `json:"creationTime"`
	TransitGatewayPolicyTableID string    `json:"transitGatewayPolicyTableID,omitempty"`
	TransitGatewayID            string    `json:"transitGatewayID,omitempty"`
	State                       string    `json:"state,omitempty"`
}

TransitGatewayPolicyTable represents a TGW policy table.

type TransitGatewayPolicyTableAssociation

type TransitGatewayPolicyTableAssociation struct {
	TransitGatewayPolicyTableID string `json:"transitGatewayPolicyTableID,omitempty"`
	TransitGatewayAttachmentID  string `json:"transitGatewayAttachmentID,omitempty"`
	ResourceID                  string `json:"resourceID,omitempty"`
	ResourceType                string `json:"resourceType,omitempty"`
	State                       string `json:"state,omitempty"`
}

TransitGatewayPolicyTableAssociation represents an association between a TGW policy table and an attachment.

type TransitGatewayPrefixListReference

type TransitGatewayPrefixListReference struct {
	PrefixListID               string `json:"prefixListId,omitempty"`
	TransitGatewayRouteTableID string `json:"transitGatewayRouteTableId,omitempty"`
	State                      string `json:"state,omitempty"`
	TransitGatewayAttachmentID string `json:"transitGatewayAttachmentId,omitempty"`
	Blackhole                  bool   `json:"blackhole,omitempty"`
}

TransitGatewayPrefixListReference represents a TGW prefix list reference.

type TransitGatewayRoute

type TransitGatewayRoute struct {
	DestinationCidrBlock       string `json:"destinationCidrBlock,omitempty"`
	TransitGatewayAttachmentID string `json:"transitGatewayAttachmentID,omitempty"`
	TransitGatewayRouteTableID string `json:"transitGatewayRouteTableID,omitempty"`
	State                      string `json:"state,omitempty"`
	Type                       string `json:"type,omitempty"`
}

TransitGatewayRoute represents a route in a TGW route table.

type TransitGatewayRouteTable

type TransitGatewayRouteTable struct {
	CreateTime         time.Time `json:"createTime"`
	TransitGatewayID   string    `json:"transitGatewayID,omitempty"`
	RouteTableID       string    `json:"routeTableID,omitempty"`
	State              string    `json:"state,omitempty"`
	DefaultAssociation bool      `json:"defaultAssociation,omitempty"`
	DefaultPropagation bool      `json:"defaultPropagation,omitempty"`
}

TransitGatewayRouteTable represents a TGW route table.

type TransitGatewayRouteTableAnnouncement

type TransitGatewayRouteTableAnnouncement struct {
	CreationTime                           time.Time `json:"creationTime"`
	TransitGatewayRouteTableAnnouncementID string    `json:"transitGatewayRouteTableAnnouncementID,omitempty"`
	TransitGatewayID                       string    `json:"transitGatewayID,omitempty"`
	TransitGatewayRouteTableID             string    `json:"transitGatewayRouteTableID,omitempty"`
	PeeringAttachmentID                    string    `json:"peeringAttachmentID,omitempty"`
	AnnouncementDirection                  string    `json:"announcementDirection,omitempty"`
	State                                  string    `json:"state,omitempty"`
}

TransitGatewayRouteTableAnnouncement represents a TGW route table announcement across a peering attachment.

type TransitGatewayRouteTableAssociation

type TransitGatewayRouteTableAssociation struct {
	TransitGatewayRouteTableID string `json:"transitGatewayRouteTableID,omitempty"`
	TransitGatewayAttachmentID string `json:"transitGatewayAttachmentID,omitempty"`
	ResourceID                 string `json:"resourceID,omitempty"`
	ResourceType               string `json:"resourceType,omitempty"`
	State                      string `json:"state,omitempty"`
}

TransitGatewayRouteTableAssociation represents an association between a TGW route table and attachment.

type TransitGatewayRouteTablePropagation

type TransitGatewayRouteTablePropagation struct {
	ResourceID                             string `json:"resourceID,omitempty"`
	ResourceType                           string `json:"resourceType,omitempty"`
	State                                  string `json:"state,omitempty"`
	TransitGatewayAttachmentID             string `json:"transitGatewayAttachmentID,omitempty"`
	TransitGatewayRouteTableAnnouncementID string `json:"transitGatewayRouteTableAnnouncementID,omitempty"`
}

TransitGatewayRouteTablePropagation represents an attachment enabled (via EnableTransitGatewayRouteTablePropagation, in transit_gateways.go) to propagate routes into a TGW route table.

type TransitGatewayVpcAttachment

type TransitGatewayVpcAttachment struct {
	CreationTime               time.Time `json:"creationTime"`
	TransitGatewayAttachmentID string    `json:"transitGatewayAttachmentID,omitempty"`
	TransitGatewayID           string    `json:"transitGatewayID,omitempty"`
	VpcID                      string    `json:"vpcID,omitempty"`
	State                      string    `json:"state,omitempty"`
	// SubnetIDs is the set of subnet IDs the attachment uses, managed via
	// ModifyTransitGatewayVpcAttachment's AddSubnetIds/RemoveSubnetIds.
	SubnetIDs []string `json:"subnetIDs,omitempty"`
}

TransitGatewayVpcAttachment represents a TGW VPC attachment.

type TrunkInterfaceAssociation

type TrunkInterfaceAssociation struct {
	Tags              map[string]string `json:"tags,omitempty"`
	AssociationID     string            `json:"associationId,omitempty"`
	BranchInterfaceID string            `json:"branchInterfaceId,omitempty"`
	TrunkInterfaceID  string            `json:"trunkInterfaceId,omitempty"`
	InterfaceProtocol string            `json:"interfaceProtocol,omitempty"`
	VlanID            int32             `json:"vlanId,omitempty"`
	GreKey            int32             `json:"greKey,omitempty"`
}

TrunkInterfaceAssociation represents an association between a branch network interface and a trunk network interface, allowing multiple logical networks to be multiplexed over a single ENI attachment.

type UsageReport

type UsageReport struct {
	CreatedAt time.Time `json:"createdAt"`
	ReportID  string    `json:"reportId,omitempty"`
	ImageID   string    `json:"imageId,omitempty"`
}

UsageReport tracks a CreateImageUsageReport request and its computed entries.

type UsageReportEntry

type UsageReportEntry struct {
	ReportCreationTime time.Time `json:"reportCreationTime"`
	ReportID           string    `json:"reportId,omitempty"`
	ImageID            string    `json:"imageId,omitempty"`
	AccountID          string    `json:"accountId,omitempty"`
	ResourceType       string    `json:"resourceType,omitempty"`
	UsageCount         int64     `json:"usageCount,omitempty"`
}

UsageReportEntry is a single account/resource-type usage tally within an image usage report.

type VPC

type VPC struct {
	Attributes              map[string]bool `json:"attributes,omitempty"`
	ID                      string          `json:"id,omitempty"`
	CIDRBlock               string          `json:"cidrBlock,omitempty"`
	IsDefault               bool            `json:"isDefault,omitempty"`
	ClassicLinkEnabled      bool            `json:"classicLinkEnabled,omitempty"`
	ClassicLinkDNSSupported bool            `json:"classicLinkDnsSupported,omitempty"`
}

VPC represents an EC2 VPC.

type VerifiedAccessEndpoint

type VerifiedAccessEndpoint struct {
	VerifiedAccessEndpointID string `json:"verifiedAccessEndpointId,omitempty"`
	VerifiedAccessGroupID    string `json:"verifiedAccessGroupId,omitempty"`
	Status                   string `json:"status,omitempty"`
	Description              string `json:"description,omitempty"`
	EndpointType             string `json:"endpointType,omitempty"`
}

VerifiedAccessEndpoint represents a Verified Access endpoint.

type VerifiedAccessEndpointTarget

type VerifiedAccessEndpointTarget struct {
	VerifiedAccessEndpointID              string `json:"verifiedAccessEndpointId,omitempty"`
	VerifiedAccessEndpointTargetIPAddress string `json:"verifiedAccessEndpointTargetIpAddress,omitempty"`
	VerifiedAccessEndpointTargetDNS       string `json:"verifiedAccessEndpointTargetDns,omitempty"`
}

VerifiedAccessEndpointTarget describes a resolved network target for a Verified Access endpoint.

type VerifiedAccessGroup

type VerifiedAccessGroup struct {
	VerifiedAccessGroupID    string `json:"verifiedAccessGroupId,omitempty"`
	VerifiedAccessInstanceID string `json:"verifiedAccessInstanceId,omitempty"`
	Status                   string `json:"status,omitempty"`
	Description              string `json:"description,omitempty"`
}

VerifiedAccessGroup represents a Verified Access group.

type VerifiedAccessInstance

type VerifiedAccessInstance struct {
	VerifiedAccessInstanceID string   `json:"verifiedAccessInstanceId,omitempty"`
	Status                   string   `json:"status,omitempty"`
	Description              string   `json:"description,omitempty"`
	AttachedTrustProviderIDs []string `json:"attachedTrustProviderIds,omitempty"`
}

VerifiedAccessInstance represents a Verified Access instance.

type VerifiedAccessInstanceClientConfiguration

type VerifiedAccessInstanceClientConfiguration struct {
	VerifiedAccessInstanceID string
	Region                   string
	Version                  string
}

VerifiedAccessInstanceClientConfiguration is the exported client configuration for a Verified Access instance.

type VerifiedAccessInstanceLoggingConfig

type VerifiedAccessInstanceLoggingConfig struct {
	VerifiedAccessInstanceID string                   `json:"verifiedAccessInstanceId,omitempty"`
	AccessLogs               VerifiedAccessLogOptions `json:"accessLogs,omitzero"`
}

VerifiedAccessInstanceLoggingConfig is the logging configuration stored for a Verified Access instance.

type VerifiedAccessLogCloudWatchLogs

type VerifiedAccessLogCloudWatchLogs struct {
	LogGroup string `json:"logGroup,omitempty"`
	Enabled  bool   `json:"enabled,omitempty"`
}

VerifiedAccessLogCloudWatchLogs holds the CloudWatch Logs destination configuration for a Verified Access instance's logging configuration.

type VerifiedAccessLogKinesisDataFirehose

type VerifiedAccessLogKinesisDataFirehose struct {
	DeliveryStream string `json:"deliveryStream,omitempty"`
	Enabled        bool   `json:"enabled,omitempty"`
}

VerifiedAccessLogKinesisDataFirehose holds the Kinesis Data Firehose destination configuration for a Verified Access instance's logging configuration.

type VerifiedAccessLogOptions

type VerifiedAccessLogOptions struct {
	CloudWatchLogs      *VerifiedAccessLogCloudWatchLogs      `json:"cloudWatchLogs,omitempty"`
	KinesisDataFirehose *VerifiedAccessLogKinesisDataFirehose `json:"kinesisDataFirehose,omitempty"`
	S3                  *VerifiedAccessLogS3                  `json:"s3,omitempty"`
	LogVersion          string                                `json:"logVersion,omitempty"`
	IncludeTrustContext bool                                  `json:"includeTrustContext,omitempty"`
}

VerifiedAccessLogOptions is the set of logging destinations that can be configured for a Verified Access instance.

type VerifiedAccessLogS3

type VerifiedAccessLogS3 struct {
	BucketName  string `json:"bucketName,omitempty"`
	BucketOwner string `json:"bucketOwner,omitempty"`
	Prefix      string `json:"prefix,omitempty"`
	Enabled     bool   `json:"enabled,omitempty"`
}

VerifiedAccessLogS3 holds the Amazon S3 destination configuration for a Verified Access instance's logging configuration.

type VerifiedAccessPolicy

type VerifiedAccessPolicy struct {
	PolicyDocument string `json:"policyDocument,omitempty"`
	PolicyEnabled  bool   `json:"policyEnabled,omitempty"`
}

VerifiedAccessPolicy holds the Verified Access policy document and enabled status associated with either a Verified Access endpoint or group.

type VerifiedAccessTrustProvider

type VerifiedAccessTrustProvider struct {
	VerifiedAccessTrustProviderID string `json:"verifiedAccessTrustProviderId,omitempty"`
	TrustProviderType             string `json:"trustProviderType,omitempty"`
	Status                        string `json:"status,omitempty"`
	Description                   string `json:"description,omitempty"`
}

VerifiedAccessTrustProvider represents a Verified Access trust provider.

type VgwTelemetry

type VgwTelemetry struct {
	OutsideIPAddress   string `json:"outsideIpAddress,omitempty"`
	Status             string `json:"status,omitempty"`
	StatusMessage      string `json:"statusMessage,omitempty"`
	LastStatusChange   string `json:"lastStatusChange,omitempty"`
	CertificateARN     string `json:"certificateArn,omitempty"`
	AcceptedRouteCount int32  `json:"acceptedRouteCount,omitempty"`
}

VgwTelemetry reports the status of one tunnel as observed from the VPN gateway side.

type Volume

type Volume struct {
	CreateTime time.Time         `json:"createTime"`
	Attachment *VolumeAttachment `json:"attachment,omitempty"`
	ID         string            `json:"id,omitempty"`
	AZ         string            `json:"az,omitempty"`
	VolumeType string            `json:"volumeType,omitempty"`
	State      string            `json:"state,omitempty"`
	KmsKeyID   string            `json:"kmsKeyId,omitempty"`
	Size       int               `json:"size,omitempty"`
	Iops       int               `json:"iops,omitempty"`
	Throughput int               `json:"throughput,omitempty"`
	Encrypted  bool              `json:"encrypted,omitempty"`
}

Volume represents an EBS volume.

type VolumeAttachment

type VolumeAttachment struct {
	AttachTime time.Time `json:"attachTime"`
	VolumeID   string    `json:"volumeID,omitempty"`
	InstanceID string    `json:"instanceID,omitempty"`
	Device     string    `json:"device,omitempty"`
	State      string    `json:"state,omitempty"`
}

VolumeAttachment represents the attachment state of a volume.

type VolumeModification

type VolumeModification struct {
	StartTime         time.Time `json:"startTime"`
	EndTime           time.Time `json:"endTime"`
	VolumeID          string    `json:"volumeID,omitempty"`
	ModificationState string    `json:"modificationState,omitempty"`
	TargetVolumeType  string    `json:"targetVolumeType,omitempty"`
	OrigVolumeType    string    `json:"origVolumeType,omitempty"`
	TargetSize        int       `json:"targetSize,omitempty"`
	OrigSize          int       `json:"origSize,omitempty"`
	TargetIops        int       `json:"targetIops,omitempty"`
	OrigIops          int       `json:"origIops,omitempty"`
	Progress          int64     `json:"progress"`
}

VolumeModification tracks a ModifyVolume operation.

type VolumeStatusItem

type VolumeStatusItem struct {
	VolumeID         string `json:"volumeID,omitempty"`
	AvailabilityZone string `json:"availabilityZone,omitempty"`
	VolumeStatus     string `json:"volumeStatus,omitempty"`
	StatusMessage    string `json:"statusMessage,omitempty"`
}

VolumeStatusItem represents the status of a single EBS volume.

type VpcBlockPublicAccessExclusion

type VpcBlockPublicAccessExclusion struct {
	CreationTimestamp            time.Time         `json:"creationTimestamp"`
	LastUpdateTimestamp          time.Time         `json:"lastUpdateTimestamp"`
	Tags                         map[string]string `json:"tags,omitempty"`
	ExclusionID                  string            `json:"exclusionId,omitempty"`
	ResourceArn                  string            `json:"resourceArn,omitempty"`
	VpcID                        string            `json:"vpcId,omitempty"`
	SubnetID                     string            `json:"subnetId,omitempty"`
	InternetGatewayExclusionMode string            `json:"internetGatewayExclusionMode,omitempty"`
	State                        string            `json:"state,omitempty"`
	Reason                       string            `json:"reason,omitempty"`
}

VpcBlockPublicAccessExclusion represents an exclusion from the account's VPC Block Public Access mode for a single VPC or subnet.

type VpcBlockPublicAccessOptions

type VpcBlockPublicAccessOptions struct {
	LastUpdateTimestamp      time.Time `json:"lastUpdateTimestamp"`
	AwsAccountID             string    `json:"awsAccountId,omitempty"`
	AwsRegion                string    `json:"awsRegion,omitempty"`
	InternetGatewayBlockMode string    `json:"internetGatewayBlockMode,omitempty"`
	State                    string    `json:"state,omitempty"`
	Reason                   string    `json:"reason,omitempty"`
	ManagedBy                string    `json:"managedBy,omitempty"`
	ExclusionsAllowed        string    `json:"exclusionsAllowed,omitempty"`
}

VpcBlockPublicAccessOptions is the per-account+region VPC Block Public Access (BPA) configuration singleton.

type VpcCidrBlockAssociation

type VpcCidrBlockAssociation struct {
	AssociationID string `json:"associationID,omitempty"`
	CidrBlock     string `json:"cidrBlock,omitempty"`
	State         string `json:"state,omitempty"`
}

VpcCidrBlockAssociation represents a secondary CIDR block associated with a VPC.

type VpcEncryptionControl

type VpcEncryptionControl struct {
	Tags                   map[string]string              `json:"tags,omitempty"`
	ResourceExclusions     VpcEncryptionControlExclusions `json:"resourceExclusions"`
	VpcEncryptionControlID string                         `json:"vpcEncryptionControlId,omitempty"`
	VpcID                  string                         `json:"vpcId,omitempty"`
	Mode                   string                         `json:"mode,omitempty"`
	State                  string                         `json:"state,omitempty"`
	StateMessage           string                         `json:"stateMessage,omitempty"`
}

VpcEncryptionControl represents a per-VPC encryption-in-transit enforcement configuration (VPC Encryption Control).

type VpcEncryptionControlExclusionModify

type VpcEncryptionControlExclusionModify struct {
	EgressOnlyInternetGateway string
	ElasticFileSystem         string
	InternetGateway           string
	Lambda                    string
	NatGateway                string
	VirtualPrivateGateway     string
	VpcLattice                string
	VpcPeering                string
}

VpcEncryptionControlExclusionModify holds the subset of exclusion fields that ModifyVpcEncryptionControl may change. Empty string values mean "leave unchanged".

type VpcEncryptionControlExclusionState

type VpcEncryptionControlExclusionState struct {
	State string `json:"state,omitempty"`
}

VpcEncryptionControlExclusionState is a single traffic-type's exclusion setting within a VPC Encryption Control configuration.

type VpcEncryptionControlExclusions

type VpcEncryptionControlExclusions struct {
	EgressOnlyInternetGateway VpcEncryptionControlExclusionState `json:"egressOnlyInternetGateway"`
	ElasticFileSystem         VpcEncryptionControlExclusionState `json:"elasticFileSystem"`
	InternetGateway           VpcEncryptionControlExclusionState `json:"internetGateway"`
	Lambda                    VpcEncryptionControlExclusionState `json:"lambda"`
	NatGateway                VpcEncryptionControlExclusionState `json:"natGateway"`
	VirtualPrivateGateway     VpcEncryptionControlExclusionState `json:"virtualPrivateGateway"`
	VpcLattice                VpcEncryptionControlExclusionState `json:"vpcLattice"`
	VpcPeering                VpcEncryptionControlExclusionState `json:"vpcPeering"`
}

VpcEncryptionControlExclusions holds the per-traffic-type exclusion settings for a VPC Encryption Control configuration.

type VpcEncryptionNonCompliantResource

type VpcEncryptionNonCompliantResource struct {
	ID           string `json:"id,omitempty"`
	Type         string `json:"type,omitempty"`
	Description  string `json:"description,omitempty"`
	IsExcludable bool   `json:"isExcludable,omitempty"`
}

VpcEncryptionNonCompliantResource describes a VPC sub-resource that is blocking encryption enforcement for a VPC.

type VpcEndpoint

type VpcEndpoint struct {
	CreateTime      time.Time `json:"createTime"`
	ID              string    `json:"id,omitempty"`
	VPCID           string    `json:"vpcID,omitempty"`
	ServiceName     string    `json:"serviceName,omitempty"`
	State           string    `json:"state,omitempty"`
	VpcEndpointType string    `json:"vpcEndpointType,omitempty"`
	SubnetIDs       []string  `json:"subnetIDs,omitempty"`
	RouteTableIDs   []string  `json:"routeTableIDs,omitempty"`
}

VpcEndpoint represents an EC2 VPC endpoint.

type VpcEndpointConnection

type VpcEndpointConnection struct {
	CreationTime  time.Time `json:"creationTime"`
	ServiceID     string    `json:"serviceID,omitempty"`
	VpcEndpointID string    `json:"vpcEndpointID,omitempty"`
	State         string    `json:"state,omitempty"`
}

VpcEndpointConnection represents a VPC endpoint connection to a service.

type VpcEndpointConnectionNotification

type VpcEndpointConnectionNotification struct {
	ConnectionNotificationID    string   `json:"connectionNotificationID,omitempty"`
	ServiceID                   string   `json:"serviceID,omitempty"`
	VpcEndpointID               string   `json:"vpcEndpointID,omitempty"`
	ConnectionNotificationARN   string   `json:"connectionNotificationARN,omitempty"`
	ConnectionNotificationType  string   `json:"connectionNotificationType,omitempty"`
	ConnectionNotificationState string   `json:"connectionNotificationState,omitempty"`
	ConnectionEvents            []string `json:"connectionEvents,omitempty"`
}

VpcEndpointConnectionNotification tracks a VPC endpoint connection notification.

type VpcEndpointServiceConfig

type VpcEndpointServiceConfig struct {
	ServiceID               string   `json:"serviceId,omitempty"`
	ServiceName             string   `json:"serviceName,omitempty"`
	ServiceType             string   `json:"serviceType,omitempty"`
	PrivateDNSNameState     string   `json:"privateDnsNameState,omitempty"`
	NetworkLoadBalancerARNs []string `json:"networkLoadBalancerArns,omitempty"`
	AcceptanceRequired      bool     `json:"acceptanceRequired,omitempty"`
}

VpcEndpointServiceConfig represents a VPC endpoint service configuration.

type VpcPeeringConnection

type VpcPeeringConnection struct {
	ExpirationTime         time.Time `json:"expirationTime"`
	VpcPeeringConnectionID string    `json:"vpcPeeringConnectionID,omitempty"`
	RequesterVpcID         string    `json:"requesterVpcID,omitempty"`
	AccepterVpcID          string    `json:"accepterVpcID,omitempty"`
	State                  string    `json:"state,omitempty"`
}

VpcPeeringConnection represents a VPC peering connection.

type VpnConcentrator

type VpnConcentrator struct {
	Tags                       map[string]string `json:"tags,omitempty"`
	VpnConcentratorID          string            `json:"vpnConcentratorId,omitempty"`
	Type                       string            `json:"type,omitempty"`
	State                      string            `json:"state,omitempty"`
	TransitGatewayID           string            `json:"transitGatewayId,omitempty"`
	TransitGatewayAttachmentID string            `json:"transitGatewayAttachmentId,omitempty"`
}

VpnConcentrator represents a VPN concentrator, an aggregation point for multiple Site-to-Site VPN connections attached to a transit gateway.

type VpnConnection

type VpnConnection struct {
	VpnConnectionID              string               `json:"vpnConnectionId,omitempty"`
	State                        string               `json:"state,omitempty"`
	CustomerGatewayID            string               `json:"customerGatewayId,omitempty"`
	VpnGatewayID                 string               `json:"vpnGatewayId,omitempty"`
	TransitGatewayID             string               `json:"transitGatewayId,omitempty"`
	Type                         string               `json:"type,omitempty"`
	Category                     string               `json:"category,omitempty"`
	CustomerGatewayConfiguration string               `json:"customerGatewayConfiguration,omitempty"`
	VgwTelemetry                 []VgwTelemetry       `json:"vgwTelemetry,omitempty"`
	Options                      VpnConnectionOptions `json:"options"`
}

VpnConnection represents a VPN connection.

type VpnConnectionDeviceType

type VpnConnectionDeviceType struct {
	VpnConnectionDeviceTypeID string `json:"vpnConnectionDeviceTypeId,omitempty"`
	Vendor                    string `json:"vendor,omitempty"`
	Platform                  string `json:"platform,omitempty"`
	Software                  string `json:"software,omitempty"`
}

VpnConnectionDeviceType describes a customer gateway device vendor/platform/software combination that AWS publishes sample configurations for.

type VpnConnectionOptions

type VpnConnectionOptions struct {
	LocalIPv4NetworkCIDR  string            `json:"localIpv4NetworkCidr,omitempty"`
	RemoteIPv4NetworkCIDR string            `json:"remoteIpv4NetworkCidr,omitempty"`
	TunnelOptions         []VpnTunnelOption `json:"tunnelOptions,omitempty"`
	StaticRoutesOnly      bool              `json:"staticRoutesOnly,omitempty"`
}

VpnConnectionOptions holds the negotiated options of a VPN connection, including its two IPsec tunnels.

type VpnConnectionRoute

type VpnConnectionRoute struct {
	VpnConnectionID string `json:"vpnConnectionId,omitempty"`
	DestinationCIDR string `json:"destinationCidrBlock,omitempty"`
	State           string `json:"state,omitempty"`
}

VpnConnectionRoute represents a static route in a VPN connection.

type VpnGateway

type VpnGateway struct {
	VpnGatewayID    string `json:"vpnGatewayId,omitempty"`
	State           string `json:"state,omitempty"`
	Type            string `json:"type,omitempty"`
	AttachedVPCID   string `json:"attachedVpcId,omitempty"`
	AttachmentState string `json:"attachmentState,omitempty"`
}

VpnGateway represents a Virtual Private Gateway (VGW).

type VpnTunnelMaintenanceDetails

type VpnTunnelMaintenanceDetails struct {
	PendingMaintenance string `json:"pendingMaintenance,omitempty"`
}

VpnTunnelMaintenanceDetails reports pending AWS-initiated tunnel endpoint maintenance. This mock never schedules maintenance, so PendingMaintenance is always "false".

type VpnTunnelOption

type VpnTunnelOption struct {
	OutsideIPAddress       string   `json:"outsideIpAddress,omitempty"`
	TunnelInsideCIDR       string   `json:"tunnelInsideCidr,omitempty"`
	PreSharedKey           string   `json:"preSharedKey,omitempty"`
	DPDTimeoutAction       string   `json:"dpdTimeoutAction,omitempty"`
	StartupAction          string   `json:"startupAction,omitempty"`
	CertificateARN         string   `json:"certificateArn,omitempty"`
	IKEVersions            []string `json:"ikeVersions,omitempty"`
	Phase1LifetimeSeconds  int32    `json:"phase1LifetimeSeconds,omitempty"`
	Phase2LifetimeSeconds  int32    `json:"phase2LifetimeSeconds,omitempty"`
	RekeyMarginTimeSeconds int32    `json:"rekeyMarginTimeSeconds,omitempty"`
	DPDTimeoutSeconds      int32    `json:"dpdTimeoutSeconds,omitempty"`
}

VpnTunnelOption represents the negotiated configuration of one of a VPN connection's two IPsec tunnels.

type VpnTunnelOptionsModify

type VpnTunnelOptionsModify struct {
	TunnelInsideCIDR       string
	PreSharedKey           string
	DPDTimeoutAction       string
	StartupAction          string
	IKEVersions            []string
	Phase1LifetimeSeconds  int32
	Phase2LifetimeSeconds  int32
	RekeyMarginTimeSeconds int32
	DPDTimeoutSeconds      int32
}

VpnTunnelOptionsModify holds the subset of tunnel fields that ModifyVpnTunnelOptions may change. Zero values (empty string / 0 / nil slice) mean "leave unchanged".

type VpnTunnelReplacementStatus

type VpnTunnelReplacementStatus struct {
	VpnConnectionID           string
	TransitGatewayID          string
	VpnGatewayID              string
	CustomerGatewayID         string
	VpnTunnelOutsideIPAddress string
	MaintenanceDetails        VpnTunnelMaintenanceDetails
}

VpnTunnelReplacementStatus is the result of GetVpnTunnelReplacementStatus.

Source Files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL