Implementation
final FigSpec metaSpec = FigSpec(
name: 'meta',
description: 'Cloud meta introspection commands',
subcommands: [
FigSubcommand(
name: 'apis',
description: 'Inspect the APIs registered in gcloud',
subcommands: [
FigSubcommand(
name: 'collections',
description: 'Inspect the API collections registered in gcloud',
subcommands: [
FigSubcommand(
name: 'describe',
description: 'Describe the details of a collection for an API',
options: gcloudOptions,
args: [
FigArg(
name: 'COLLECTION',
description: 'The name of the collection to get the details of',
),
],
),
FigSubcommand(
name: 'lint',
description: 'Show which collections have non-compliant list API methods',
options: [
...gcloudOptions,
FigOption(
name: ['--api'],
description: 'The name of the API to get the collections for',
args: [FigArg(name: 'API', description: 'String')],
),
FigOption(
name: ['--api-version'],
description:
'The version of the given API to use. If not provided, the default version of the API will be used',
args: [FigArg(name: 'API_VERSION', description: 'String')],
),
],
),
FigSubcommand(
name: 'list',
description: 'List the resource collections for an API',
options: [
...gcloudOptions,
FigOption(
name: ['--api'],
description: 'The name of the API to get the collections for',
args: [FigArg(name: 'API', description: 'String')],
),
FigOption(
name: ['--api-version'],
description:
'The version of the given API to use. If not provided, the default version of the API will be used',
args: [FigArg(name: 'API_VERSION', description: 'String')],
),
FigOption(
name: ['--filter'],
description:
'Apply a Boolean filter _EXPRESSION_ to each resource item to be listed.\nIf the expression evaluates `True`, then that item is listed. For more\ndetails and examples of filter expressions, run \$ gcloud topic filters. This\nflag interacts with other flags that are applied in this order: *--flatten*,\n*--sort-by*, *--filter*, *--limit*',
args: [FigArg(name: 'EXPRESSION', description: 'String')],
),
FigOption(
name: ['--limit'],
description:
'Maximum number of resources to list. The default is *unlimited*.\nThis flag interacts with other flags that are applied in this order:\n*--flatten*, *--sort-by*, *--filter*, *--limit*',
args: [FigArg(name: 'LIMIT', description: 'Googlecloudsdk.calliope.arg_parsers:Parse')],
),
FigOption(
name: ['--sort-by'],
description:
'Comma-separated list of resource field key names to sort by. The\ndefault order is ascending. Prefix a field with ``~\'\' for descending\norder on that field. This flag interacts with other flags that are applied\nin this order: *--flatten*, *--sort-by*, *--filter*, *--limit*',
args: [FigArg(name: 'FIELD', description: 'List')],
),
],
),
],
options: gcloudOptions,
),
FigSubcommand(
name: 'describe',
description: 'Describe the details of an API registered in gcloud',
options: gcloudOptions,
args: [FigArg(name: 'API', description: 'The name of the API to get the details of')],
),
FigSubcommand(
name: 'discovery',
description: 'Inspect the discovery docs for the APIs registered in gcloud',
subcommands: [
FigSubcommand(
name: 'list',
description: 'List the discovery docs for the APIs registered in gcloud',
options: gcloudOptions,
),
],
options: gcloudOptions,
),
FigSubcommand(
name: 'list',
description: 'List the APIs registered in gcloud',
options: [
...gcloudOptions,
FigOption(
name: ['--filter'],
description:
'Apply a Boolean filter _EXPRESSION_ to each resource item to be listed.\nIf the expression evaluates `True`, then that item is listed. For more\ndetails and examples of filter expressions, run \$ gcloud topic filters. This\nflag interacts with other flags that are applied in this order: *--flatten*,\n*--sort-by*, *--filter*, *--limit*',
args: [FigArg(name: 'EXPRESSION', description: 'String')],
),
FigOption(
name: ['--limit'],
description:
'Maximum number of resources to list. The default is *unlimited*.\nThis flag interacts with other flags that are applied in this order:\n*--flatten*, *--sort-by*, *--filter*, *--limit*',
args: [FigArg(name: 'LIMIT', description: 'Googlecloudsdk.calliope.arg_parsers:Parse')],
),
FigOption(
name: ['--sort-by'],
description:
'Comma-separated list of resource field key names to sort by. The\ndefault order is ascending. Prefix a field with ``~\'\' for descending\norder on that field. This flag interacts with other flags that are applied\nin this order: *--flatten*, *--sort-by*, *--filter*, *--limit*',
args: [FigArg(name: 'FIELD', description: 'List')],
),
FigOption(
name: ['--uri'],
description: 'Print a list of resource URIs instead of the default output',
),
],
),
FigSubcommand(
name: 'messages',
description: 'Inspect the API messages in an API',
subcommands: [
FigSubcommand(
name: 'describe',
description: 'Describe the details of a proto message in an API',
options: [
...gcloudOptions,
FigOption(
name: ['--api'],
description: 'The name of the API to get the attributes for',
args: [FigArg(name: 'API', description: 'String')],
),
FigOption(
name: ['--api-version'],
description:
'The version of the given API to use. If not provided, the default version of the API will be used',
args: [FigArg(name: 'API_VERSION', description: 'String')],
),
],
args: [FigArg(name: 'MESSAGE', description: 'The name of the message you want to describe')],
),
FigSubcommand(
name: 'generate-export-schemas',
description: 'Generate YAML export schemas for a message in a given API',
options: [
...gcloudOptions,
FigOption(
name: ['--api'],
description: 'The name of the API to get the attributes for',
args: [FigArg(name: 'API', description: 'String')],
),
FigOption(
name: ['--api-version'],
description:
'The version of the given API to use. If not provided, the default version of the API will be used',
args: [FigArg(name: 'API_VERSION', description: 'String')],
),
],
),
],
options: gcloudOptions,
),
FigSubcommand(
name: 'methods',
description: 'Inspect the methods for an API collection registered in gcloud',
subcommands: [
FigSubcommand(
name: 'call',
description: 'Calls an API method with specific parameters',
options: [
...gcloudOptions,
FigOption(
name: ['--api-version'],
description:
'The version of the given API to use. If not provided, the default version of the API will be used',
args: [FigArg(name: 'API_VERSION', description: 'String')],
),
FigOption(
name: ['--collection'],
description: 'The name of the collection to specify the method for',
args: [FigArg(name: 'COLLECTION', description: 'String')],
),
FigOption(
name: ['--raw'],
description:
'For list commands, the response is flattened to return the items as a list rather than returning the list response verbatim. Use this flag to disable this behavior and return the raw response',
),
],
args: [
FigArg(
name: 'METHOD',
description: 'The name of the method you want to call',
),
FigArg(
name: 'ARGS',
description: 'Arguments to pass to the method',
isVariadic: true,
isOptional: true,
),
],
),
],
options: gcloudOptions,
),
FigSubcommand(
name: 'regen',
description: 'Regenerate the API maps for the APIs registered in gcloud',
options: gcloudOptions,
),
],
options: gcloudOptions,
),
FigSubcommand(
name: 'cache',
description: 'Cloud SDK persistent cache commands',
subcommands: [
FigSubcommand(
name: 'completers',
description: 'Cloud SDK persistent cache completers commands',
subcommands: [
FigSubcommand(
name: 'list',
description: 'List the completion cache table',
options: gcloudOptions,
),
],
options: gcloudOptions,
),
FigSubcommand(
name: 'delete',
description: 'Delete a persistent cache',
options: gcloudOptions,
args: [FigArg(name: 'NAME', description: 'The name of the cache to delete')],
),
FigSubcommand(
name: 'list',
description: 'List the persistent caches',
options: gcloudOptions,
),
FigSubcommand(
name: 'update',
description: 'Update the persistent cache',
options: gcloudOptions,
),
],
options: gcloudOptions,
),
FigSubcommand(
name: 'cli-trees',
description: 'CLI trees manager',
subcommands: [
FigSubcommand(
name: 'list',
description: 'List the installed gcloud interactive CLI trees',
options: gcloudOptions,
),
],
options: gcloudOptions,
),
FigSubcommand(
name: 'debug',
description: 'Debug commands',
options: [
...gcloudOptions,
FigOption(
name: ['--mode'],
description: 'The mode to run the debug command in',
args: [FigArg(name: 'MODE', description: 'String')],
),
],
),
FigSubcommand(
name: 'flag-coverage-tree',
description: 'Flag coverage tree commands',
subcommands: [
FigSubcommand(
name: 'update',
description: 'Generates the flag coverage tree',
options: gcloudOptions,
),
],
options: gcloudOptions,
),
FigSubcommand(
name: 'generate-command',
description: 'Generate a new gcloud command',
options: [
...gcloudOptions,
FigOption(
name: ['--output-dir'],
description: 'The directory to output the generated command to',
args: [FigArg(name: 'OUTPUT_DIR', description: 'String')],
),
],
),
FigSubcommand(
name: 'generate-help-docs',
description: 'Generate help documentation',
options: gcloudOptions,
),
FigSubcommand(
name: 'lint',
description: 'Lint commands',
options: gcloudOptions,
),
FigSubcommand(
name: 'list-commands',
description: 'List all available commands',
options: gcloudOptions,
),
FigSubcommand(
name: 'list-files-for-upload',
description: 'List files for upload',
options: gcloudOptions,
),
FigSubcommand(
name: 'list-from-json',
description: 'List from JSON',
options: gcloudOptions,
),
FigSubcommand(
name: 'list-gcloud',
description: 'List gcloud',
options: gcloudOptions,
),
FigSubcommand(
name: 'render-markdown',
description: 'Render markdown',
options: gcloudOptions,
),
FigSubcommand(
name: 'resources',
description: 'Resources commands',
subcommands: [
FigSubcommand(
name: 'generate',
description: 'Cloud SDK resource test URI generator',
options: [
...gcloudOptions,
FigOption(
name: ['--api-version'],
description: 'The resource collection API version',
args: [FigArg(name: 'VERSION', description: 'String')],
),
],
),
],
options: gcloudOptions,
),
FigSubcommand(
name: 'test',
description: 'Test commands',
options: gcloudOptions,
),
FigSubcommand(
name: 'validate-yaml',
description: 'Validate YAML',
options: gcloudOptions,
),
],
options: gcloudOptions,
);