Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VPC routers and routes #2295

Closed
david-crespo opened this issue Jun 27, 2024 · 0 comments · Fixed by #2359
Closed

VPC routers and routes #2295

david-crespo opened this issue Jun 27, 2024 · 0 comments · Fixed by #2359
Assignees
Labels
design Requires design input
Milestone

Comments

@david-crespo
Copy link
Collaborator

We can easily have a top-level routers tab on the VPC detail listing the routers, but routes are children of routers, so I think we'd have to have a click on router take you to a router detail page listing the routes.

Routers don't have much going on, data-wise. Routes have a target and destination, and those look a lot like firewall rule targets, so we know how to display those.

export type VpcRouterKind = 'system' | 'custom'
/**
* A VPC router defines a series of rules that indicate where traffic should be sent depending on its destination.
*/
export type VpcRouter = {
/** human-readable free-form text about a resource */
description: string
/** unique, immutable, system-controlled identifier for each resource */
id: string
kind: VpcRouterKind
/** unique, mutable, user-controlled identifier for each resource */
name: Name
/** timestamp when this resource was created */
timeCreated: Date
/** timestamp when this resource was last modified */
timeModified: Date
/** The VPC to which the router belongs. */
vpcId: string
}

/**
* The kind of a `RouterRoute`
*
* The kind determines certain attributes such as if the route is modifiable and describes how or where the route was created.
*/
export type RouterRouteKind =
/** Determines the default destination of traffic, such as whether it goes to the internet or not.
`Destination: An Internet Gateway` `Modifiable: true` */
| 'default'
/** Automatically added for each VPC Subnet in the VPC
`Destination: A VPC Subnet` `Modifiable: false` */
| 'vpc_subnet'
/** Automatically added when VPC peering is established
`Destination: A different VPC` `Modifiable: false` */
| 'vpc_peering'
/** Created by a user; see `RouteTarget`
`Destination: User defined` `Modifiable: true` */
| 'custom'
/**
* A route defines a rule that governs where traffic should be sent based on its destination.
*/
export type RouterRoute = {
/** human-readable free-form text about a resource */
description: string
/** Selects which traffic this routing rule will apply to. */
destination: RouteDestination
/** unique, immutable, system-controlled identifier for each resource */
id: string
/** Describes the kind of router. Set at creation. `read-only` */
kind: RouterRouteKind
/** unique, mutable, user-controlled identifier for each resource */
name: Name
/** The location that matched packets should be forwarded to. */
target: RouteTarget
/** timestamp when this resource was created */
timeCreated: Date
/** timestamp when this resource was last modified */
timeModified: Date
/** The ID of the VPC Router to which the route belongs */
vpcRouterId: string
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
design Requires design input
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants