Skip to content

VPC routers and routes #2295

@david-crespo

Description

@david-crespo

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
}

Metadata

Metadata

Assignees

Labels

designRequires design input

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions