Source code for bungieapi.generated.components.schemas.fireteam

# 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 FireteamPlatform(Enum): ANY = 0 PLAYSTATION4 = 1 XBOX_ONE = 2 BLIZZARD = 3 STEAM = 4 STADIA = 5
[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 ), }
[docs]class FireteamPlatformInviteResult(Enum): NONE = 0 SUCCESS = 1 ALREADY_IN_FIRETEAM = 2 THROTTLED = 3 SERVICE_ERROR = 4
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