async describeRouteTables()

in source/networkFirewallAutomation/lib/service/ec2-service.ts [32:62]


  async describeRouteTables(routeTableId: string): Promise<EC2.RouteTableList | undefined> {
    Logger.log(LOG_LEVEL.INFO, 'Describe Route Table')
    Logger.log(LOG_LEVEL.INFO, `Print Route Table Id: ${routeTableId}`)
    let response: EC2.DescribeRouteTablesResult
    try {
      response = await this.Ec2Client.describeRouteTables({
          RouteTableIds: [routeTableId]
        }
      ).promise()

      let nextToken = response.NextToken
      let routeTables = response.RouteTables

      // handle next token
      while (nextToken) {
        response = await this.Ec2Client.describeRouteTables({
            RouteTableIds: [routeTableId],
            NextToken: nextToken
          }
        ).promise()
        if (response.RouteTables) {
          routeTables?.concat(response.RouteTables)
        }
        nextToken = response.NextToken
      }
      return Promise.resolve(routeTables)
    } catch (error) {
      Logger.log(LOG_LEVEL.INFO, JSON.stringify(error))
      return Promise.reject(error)
    }
  }