Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Generate sam sync schema #5612

Merged
merged 2 commits into from
Jul 25, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
172 changes: 170 additions & 2 deletions schema/samcli.json
Original file line number Diff line number Diff line change
Expand Up @@ -1221,9 +1221,177 @@
"properties": {
"parameters": {
"title": "Parameters for the sync command",
"description": "Available parameters for the sync command:\n",
"description": "Available parameters for the sync command:\n* template_file:\nAWS SAM template file.\n* code:\nSync ONLY code resources. This includes Lambda Functions, API Gateway, and Step Functions.\n* watch:\nWatch local files and automatically sync with cloud.\n* resource_id:\nSync code for all the resources with the ID. To sync a resource within a nested stack, use the following pattern {ChildStack}/{logicalId}.\n* resource:\nSync code for all resources of the given resource type. Accepted values are ['AWS::Serverless::Function', 'AWS::Lambda::Function', 'AWS::Serverless::LayerVersion', 'AWS::Lambda::LayerVersion', 'AWS::Serverless::Api', 'AWS::ApiGateway::RestApi', 'AWS::Serverless::HttpApi', 'AWS::ApiGatewayV2::Api', 'AWS::Serverless::StateMachine', 'AWS::StepFunctions::StateMachine']\n* dependency_layer:\nSeparate dependencies of individual function into a Lambda layer for improved performance.\n* skip_deploy_sync:\nThis option will skip the initial infrastructure deployment if it is not required by comparing the local template with the template deployed in cloud.\n* stack_name:\nName of the AWS CloudFormation stack.\n* base_dir:\nResolve relative paths to function's source code with respect to this directory. Use this if SAM template and source code are not in same enclosing folder. By default, relative paths are resolved with respect to the SAM template's location.\n* use_container:\nBuild functions within an AWS Lambda-like container.\n* build_image:\nContainer image URIs for building functions/layers. You can specify for all functions/layers with just the image URI (--build-image public.ecr.aws/sam/build-nodejs18.x:latest). You can specify for each individual function with (--build-image FunctionLogicalID=public.ecr.aws/sam/build-nodejs18.x:latest). A combination of the two can be used. If a function does not have build image specified or an image URI for all functions, the default SAM CLI build images will be used.\n* image_repository:\nAWS ECR repository URI where artifacts referenced in the template are uploaded.\n* image_repositories:\nMapping of Function Logical ID to AWS ECR Repository URI.\n\nExample: Function_Logical_ID=ECR_Repo_Uri\nThis option can be specified multiple times.\n* s3_bucket:\nAWS S3 bucket where artifacts referenced in the template are uploaded.\n* s3_prefix:\nPrefix name that is added to the artifact's name when it is uploaded to the AWS S3 bucket.\n* kms_key_id:\nThe ID of an AWS KMS key that is used to encrypt artifacts that are at rest in the AWS S3 bucket.\n* role_arn:\nARN of an IAM role that AWS Cloudformation assumes when executing a deployment change set.\n* parameter_overrides:\nString that contains AWS CloudFormation parameter overrides encoded as key=value pairs.\n* beta_features:\nEnable/Disable beta features.\n* debug:\nTurn on debug logging to print debug message generated by AWS SAM CLI and display timestamps.\n* profile:\nSelect a specific profile from your credential file to get AWS credentials.\n* region:\nSet the AWS Region of the service. (e.g. us-east-1)\n* metadata:\nMap of metadata to attach to ALL the artifacts that are referenced in the template.\n* notification_arns:\nARNs of SNS topics that AWS Cloudformation associates with the stack.\n* tags:\nList of tags to associate with the stack.\n* capabilities:\nList of capabilities that one must specify before AWS Cloudformation can create certain stacks.\n\nAccepted Values: CAPABILITY_IAM, CAPABILITY_NAMED_IAM, CAPABILITY_RESOURCE_POLICY, CAPABILITY_AUTO_EXPAND.\n\nLearn more at: https://docs.aws.amazon.com/serverlessrepo/latest/devguide/acknowledging-application-capabilities.html",
"type": "object",
"properties": {}
"properties": {
"template_file": {
"title": "template_file",
"type": "string",
"description": "AWS SAM template file.",
"default": "template.[yaml|yml|json]"
},
"code": {
"title": "code",
"type": "boolean",
"description": "Sync ONLY code resources. This includes Lambda Functions, API Gateway, and Step Functions."
},
"watch": {
"title": "watch",
"type": "boolean",
"description": "Watch local files and automatically sync with cloud."
},
"resource_id": {
"title": "resource_id",
"type": "string",
"description": "Sync code for all the resources with the ID. To sync a resource within a nested stack, use the following pattern {ChildStack}/{logicalId}."
},
"resource": {
"title": "resource",
"type": "string",
"description": "Sync code for all resources of the given resource type. Accepted values are ['AWS::Serverless::Function', 'AWS::Lambda::Function', 'AWS::Serverless::LayerVersion', 'AWS::Lambda::LayerVersion', 'AWS::Serverless::Api', 'AWS::ApiGateway::RestApi', 'AWS::Serverless::HttpApi', 'AWS::ApiGatewayV2::Api', 'AWS::Serverless::StateMachine', 'AWS::StepFunctions::StateMachine']",
"enum": [
"AWS::ApiGateway::RestApi",
"AWS::ApiGatewayV2::Api",
"AWS::Lambda::Function",
"AWS::Lambda::LayerVersion",
"AWS::Serverless::Api",
"AWS::Serverless::Function",
"AWS::Serverless::HttpApi",
"AWS::Serverless::LayerVersion",
"AWS::Serverless::StateMachine",
"AWS::StepFunctions::StateMachine"
]
},
"dependency_layer": {
"title": "dependency_layer",
"type": "boolean",
"description": "Separate dependencies of individual function into a Lambda layer for improved performance.",
"default": true
},
"skip_deploy_sync": {
"title": "skip_deploy_sync",
"type": "boolean",
"description": "This option will skip the initial infrastructure deployment if it is not required by comparing the local template with the template deployed in cloud.",
"default": true
},
"stack_name": {
"title": "stack_name",
"type": "string",
"description": "Name of the AWS CloudFormation stack."
},
"base_dir": {
"title": "base_dir",
"type": "string",
"description": "Resolve relative paths to function's source code with respect to this directory. Use this if SAM template and source code are not in same enclosing folder. By default, relative paths are resolved with respect to the SAM template's location."
},
"use_container": {
"title": "use_container",
"type": "boolean",
"description": "Build functions within an AWS Lambda-like container."
},
"build_image": {
"title": "build_image",
"type": "string",
"description": "Container image URIs for building functions/layers. You can specify for all functions/layers with just the image URI (--build-image public.ecr.aws/sam/build-nodejs18.x:latest). You can specify for each individual function with (--build-image FunctionLogicalID=public.ecr.aws/sam/build-nodejs18.x:latest). A combination of the two can be used. If a function does not have build image specified or an image URI for all functions, the default SAM CLI build images will be used."
},
"image_repository": {
"title": "image_repository",
"type": "string",
"description": "AWS ECR repository URI where artifacts referenced in the template are uploaded."
},
"image_repositories": {
"title": "image_repositories",
"type": "array",
"description": "Mapping of Function Logical ID to AWS ECR Repository URI.\n\nExample: Function_Logical_ID=ECR_Repo_Uri\nThis option can be specified multiple times.",
"items": {
"type": "string"
}
},
"s3_bucket": {
"title": "s3_bucket",
"type": "string",
"description": "AWS S3 bucket where artifacts referenced in the template are uploaded."
},
"s3_prefix": {
"title": "s3_prefix",
"type": "string",
"description": "Prefix name that is added to the artifact's name when it is uploaded to the AWS S3 bucket."
},
"kms_key_id": {
"title": "kms_key_id",
"type": "string",
"description": "The ID of an AWS KMS key that is used to encrypt artifacts that are at rest in the AWS S3 bucket."
},
"role_arn": {
"title": "role_arn",
"type": "string",
"description": "ARN of an IAM role that AWS Cloudformation assumes when executing a deployment change set."
},
"parameter_overrides": {
"title": "parameter_overrides",
"type": [
"array",
"string"
],
"description": "String that contains AWS CloudFormation parameter overrides encoded as key=value pairs.",
"items": {
"type": "string"
}
},
"beta_features": {
"title": "beta_features",
"type": "boolean",
"description": "Enable/Disable beta features."
},
"debug": {
"title": "debug",
"type": "boolean",
"description": "Turn on debug logging to print debug message generated by AWS SAM CLI and display timestamps."
},
"profile": {
"title": "profile",
"type": "string",
"description": "Select a specific profile from your credential file to get AWS credentials."
},
"region": {
"title": "region",
"type": "string",
"description": "Set the AWS Region of the service. (e.g. us-east-1)"
},
"metadata": {
"title": "metadata",
"type": "string",
"description": "Map of metadata to attach to ALL the artifacts that are referenced in the template."
},
"notification_arns": {
"title": "notification_arns",
"type": "array",
"description": "ARNs of SNS topics that AWS Cloudformation associates with the stack.",
"items": {
"type": "string"
}
},
"tags": {
"title": "tags",
"type": "array",
"description": "List of tags to associate with the stack.",
"items": {
"type": "string"
}
},
"capabilities": {
"title": "capabilities",
"type": "array",
"description": "List of capabilities that one must specify before AWS Cloudformation can create certain stacks.\n\nAccepted Values: CAPABILITY_IAM, CAPABILITY_NAMED_IAM, CAPABILITY_RESOURCE_POLICY, CAPABILITY_AUTO_EXPAND.\n\nLearn more at: https://docs.aws.amazon.com/serverlessrepo/latest/devguide/acknowledging-application-capabilities.html",
"default": [
"CAPABILITY_NAMED_IAM",
"CAPABILITY_AUTO_EXPAND"
],
"items": {
"type": "string"
}
}
}
}
},
"required": [
Expand Down