function generate (input, output) {
  let raw = fs.readFileSync(input)
  if (input.endsWith('.gz')) {
    raw = zlib.gunzipSync(raw)
  }
  const spec = JSON.parse(raw)
  const client = new Client({ spec, backend: {} })

  const kindsToGroups = setup(client)

  try {
    fs.mkdirSync(output)
  } catch (err) {
    if (err.code !== 'EEXIST') throw err
  }

  generateClient({ kindsToGroups, output })
  Object.entries(kindsToGroups).forEach(([kindKey, groups]) => {
    generateKind({
      kind: {
        kindKey,
        groups
      },
      output
    })
  })
}
When in a method section, return the full kubernetes-client name.
@returns {function} function