---
schema_version: "1"
id: f75e226502ed380ca9c200028605020da9a7b38eb700a4670d881711791871d0
title: Defining Parameters in a Message Source
collection: mulesoft
version: current
locale: en-us
portal_url: https://docs.salesforce.com/mulesoft/current/en-us/mule-sdk/latest/sources-parameters.md
canonical_url: https://docs.mulesoft.com/mule-sdk/latest/sources-parameters
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 8d39021d4e25fc9e9d1530dc7a6b4ede55cce89b9a5227715b642f51d044bd67
description: MuleSoft Documentation Site
release: "1.13"
latest: true
---
---
product: Mule SDK
version: 1.13
is-latest-version: true
keywords: mule, sdk, sources, listener, triggers, parameters
---

# Defining Parameters in a Message Source

> For the full documentation index, see: https://docs.mulesoft.com/llms.txt

Parameters are defined as fields of your `Source` class. All the features and annotations (such as
`@NullSafe`, `@ParameterGroup`, `@TypeResolver`) are available when defining an operation, for
example:

```java
@EmitsResponse
public class HttpListener extends Source<InputStream, HttpRequestAttributes> {

    @Config
    private HttpListenerConfig config;

    @Parameter
    @Optional(defaultValue = "/")
    private String path;

    @Parameter
    private Integer port;

    /**
    * Comma separated list of allowed HTTP methods by this listener.
    */
    @Parameter
    @Optional
    @Placement(tab = Placement.ADVANCED_TAB)
    @Summary("Comma separated list of methods. Leave empty to allow all.")
    @Example("GET, POST")
    private String allowedMethods;
}
```

This is similar to how configs are defined, except that none of these parameters accept expressions.
Using the `@Expression` annotation to support or require expression support results in an error.

## Next step

- [Lifecycle of a Message Source](https://docs.mulesoft.com/mule-sdk/latest/sources-lifecycle)
