UNPKG

@infrascan/aws-route53-scanner

Version:

Infrascan scanner definition for AWS Route53

103 lines (102 loc) 2.82 kB
// src/generated/getters.ts import { resolveFunctionCallParameters } from "@infrascan/core"; import { Route53ServiceException, ListHostedZonesByNameCommand, ListResourceRecordSetsCommand } from "@aws-sdk/client-route-53"; import debug from "debug"; async function ListHostedZonesByName(client, stateConnector, context) { const getterDebug = debug("route-53:ListHostedZonesByName"); const state = []; getterDebug("ListHostedZonesByName"); const preparedParams = {}; try { const cmd = new ListHostedZonesByNameCommand(preparedParams); const result = await client.send(cmd); state.push({ _metadata: { account: context.account, region: context.region, timestamp: Date.now() }, _parameters: preparedParams, _result: result }); } catch (err) { if (err instanceof Route53ServiceException) { if (err?.$retryable) { console.log("Encountered retryable error", err); } else { console.log("Encountered unretryable error", err); } } else { console.log("Encountered unexpected error", err); } } getterDebug("Recording state"); await stateConnector.onServiceScanCompleteCallback( context.account, context.region, "Route53", "ListHostedZonesByName", state ); } async function ListResourceRecordSets(client, stateConnector, context) { const getterDebug = debug("route-53:ListResourceRecordSets"); const state = []; getterDebug("Fetching state"); const resolvers = [ { Key: "HostedZoneId", Selector: "Route53|ListHostedZonesByName|[]._result.HostedZones[].Id" } ]; const parameterQueue = await resolveFunctionCallParameters( context.account, context.region, resolvers, stateConnector ); for (const parameters of parameterQueue) { const preparedParams = parameters; try { const cmd = new ListResourceRecordSetsCommand(preparedParams); const result = await client.send( cmd ); state.push({ _metadata: { account: context.account, region: context.region, timestamp: Date.now() }, _parameters: preparedParams, _result: result }); } catch (err) { if (err instanceof Route53ServiceException) { if (err?.$retryable) { console.log("Encountered retryable error", err); } else { console.log("Encountered unretryable error", err); } } else { console.log("Encountered unexpected error", err); } } } getterDebug("Recording state"); await stateConnector.onServiceScanCompleteCallback( context.account, context.region, "Route53", "ListResourceRecordSets", state ); } export { ListHostedZonesByName, ListResourceRecordSets };