code: func (o *CreateSubcommandOptions) Run() error {
  	obj, err := o.StructuredGenerator.StructuredGenerate()
  	if err != nil {
  		return err
  	}
  	if !o.DryRun {
  		// create subcommands have compiled knowledge of things they create, so type them directly
  		gvks, _, err := scheme.Scheme.ObjectKinds(obj)
  		if err != nil {
  			return err
  		}
  		gvk := gvks[0]
  		mapping, err := o.Mapper.RESTMapping(schema.GroupKind{Group: gvk.Group, Kind: gvk.Kind}, gvk.Version)
  		if err != nil {
  			return err
  		}
  
  		if err := kubectl.CreateOrUpdateAnnotation(o.CreateAnnotation, obj, scheme.DefaultJSONEncoder()); err != nil {
  			return err
  		}
  
  		asUnstructured := &unstructured.Unstructured{}
  
  		if err := scheme.Scheme.Convert(obj, asUnstructured, nil); err != nil {
  			return err
  		}
  		if mapping.Scope.Name() == meta.RESTScopeNameRoot {
  			o.Namespace = ""
  		}
  		actualObject, err := o.DynamicClient.Resource(mapping.Resource).Namespace(o.Namespace).Create(asUnstructured, metav1.CreateOptions{})
  		if err != nil {
  			return err
  		}
  
  		// ensure we pass a versioned object to the printer
  		obj = actualObject
  	} else {
  		if meta, err := meta.Accessor(obj); err == nil && o.EnforceNamespace {
  			meta.SetNamespace(o.Namespace)
  		}
  	}
  
  	return o.PrintObj(obj, o.Out)
  }
docs: // Run executes a create subcommand using the specified options