class DefaultVolcanoClient extends ExtensionRootClientAdapter<DefaultVolcanoClient>
    implements NamespacedVolcanoClient, SupportTestingClient {

  public DefaultVolcanoClient() {
    super();
  }

  public DefaultVolcanoClient(Config configuration) {
    super(configuration);
  }

  public DefaultVolcanoClient(Client client) {
    super(client);
  }

  @Override
  protected DefaultVolcanoClient newInstance(Client client) {
    return new DefaultVolcanoClient(client);
  }

  @Override
  public FunctionCallable<NamespacedVolcanoClient> withRequestConfig(RequestConfig requestConfig) {
    return new WithRequestCallable<>(this, requestConfig);
  }

  @Override
  public MixedOperation<PodGroup, PodGroupList, Resource<PodGroup>> podGroups() {
    // By default, client.podGroups() use v1beta1 version,
    return resources(PodGroup.class, PodGroupList.class);
  }

  @Override
  public MixedOperation<Queue, QueueList, Resource<Queue>> queues() {
    // By default, client.podGroups() use v1beta1 version,
    return resources(Queue.class, QueueList.class);
  }

  @Override
  public V1beta1APIGroupDSL v1beta1() {<FILL_FUNCTION_BODY>}

  @Override
  public boolean isSupported() {
    return getClient().hasApiGroup(VolcanoExtensionAdapter.API_GROUP, false);
  }
}

    // User can specify client.v1beta1().podGroups() to use v1beta1 API
    return adapt(V1beta1APIGroupClient.class);
  
<methods>public final io.fabric8.volcano.client.DefaultVolcanoClient newInstance() <variables>