Source code for bungieapi.generated.clients.group_v2

# generated by update to not change manually
import typing as t

from bungieapi.base import BaseClient
from bungieapi.forge import forge
from bungieapi.generated.components.responses import (
    CEListOfGroupOptionalConversationClientResponse,
    DictionaryOfint32AndstringClientResponse,
    ListOfEntityActionResultClientResponse,
    ListOfGroupThemeClientResponse,
    ListOfGroupV2CardClientResponse,
    SearchResultOfGroupBanClientResponse,
    SearchResultOfGroupMemberApplicationClientResponse,
    SearchResultOfGroupMemberClientResponse,
    booleanClientResponse,
    int32ClientResponse,
    int64ClientResponse,
)
from bungieapi.generated.components.responses.groups_v2 import (
    GetGroupsForMemberClientResponse,
    GroupApplicationClientResponse,
    GroupClientResponse,
    GroupMemberLeaveResultClientResponse,
    GroupMembershipSearchClientResponse,
    GroupPotentialMembershipSearchClientResponse,
    GroupSearchClientResponse,
)
from bungieapi.generated.components.schemas import BungieMembershipType
from bungieapi.generated.components.schemas.groups_v2 import (
    ClanBanner,
    GroupApplicationListRequest,
    GroupApplicationRequest,
    GroupBanRequest,
    GroupDateRange,
    GroupEditAction,
    GroupNameSearchRequest,
    GroupOptionalConversationAddRequest,
    GroupOptionalConversationEditRequest,
    GroupOptionsEditAction,
    GroupPotentialMemberStatus,
    GroupQuery,
    GroupsForMemberFilter,
    GroupType,
    RuntimeGroupMemberType,
)


[docs]class Client(BaseClient):
[docs] async def get_available_avatars( self, ) -> DictionaryOfint32AndstringClientResponse: """Returns a list of all available group avatars for the signed-in user.""" query = None result = await self.get( path="/GroupV2/GetAvailableAvatars/", query=query, ) return forge(DictionaryOfint32AndstringClientResponse, result)
[docs] async def get_available_themes( self, ) -> ListOfGroupThemeClientResponse: """Returns a list of all available group themes.""" query = None result = await self.get( path="/GroupV2/GetAvailableThemes/", query=query, ) return forge(ListOfGroupThemeClientResponse, result)
[docs] async def get_user_clan_invite_setting( self, m_type: t.Optional["BungieMembershipType"] = None, ) -> booleanClientResponse: """Gets the state of the user's clan invite preferences for a particular membership type - true if they wish to be invited to clans, false otherwise. Parameters: m_type: The Destiny membership type of the account we wish to access settings.""" query = None result = await self.get( path=f"/GroupV2/GetUserClanInviteSetting/{m_type}/", query=query, ) return forge(booleanClientResponse, result)
[docs] async def get_group( self, group_id: t.Optional[int] = None, ) -> GroupClientResponse: """Get information about a specific group of the given ID. Parameters: group_id: Requested group's id. """ query = None result = await self.get( path=f"/GroupV2/{group_id}/", query=query, ) return forge(GroupClientResponse, result)
[docs] async def get_group_by_name( self, group_name: t.Optional[str] = None, group_type: t.Optional["GroupType"] = None, ) -> GroupClientResponse: """Get information about a specific group with the given name and type. Parameters: group_name: Exact name of the group to find. group_type: Type of group to find. """ query = None result = await self.get( path=f"/GroupV2/Name/{group_name}/{group_type}/", query=query, ) return forge(GroupClientResponse, result)
[docs] async def get_group_by_name_v2( self, request: t.Optional["GroupNameSearchRequest"], ) -> GroupClientResponse: """Get information about a specific group with the given name and type. The POST version. """ query = None result = await self.post(path="/GroupV2/NameV2/", query=query, request=request) return forge(GroupClientResponse, result)
[docs] async def get_group_optional_conversations( self, group_id: t.Optional[int] = None, ) -> CEListOfGroupOptionalConversationClientResponse: """Gets a list of available optional conversation channels and their settings. Parameters: group_id: Requested group's id. """ query = None result = await self.get( path=f"/GroupV2/{group_id}/OptionalConversations/", query=query, ) return forge(CEListOfGroupOptionalConversationClientResponse, result)
[docs] async def edit_group( self, request: t.Optional["GroupEditAction"], group_id: t.Optional[int] = None, ) -> int32ClientResponse: """Edit an existing group. You must have suitable permissions in the group to perform this operation. This latest revision will only edit the fields you pass in - pass null for properties you want to leave unaltered. Parameters: group_id: Group ID of the group to edit. """ query = None result = await self.post( path=f"/GroupV2/{group_id}/Edit/", query=query, request=request ) return forge(int32ClientResponse, result)
[docs] async def edit_clan_banner( self, request: t.Optional["ClanBanner"], group_id: t.Optional[int] = None, ) -> int32ClientResponse: """Edit an existing group's clan banner. You must have suitable permissions in the group to perform this operation. All fields are required. Parameters: group_id: Group ID of the group to edit. """ query = None result = await self.post( path=f"/GroupV2/{group_id}/EditClanBanner/", query=query, request=request ) return forge(int32ClientResponse, result)
[docs] async def edit_founder_options( self, request: t.Optional["GroupOptionsEditAction"], group_id: t.Optional[int] = None, ) -> int32ClientResponse: """Edit group options only available to a founder. You must have suitable permissions in the group to perform this operation. Parameters: group_id: Group ID of the group to edit. """ query = None result = await self.post( path=f"/GroupV2/{group_id}/EditFounderOptions/", query=query, request=request, ) return forge(int32ClientResponse, result)
[docs] async def add_optional_conversation( self, request: t.Optional["GroupOptionalConversationAddRequest"], group_id: t.Optional[int] = None, ) -> int64ClientResponse: """Add a new optional conversation/chat channel. Requires admin permissions to the group. Parameters: group_id: Group ID of the group to edit. """ query = None result = await self.post( path=f"/GroupV2/{group_id}/OptionalConversations/Add/", query=query, request=request, ) return forge(int64ClientResponse, result)
[docs] async def edit_optional_conversation( self, request: t.Optional["GroupOptionalConversationEditRequest"], conversation_id: t.Optional[int] = None, group_id: t.Optional[int] = None, ) -> int64ClientResponse: """Edit the settings of an optional conversation/chat channel. Requires admin permissions to the group. Parameters: conversation_id: Conversation Id of the channel being edited. group_id: Group ID of the group to edit. """ query = None result = await self.post( path=f"/GroupV2/{group_id}/OptionalConversations/Edit/{conversation_id}/", query=query, request=request, ) return forge(int64ClientResponse, result)
[docs] async def get_members_of_group( self, currentpage: t.Optional[int] = None, group_id: t.Optional[int] = None, member_type: t.Optional["RuntimeGroupMemberType"] = None, name_search: t.Optional[str] = None, ) -> SearchResultOfGroupMemberClientResponse: """Get the list of members in a given group. Parameters: currentpage: Page number (starting with 1). Each page has a fixed size of 50 items per page. group_id: The ID of the group. member_type: Filter out other member types. Use None for all members. name_search: The name fragment upon which a search should be executed for members with matching display or unique names. """ query = {"memberType": member_type, "nameSearch": name_search} result = await self.get( path=f"/GroupV2/{group_id}/Members/", query=query, ) return forge(SearchResultOfGroupMemberClientResponse, result)
[docs] async def get_admins_and_founder_of_group( self, currentpage: t.Optional[int] = None, group_id: t.Optional[int] = None, ) -> SearchResultOfGroupMemberClientResponse: """Get the list of members in a given group who are of admin level or higher. Parameters: currentpage: Page number (starting with 1). Each page has a fixed size of 50 items per page. group_id: The ID of the group. """ query = None result = await self.get( path=f"/GroupV2/{group_id}/AdminsAndFounder/", query=query, ) return forge(SearchResultOfGroupMemberClientResponse, result)
[docs] async def edit_group_membership( self, group_id: t.Optional[int] = None, membership_id: t.Optional[int] = None, membership_type: t.Optional["BungieMembershipType"] = None, member_type: t.Optional["RuntimeGroupMemberType"] = None, ) -> int32ClientResponse: """Edit the membership type of a given member. You must have suitable permissions in the group to perform this operation. Parameters: group_id: ID of the group to which the member belongs. membership_id: Membership ID to modify. membership_type: Membership type of the provide membership ID. member_type: New membertype for the specified member. """ query = None result = await self.post( path=f"/GroupV2/{group_id}/Members/{membership_type}/{membership_id}/SetMembershipType/{member_type}/", query=query, ) return forge(int32ClientResponse, result)
[docs] async def kick_member( self, group_id: t.Optional[int] = None, membership_id: t.Optional[int] = None, membership_type: t.Optional["BungieMembershipType"] = None, ) -> GroupMemberLeaveResultClientResponse: """Kick a member from the given group, forcing them to reapply if they wish to re-join the group. You must have suitable permissions in the group to perform this operation. Parameters: group_id: Group ID to kick the user from. membership_id: Membership ID to kick. membership_type: Membership type of the provided membership ID. """ query = None result = await self.post( path=f"/GroupV2/{group_id}/Members/{membership_type}/{membership_id}/Kick/", query=query, ) return forge(GroupMemberLeaveResultClientResponse, result)
[docs] async def ban_member( self, request: t.Optional["GroupBanRequest"], group_id: t.Optional[int] = None, membership_id: t.Optional[int] = None, membership_type: t.Optional["BungieMembershipType"] = None, ) -> int32ClientResponse: """Bans the requested member from the requested group for the specified period of time. Parameters: group_id: Group ID that has the member to ban. membership_id: Membership ID of the member to ban from the group. membership_type: Membership type of the provided membership ID. """ query = None result = await self.post( path=f"/GroupV2/{group_id}/Members/{membership_type}/{membership_id}/Ban/", query=query, request=request, ) return forge(int32ClientResponse, result)
[docs] async def unban_member( self, group_id: t.Optional[int] = None, membership_id: t.Optional[int] = None, membership_type: t.Optional["BungieMembershipType"] = None, ) -> int32ClientResponse: """Unbans the requested member, allowing them to re-apply for membership. Parameters: membership_id: Membership ID of the member to unban from the group membership_type: Membership type of the provided membership ID. """ query = None result = await self.post( path=f"/GroupV2/{group_id}/Members/{membership_type}/{membership_id}/Unban/", query=query, ) return forge(int32ClientResponse, result)
[docs] async def get_banned_members_of_group( self, currentpage: t.Optional[int] = None, group_id: t.Optional[int] = None, ) -> SearchResultOfGroupBanClientResponse: """Get the list of banned members in a given group. Only accessible to group Admins and above. Not applicable to all groups. Check group features. Parameters: currentpage: Page number (starting with 1). Each page has a fixed size of 50 entries. group_id: Group ID whose banned members you are fetching """ query = None result = await self.get( path=f"/GroupV2/{group_id}/Banned/", query=query, ) return forge(SearchResultOfGroupBanClientResponse, result)
[docs] async def abdicate_foundership( self, founder_id_new: t.Optional[int] = None, group_id: t.Optional[int] = None, membership_type: t.Optional["BungieMembershipType"] = None, ) -> booleanClientResponse: """An administrative method to allow the founder of a group or clan to give up their position to another admin permanently. Parameters: founder_id_new: The new founder for this group. Must already be a group admin. group_id: The target group id. membership_type: Membership type of the provided founderIdNew. """ query = None result = await self.post( path=f"/GroupV2/{group_id}/Admin/AbdicateFoundership/{membership_type}/{founder_id_new}/", query=query, ) return forge(booleanClientResponse, result)
[docs] async def get_pending_memberships( self, currentpage: t.Optional[int] = None, group_id: t.Optional[int] = None, ) -> SearchResultOfGroupMemberApplicationClientResponse: """Get the list of users who are awaiting a decision on their application to join a given group. Modified to include application info. Parameters: currentpage: Page number (starting with 1). Each page has a fixed size of 50 items per page. group_id: ID of the group. """ query = None result = await self.get( path=f"/GroupV2/{group_id}/Members/Pending/", query=query, ) return forge(SearchResultOfGroupMemberApplicationClientResponse, result)
[docs] async def get_invited_individuals( self, currentpage: t.Optional[int] = None, group_id: t.Optional[int] = None, ) -> SearchResultOfGroupMemberApplicationClientResponse: """Get the list of users who have been invited into the group. Parameters: currentpage: Page number (starting with 1). Each page has a fixed size of 50 items per page. group_id: ID of the group. """ query = None result = await self.get( path=f"/GroupV2/{group_id}/Members/InvitedIndividuals/", query=query, ) return forge(SearchResultOfGroupMemberApplicationClientResponse, result)
[docs] async def approve_all_pending( self, request: t.Optional["GroupApplicationRequest"], group_id: t.Optional[int] = None, ) -> ListOfEntityActionResultClientResponse: """Approve all of the pending users for the given group. Parameters: group_id: ID of the group. """ query = None result = await self.post( path=f"/GroupV2/{group_id}/Members/ApproveAll/", query=query, request=request, ) return forge(ListOfEntityActionResultClientResponse, result)
[docs] async def deny_all_pending( self, request: t.Optional["GroupApplicationRequest"], group_id: t.Optional[int] = None, ) -> ListOfEntityActionResultClientResponse: """Deny all of the pending users for the given group. Parameters: group_id: ID of the group. """ query = None result = await self.post( path=f"/GroupV2/{group_id}/Members/DenyAll/", query=query, request=request ) return forge(ListOfEntityActionResultClientResponse, result)
[docs] async def approve_pending_for_list( self, request: t.Optional["GroupApplicationListRequest"], group_id: t.Optional[int] = None, ) -> ListOfEntityActionResultClientResponse: """Approve all of the pending users for the given group. Parameters: group_id: ID of the group. """ query = None result = await self.post( path=f"/GroupV2/{group_id}/Members/ApproveList/", query=query, request=request, ) return forge(ListOfEntityActionResultClientResponse, result)
[docs] async def approve_pending( self, request: t.Optional["GroupApplicationRequest"], group_id: t.Optional[int] = None, membership_id: t.Optional[int] = None, membership_type: t.Optional["BungieMembershipType"] = None, ) -> booleanClientResponse: """Approve the given membershipId to join the group/clan as long as they have applied. Parameters: group_id: ID of the group. membership_id: The membership id being approved. membership_type: Membership type of the supplied membership ID. """ query = None result = await self.post( path=f"/GroupV2/{group_id}/Members/Approve/{membership_type}/{membership_id}/", query=query, request=request, ) return forge(booleanClientResponse, result)
[docs] async def deny_pending_for_list( self, request: t.Optional["GroupApplicationListRequest"], group_id: t.Optional[int] = None, ) -> ListOfEntityActionResultClientResponse: """Deny all of the pending users for the given group that match the passed-in . Parameters: group_id: ID of the group. """ query = None result = await self.post( path=f"/GroupV2/{group_id}/Members/DenyList/", query=query, request=request ) return forge(ListOfEntityActionResultClientResponse, result)
[docs] async def get_groups_for_member( self, filter: t.Optional["GroupsForMemberFilter"] = None, group_type: t.Optional["GroupType"] = None, membership_id: t.Optional[int] = None, membership_type: t.Optional["BungieMembershipType"] = None, ) -> GetGroupsForMemberClientResponse: """Get information about the groups that a given member has joined. Parameters: filter: Filter apply to list of joined groups. group_type: Type of group the supplied member founded. membership_id: Membership ID to for which to find founded groups. membership_type: Membership type of the supplied membership ID. """ query = None result = await self.get( path=f"/GroupV2/User/{membership_type}/{membership_id}/{filter}/{group_type}/", query=query, ) return forge(GetGroupsForMemberClientResponse, result)
[docs] async def recover_group_for_founder( self, group_type: t.Optional["GroupType"] = None, membership_id: t.Optional[int] = None, membership_type: t.Optional["BungieMembershipType"] = None, ) -> GroupMembershipSearchClientResponse: """Allows a founder to manually recover a group they can see in game but not on bungie.net Parameters: group_type: Type of group the supplied member founded. membership_id: Membership ID to for which to find founded groups. membership_type: Membership type of the supplied membership ID.""" query = None result = await self.get( path=f"/GroupV2/Recover/{membership_type}/{membership_id}/{group_type}/", query=query, ) return forge(GroupMembershipSearchClientResponse, result)
[docs] async def get_potential_groups_for_member( self, filter: t.Optional["GroupPotentialMemberStatus"] = None, group_type: t.Optional["GroupType"] = None, membership_id: t.Optional[int] = None, membership_type: t.Optional["BungieMembershipType"] = None, ) -> GroupPotentialMembershipSearchClientResponse: """Get information about the groups that a given member has applied to or been invited to. Parameters: filter: Filter apply to list of potential joined groups. group_type: Type of group the supplied member applied. membership_id: Membership ID to for which to find applied groups. membership_type: Membership type of the supplied membership ID. """ query = None result = await self.get( path=f"/GroupV2/User/Potential/{membership_type}/{membership_id}/{filter}/{group_type}/", query=query, ) return forge(GroupPotentialMembershipSearchClientResponse, result)
[docs] async def individual_group_invite( self, request: t.Optional["GroupApplicationRequest"], group_id: t.Optional[int] = None, membership_id: t.Optional[int] = None, membership_type: t.Optional["BungieMembershipType"] = None, ) -> GroupApplicationClientResponse: """Invite a user to join this group. Parameters: group_id: ID of the group you would like to join. membership_id: Membership id of the account being invited. membership_type: MembershipType of the account being invited. """ query = None result = await self.post( path=f"/GroupV2/{group_id}/Members/IndividualInvite/{membership_type}/{membership_id}/", query=query, request=request, ) return forge(GroupApplicationClientResponse, result)
[docs] async def individual_group_invite_cancel( self, group_id: t.Optional[int] = None, membership_id: t.Optional[int] = None, membership_type: t.Optional["BungieMembershipType"] = None, ) -> GroupApplicationClientResponse: """Cancels a pending invitation to join a group. Parameters: group_id: ID of the group you would like to join. membership_id: Membership id of the account being cancelled. membership_type: MembershipType of the account being cancelled. """ query = None result = await self.post( path=f"/GroupV2/{group_id}/Members/IndividualInviteCancel/{membership_type}/{membership_id}/", query=query, ) return forge(GroupApplicationClientResponse, result)