Part of the LIR sponsoring epic (see #39).
The asn_subscription DB layer exists (table + model AsnSubscription/AsnSubscriptionStatus + traits + mysql + mock + resource resolution). This issue covers turning it into a fulfillable product.
Unlike IP ranges, an ASN is a unique registry resource assigned by the RIR (async, admin-in-the-loop) — nothing is allocated locally.
Scope
Fulfilment gate (compliance)
Depends on: #188, #189. Related: registry provider config (#191).
Part of the LIR sponsoring epic (see #39).
The
asn_subscriptionDB layer exists (table + modelAsnSubscription/AsnSubscriptionStatus+ traits + mysql + mock + resource resolution). This issue covers turning it into a fulfillable product.Unlike IP ranges, an ASN is a unique registry resource assigned by the RIR (async, admin-in-the-loop) — nothing is allocated locally.
Scope
AsnProvisioner+ thinAsnLineItemHandler(mirror theIpRangeProvisioner/IpRangeLineItemHandlersplit).on_payment(gated — see below): create aRequestedasn_subscriptionrow + notify admins to file the RIR sponsorship request.asn,status = Assigned,assigned_at; then create theaut-numwhois object.RegistryProviderwithcreate_aut_num/delete_aut_num(RIPE whoisaut-num), storingaut_num_ref. (No RPKI for the ASN itself; ASPA is not standard yet.)aut-num, deactivate the row.not_implementedbranch inPOST /api/v1/subscriptions(AsnSponsoringline item); admin/user endpoints to view status.Fulfilment gate (compliance)
aut-numuntil KYC verified (LIR: End-User KYC via Stripe Identity #188) AND a fully-signed LIR agreement exists (LIR: persist & bilaterally sign the Sponsoring LIR Agreement #189). RIPE requires the contract in place at assignment.Depends on: #188, #189. Related: registry provider config (#191).