feat(route53): VPC + delegation sets + geo + tags + account limits (batch 5)#795
Merged
vieiralucas merged 2 commits intomainfrom Apr 27, 2026
Merged
Conversation
…atch 5) Closes the Route 53 control plane: 17 new ops bring the total to 71/71 (100%). - AssociateVPCWithHostedZone / DisassociateVPCFromHostedZone with private-zone-only enforcement and last-VPC removal protection. - CreateVPCAssociationAuthorization / Delete / List for the cross-account authorization handshake. - ListHostedZonesByVPC. - CreateReusableDelegationSet (4 NS records synthesized, duplicate CallerReference rejected) / Get / Delete (DelegationSetInUse) / List / GetReusableDelegationSetLimit. - ListGeoLocations / GetGeoLocation over a representative dataset (continents + sample countries + US subdivisions) with full IsTruncated + NextContinentCode/NextCountryCode/NextSubdivisionCode pagination. - GetAccountLimit for all 5 owner-scoped types with live Count from in-memory state. - ChangeTagsForResource / ListTagsForResource / ListTagsForResources for both healthcheck and hostedzone resource types. Includes 8 SDK E2E tests + 17 conformance tests. Conformance probe reports 71/71 ops, 2388/2388 variants pass.
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
5 issues found across 9 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="crates/fakecloud-conformance/tests/route53_vpc_delegation_geo_tags.rs">
<violation number="1" location="crates/fakecloud-conformance/tests/route53_vpc_delegation_geo_tags.rs:98">
P2: Use a private hosted zone for the VPC association authorization tests.</violation>
</file>
<file name="crates/fakecloud-route53/src/service.rs">
<violation number="1" location="crates/fakecloud-route53/src/service.rs:3303">
P1: Check for the last VPC before mutating `zone.vpcs`; the current error path returns `LastVPCAssociation` after already removing the only association.</violation>
<violation number="2" location="crates/fakecloud-route53/src/service.rs:3360">
P2: Reject public hosted zones before creating VPC association authorizations; this API is private-zone-only.</violation>
<violation number="3" location="crates/fakecloud-route53/src/service.rs:3544">
P2: Honor `HostedZoneId` when creating a reusable delegation set; currently the field is ignored, so invalid hosted zone IDs are accepted.</violation>
<violation number="4" location="crates/fakecloud-route53/src/service.rs:3732">
P2: Compute the next geo-location marker from the filtered result set before truncating it; using the unfiltered list returns wrong pagination markers when start parameters are present.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
…n set - DisassociateVPCFromHostedZone: check last-VPC condition before mutating zone.vpcs (P1). The previous code retained-then-erred, so the only remaining VPC was already removed by the time LastVPCAssociation bubbled up. - CreateVPCAssociationAuthorization: reject public hosted zones with PublicZoneVPCAssociation. The auth handshake is private-zone-only. - CreateReusableDelegationSet: when HostedZoneId is supplied, look the zone up and reuse its NameServers; unknown IDs now return NoSuchHostedZone instead of silently succeeding. - ListGeoLocations: derive the next-page marker from the filtered list, not the unfiltered catalogue. With non-empty start parameters the unfiltered offset would point at the wrong row. - Conformance tests for VPC association authorization ops now use a private hosted zone since Create now requires it. New regression coverage in route53_vpc_delegation_geo_tags.rs: create_vpc_authorization_rejects_public_zone, reusable_delegation_set_with_unknown_hosted_zone_errors, reusable_delegation_set_promotes_zone_name_servers, list_geo_locations_pagination_resumes_correctly.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Test plan
Summary by cubic
Completes the Route 53 control plane with VPC associations, reusable delegation sets, geo locations, account limits, and tag CRUD. Adds 17 operations; Route 53 now at 71/71 with full conformance, plus fixes for VPC disassociate safety, public-zone auth rejection, delegation set promotion, and geo pagination.
DisassociateVPCFromHostedZone: block last-VPC removal before mutating state.CreateVPCAssociationAuthorization: reject public zones withPublicZoneVPCAssociation.CreateReusableDelegationSet: whenHostedZoneIdis provided, reuse that zone’s NS; unknown IDs returnNoSuchHostedZone.ListGeoLocations: derive next-page markers from the filtered list for correct pagination.Written for commit f22ece5. Summary will update on new commits.