code: func (flags *WaitFlags) ToOptions(args []string) (*WaitOptions, error) {
  	printer, err := flags.PrintFlags.ToPrinter()
  	if err != nil {
  		return nil, err
  	}
  	builder := flags.ResourceBuilderFlags.ToBuilder(flags.RESTClientGetter, args)
  	clientConfig, err := flags.RESTClientGetter.ToRESTConfig()
  	if err != nil {
  		return nil, err
  	}
  	dynamicClient, err := dynamic.NewForConfig(clientConfig)
  	if err != nil {
  		return nil, err
  	}
  	conditionFn, err := conditionFuncFor(flags.ForCondition, flags.ErrOut)
  	if err != nil {
  		return nil, err
  	}
  
  	effectiveTimeout := flags.Timeout
  	if effectiveTimeout < 0 {
  		effectiveTimeout = 168 * time.Hour
  	}
  
  	o := &WaitOptions{
  		ResourceFinder: builder,
  		DynamicClient:  dynamicClient,
  		Timeout:        effectiveTimeout,
  
  		Printer:     printer,
  		ConditionFn: conditionFn,
  		IOStreams:   flags.IOStreams,
  	}
  
  	return o, nil
  }
docs: // ToOptions converts from CLI inputs to runtime inputs