Source code for discord.application_role_connection
# SPDX-License-Identifier: MIT
from __future__ import annotations
from typing import TYPE_CHECKING
from .enums import ApplicationRoleConnectionMetadataType, try_enum
from .utils import MISSING
if TYPE_CHECKING:
from .types.application_role_connection import (
ApplicationRoleConnectionMetadata as ApplicationRoleConnectionMetadataPayload,
)
__all__ = ("ApplicationRoleConnectionMetadata",)
[docs]class ApplicationRoleConnectionMetadata:
r"""Represents role connection metadata for a Discord application.
.. versionadded:: 2.4
Parameters
----------
type: :class:`ApplicationRoleConnectionMetadataType`
The type of metadata value.
key: :class:`str`
The key for this metadata field.
May only be the ``a-z``, ``0-9``, or ``_`` characters, with a maximum of 50 characters.
name: :class:`str`
The name for this metadata field. Maximum 100 characters.
description: :class:`str`
The description for this metadata field. Maximum 200 characters.
name_localizations: Optional[Dict[:class:`str`, :class:`str`]]
The name localizations for this metadata field. The values of this should be ``"locale": "name"``.
See `here <https://discord.com/developers/docs/reference#locales>`_ for a list of valid locales.
description_localizations: Optional[Dict[:class:`str`, :class:`str`]]
The description localizations for this metadata field. The values of this should be ``"locale": "name"``.
See `here <https://discord.com/developers/docs/reference#locales>`_ for a list of valid locales.
"""
__slots__ = (
"type",
"key",
"name",
"description",
"name_localizations",
"description_localizations",
)
def __init__(
self,
*,
type: ApplicationRoleConnectionMetadataType,
key: str,
name: str,
description: str,
name_localizations: dict[str, str] = MISSING,
description_localizations: dict[str, str] = MISSING,
):
self.type: ApplicationRoleConnectionMetadataType = type
self.key: str = key
self.name: str = name
self.name_localizations: dict[str, str] = name_localizations
self.description: str = description
self.description_localizations: dict[str, str] = description_localizations
def __repr__(self):
return (
"<ApplicationRoleConnectionMetadata "
f"type={self.type!r} "
f"key={self.key!r} "
f"name={self.name!r} "
f"description={self.description!r} "
f"name_localizations={self.name_localizations!r} "
f"description_localizations={self.description_localizations!r}>"
)
def __str__(self):
return self.name
@classmethod
def from_dict(
cls, data: ApplicationRoleConnectionMetadataPayload
) -> ApplicationRoleConnectionMetadata:
return cls(
type=try_enum(ApplicationRoleConnectionMetadataType, data["type"]),
key=data["key"],
name=data["name"],
description=data["description"],
name_localizations=data.get("name_localizations"),
description_localizations=data.get("description_localizations"),
)
def to_dict(self) -> ApplicationRoleConnectionMetadataPayload:
data = {
"type": self.type.value,
"key": self.key,
"name": self.name,
"description": self.description,
}
if self.name_localizations is not MISSING:
data["name_localizations"] = self.name_localizations
if self.description_localizations is not MISSING:
data["description_localizations"] = self.description_localizations
return data