Example #1
0
File: push.go Project: ramirito/cli
func (cmd *Push) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "push",
		ShortName:   "p",
		Description: T("Push a new app or sync changes to an existing app"),
		Usage: T("Push a single app (with or without a manifest):\n") + T("   CF_NAME push APP [-b BUILDPACK_NAME] [-c COMMAND] [-d DOMAIN] [-f MANIFEST_PATH]\n") + T("   [-i NUM_INSTANCES] [-k DISK] [-m MEMORY] [-n HOST] [-p PATH] [-s STACK] [-t TIMEOUT]\n") +
			"   [--no-hostname] [--no-manifest] [--no-route] [--no-start]\n" +
			"\n" + T("   Push multiple apps with a manifest:\n") + T("   CF_NAME push [-f MANIFEST_PATH]\n"),
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("b", T("Custom buildpack by name (e.g. my-buildpack) or GIT URL (e.g. https://github.com/heroku/heroku-buildpack-play.git)")),
			flag_helpers.NewStringFlag("c", T("Startup command, set to null to reset to default start command")),
			flag_helpers.NewStringFlag("d", T("Domain (e.g. example.com)")),
			flag_helpers.NewStringFlag("f", T("Path to manifest")),
			flag_helpers.NewIntFlag("i", T("Number of instances")),
			flag_helpers.NewStringFlag("k", T("Disk limit (e.g. 256M, 1024M, 1G)")),
			flag_helpers.NewStringFlag("m", T("Memory limit (e.g. 256M, 1024M, 1G)")),
			flag_helpers.NewStringFlag("n", T("Hostname (e.g. my-subdomain)")),
			flag_helpers.NewStringFlag("p", T("Path to app directory or file")),
			flag_helpers.NewStringFlag("s", T("Stack to use (a stack is a pre-built file system, including an operating system, that can run apps)")),
			flag_helpers.NewStringFlag("t", T("Start timeout in seconds")),
			cli.BoolFlag{Name: "no-hostname", Usage: T("Map the root domain to this app")},
			cli.BoolFlag{Name: "no-manifest", Usage: T("Ignore manifest file")},
			cli.BoolFlag{Name: "no-route", Usage: T("Do not map a route to this app")},
			cli.BoolFlag{Name: "no-start", Usage: T("Do not start an app after pushing")},
			cli.BoolFlag{Name: "random-route", Usage: T("Create a random route for this app")},
		},
	}
}
func (cmd CreateUserProvidedService) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "create-user-provided-service",
		ShortName:   "cups",
		Description: T("Make a user-provided service instance available to cf apps"),
		Usage: T(`CF_NAME create-user-provided-service SERVICE_INSTANCE [-p CREDENTIALS] [-l SYSLOG-DRAIN-URL]

   Pass comma separated credential parameter names to enable interactive mode:
   CF_NAME create-user-provided-service SERVICE_INSTANCE -p "comma, separated, parameter, names"

   Pass credential parameters as JSON to create a service non-interactively:
   CF_NAME create-user-provided-service SERVICE_INSTANCE -p '{"name":"value","name":"value"}'

EXAMPLE 
      CF_NAME create-user-provided-service my-db-mine -p "username, password"
      CF_NAME create-user-provided-service my-drain-service -l syslog://example.com

   Linux/Mac:
      CF_NAME create-user-provided-service my-db-mine -p '{"username":"******","password":"******"}'

   Windows Command Line
      CF_NAME create-user-provided-service my-db-mine -p "{\"username\":\"admin\",\"password\":\"pa55woRD\"}"

   Windows PowerShell
      CF_NAME create-user-provided-service my-db-mine -p '{\"username\":\"admin\",\"password\":\"pa55woRD\"}'
`),
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("p", T("Credentials")),
			flag_helpers.NewStringFlag("l", T("Syslog Drain Url")),
		},
	}
}
Example #3
0
func (cmd *UpdateService) Metadata() command_metadata.CommandMetadata {
	baseUsage := T("CF_NAME update-service SERVICE_INSTANCE [-p NEW_PLAN] [-c PARAMETERS_AS_JSON] [-t TAGS]")
	paramsUsage := T(`   Optionally provide service-specific configuration parameters in a valid JSON object in-line.
   CF_NAME update-service -c '{"name":"value","name":"value"}'

   Optionally provide a file containing service-specific configuration parameters in a valid JSON object. 
   The path to the parameters file can be an absolute or relative path to a file.
   CF_NAME update-service -c PATH_TO_FILE

   Example of valid JSON object:
   {
      "cluster_nodes": {
         "count": 5,
         "memory_mb": 1024
      }
   }`)
	tagsUsage := T(`   Optionally provide a list of comma-delimited tags that will be written to the VCAP_SERVICES environment variable for any bound applications.`)
	exampleUsage := T(`EXAMPLE:
   CF_NAME update-service mydb -p gold
   CF_NAME update-service mydb -c '{"ram_gb":4}'
   CF_NAME update-service mydb -c ~/workspace/tmp/instance_config.json
   CF_NAME update-service mydb -t "list,of, tags"`)

	return command_metadata.CommandMetadata{
		Name:        "update-service",
		Description: T("Update a service instance"),
		Usage:       T(strings.Join([]string{baseUsage, paramsUsage, tagsUsage, exampleUsage}, "\n\n")),
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("p", T("Change service plan for a service instance")),
			flag_helpers.NewStringFlag("c", T("Valid JSON object containing service-specific configuration parameters, provided either in-line or in a file. For a list of supported configuration parameters, see documentation for the particular service offering.")),
			flag_helpers.NewStringFlag("t", T("User provided tags")),
		},
	}
}
func (cmd *EnableServiceAccess) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "enable-service-access",
		Description: T("Enable access to a service or service plan for one or all orgs"),
		Usage:       "CF_NAME enable-service-access SERVICE [-p PLAN] [-o ORG]",
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("p", T("Enable access to a specified service plan")),
			flag_helpers.NewStringFlag("o", T("Enable access for a specified organization")),
		},
	}
}
Example #5
0
func (cmd CreateSpace) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "create-space",
		Description: T("Create a space"),
		Usage:       T("CF_NAME create-space SPACE [-o ORG] [-q SPACE-QUOTA]"),
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("o", T("Organization")),
			flag_helpers.NewStringFlag("q", T("Quota to assign to the newly created space (excluding this option results in assignment of default quota)")),
		},
	}
}
Example #6
0
func (cmd UpdateServiceBroker) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "update-service-broker",
		Description: T("Update a service broker"),
		Usage:       T("CF_NAME update-service-broker SERVICE_BROKER [-u USERNAME] [-p PASSWORD] [--url URL]"),
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("u", T("Username")),
			flag_helpers.NewStringFlag("p", T("Password")),
			flag_helpers.NewStringFlag("url", T("URL")),
		},
	}
}
Example #7
0
func (cmd *CopySource) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "copy-source",
		Description: T("Make a copy of app source code from one application to another.  Unless overridden, the copy-source command will restart the application."),
		Usage:       T("   CF_NAME copy-source SOURCE-APP TARGET-APP [-o TARGET-ORG] [-s TARGET-SPACE] [--no-restart]\n"),
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("o", T("Org that contains the target application")),
			flag_helpers.NewStringFlag("s", T("Space that contains the target application")),
			cli.BoolFlag{Name: "no-restart", Usage: T("Override restart of the application in target environment after copy-source completes")},
		},
	}
}
Example #8
0
func (cmd *ServiceAccess) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "service-access",
		Description: T("List service access settings"),
		Usage:       "CF_NAME service-access [-b BROKER] [-e SERVICE] [-o ORG]",
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("b", T("access for plans of a particular broker")),
			flag_helpers.NewStringFlag("e", T("access for plans of a particular service offering")),
			flag_helpers.NewStringFlag("o", T("plans accessible by a particular organization")),
		},
	}
}
Example #9
0
func (cmd Target) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "target",
		ShortName:   "t",
		Description: T("Set or view the targeted org or space"),
		Usage:       T("CF_NAME target [-o ORG] [-s SPACE]"),
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("o", T("organization")),
			flag_helpers.NewStringFlag("s", T("space")),
		},
	}
}
Example #10
0
func (cmd *Scale) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "scale",
		Description: "Change or view the instance count, disk space limit, and memory limit for an app",
		Usage:       "CF_NAME scale APP [-i INSTANCES] [-k DISK] [-m MEMORY] [-f]",
		Flags: []cli.Flag{
			flag_helpers.NewIntFlag("i", "Number of instances"),
			flag_helpers.NewStringFlag("k", "Disk limit (e.g. 256M, 1024M, 1G)"),
			flag_helpers.NewStringFlag("m", "Memory limit (e.g. 256M, 1024M, 1G)"),
			cli.BoolFlag{Name: "f", Usage: "Force restart of app without prompt"},
		},
	}
}
Example #11
0
func (cmd CreateQuota) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "create-quota",
		Description: T("Define a new resource quota"),
		Usage:       T("CF_NAME create-quota QUOTA [-m TOTAL_MEMORY] [-i INSTANCE_MEMORY] [-r ROUTES] [-s SERVICE_INSTANCES] [--allow-paid-service-plans]"),
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("i", T("Maximum amount of memory an application instance can have (e.g. 1024M, 1G, 10G)")),
			flag_helpers.NewStringFlag("m", T("Total amount of memory (e.g. 1024M, 1G, 10G)")),
			flag_helpers.NewIntFlag("r", T("Total number of routes")),
			flag_helpers.NewIntFlag("s", T("Total number of service instances")),
			cli.BoolFlag{Name: "allow-paid-service-plans", Usage: T("Can provision instances of paid service plans")},
		},
	}
}
Example #12
0
func (cmd *Curl) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "curl",
		Description: T("Executes a raw request, content-type set to application/json by default"),
		Usage:       T("CF_NAME curl PATH [-iv] [-X METHOD] [-H HEADER] [-d DATA] [--output FILE]"),
		Flags: []cli.Flag{
			cli.BoolFlag{Name: "i", Usage: T("Include response headers in the output")},
			cli.BoolFlag{Name: "v", Usage: T("Enable CF_TRACE output for all requests and responses")},
			cli.StringFlag{Name: "X", Value: "GET", Usage: T("HTTP method (GET,POST,PUT,DELETE,etc)")},
			flag_helpers.NewStringSliceFlag("H", T("Custom headers to include in the request, flag can be specified multiple times")),
			flag_helpers.NewStringFlag("d", T("HTTP data to include in the request body")),
			flag_helpers.NewStringFlag("output", T("Write curl body to FILE instead of stdout")),
		},
	}
}
func (cmd *UpdateUserProvidedService) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "update-user-provided-service",
		ShortName:   "uups",
		Description: "Update user-provided service instance name value pairs",
		Usage: "CF_NAME update-user-provided-service SERVICE_INSTANCE [-p PARAMETERS] [-l SYSLOG-DRAIN-URL]'\n\n" +
			"EXAMPLE:\n" +
			"   CF_NAME update-user-provided-service oracle-db-mine -p '{\"username\":\"admin\",\"password\":\"pa55woRD\"}'\n" +
			"   CF_NAME update-user-provided-service my-drain-service -l syslog://example.com\n",
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("p", "Parameters"),
			flag_helpers.NewStringFlag("l", "Syslog Drain Url"),
		},
	}
}
Example #14
0
func (cmd *updateQuota) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "update-quota",
		Description: cmd.T("Update an existing resource quota"),
		Usage:       cmd.T("CF_NAME update-quota QUOTA [-m MEMORY] [-n NEW_NAME] [-r ROUTES] [-s SERVICE_INSTANCES] [--allow-paid-service-plans | --disallow-paid-service-plans]"),
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("m", cmd.T("Total amount of memory (e.g. 1024M, 1G, 10G)")),
			flag_helpers.NewStringFlag("n", cmd.T("New name")),
			flag_helpers.NewIntFlag("r", cmd.T("Total number of routes")),
			flag_helpers.NewIntFlag("s", cmd.T("Total number of service instances")),
			cli.BoolFlag{Name: "allow-paid-service-plans", Usage: cmd.T("Can provision instances of paid service plans")},
			cli.BoolFlag{Name: "disallow-paid-service-plans", Usage: cmd.T("Cannot provision instances of paid service plans")},
		},
	}
}
func (cmd *UpdateUserProvidedService) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "update-user-provided-service",
		ShortName:   "uups",
		Description: T("Update user-provided service instance name value pairs"),
		Usage: T(`CF_NAME update-user-provided-service SERVICE_INSTANCE [-p CREDENTIALS] [-l SYSLOG-DRAIN-URL]'

EXAMPLE:
   CF_NAME update-user-provided-service my-db-mine -p '{"username":"******","password":"******"}'
   CF_NAME update-user-provided-service my-drain-service -l syslog://example.com`),
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("p", T("Credentials")),
			flag_helpers.NewStringFlag("l", T("Syslog Drain Url")),
		},
	}
}
Example #16
0
func (cmd *CreateServiceKey) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "create-service-key",
		ShortName:   "csk",
		Description: T("Create key for a service instance"),
		Usage: T(`CF_NAME create-service-key SERVICE_INSTANCE SERVICE_KEY [-c PARAMETERS_AS_JSON]

  Optionally provide service-specific configuration parameters in a valid JSON object in-line.
  CF_NAME create-service-key SERVICE_INSTANCE SERVICE_KEY -c '{"name":"value","name":"value"}'

  Optionally provide a file containing service-specific configuration parameters in a valid JSON object. The path to the parameters file can be an absolute or relative path to a file.
  CF_NAME create-service-key SERVICE_INSTANCE SERVICE_KEY -c PATH_TO_FILE

   Example of valid JSON object:
   {
     "permissions": "read-only"
   }

EXAMPLE:
   CF_NAME create-service-key mydb mykey -c '{"permissions":"read-only"}'
   CF_NAME create-service-key mydb mykey -c ~/workspace/tmp/instance_config.json`),
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("c", T("Valid JSON object containing service-specific configuration parameters, provided either in-line or in a file. For a list of supported configuration parameters, see documentation for the particular service offering.")),
		},
	}
}
Example #17
0
func (cmd *UpdateSpaceQuota) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "update-space-quota",
		Description: T("update an existing space quota"),
		Usage:       T("CF_NAME update-space-quota SPACE-QUOTA-NAME [-i MAX-INSTANCE-MEMORY] [-m MEMORY] [-n NEW_NAME] [-r ROUTES] [-s SERVICES] [--allow-paid-service-plans | --disallow-paid-service-plans]"),
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("i", T("Maximum amount of memory an application instance can have(e.g. 1024M, 1G, 10G). -1 represents an unlimited amount.")),
			flag_helpers.NewStringFlag("m", T("Total amount of memory a space can have(e.g. 1024M, 1G, 10G)")),
			flag_helpers.NewStringFlag("n", T("New name")),
			flag_helpers.NewIntFlag("r", T("Total number of routes")),
			flag_helpers.NewIntFlag("s", T("Total number of service instances")),
			cli.BoolFlag{Name: "allow-paid-service-plans", Usage: T("Can provision instances of paid service plans")},
			cli.BoolFlag{Name: "disallow-paid-service-plans", Usage: T("Can not provision instances of paid service plans")},
		},
	}
}
Example #18
0
func (cmd CreateService) Metadata() command_metadata.CommandMetadata {
	baseUsage := T("CF_NAME create-service SERVICE PLAN SERVICE_INSTANCE [-c PARAMETERS_AS_JSON] [-t TAGS]")
	paramsUsage := T(`   Optionally provide service-specific configuration parameters in a valid JSON object in-line:

   CF_NAME create-service SERVICE PLAN SERVICE_INSTANCE -c '{"name":"value","name":"value"}'

   Optionally provide a file containing service-specific configuration parameters in a valid JSON object.
   The path to the parameters file can be an absolute or relative path to a file:

   CF_NAME create-service SERVICE_INSTANCE -c PATH_TO_FILE

   Example of valid JSON object:
   {
      "cluster_nodes": {
         "count": 5,
         "memory_mb": 1024
      }
   }`)
	exampleUsage := T(`EXAMPLE:
   Linux/Mac:
      CF_NAME create-service db-service silver -c '{"ram_gb":4}'

   Windows Command Line:
      CF_NAME create-service db-service silver -c "{\"ram_gb\":4}"

   Windows PowerShell:
      CF_NAME create-service db-service silver -c '{\"ram_gb\":4}'

   CF_NAME create-service db-service silver mydb -c ~/workspace/tmp/instance_config.json

   CF_NAME create-service dbaas silver mydb -t "list, of, tags"`)
	tipsUsage := T(`TIP:
   Use 'CF_NAME create-user-provided-service' to make user-provided services available to cf apps`)
	return command_metadata.CommandMetadata{
		Name:        "create-service",
		ShortName:   "cs",
		Description: T("Create a service instance"),
		Usage:       strings.Join([]string{baseUsage, paramsUsage, exampleUsage, tipsUsage}, "\n\n"),
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("c", T("Valid JSON object containing service-specific configuration parameters, provided either in-line or in a file. For a list of supported configuration parameters, see documentation for the particular service offering.")),
			flag_helpers.NewStringFlag("t", T("User provided tags")),
		},
	}
}
Example #19
0
func (cmd *UpdateService) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "update-service",
		Description: T("Update a service instance"),
		Usage:       T("CF_NAME update-service SERVICE [-p NEW_PLAN]"),
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("p", T("Change service plan for a service instance")),
		},
	}
}
Example #20
0
func (cmd CreateSecurityGroup) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "create-security-group",
		Description: T("Create a security group"),
		Usage:       T("CF_NAME create-security-group SECURITY_GROUP [--json PATH_TO_JSON_FILE]"),
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("json", T("Path to a file containing rules in JSON format")),
		},
	}
}
Example #21
0
func (cmd *MapRoute) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "map-route",
		Description: T("Add a url route to an app"),
		Usage:       T("CF_NAME map-route APP DOMAIN [-n HOSTNAME]"),
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("n", T("Hostname")),
		},
	}
}
Example #22
0
func (cmd CreateSpace) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "create-space",
		Description: T("Create a space"),
		Usage:       T("CF_NAME create-space SPACE [-o ORG]"),
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("o", T("Organization")),
		},
	}
}
Example #23
0
func (cmd *UnmapRoute) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "unmap-route",
		Description: "Remove a url route from an app",
		Usage:       "CF_NAME unmap-route APP DOMAIN [-n HOSTNAME]",
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("n", "Hostname"),
		},
	}
}
Example #24
0
func (cmd *CreateRoute) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "create-route",
		Description: "Create a url route in a space for later use",
		Usage:       "CF_NAME create-route SPACE DOMAIN [-n HOSTNAME]",
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("n", "Hostname"),
		},
	}
}
Example #25
0
func (cmd *ServiceAccess) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "service-access",
		Description: T("List service access settings"),
		Usage:       "CF_NAME service-access",
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("b", T("settings for a specific broker")),
		},
	}
}
Example #26
0
func (cmd *CreateAppManifest) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "create-app-manifest",
		Description: T("Create an app manifest for an app that has been pushed successfully."),
		Usage:       T("CF_NAME create-app-manifest APP [-p /path/to/<app-name>-manifest.yml ]"),
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("p", T("Specify a path for file creation. If path not specified, manifest file is created in current working directory.")),
		},
	}
}
Example #27
0
func (cmd *DeleteRoute) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "delete-route",
		Description: T("Delete a route"),
		Usage:       T("CF_NAME delete-route DOMAIN [-n HOSTNAME] [-f]"),
		Flags: []cli.Flag{
			cli.BoolFlag{Name: "f", Usage: T("Force deletion without confirmation")},
			flag_helpers.NewStringFlag("n", T("Hostname")),
		},
	}
}
Example #28
0
func (cmd CreateOrg) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "create-org",
		ShortName:   "co",
		Description: T("Create an org"),
		Usage:       T("CF_NAME create-org ORG"),
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("q", T("Quota to assign to the newly created org (excluding this option results in assignment of default quota)")),
		},
	}
}
Example #29
0
func (cmd PurgeServiceOffering) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "purge-service-offering",
		Description: T("Recursively remove a service and child objects from Cloud Foundry database without making requests to a service broker"),
		Usage:       T("CF_NAME purge-service-offering SERVICE [-p PROVIDER]") + "\n\n" + scaryWarningMessage(),
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("p", T("Provider")),
			cli.BoolFlag{Name: "f", Usage: T("Force deletion without confirmation")},
		},
	}
}
Example #30
0
func (cmd CreateSecurityGroup) Metadata() command_metadata.CommandMetadata {
	return command_metadata.CommandMetadata{
		Name:        "create-security-group",
		Description: "<<< description goes here >>>",
		Usage:       "CF_NAME create-security-group NAME",
		Flags: []cli.Flag{
			flag_helpers.NewStringFlag("rules", "Create Rules Everything Around Me"),
			flag_helpers.NewStringSliceFlag("space", "BOOM A SPACE IS HERE"),
		},
	}
}