code: func (c *Client) WaitUntilCRDEstablished(reader io.Reader, timeout time.Duration) error {
  	infos, err := c.BuildUnstructured(metav1.NamespaceAll, reader)
  	if err != nil {
  		return err
  	}
  
  	return perform(infos, c.pollCRDEstablished(timeout))
  }
docs: // WatchUntilCRDEstablished polls the given CRD until it reaches the established
  // state. A CRD needs to reach the established state before CRs can be created.
  //
  // If a naming conflict condition is found, this function will return an error.