github.com/sleungcy-sap/cli@v7.1.0+incompatible/plugin/plugin.go (about)

     1  package plugin
     2  
     3  import plugin_models "code.cloudfoundry.org/cli/plugin/models"
     4  
     5  /**
     6  	Command interface needs to be implemented for a runnable plugin of `cf`
     7  **/
     8  type Plugin interface {
     9  	Run(cliConnection CliConnection, args []string)
    10  	GetMetadata() PluginMetadata
    11  }
    12  
    13  //go:generate counterfeiter . CliConnection
    14  /**
    15  	List of commands available to CliConnection variable passed into run
    16  **/
    17  type CliConnection interface {
    18  	CliCommandWithoutTerminalOutput(args ...string) ([]string, error)
    19  	CliCommand(args ...string) ([]string, error)
    20  	GetCurrentOrg() (plugin_models.Organization, error)
    21  	GetCurrentSpace() (plugin_models.Space, error)
    22  	Username() (string, error)
    23  	UserGuid() (string, error)
    24  	UserEmail() (string, error)
    25  	IsLoggedIn() (bool, error)
    26  	// IsSSLDisabled returns true if and only if the user is connected to the Cloud Controller API with the
    27  	// `--skip-ssl-validation` flag set unless the CLI configuration file cannot be read, in which case it
    28  	// returns an error.
    29  	IsSSLDisabled() (bool, error)
    30  	HasOrganization() (bool, error)
    31  	HasSpace() (bool, error)
    32  	ApiEndpoint() (string, error)
    33  	ApiVersion() (string, error)
    34  	HasAPIEndpoint() (bool, error)
    35  	LoggregatorEndpoint() (string, error)
    36  	DopplerEndpoint() (string, error)
    37  	AccessToken() (string, error)
    38  	GetApp(string) (plugin_models.GetAppModel, error)
    39  	GetApps() ([]plugin_models.GetAppsModel, error)
    40  	GetOrgs() ([]plugin_models.GetOrgs_Model, error)
    41  	GetSpaces() ([]plugin_models.GetSpaces_Model, error)
    42  	GetOrgUsers(string, ...string) ([]plugin_models.GetOrgUsers_Model, error)
    43  	GetSpaceUsers(string, string) ([]plugin_models.GetSpaceUsers_Model, error)
    44  	GetServices() ([]plugin_models.GetServices_Model, error)
    45  	GetService(string) (plugin_models.GetService_Model, error)
    46  	GetOrg(string) (plugin_models.GetOrg_Model, error)
    47  	GetSpace(string) (plugin_models.GetSpace_Model, error)
    48  }
    49  
    50  type VersionType struct {
    51  	Major int
    52  	Minor int
    53  	Build int
    54  }
    55  
    56  type PluginMetadata struct {
    57  	Name           string
    58  	Version        VersionType
    59  	LibraryVersion VersionType
    60  	MinCliVersion  VersionType
    61  	Commands       []Command
    62  }
    63  
    64  type Usage struct {
    65  	Usage   string
    66  	Options map[string]string
    67  }
    68  
    69  type Command struct {
    70  	Name         string
    71  	Alias        string
    72  	HelpText     string
    73  	UsageDetails Usage //Detail usage to be displayed in `cf help <cmd>`
    74  }