function setup (client) {
  const kinds = {}
  _walk(client, kinds)

  const kindsToGroups = Object.keys(kinds).reduce((acc, kindKey) => {
    acc[kindKey] = kinds[kindKey].reduce((kind, operation) => {
      const operationGroup = getOperationGroup(operation)
      kind[operationGroup] = kind[operationGroup] || []

      let hasQueryParameters = false
      let hasPathParameters = false
      let hasBodyParameters = false
      const parameters = operation.parameters || []
      parameters.forEach(parameter => {
        if (parameter.in === 'query') {
          parameter.isQueryParameter = true
          hasQueryParameters = true
        } else if (parameter.in === 'path') {
          parameter.isPathParameter = true
          hasPathParameters = true
        } else if (parameter.in === 'body') {
          parameter.isBodyParameter = true
          hasBodyParameters = true
        }
      })
      operation.hasQueryParameters = hasQueryParameters
      operation.hasPathParameters = hasPathParameters
      operation.hasBodyParameters = hasBodyParameters

      kind[operationGroup].push(operation)
      return kind
    }, {})
    return acc
  }, {})

  return kindsToGroups
}
Setup data for mustache rendering/viewing.
@param {object} client - kubernetes-client object.
@returns {object} Object mapping kind (e.g., Deployment) to groups (e.g., read or write)
  of OpenAPI operations.