> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Gateway Method Descriptor • AI Agent SDK

> GatewayMethodDescriptor: Declarative authorisation descriptor for one gateway method.

# GatewayMethodDescriptor

> Defined in the [**protocols**](https://praison.ai/docs/sdk/reference/praisonaiagents/modules/protocols.md) module.

AI Agent

Declarative authorisation descriptor for one gateway method.

A descriptor states — once, next to the protocol it guards — *what scope a
caller must hold* to invoke `name`. The dispatcher resolves the required
scope from the registry instead of scattering `_require_scope` /
`_client_has_scope` calls per endpoint, so a newly added method is
**closed until explicitly classified** rather than reachable by omission.

Attributes:
name: The method / route / message-type identifier (e.g.
`"agent.message"`, `"channels.control"`).
required\_scope: The baseline scope required to invoke the method.
owner: Who declared the method (`"core"`, a plugin name, ...). Purely
informational; helps auditing a growing control surface.
since: Optional version/date the method was classified.
escalate\_fields: Optional per-payload-field escalation. Maps a param
field name to the stricter scope demanded when that field is
present. Fields not listed here are treated as *unknown/structural*
and escalate to :attr:`escalate_unknown_scope` (fail closed) when
:attr:`strict_fields` is True.
strict\_fields: When True, any payload field not in `escalate_fields`
(and not in `safe_fields`) escalates to
:attr:`escalate_unknown_scope`. Defaults to False so today's
behaviour (no field-level derivation) is preserved unless opted in.
safe\_fields: Field names that never escalate — read-only / benign
params. Only consulted when `strict_fields` is True.
escalate\_unknown\_scope: Scope demanded for unknown structural fields
under `strict_fields`. Defaults to `ADMIN` (fail closed).

## Properties

**name** `str`

No description available.

**required\_scope** `OperatorScope`

No description available.

**owner** `str`

No description available.

**since** `Optional[str]`

No description available.

**escalate\_fields** `Dict[str, OperatorScope]`

No description available.

**strict\_fields** `bool`

No description available.

**safe\_fields** `Set[str]`

No description available.

**escalate\_unknown\_scope** `OperatorScope`

No description available.

## Methods

> [card] [resolve()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/GatewayMethodDescriptor-resolve.md)
>
> Resolve the effective required scope for a call with `params`.

## Source

> [card] [View on GitHub](https://github.com/MervinPraison/PraisonAI/blob/main/src/praisonai-agents/praisonaiagents/gateway/protocols.py#L7667)
>
> `praisonaiagents/gateway/protocols.py` at line 7667

***

## Related Documentation

> [card] [Gateway Feature](https://praison.ai/docs/docs/features/gateway)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.