# generated by update to not change manually
import dataclasses as dt
import typing as t
from enum import Enum
from bungieapi.json import to_json
[docs]class FireteamDateRange(Enum):
ALL = 0
NOW = 1
TWENTY_FOUR_HOURS = 2
FORTY_EIGHT_HOURS = 3
THIS_WEEK = 4
[docs]class FireteamPublicSearchOption(Enum):
PUBLIC_AND_PRIVATE = 0
PUBLIC_ONLY = 1
PRIVATE_ONLY = 2
[docs]class FireteamSlotSearch(Enum):
NO_SLOT_RESTRICTION = 0
HAS_OPEN_PLAYER_SLOTS = 1
HAS_OPEN_PLAYER_OR_ALT_SLOTS = 2
[docs]@dt.dataclass(frozen=True)
class FireteamSummary:
activity_type: t.Optional[int] = None
alternate_slot_count: t.Optional[int] = None
available_alternate_slot_count: t.Optional[int] = None
available_player_slot_count: t.Optional[int] = None
date_created: t.Optional[str] = None
date_modified: t.Optional[str] = None
date_player_modified: t.Optional[str] = None
fireteam_id: t.Optional[int] = None
group_id: t.Optional[int] = None
is_immediate: t.Optional[bool] = None
is_public: t.Optional[bool] = None
is_valid: t.Optional[bool] = None
locale: t.Optional[str] = None
owner_membership_id: t.Optional[int] = None
platform: t.Optional["FireteamPlatform"] = None
player_slot_count: t.Optional[int] = None
scheduled_time: t.Optional[str] = None
title: t.Optional[str] = None
title_before_moderation: t.Optional[str] = None
[docs] def to_json(self) -> t.Mapping[str, t.Any]:
return {
"fireteamId": to_json(self.fireteam_id),
"groupId": to_json(self.group_id),
"platform": to_json(self.platform),
"activityType": to_json(self.activity_type),
"isImmediate": to_json(self.is_immediate),
"scheduledTime": to_json(self.scheduled_time),
"ownerMembershipId": to_json(self.owner_membership_id),
"playerSlotCount": to_json(self.player_slot_count),
"alternateSlotCount": to_json(self.alternate_slot_count),
"availablePlayerSlotCount": to_json(self.available_player_slot_count),
"availableAlternateSlotCount": to_json(self.available_alternate_slot_count),
"title": to_json(self.title),
"dateCreated": to_json(self.date_created),
"dateModified": to_json(self.date_modified),
"isPublic": to_json(self.is_public),
"locale": to_json(self.locale),
"isValid": to_json(self.is_valid),
"datePlayerModified": to_json(self.date_player_modified),
"titleBeforeModeration": to_json(self.title_before_moderation),
}
[docs]@dt.dataclass(frozen=True)
class FireteamResponse:
alternates: t.Optional[t.Sequence["FireteamMember"]] = None
members: t.Optional[t.Sequence["FireteamMember"]] = None
summary: t.Optional["FireteamSummary"] = None
[docs] def to_json(self) -> t.Mapping[str, t.Any]:
return {
"Summary": to_json(self.summary),
"Members": to_json(self.members),
"Alternates": to_json(self.alternates),
}
[docs]@dt.dataclass(frozen=True)
class FireteamMember:
bungie_net_user_info: t.Optional["UserInfoCard"] = None
character_id: t.Optional[int] = None
date_joined: t.Optional[str] = None
destiny_user_info: t.Optional["FireteamUserInfoCard"] = None
has_microphone: t.Optional[bool] = None
last_platform_invite_attempt_date: t.Optional[str] = None
last_platform_invite_attempt_result: t.Optional[
"FireteamPlatformInviteResult"
] = None
[docs] def to_json(self) -> t.Mapping[str, t.Any]:
return {
"destinyUserInfo": to_json(self.destiny_user_info),
"bungieNetUserInfo": to_json(self.bungie_net_user_info),
"characterId": to_json(self.character_id),
"dateJoined": to_json(self.date_joined),
"hasMicrophone": to_json(self.has_microphone),
"lastPlatformInviteAttemptDate": to_json(
self.last_platform_invite_attempt_date
),
"lastPlatformInviteAttemptResult": to_json(
self.last_platform_invite_attempt_result
),
}
[docs]@dt.dataclass(frozen=True)
class FireteamUserInfoCard:
fireteam_display_name: t.Optional[str] = None
fireteam_membership_type: t.Optional["BungieMembershipType"] = None
applicable_membership_types: t.Optional[
t.Sequence["BungieMembershipType"]
] = None # The list of Membership Types indicating the platforms on which this Membership can be used. Not in Cross Save = its original membership type. Cross Save Primary = Any membership types it is overridding, and its original membership type Cross Save Overridden = Empty list
bungie_global_display_name: t.Optional[
str
] = None # The bungie global display name, if set.
bungie_global_display_name_code: t.Optional[
int
] = None # The bungie global display name code, if set.
cross_save_override: t.Optional[
"BungieMembershipType"
] = None # If there is a cross save override in effect, this value will tell you the type that is overridding this one.
display_name: t.Optional[
str
] = None # Display Name the player has chosen for themselves. The display name is optional when the data type is used as input to a platform API.
icon_path: t.Optional[str] = None # URL the Icon if available.
is_public: t.Optional[bool] = None # If True, this is a public user membership.
membership_id: t.Optional[
int
] = None # Membership ID as they user is known in the Accounts service
membership_type: t.Optional[
"BungieMembershipType"
] = None # Type of the membership. Not necessarily the native type.
supplemental_display_name: t.Optional[
str
] = None # A platform specific additional display name - ex: psn Real Name, bnet Unique Name, etc.
[docs] def to_json(self) -> t.Mapping[str, t.Any]:
return {
"FireteamDisplayName": to_json(self.fireteam_display_name),
"FireteamMembershipType": to_json(self.fireteam_membership_type),
"supplementalDisplayName": to_json(self.supplemental_display_name),
"iconPath": to_json(self.icon_path),
"crossSaveOverride": to_json(self.cross_save_override),
"applicableMembershipTypes": to_json(self.applicable_membership_types),
"isPublic": to_json(self.is_public),
"membershipType": to_json(self.membership_type),
"membershipId": to_json(self.membership_id),
"displayName": to_json(self.display_name),
"bungieGlobalDisplayName": to_json(self.bungie_global_display_name),
"bungieGlobalDisplayNameCode": to_json(
self.bungie_global_display_name_code
),
}
from bungieapi.generated.components.schemas import BungieMembershipType # noqa: E402
# imported at the end to do not case circular imports for type annotations
from bungieapi.generated.components.schemas.user import UserInfoCard # noqa: E402