github.com/jghiloni/cli@v6.28.1-0.20170628223758-0ce05fe032a2+incompatible/command/common/command_list.go (about) 1 package common 2 3 import ( 4 "reflect" 5 6 "code.cloudfoundry.org/cli/command/plugin" 7 "code.cloudfoundry.org/cli/command/v2" 8 "code.cloudfoundry.org/cli/command/v3" 9 ) 10 11 var Commands commandList 12 13 type commandList struct { 14 VerboseOrVersion bool `short:"v" long:"version" description:"verbose and version flag"` 15 16 V2Push v2.V2PushCommand `command:"v2-push" description:"Push a new app or sync changes to an existing app"` 17 18 V3CreateApp v3.V3CreateAppCommand `command:"v3-create-app" description:"**EXPERIMENTAL** Create a V3 App"` 19 V3CreatePackage v3.V3CreatePackageCommand `command:"v3-create-package" description:"**EXPERIMENTAL** Uploads a V3 Package"` 20 V3Stage v3.V3StageCommand `command:"v3-stage" description:"**EXPERIMENTAL** Create a new droplet for an app"` 21 V3SetDroplet v3.V3SetDropletCommand `command:"v3-set-droplet" description:"Set the droplet used to run an app"` 22 V3Start v3.V3StartCommand `command:"v3-start" description:"Start an app"` 23 V3Push v3.V3PushCommand `command:"v3-push" description:"Push a new app or sync changes to an existing app"` 24 V3App v3.V3AppCommand `command:"v3-app" description:"Display an app"` 25 26 AddPluginRepo plugin.AddPluginRepoCommand `command:"add-plugin-repo" description:"Add a new plugin repository"` 27 AllowSpaceSSH v2.AllowSpaceSSHCommand `command:"allow-space-ssh" description:"Allow SSH access for the space"` 28 Api v2.ApiCommand `command:"api" description:"Set or view target api url"` 29 Apps v2.AppsCommand `command:"apps" alias:"a" description:"List all apps in the target space"` 30 App v2.AppCommand `command:"app" description:"Display health and status for app"` 31 Auth v2.AuthCommand `command:"auth" description:"Authenticate user non-interactively"` 32 BindRouteService v2.BindRouteServiceCommand `command:"bind-route-service" alias:"brs" description:"Bind a service instance to an HTTP route"` 33 BindRunningSecurityGroup v2.BindRunningSecurityGroupCommand `command:"bind-running-security-group" description:"Bind a security group to the list of security groups to be used for running applications"` 34 BindSecurityGroup v2.BindSecurityGroupCommand `command:"bind-security-group" description:"Bind a security group to a particular space, or all existing spaces of an org"` 35 BindService v2.BindServiceCommand `command:"bind-service" alias:"bs" description:"Bind a service instance to an app"` 36 BindStagingSecurityGroup v2.BindStagingSecurityGroupCommand `command:"bind-staging-security-group" description:"Bind a security group to the list of security groups to be used for staging applications"` 37 Buildpacks v2.BuildpacksCommand `command:"buildpacks" description:"List all buildpacks"` 38 CheckRoute v2.CheckRouteCommand `command:"check-route" description:"Perform a simple check to determine whether a route currently exists or not"` 39 Config v2.ConfigCommand `command:"config" description:"Write default values to the config"` 40 CopySource v2.CopySourceCommand `command:"copy-source" description:"Copies the source code of an application to another existing application (and restarts that application)"` 41 CreateAppManifest v2.CreateAppManifestCommand `command:"create-app-manifest" description:"Create an app manifest for an app that has been pushed successfully"` 42 CreateBuildpack v2.CreateBuildpackCommand `command:"create-buildpack" description:"Create a buildpack"` 43 CreateDomain v2.CreateDomainCommand `command:"create-domain" description:"Create a domain in an org for later use"` 44 CreateIsolationSegment v3.CreateIsolationSegmentCommand `command:"create-isolation-segment" description:"Create an isolation segment"` 45 CreateOrg v2.CreateOrgCommand `command:"create-org" alias:"co" description:"Create an org"` 46 CreateQuota v2.CreateQuotaCommand `command:"create-quota" description:"Define a new resource quota"` 47 CreateRoute v2.CreateRouteCommand `command:"create-route" description:"Create a url route in a space for later use"` 48 CreateSecurityGroup v2.CreateSecurityGroupCommand `command:"create-security-group" description:"Create a security group"` 49 CreateServiceAuthToken v2.CreateServiceAuthTokenCommand `command:"create-service-auth-token" description:"Create a service auth token"` 50 CreateServiceBroker v2.CreateServiceBrokerCommand `command:"create-service-broker" alias:"csb" description:"Create a service broker"` 51 CreateServiceKey v2.CreateServiceKeyCommand `command:"create-service-key" alias:"csk" description:"Create key for a service instance"` 52 CreateService v2.CreateServiceCommand `command:"create-service" alias:"cs" description:"Create a service instance"` 53 CreateSharedDomain v2.CreateSharedDomainCommand `command:"create-shared-domain" description:"Create a domain that can be used by all orgs (admin-only)"` 54 CreateSpaceQuota v2.CreateSpaceQuotaCommand `command:"create-space-quota" description:"Define a new space resource quota"` 55 CreateSpace v2.CreateSpaceCommand `command:"create-space" description:"Create a space"` 56 CreateUserProvidedService v2.CreateUserProvidedServiceCommand `command:"create-user-provided-service" alias:"cups" description:"Make a user-provided service instance available to CF apps"` 57 CreateUser v2.CreateUserCommand `command:"create-user" description:"Create a new user"` 58 Curl v2.CurlCommand `command:"curl" description:"Executes a request to the targeted API endpoint"` 59 DeleteBuildpack v2.DeleteBuildpackCommand `command:"delete-buildpack" description:"Delete a buildpack"` 60 DeleteDomain v2.DeleteDomainCommand `command:"delete-domain" description:"Delete a domain"` 61 DeleteIsolationSegment v3.DeleteIsolationSegmentCommand `command:"delete-isolation-segment" description:"Delete an isolation segment"` 62 DeleteOrg v2.DeleteOrgCommand `command:"delete-org" description:"Delete an org"` 63 DeleteOrphanedRoutes v2.DeleteOrphanedRoutesCommand `command:"delete-orphaned-routes" description:"Delete all orphaned routes (i.e. those that are not mapped to an app)"` 64 DeleteQuota v2.DeleteQuotaCommand `command:"delete-quota" description:"Delete a quota"` 65 DeleteRoute v2.DeleteRouteCommand `command:"delete-route" description:"Delete a route"` 66 DeleteSecurityGroup v2.DeleteSecurityGroupCommand `command:"delete-security-group" description:"Deletes a security group"` 67 DeleteServiceAuthToken v2.DeleteServiceAuthTokenCommand `command:"delete-service-auth-token" description:"Delete a service auth token"` 68 DeleteServiceBroker v2.DeleteServiceBrokerCommand `command:"delete-service-broker" description:"Delete a service broker"` 69 DeleteServiceKey v2.DeleteServiceKeyCommand `command:"delete-service-key" alias:"dsk" description:"Delete a service key"` 70 DeleteService v2.DeleteServiceCommand `command:"delete-service" alias:"ds" description:"Delete a service instance"` 71 DeleteSharedDomain v2.DeleteSharedDomainCommand `command:"delete-shared-domain" description:"Delete a shared domain"` 72 DeleteSpaceQuota v2.DeleteSpaceQuotaCommand `command:"delete-space-quota" description:"Delete a space quota definition and unassign the space quota from all spaces"` 73 DeleteSpace v2.DeleteSpaceCommand `command:"delete-space" description:"Delete a space"` 74 DeleteUser v2.DeleteUserCommand `command:"delete-user" description:"Delete a user"` 75 Delete v2.DeleteCommand `command:"delete" alias:"d" description:"Delete an app"` 76 DisableFeatureFlag v2.DisableFeatureFlagCommand `command:"disable-feature-flag" description:"Disable the use of a feature so that users have access to and can use the feature"` 77 DisableOrgIsolation v3.DisableOrgIsolationCommand `command:"disable-org-isolation" description:"Revoke an organization's entitlement to an isolation segment"` 78 DisableServiceAccess v2.DisableServiceAccessCommand `command:"disable-service-access" description:"Disable access to a service or service plan for one or all orgs"` 79 DisableSSH v2.DisableSSHCommand `command:"disable-ssh" description:"Disable ssh for the application"` 80 DisallowSpaceSSH v2.DisallowSpaceSSHCommand `command:"disallow-space-ssh" description:"Disallow SSH access for the space"` 81 Domains v2.DomainsCommand `command:"domains" description:"List domains in the target org"` 82 EnableFeatureFlag v2.EnableFeatureFlagCommand `command:"enable-feature-flag" description:"Enable the use of a feature so that users have access to and can use the feature"` 83 EnableOrgIsolation v3.EnableOrgIsolationCommand `command:"enable-org-isolation" description:"Entitle an organization to an isolation segment"` 84 EnableServiceAccess v2.EnableServiceAccessCommand `command:"enable-service-access" description:"Enable access to a service or service plan for one or all orgs"` 85 EnableSSH v2.EnableSSHCommand `command:"enable-ssh" description:"Enable ssh for the application"` 86 Env v2.EnvCommand `command:"env" alias:"e" description:"Show all env variables for an app"` 87 Events v2.EventsCommand `command:"events" description:"Show recent app events"` 88 FeatureFlags v2.FeatureFlagsCommand `command:"feature-flags" description:"Retrieve list of feature flags with status of each flag-able feature"` 89 FeatureFlag v2.FeatureFlagCommand `command:"feature-flag" description:"Retrieve an individual feature flag with status"` 90 Files v2.FilesCommand `command:"files" alias:"f" description:"Print out a list of files in a directory or the contents of a specific file of an app running on the DEA backend"` 91 GetHealthCheck v2.GetHealthCheckCommand `command:"get-health-check" description:"Show the type of health check performed on an app"` 92 Help HelpCommand `command:"help" alias:"h" description:"Show help"` 93 InstallPlugin InstallPluginCommand `command:"install-plugin" description:"Install CLI plugin"` 94 IsolationSegments v3.IsolationSegmentsCommand `command:"isolation-segments" description:"List all isolation segments"` 95 ListPluginRepos plugin.ListPluginReposCommand `command:"list-plugin-repos" description:"List all the added plugin repositories"` 96 Login v2.LoginCommand `command:"login" alias:"l" description:"Log user in"` 97 Logout v2.LogoutCommand `command:"logout" alias:"lo" description:"Log user out"` 98 Logs v2.LogsCommand `command:"logs" description:"Tail or show recent logs for an app"` 99 MapRoute v2.MapRouteCommand `command:"map-route" description:"Add a url route to an app"` 100 Marketplace v2.MarketplaceCommand `command:"marketplace" alias:"m" description:"List available offerings in the marketplace"` 101 MigrateServiceInstances v2.MigrateServiceInstancesCommand `command:"migrate-service-instances" description:"Migrate service instances from one service plan to another"` 102 OauthToken v2.OauthTokenCommand `command:"oauth-token" description:"Retrieve and display the OAuth token for the current session"` 103 Orgs v2.OrgsCommand `command:"orgs" alias:"o" description:"List all orgs"` 104 OrgUsers v2.OrgUsersCommand `command:"org-users" description:"Show org users by role"` 105 Org v2.OrgCommand `command:"org" description:"Show org info"` 106 Passwd v2.PasswdCommand `command:"passwd" alias:"pw" description:"Change user password"` 107 Plugins plugin.PluginsCommand `command:"plugins" description:"List commands of installed plugins"` 108 PurgeServiceInstance v2.PurgeServiceInstanceCommand `command:"purge-service-instance" description:"Recursively remove a service instance and child objects from Cloud Foundry database without making requests to a service broker"` 109 PurgeServiceOffering v2.PurgeServiceOfferingCommand `command:"purge-service-offering" description:"Recursively remove a service and child objects from Cloud Foundry database without making requests to a service broker"` 110 Push v2.PushCommand `command:"push" alias:"p" description:"Push a new app or sync changes to an existing app"` 111 Quotas v2.QuotasCommand `command:"quotas" description:"List available usage quotas"` 112 Quota v2.QuotaCommand `command:"quota" description:"Show quota info"` 113 RemovePluginRepo plugin.RemovePluginRepoCommand `command:"remove-plugin-repo" description:"Remove a plugin repository"` 114 RenameBuildpack v2.RenameBuildpackCommand `command:"rename-buildpack" description:"Rename a buildpack"` 115 RenameOrg v2.RenameOrgCommand `command:"rename-org" description:"Rename an org"` 116 RenameServiceBroker v2.RenameServiceBrokerCommand `command:"rename-service-broker" description:"Rename a service broker"` 117 RenameService v2.RenameServiceCommand `command:"rename-service" description:"Rename a service instance"` 118 RenameSpace v2.RenameSpaceCommand `command:"rename-space" description:"Rename a space"` 119 Rename v2.RenameCommand `command:"rename" description:"Rename an app"` 120 RepoPlugins plugin.RepoPluginsCommand `command:"repo-plugins" description:"List all available plugins in specified repository or in all added repositories"` 121 ResetSpaceIsolationSegment v3.ResetSpaceIsolationSegmentCommand `command:"reset-space-isolation-segment" description:"Reset the isolation segment assignment of a space to the org's default"` 122 Restage v2.RestageCommand `command:"restage" alias:"rg" description:"Recreate the app's executable artifact using the latest pushed app files and the latest environment (variables, service bindings, buildpack, stack, etc.)"` 123 RestartAppInstance v2.RestartAppInstanceCommand `command:"restart-app-instance" description:"Terminate the running application Instance at the given index and instantiate a new instance of the application with the same index"` 124 Restart v2.RestartCommand `command:"restart" alias:"rs" description:"Stop all instances of the app, then start them again. This may cause downtime."` 125 RouterGroups v2.RouterGroupsCommand `command:"router-groups" description:"List router groups"` 126 Routes v2.RoutesCommand `command:"routes" alias:"r" description:"List all routes in the current space or the current organization"` 127 RunningEnvironmentVariableGroup v2.RunningEnvironmentVariableGroupCommand `command:"running-environment-variable-group" alias:"revg" description:"Retrieve the contents of the running environment variable group"` 128 RunningSecurityGroups v2.RunningSecurityGroupsCommand `command:"running-security-groups" description:"List security groups in the set of security groups for running applications"` 129 RunTask v3.RunTaskCommand `command:"run-task" alias:"rt" description:"Run a one-off task on an app"` 130 Scale v2.ScaleCommand `command:"scale" description:"Change or view the instance count, disk space limit, and memory limit for an app"` 131 SecurityGroups v2.SecurityGroupsCommand `command:"security-groups" description:"List all security groups"` 132 SecurityGroup v2.SecurityGroupCommand `command:"security-group" description:"Show a single security group"` 133 ServiceAccess v2.ServiceAccessCommand `command:"service-access" description:"List service access settings"` 134 ServiceAuthTokens v2.ServiceAuthTokensCommand `command:"service-auth-tokens" description:"List service auth tokens"` 135 ServiceBrokers v2.ServiceBrokersCommand `command:"service-brokers" description:"List service brokers"` 136 ServiceKeys v2.ServiceKeysCommand `command:"service-keys" alias:"sk" description:"List keys for a service instance"` 137 ServiceKey v2.ServiceKeyCommand `command:"service-key" description:"Show service key info"` 138 Services v2.ServicesCommand `command:"services" alias:"s" description:"List all service instances in the target space"` 139 Service v2.ServiceCommand `command:"service" description:"Show service instance info"` 140 SetEnv v2.SetEnvCommand `command:"set-env" alias:"se" description:"Set an env variable for an app"` 141 SetHealthCheck v2.SetHealthCheckCommand `command:"set-health-check" description:"Change type of health check performed on an app"` 142 SetOrgRole v2.SetOrgRoleCommand `command:"set-org-role" description:"Assign an org role to a user"` 143 SetQuota v2.SetQuotaCommand `command:"set-quota" description:"Assign a quota to an org"` 144 SetRunningEnvironmentVariableGroup v2.SetRunningEnvironmentVariableGroupCommand `command:"set-running-environment-variable-group" alias:"srevg" description:"Pass parameters as JSON to create a running environment variable group"` 145 SetSpaceIsolationSegment v3.SetSpaceIsolationSegmentCommand `command:"set-space-isolation-segment" description:"Assign the isolation segment that apps in a space are started in"` 146 SetSpaceQuota v2.SetSpaceQuotaCommand `command:"set-space-quota" description:"Assign a space quota definition to a space"` 147 SetSpaceRole v2.SetSpaceRoleCommand `command:"set-space-role" description:"Assign a space role to a user"` 148 SetStagingEnvironmentVariableGroup v2.SetStagingEnvironmentVariableGroupCommand `command:"set-staging-environment-variable-group" alias:"ssevg" description:"Pass parameters as JSON to create a staging environment variable group"` 149 SharePrivateDomain v2.SharePrivateDomainCommand `command:"share-private-domain" description:"Share a private domain with an org"` 150 SpaceQuotas v2.SpaceQuotasCommand `command:"space-quotas" description:"List available space resource quotas"` 151 SpaceQuota v2.SpaceQuotaCommand `command:"space-quota" description:"Show space quota info"` 152 SpaceSSHAllowed v2.SpaceSSHAllowedCommand `command:"space-ssh-allowed" description:"Reports whether SSH is allowed in a space"` 153 Spaces v2.SpacesCommand `command:"spaces" description:"List all spaces in an org"` 154 SpaceUsers v2.SpaceUsersCommand `command:"space-users" description:"Show space users by role"` 155 Space v2.SpaceCommand `command:"space" description:"Show space info"` 156 SSHCode v2.SSHCodeCommand `command:"ssh-code" description:"Get a one time password for ssh clients"` 157 SSHEnabled v2.SSHEnabledCommand `command:"ssh-enabled" description:"Reports whether SSH is enabled on an application container instance"` 158 SSH v2.SSHCommand `command:"ssh" description:"SSH to an application container instance"` 159 Stacks v2.StacksCommand `command:"stacks" description:"List all stacks (a stack is a pre-built file system, including an operating system, that can run apps)"` 160 Stack v2.StackCommand `command:"stack" description:"Show information for a stack (a stack is a pre-built file system, including an operating system, that can run apps)"` 161 StagingEnvironmentVariableGroup v2.StagingEnvironmentVariableGroupCommand `command:"staging-environment-variable-group" alias:"sevg" description:"Retrieve the contents of the staging environment variable group"` 162 StagingSecurityGroups v2.StagingSecurityGroupsCommand `command:"staging-security-groups" description:"List security groups in the staging set for applications"` 163 Start v2.StartCommand `command:"start" alias:"st" description:"Start an app"` 164 Stop v2.StopCommand `command:"stop" alias:"sp" description:"Stop an app"` 165 Target v2.TargetCommand `command:"target" alias:"t" description:"Set or view the targeted org or space"` 166 Tasks v3.TasksCommand `command:"tasks" description:"List tasks of an app"` 167 TerminateTask v3.TerminateTaskCommand `command:"terminate-task" description:"Terminate a running task of an app"` 168 UnbindRouteService v2.UnbindRouteServiceCommand `command:"unbind-route-service" alias:"urs" description:"Unbind a service instance from an HTTP route"` 169 UnbindRunningSecurityGroup v2.UnbindRunningSecurityGroupCommand `command:"unbind-running-security-group" description:"Unbind a security group from the set of security groups for running applications"` 170 UnbindSecurityGroup v2.UnbindSecurityGroupCommand `command:"unbind-security-group" description:"Unbind a security group from a space"` 171 UnbindService v2.UnbindServiceCommand `command:"unbind-service" alias:"us" description:"Unbind a service instance from an app"` 172 UnbindStagingSecurityGroup v2.UnbindStagingSecurityGroupCommand `command:"unbind-staging-security-group" description:"Unbind a security group from the set of security groups for staging applications"` 173 UninstallPlugin plugin.UninstallPluginCommand `command:"uninstall-plugin" description:"Uninstall CLI plugin"` 174 UnmapRoute v2.UnmapRouteCommand `command:"unmap-route" description:"Remove a url route from an app"` 175 UnsetEnv v2.UnsetEnvCommand `command:"unset-env" description:"Remove an env variable"` 176 UnsetOrgRole v2.UnsetOrgRoleCommand `command:"unset-org-role" description:"Remove an org role from a user"` 177 UnsetSpaceQuota v2.UnsetSpaceQuotaCommand `command:"unset-space-quota" description:"Unassign a quota from a space"` 178 UnsetSpaceRole v2.UnsetSpaceRoleCommand `command:"unset-space-role" description:"Remove a space role from a user"` 179 UnsharePrivateDomain v2.UnsharePrivateDomainCommand `command:"unshare-private-domain" description:"Unshare a private domain with an org"` 180 UpdateBuildpack v2.UpdateBuildpackCommand `command:"update-buildpack" description:"Update a buildpack"` 181 UpdateQuota v2.UpdateQuotaCommand `command:"update-quota" description:"Update an existing resource quota"` 182 UpdateSecurityGroup v2.UpdateSecurityGroupCommand `command:"update-security-group" description:"Update a security group"` 183 UpdateServiceAuthToken v2.UpdateServiceAuthTokenCommand `command:"update-service-auth-token" description:"Update a service auth token"` 184 UpdateServiceBroker v2.UpdateServiceBrokerCommand `command:"update-service-broker" description:"Update a service broker"` 185 UpdateService v2.UpdateServiceCommand `command:"update-service" description:"Update a service instance"` 186 UpdateSpaceQuota v2.UpdateSpaceQuotaCommand `command:"update-space-quota" description:"Update an existing space quota"` 187 UpdateUserProvidedService v2.UpdateUserProvidedServiceCommand `command:"update-user-provided-service" alias:"uups" description:"Update user-provided service instance"` 188 Version VersionCommand `command:"version" description:"Print the version"` 189 } 190 191 // HasCommand returns true if the command name is in the command list. 192 func (c commandList) HasCommand(name string) bool { 193 if name == "" { 194 return false 195 } 196 197 cType := reflect.TypeOf(c) 198 _, found := cType.FieldByNameFunc( 199 func(fieldName string) bool { 200 field, _ := cType.FieldByName(fieldName) 201 return field.Tag.Get("command") == name 202 }, 203 ) 204 205 return found 206 } 207 208 // HasAlias returns true if the command alias is in the command list. 209 func (c commandList) HasAlias(alias string) bool { 210 if alias == "" { 211 return false 212 } 213 214 cType := reflect.TypeOf(c) 215 _, found := cType.FieldByNameFunc( 216 func(fieldName string) bool { 217 field, _ := cType.FieldByName(fieldName) 218 return field.Tag.Get("alias") == alias 219 }, 220 ) 221 222 return found 223 }