

# Define application resources in your Amazon SAM template
<a name="authoring-define-resources"></a>

You define the Amazon resources your serverless application uses in the `Resources` section of your Amazon SAM template. When you define a resource, you identify what the resource is, how it interacts with other resources, and how it can be accessed (that is, the permissions of the resource).

The `Resources` section of your Amazon SAM template can contain a combination of Amazon CloudFormation resources and Amazon SAM resources. Additionally, you can use Amazon SAM's short-hand syntax for the following resources:


| Amazon SAM short-hand syntax | What it does with a related Amazon resource | 
| --- | --- | 
| [AWS::Serverless::Api](sam-resource-api.md) | Creates a collection of API Gateway resources and methods that can be invoked through HTTPS endpoints. | 
| [AWS::Serverless::Application](sam-resource-application.md) | Embeds a serverless application from the [Amazon Serverless Application Repository](https://serverlessrepo.aws.amazon.com/applications) or from an Amazon S3 bucket as a nested application. | 
| [AWS::Serverless::Connector](sam-resource-connector.md) | Configures permissions between two resources. For an introduction to connectors, see [Managing resource permissions with Amazon SAM connectors](managing-permissions-connectors.md). | 
| [AWS::Serverless::Function](sam-resource-function.md) | Creates an Amazon Lambda function, an Amazon Identity and Access Management (IAM) execution role, and event source mappings that trigger the function. | 
| [AWS::Serverless::GraphQLApi](sam-resource-graphqlapi.md) | creates and configures an Amazon AppSync GraphQL API for your serverless application. | 
| [AWS::Serverless::HttpApi](sam-resource-httpapi.md) | Creates an Amazon API Gateway HTTP API, which enables you to create RESTful APIs with lower latency and lower costs than REST APIs. | 
| [AWS::Serverless::LayerVersion](sam-resource-layerversion.md) | Creates a Lambda LayerVersion that contains library or runtime code needed by a Lambda Function. | 
| [AWS::Serverless::SimpleTable](sam-resource-simpletable.md) | Creates a DynamoDB table with a single attribute primary key. | 
| [AWS::Serverless::StateMachine](sam-resource-statemachine.md) | Creates an Amazon Step Functions state machine, which you can use to orchestrate Amazon Lambda functions and other Amazon resources to form complex and robust workflows. | 

The above resources are also listed in [Amazon SAM resources and properties](sam-specification-resources-and-properties.md).

For reference information for all the Amazon resource and property types Amazon CloudFormation and Amazon SAM support, see [Amazon resource and property types reference](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) in the *Amazon CloudFormation User Guide*.