Implementation
final FigSpec serverlessSpec = FigSpec(
name: 'serverless',
description: 'Zero-friction serverless development',
options: [
FigOption(
name: ['--help'],
description: 'Show help',
),
],
subcommands: [
FigSubcommand(
name: ['deploy'],
description: 'Deploy a Serverless service',
subcommands: [
FigSubcommand(
name: ['function'],
options: [
appOption,
awsProfileOption,
configOption,
functionOption,
helpOption,
orgOption,
regionOption,
stageOption,
useLocalCredentialsOption,
versionOption,
FigOption(
name: ['--force'],
description: 'Forces a deployment to take place',
),
FigOption(
name: ['--update-config', '-u'],
description: 'Updates function configuration, e.g. Timeout or Memory Size without deploying code',
args: [
FigArg(name: 'config'),
],
),
],
),
FigSubcommand(
name: ['list'],
subcommands: [
FigSubcommand(
name: ['functions'],
options: [
regionOption,
awsProfileOption,
appOption,
orgOption,
useLocalCredentialsOption,
configOption,
stageOption,
helpOption,
versionOption,
],
),
],
options: [
regionOption,
awsProfileOption,
appOption,
orgOption,
useLocalCredentialsOption,
configOption,
stageOption,
helpOption,
versionOption,
],
),
],
options: [
concealOption,
packageOption,
verboseOption,
FigOption(
name: ['--force'],
description: 'Forces a deployment to take place',
),
functionOption,
FigOption(
name: ['--aws-s3-accelerate'],
description: 'Enables S3 Transfer Acceleration making uploading artifacts much faster',
),
regionOption,
awsProfileOption,
appOption,
orgOption,
useLocalCredentialsOption,
configOption,
stageOption,
helpOption,
versionOption,
],
),
FigSubcommand(
name: ['info'],
description: 'Display information about the service',
options: [
concealOption,
regionOption,
awsProfileOption,
appOption,
orgOption,
useLocalCredentialsOption,
configOption,
stageOption,
helpOption,
versionOption,
],
),
FigSubcommand(
name: ['invoke'],
description: 'Invoke a deployed function',
options: [
functionOptionRequired,
pathOption,
dataOption,
rawOption,
contextOption,
contextPathOption,
regionOption,
awsProfileOption,
appOption,
orgOption,
useLocalCredentialsOption,
configOption,
stageOption,
helpOption,
versionOption,
],
subcommands: [
FigSubcommand(
name: ['local'],
options: [
functionOptionRequired,
pathOption,
dataOption,
rawOption,
contextOption,
contextPathOption,
envOption,
regionOption,
awsProfileOption,
appOption,
orgOption,
useLocalCredentialsOption,
configOption,
stageOption,
helpOption,
versionOption,
],
),
],
),
FigSubcommand(
name: ['logs'],
description: 'Output the logs of a deployed function',
),
FigSubcommand(
name: ['metrics'],
description: 'Show metrics for a specific function',
),
FigSubcommand(
name: ['remove'],
description: 'Remove Serverless service and all resources',
),
FigSubcommand(
name: ['rollback'],
description: 'Rollback the Serverless service to a specific deployment',
),
FigSubcommand(
name: ['studio'],
description: 'Develop a Serverless application in the cloud',
),
FigSubcommand(
name: ['test'],
description: 'Run HTTP tests',
),
FigSubcommand(
name: ['package'],
description: 'Package a Serverless service',
),
FigSubcommand(
name: ['plugin'],
description: 'Handle plugins',
),
FigSubcommand(
name: ['print'],
description: 'Print your compiled and resolved config file',
),
FigSubcommand(
name: ['create'],
description: 'Create new Serverless service',
),
FigSubcommand(
name: ['dashboard'],
description: 'Open the Serverless dashboard',
),
FigSubcommand(
name: ['generate-event'],
description: 'Generate event',
),
FigSubcommand(
name: ['install'],
description: 'Install a Serverless service from GitHub or a plugin from the Serverless registry',
),
FigSubcommand(
name: ['login'],
description: 'Login or sign up for Serverless',
),
FigSubcommand(
name: ['logout'],
description: 'Logout from Serverless',
),
FigSubcommand(
name: ['output'],
description: 'Get/list value of dashboard deployment profile parameter',
),
FigSubcommand(
name: ['param'],
description: 'Get/list value of dashboard service output',
),
FigSubcommand(
name: ['slstats'],
description: 'Enable or disable stats',
),
],
// generateSpec not fully supported in Dart spec yet
);