bnet

package module
v0.0.0-...-7189259 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 20, 2024 License: MIT Imports: 11 Imported by: 0

README

Bungie.net bindings for Go

Documentation

Index

Constants

View Source
const (
	ApplicationScopes_ReadBasicUserProfile          = ApplicationScopes(1)
	ApplicationScopes_ReadGroups                    = ApplicationScopes(2)
	ApplicationScopes_WriteGroups                   = ApplicationScopes(4)
	ApplicationScopes_AdminGroups                   = ApplicationScopes(8)
	ApplicationScopes_BnetWrite                     = ApplicationScopes(16)
	ApplicationScopes_MoveEquipDestinyItems         = ApplicationScopes(32)
	ApplicationScopes_ReadDestinyInventoryAndVault  = ApplicationScopes(64)
	ApplicationScopes_ReadUserData                  = ApplicationScopes(128)
	ApplicationScopes_EditUserData                  = ApplicationScopes(256)
	ApplicationScopes_ReadDestinyVendorsAndAdvisors = ApplicationScopes(512)
	ApplicationScopes_ReadAndApplyTokens            = ApplicationScopes(1024)
	ApplicationScopes_AdvancedWriteActions          = ApplicationScopes(2048)
	ApplicationScopes_PartnerOfferGrant             = ApplicationScopes(4096)
	ApplicationScopes_DestinyUnlockValueQuery       = ApplicationScopes(8192)
	ApplicationScopes_UserPiiRead                   = ApplicationScopes(16384)
)
View Source
const (
	ApplicationStatus_None     = ApplicationStatus(0)
	ApplicationStatus_Private  = ApplicationStatus(1)
	ApplicationStatus_Public   = ApplicationStatus(2)
	ApplicationStatus_Disabled = ApplicationStatus(3)
	ApplicationStatus_Blocked  = ApplicationStatus(4)
)
View Source
const (
	DeveloperRole_None       = DeveloperRole(0)
	DeveloperRole_Owner      = DeveloperRole(1)
	DeveloperRole_TeamMember = DeveloperRole(2)
)
View Source
const (
	BungieCredentialType_None        = BungieCredentialType(0)
	BungieCredentialType_Xuid        = BungieCredentialType(1)
	BungieCredentialType_Psnid       = BungieCredentialType(2)
	BungieCredentialType_Wlid        = BungieCredentialType(3)
	BungieCredentialType_Fake        = BungieCredentialType(4)
	BungieCredentialType_Facebook    = BungieCredentialType(5)
	BungieCredentialType_Google      = BungieCredentialType(8)
	BungieCredentialType_Windows     = BungieCredentialType(9)
	BungieCredentialType_DemonId     = BungieCredentialType(10)
	BungieCredentialType_SteamId     = BungieCredentialType(12)
	BungieCredentialType_BattleNetId = BungieCredentialType(14)
	BungieCredentialType_StadiaId    = BungieCredentialType(16)
	BungieCredentialType_TwitchId    = BungieCredentialType(18)
	BungieCredentialType_EgsId       = BungieCredentialType(20)
)
View Source
const (
	BungieMembershipType_None          = BungieMembershipType(0)
	BungieMembershipType_TigerXbox     = BungieMembershipType(1)
	BungieMembershipType_TigerPsn      = BungieMembershipType(2)
	BungieMembershipType_TigerSteam    = BungieMembershipType(3)
	BungieMembershipType_TigerBlizzard = BungieMembershipType(4)
	BungieMembershipType_TigerStadia   = BungieMembershipType(5)
	BungieMembershipType_TigerEgs      = BungieMembershipType(6)
	BungieMembershipType_TigerDemon    = BungieMembershipType(10)
	BungieMembershipType_BungieNext    = BungieMembershipType(254)
	BungieMembershipType_All           = BungieMembershipType(-1)
)
View Source
const (
	ComponentPrivacySetting_None    = ComponentPrivacySetting(0)
	ComponentPrivacySetting_Public  = ComponentPrivacySetting(1)
	ComponentPrivacySetting_Private = ComponentPrivacySetting(2)
)
View Source
const (
	ContentPropertyDataType_None               = ContentPropertyDataType(0)
	ContentPropertyDataType_Plaintext          = ContentPropertyDataType(1)
	ContentPropertyDataType_Html               = ContentPropertyDataType(2)
	ContentPropertyDataType_Dropdown           = ContentPropertyDataType(3)
	ContentPropertyDataType_List               = ContentPropertyDataType(4)
	ContentPropertyDataType_Json               = ContentPropertyDataType(5)
	ContentPropertyDataType_Content            = ContentPropertyDataType(6)
	ContentPropertyDataType_Representation     = ContentPropertyDataType(7)
	ContentPropertyDataType_Set                = ContentPropertyDataType(8)
	ContentPropertyDataType_File               = ContentPropertyDataType(9)
	ContentPropertyDataType_FolderSet          = ContentPropertyDataType(10)
	ContentPropertyDataType_Date               = ContentPropertyDataType(11)
	ContentPropertyDataType_MultilinePlaintext = ContentPropertyDataType(12)
	ContentPropertyDataType_DestinyContent     = ContentPropertyDataType(13)
	ContentPropertyDataType_Color              = ContentPropertyDataType(14)
)
View Source
const (
	ActivityGraphNodeHighlightType_None       = ActivityGraphNodeHighlightType(0)
	ActivityGraphNodeHighlightType_Normal     = ActivityGraphNodeHighlightType(1)
	ActivityGraphNodeHighlightType_Hyper      = ActivityGraphNodeHighlightType(2)
	ActivityGraphNodeHighlightType_Comet      = ActivityGraphNodeHighlightType(3)
	ActivityGraphNodeHighlightType_RiseOfIron = ActivityGraphNodeHighlightType(4)
)
View Source
const (
	AwaResponseReason_None     = AwaResponseReason(0)
	AwaResponseReason_Answered = AwaResponseReason(1)
	AwaResponseReason_TimedOut = AwaResponseReason(2)
	AwaResponseReason_Replaced = AwaResponseReason(3)
)
View Source
const (
	AwaType_None        = AwaType(0)
	AwaType_InsertPlugs = AwaType(1)
)
View Source
const (
	AwaUserSelection_None     = AwaUserSelection(0)
	AwaUserSelection_Rejected = AwaUserSelection(1)
	AwaUserSelection_Approved = AwaUserSelection(2)
)
View Source
const (
	BucketCategory_Invisible  = BucketCategory(0)
	BucketCategory_Item       = BucketCategory(1)
	BucketCategory_Currency   = BucketCategory(2)
	BucketCategory_Equippable = BucketCategory(3)
	BucketCategory_Ignored    = BucketCategory(4)
)
View Source
const (
	BucketScope_Character = BucketScope(0)
	BucketScope_Account   = BucketScope(1)
)
View Source
const (
	DamageType_None    = DamageType(0)
	DamageType_Kinetic = DamageType(1)
	DamageType_Arc     = DamageType(2)
	DamageType_Thermal = DamageType(3)
	DamageType_Void    = DamageType(4)
	DamageType_Raid    = DamageType(5)
	DamageType_Stasis  = DamageType(6)
	DamageType_Strand  = DamageType(7)
)
View Source
const (
	RewardSourceCategory_None      = RewardSourceCategory(0)
	RewardSourceCategory_Activity  = RewardSourceCategory(1)
	RewardSourceCategory_Vendor    = RewardSourceCategory(2)
	RewardSourceCategory_Aggregate = RewardSourceCategory(3)
)
View Source
const (
	TalentNodeStepDamageTypes_None    = TalentNodeStepDamageTypes(0)
	TalentNodeStepDamageTypes_Kinetic = TalentNodeStepDamageTypes(1)
	TalentNodeStepDamageTypes_Arc     = TalentNodeStepDamageTypes(2)
	TalentNodeStepDamageTypes_Solar   = TalentNodeStepDamageTypes(4)
	TalentNodeStepDamageTypes_Void    = TalentNodeStepDamageTypes(8)
	TalentNodeStepDamageTypes_All     = TalentNodeStepDamageTypes(15)
)
View Source
const (
	TalentNodeStepGuardianAttributes_None         = TalentNodeStepGuardianAttributes(0)
	TalentNodeStepGuardianAttributes_Stats        = TalentNodeStepGuardianAttributes(1)
	TalentNodeStepGuardianAttributes_Shields      = TalentNodeStepGuardianAttributes(2)
	TalentNodeStepGuardianAttributes_Health       = TalentNodeStepGuardianAttributes(4)
	TalentNodeStepGuardianAttributes_Revive       = TalentNodeStepGuardianAttributes(8)
	TalentNodeStepGuardianAttributes_AimUnderFire = TalentNodeStepGuardianAttributes(16)
	TalentNodeStepGuardianAttributes_Radar        = TalentNodeStepGuardianAttributes(32)
	TalentNodeStepGuardianAttributes_Invisibility = TalentNodeStepGuardianAttributes(64)
	TalentNodeStepGuardianAttributes_Reputations  = TalentNodeStepGuardianAttributes(128)
	TalentNodeStepGuardianAttributes_All          = TalentNodeStepGuardianAttributes(255)
)
View Source
const (
	TalentNodeStepImpactEffects_None             = TalentNodeStepImpactEffects(0)
	TalentNodeStepImpactEffects_ArmorPiercing    = TalentNodeStepImpactEffects(1)
	TalentNodeStepImpactEffects_Ricochet         = TalentNodeStepImpactEffects(2)
	TalentNodeStepImpactEffects_Flinch           = TalentNodeStepImpactEffects(4)
	TalentNodeStepImpactEffects_CollateralDamage = TalentNodeStepImpactEffects(8)
	TalentNodeStepImpactEffects_Disorient        = TalentNodeStepImpactEffects(16)
	TalentNodeStepImpactEffects_HighlightTarget  = TalentNodeStepImpactEffects(32)
	TalentNodeStepImpactEffects_All              = TalentNodeStepImpactEffects(63)
)
View Source
const (
	TalentNodeStepLightAbilities_None          = TalentNodeStepLightAbilities(0)
	TalentNodeStepLightAbilities_Grenades      = TalentNodeStepLightAbilities(1)
	TalentNodeStepLightAbilities_Melee         = TalentNodeStepLightAbilities(2)
	TalentNodeStepLightAbilities_MovementModes = TalentNodeStepLightAbilities(4)
	TalentNodeStepLightAbilities_Orbs          = TalentNodeStepLightAbilities(8)
	TalentNodeStepLightAbilities_SuperEnergy   = TalentNodeStepLightAbilities(16)
	TalentNodeStepLightAbilities_SuperMods     = TalentNodeStepLightAbilities(32)
	TalentNodeStepLightAbilities_All           = TalentNodeStepLightAbilities(63)
)
View Source
const (
	TalentNodeStepWeaponPerformances_None                  = TalentNodeStepWeaponPerformances(0)
	TalentNodeStepWeaponPerformances_RateOfFire            = TalentNodeStepWeaponPerformances(1)
	TalentNodeStepWeaponPerformances_Damage                = TalentNodeStepWeaponPerformances(2)
	TalentNodeStepWeaponPerformances_Accuracy              = TalentNodeStepWeaponPerformances(4)
	TalentNodeStepWeaponPerformances_Range                 = TalentNodeStepWeaponPerformances(8)
	TalentNodeStepWeaponPerformances_Zoom                  = TalentNodeStepWeaponPerformances(16)
	TalentNodeStepWeaponPerformances_Recoil                = TalentNodeStepWeaponPerformances(32)
	TalentNodeStepWeaponPerformances_Ready                 = TalentNodeStepWeaponPerformances(64)
	TalentNodeStepWeaponPerformances_Reload                = TalentNodeStepWeaponPerformances(128)
	TalentNodeStepWeaponPerformances_HairTrigger           = TalentNodeStepWeaponPerformances(256)
	TalentNodeStepWeaponPerformances_AmmoAndMagazine       = TalentNodeStepWeaponPerformances(512)
	TalentNodeStepWeaponPerformances_TrackingAndDetonation = TalentNodeStepWeaponPerformances(1024)
	TalentNodeStepWeaponPerformances_ShotgunSpread         = TalentNodeStepWeaponPerformances(2048)
	TalentNodeStepWeaponPerformances_ChargeTime            = TalentNodeStepWeaponPerformances(4096)
	TalentNodeStepWeaponPerformances_All                   = TalentNodeStepWeaponPerformances(8191)
)
View Source
const (
	MilestoneDisplayPreference_MilestoneDefinition       = MilestoneDisplayPreference(0)
	MilestoneDisplayPreference_CurrentQuestSteps         = MilestoneDisplayPreference(1)
	MilestoneDisplayPreference_CurrentActivityChallenges = MilestoneDisplayPreference(2)
)
View Source
const (
	MilestoneType_Unknown  = MilestoneType(0)
	MilestoneType_Tutorial = MilestoneType(1)
	MilestoneType_OneTime  = MilestoneType(2)
	MilestoneType_Weekly   = MilestoneType(3)
	MilestoneType_Daily    = MilestoneType(4)
	MilestoneType_Special  = MilestoneType(5)
)
View Source
const (
	ActivityDifficultyTier_Trivial          = ActivityDifficultyTier(0)
	ActivityDifficultyTier_Easy             = ActivityDifficultyTier(1)
	ActivityDifficultyTier_Normal           = ActivityDifficultyTier(2)
	ActivityDifficultyTier_Challenging      = ActivityDifficultyTier(3)
	ActivityDifficultyTier_Hard             = ActivityDifficultyTier(4)
	ActivityDifficultyTier_Brave            = ActivityDifficultyTier(5)
	ActivityDifficultyTier_AlmostImpossible = ActivityDifficultyTier(6)
	ActivityDifficultyTier_Impossible       = ActivityDifficultyTier(7)
)
View Source
const (
	ActivityModeCategory_None           = ActivityModeCategory(0)
	ActivityModeCategory_PvE            = ActivityModeCategory(1)
	ActivityModeCategory_PvP            = ActivityModeCategory(2)
	ActivityModeCategory_PvECompetitive = ActivityModeCategory(3)
)
View Source
const (
	ActivityNavPointType_Inactive             = ActivityNavPointType(0)
	ActivityNavPointType_PrimaryObjective     = ActivityNavPointType(1)
	ActivityNavPointType_SecondaryObjective   = ActivityNavPointType(2)
	ActivityNavPointType_TravelObjective      = ActivityNavPointType(3)
	ActivityNavPointType_PublicEventObjective = ActivityNavPointType(4)
	ActivityNavPointType_AmmoCache            = ActivityNavPointType(5)
	ActivityNavPointType_PointTypeFlag        = ActivityNavPointType(6)
	ActivityNavPointType_CapturePoint         = ActivityNavPointType(7)
	ActivityNavPointType_DefensiveEncounter   = ActivityNavPointType(8)
	ActivityNavPointType_GhostInteraction     = ActivityNavPointType(9)
	ActivityNavPointType_KillAi               = ActivityNavPointType(10)
	ActivityNavPointType_QuestItem            = ActivityNavPointType(11)
	ActivityNavPointType_PatrolMission        = ActivityNavPointType(12)
	ActivityNavPointType_Incoming             = ActivityNavPointType(13)
	ActivityNavPointType_ArenaObjective       = ActivityNavPointType(14)
	ActivityNavPointType_AutomationHint       = ActivityNavPointType(15)
	ActivityNavPointType_TrackedQuest         = ActivityNavPointType(16)
)
View Source
const (
	AmmunitionType_None    = AmmunitionType(0)
	AmmunitionType_Primary = AmmunitionType(1)
	AmmunitionType_Special = AmmunitionType(2)
	AmmunitionType_Heavy   = AmmunitionType(3)
	AmmunitionType_Unknown = AmmunitionType(4)
)
View Source
const (
	BreakerType_None           = BreakerType(0)
	BreakerType_ShieldPiercing = BreakerType(1)
	BreakerType_Disruption     = BreakerType(2)
	BreakerType_Stagger        = BreakerType(3)
)
View Source
const (
	Class_Titan   = Class(0)
	Class_Hunter  = Class(1)
	Class_Warlock = Class(2)
	Class_Unknown = Class(3)
)
View Source
const (
	CollectibleState_None                             = CollectibleState(0)
	CollectibleState_NotAcquired                      = CollectibleState(1)
	CollectibleState_Obscured                         = CollectibleState(2)
	CollectibleState_Invisible                        = CollectibleState(4)
	CollectibleState_CannotAffordMaterialRequirements = CollectibleState(8)
	CollectibleState_InventorySpaceUnavailable        = CollectibleState(16)
	CollectibleState_UniquenessViolation              = CollectibleState(32)
	CollectibleState_PurchaseDisabled                 = CollectibleState(64)
)
View Source
const (
	ComponentType_None                  = ComponentType(0)
	ComponentType_Profiles              = ComponentType(100)
	ComponentType_VendorReceipts        = ComponentType(101)
	ComponentType_ProfileInventories    = ComponentType(102)
	ComponentType_ProfileCurrencies     = ComponentType(103)
	ComponentType_ProfileProgression    = ComponentType(104)
	ComponentType_PlatformSilver        = ComponentType(105)
	ComponentType_Characters            = ComponentType(200)
	ComponentType_CharacterInventories  = ComponentType(201)
	ComponentType_CharacterProgressions = ComponentType(202)
	ComponentType_CharacterRenderData   = ComponentType(203)
	ComponentType_CharacterActivities   = ComponentType(204)
	ComponentType_CharacterEquipment    = ComponentType(205)
	ComponentType_CharacterLoadouts     = ComponentType(206)
	ComponentType_ItemInstances         = ComponentType(300)
	ComponentType_ItemObjectives        = ComponentType(301)
	ComponentType_ItemPerks             = ComponentType(302)
	ComponentType_ItemRenderData        = ComponentType(303)
	ComponentType_ItemStats             = ComponentType(304)
	ComponentType_ItemSockets           = ComponentType(305)
	ComponentType_ItemTalentGrids       = ComponentType(306)
	ComponentType_ItemCommonData        = ComponentType(307)
	ComponentType_ItemPlugStates        = ComponentType(308)
	ComponentType_ItemPlugObjectives    = ComponentType(309)
	ComponentType_ItemReusablePlugs     = ComponentType(310)
	ComponentType_Vendors               = ComponentType(400)
	ComponentType_VendorCategories      = ComponentType(401)
	ComponentType_VendorSales           = ComponentType(402)
	ComponentType_Kiosks                = ComponentType(500)
	ComponentType_CurrencyLookups       = ComponentType(600)
	ComponentType_PresentationNodes     = ComponentType(700)
	ComponentType_Collectibles          = ComponentType(800)
	ComponentType_Records               = ComponentType(900)
	ComponentType_Transitory            = ComponentType(1000)
	ComponentType_Metrics               = ComponentType(1100)
	ComponentType_StringVariables       = ComponentType(1200)
	ComponentType_Craftables            = ComponentType(1300)
	ComponentType_SocialCommendations   = ComponentType(1400)
)
View Source
const (
	EnergyType_Any      = EnergyType(0)
	EnergyType_Arc      = EnergyType(1)
	EnergyType_Thermal  = EnergyType(2)
	EnergyType_Void     = EnergyType(3)
	EnergyType_Ghost    = EnergyType(4)
	EnergyType_Subclass = EnergyType(5)
	EnergyType_Stasis   = EnergyType(6)
)
View Source
const (
	GamePrivacySetting_Open               = GamePrivacySetting(0)
	GamePrivacySetting_ClanAndFriendsOnly = GamePrivacySetting(1)
	GamePrivacySetting_FriendsOnly        = GamePrivacySetting(2)
	GamePrivacySetting_InvitationOnly     = GamePrivacySetting(3)
	GamePrivacySetting_Closed             = GamePrivacySetting(4)
)
View Source
const (
	GameVersions_None              = GameVersions(0)
	GameVersions_Destiny2          = GameVersions(1)
	GameVersions_DLC1              = GameVersions(2)
	GameVersions_DLC2              = GameVersions(4)
	GameVersions_Forsaken          = GameVersions(8)
	GameVersions_YearTwoAnnualPass = GameVersions(16)
	GameVersions_Shadowkeep        = GameVersions(32)
	GameVersions_BeyondLight       = GameVersions(64)
	GameVersions_Anniversary30th   = GameVersions(128)
	GameVersions_TheWitchQueen     = GameVersions(256)
	GameVersions_Lightfall         = GameVersions(512)
)
View Source
const (
	GatingScope_None             = GatingScope(0)
	GatingScope_Global           = GatingScope(1)
	GatingScope_Clan             = GatingScope(2)
	GatingScope_Profile          = GatingScope(3)
	GatingScope_Character        = GatingScope(4)
	GatingScope_Item             = GatingScope(5)
	GatingScope_AssumedWorstCase = GatingScope(6)
)
View Source
const (
	Gender_Male    = Gender(0)
	Gender_Female  = Gender(1)
	Gender_Unknown = Gender(2)
)
View Source
const (
	GraphNodeState_Hidden     = GraphNodeState(0)
	GraphNodeState_Visible    = GraphNodeState(1)
	GraphNodeState_Teaser     = GraphNodeState(2)
	GraphNodeState_Incomplete = GraphNodeState(3)
	GraphNodeState_Completed  = GraphNodeState(4)
)
View Source
const (
	ItemSortType_ItemId    = ItemSortType(0)
	ItemSortType_Timestamp = ItemSortType(1)
	ItemSortType_StackSize = ItemSortType(2)
)
View Source
const (
	ItemSubType_None                  = ItemSubType(0)
	ItemSubType_Crucible              = ItemSubType(1)
	ItemSubType_Vanguard              = ItemSubType(2)
	ItemSubType_Exotic                = ItemSubType(5)
	ItemSubType_AutoRifle             = ItemSubType(6)
	ItemSubType_Shotgun               = ItemSubType(7)
	ItemSubType_Machinegun            = ItemSubType(8)
	ItemSubType_HandCannon            = ItemSubType(9)
	ItemSubType_RocketLauncher        = ItemSubType(10)
	ItemSubType_FusionRifle           = ItemSubType(11)
	ItemSubType_SniperRifle           = ItemSubType(12)
	ItemSubType_PulseRifle            = ItemSubType(13)
	ItemSubType_ScoutRifle            = ItemSubType(14)
	ItemSubType_Crm                   = ItemSubType(16)
	ItemSubType_Sidearm               = ItemSubType(17)
	ItemSubType_Sword                 = ItemSubType(18)
	ItemSubType_Mask                  = ItemSubType(19)
	ItemSubType_Shader                = ItemSubType(20)
	ItemSubType_Ornament              = ItemSubType(21)
	ItemSubType_FusionRifleLine       = ItemSubType(22)
	ItemSubType_GrenadeLauncher       = ItemSubType(23)
	ItemSubType_SubmachineGun         = ItemSubType(24)
	ItemSubType_TraceRifle            = ItemSubType(25)
	ItemSubType_HelmetArmor           = ItemSubType(26)
	ItemSubType_GauntletsArmor        = ItemSubType(27)
	ItemSubType_ChestArmor            = ItemSubType(28)
	ItemSubType_LegArmor              = ItemSubType(29)
	ItemSubType_ClassArmor            = ItemSubType(30)
	ItemSubType_Bow                   = ItemSubType(31)
	ItemSubType_DummyRepeatableBounty = ItemSubType(32)
	ItemSubType_Glaive                = ItemSubType(33)
)
View Source
const (
	ItemType_None              = ItemType(0)
	ItemType_Currency          = ItemType(1)
	ItemType_Armor             = ItemType(2)
	ItemType_Weapon            = ItemType(3)
	ItemType_Message           = ItemType(7)
	ItemType_Engram            = ItemType(8)
	ItemType_Consumable        = ItemType(9)
	ItemType_ExchangeMaterial  = ItemType(10)
	ItemType_MissionReward     = ItemType(11)
	ItemType_QuestStep         = ItemType(12)
	ItemType_QuestStepComplete = ItemType(13)
	ItemType_Emblem            = ItemType(14)
	ItemType_Quest             = ItemType(15)
	ItemType_Subclass          = ItemType(16)
	ItemType_ClanBanner        = ItemType(17)
	ItemType_Aura              = ItemType(18)
	ItemType_Mod               = ItemType(19)
	ItemType_Dummy             = ItemType(20)
	ItemType_Ship              = ItemType(21)
	ItemType_Vehicle           = ItemType(22)
	ItemType_Emote             = ItemType(23)
	ItemType_Ghost             = ItemType(24)
	ItemType_Package           = ItemType(25)
	ItemType_Bounty            = ItemType(26)
	ItemType_Wrapper           = ItemType(27)
	ItemType_SeasonalArtifact  = ItemType(28)
	ItemType_Finisher          = ItemType(29)
	ItemType_Pattern           = ItemType(30)
)
View Source
const (
	JoinClosedReasons_None                  = JoinClosedReasons(0)
	JoinClosedReasons_InMatchmaking         = JoinClosedReasons(1)
	JoinClosedReasons_Loading               = JoinClosedReasons(2)
	JoinClosedReasons_SoloMode              = JoinClosedReasons(4)
	JoinClosedReasons_InternalReasons       = JoinClosedReasons(8)
	JoinClosedReasons_DisallowedByGameState = JoinClosedReasons(16)
	JoinClosedReasons_Offline               = JoinClosedReasons(32768)
)
View Source
const (
	ObjectiveGrantStyle_WhenIncomplete = ObjectiveGrantStyle(0)
	ObjectiveGrantStyle_WhenComplete   = ObjectiveGrantStyle(1)
	ObjectiveGrantStyle_Always         = ObjectiveGrantStyle(2)
)
View Source
const (
	ObjectiveUiStyle_None                        = ObjectiveUiStyle(0)
	ObjectiveUiStyle_Highlighted                 = ObjectiveUiStyle(1)
	ObjectiveUiStyle_CraftingWeaponLevel         = ObjectiveUiStyle(2)
	ObjectiveUiStyle_CraftingWeaponLevelProgress = ObjectiveUiStyle(3)
	ObjectiveUiStyle_CraftingWeaponTimestamp     = ObjectiveUiStyle(4)
	ObjectiveUiStyle_CraftingMementos            = ObjectiveUiStyle(5)
	ObjectiveUiStyle_CraftingMementoTitle        = ObjectiveUiStyle(6)
)
View Source
const (
	PartyMemberStates_None           = PartyMemberStates(0)
	PartyMemberStates_FireteamMember = PartyMemberStates(1)
	PartyMemberStates_PosseMember    = PartyMemberStates(2)
	PartyMemberStates_GroupMember    = PartyMemberStates(4)
	PartyMemberStates_PartyLeader    = PartyMemberStates(8)
)
View Source
const (
	PresentationDisplayStyle_Category        = PresentationDisplayStyle(0)
	PresentationDisplayStyle_Badge           = PresentationDisplayStyle(1)
	PresentationDisplayStyle_Medals          = PresentationDisplayStyle(2)
	PresentationDisplayStyle_Collectible     = PresentationDisplayStyle(3)
	PresentationDisplayStyle_Record          = PresentationDisplayStyle(4)
	PresentationDisplayStyle_SeasonalTriumph = PresentationDisplayStyle(5)
	PresentationDisplayStyle_GuardianRank    = PresentationDisplayStyle(6)
)
View Source
const (
	PresentationNodeState_None      = PresentationNodeState(0)
	PresentationNodeState_Invisible = PresentationNodeState(1)
	PresentationNodeState_Obscured  = PresentationNodeState(2)
)
View Source
const (
	PresentationNodeType_Default      = PresentationNodeType(0)
	PresentationNodeType_Category     = PresentationNodeType(1)
	PresentationNodeType_Collectibles = PresentationNodeType(2)
	PresentationNodeType_Records      = PresentationNodeType(3)
	PresentationNodeType_Metric       = PresentationNodeType(4)
	PresentationNodeType_Craftable    = PresentationNodeType(5)
)
View Source
const (
	PresentationScreenStyle_Default      = PresentationScreenStyle(0)
	PresentationScreenStyle_CategorySets = PresentationScreenStyle(1)
	PresentationScreenStyle_Badge        = PresentationScreenStyle(2)
)
View Source
const (
	ProgressionRewardItemAcquisitionBehavior_Instant             = ProgressionRewardItemAcquisitionBehavior(0)
	ProgressionRewardItemAcquisitionBehavior_PlayerClaimRequired = ProgressionRewardItemAcquisitionBehavior(1)
)
View Source
const (
	ProgressionRewardItemState_None         = ProgressionRewardItemState(0)
	ProgressionRewardItemState_Invisible    = ProgressionRewardItemState(1)
	ProgressionRewardItemState_Earned       = ProgressionRewardItemState(2)
	ProgressionRewardItemState_Claimed      = ProgressionRewardItemState(4)
	ProgressionRewardItemState_ClaimAllowed = ProgressionRewardItemState(8)
)
View Source
const (
	ProgressionScope_Account               = ProgressionScope(0)
	ProgressionScope_Character             = ProgressionScope(1)
	ProgressionScope_Clan                  = ProgressionScope(2)
	ProgressionScope_Item                  = ProgressionScope(3)
	ProgressionScope_ImplicitFromEquipment = ProgressionScope(4)
	ProgressionScope_Mapped                = ProgressionScope(5)
	ProgressionScope_MappedAggregate       = ProgressionScope(6)
	ProgressionScope_MappedStat            = ProgressionScope(7)
	ProgressionScope_MappedUnlockValue     = ProgressionScope(8)
)
View Source
const (
	ProgressionStepDisplayEffect_None      = ProgressionStepDisplayEffect(0)
	ProgressionStepDisplayEffect_Character = ProgressionStepDisplayEffect(1)
	ProgressionStepDisplayEffect_Item      = ProgressionStepDisplayEffect(2)
)
View Source
const (
	Race_Human   = Race(0)
	Race_Awoken  = Race(1)
	Race_Exo     = Race(2)
	Race_Unknown = Race(3)
)
View Source
const (
	RecordState_None                  = RecordState(0)
	RecordState_RecordRedeemed        = RecordState(1)
	RecordState_RewardUnavailable     = RecordState(2)
	RecordState_ObjectiveNotCompleted = RecordState(4)
	RecordState_Obscured              = RecordState(8)
	RecordState_Invisible             = RecordState(16)
	RecordState_EntitlementUnowned    = RecordState(32)
	RecordState_CanEquipTitle         = RecordState(64)
)
View Source
const (
	RecordToastStyle_None                     = RecordToastStyle(0)
	RecordToastStyle_Record                   = RecordToastStyle(1)
	RecordToastStyle_Lore                     = RecordToastStyle(2)
	RecordToastStyle_Badge                    = RecordToastStyle(3)
	RecordToastStyle_MetaRecord               = RecordToastStyle(4)
	RecordToastStyle_MedalComplete            = RecordToastStyle(5)
	RecordToastStyle_SeasonChallengeComplete  = RecordToastStyle(6)
	RecordToastStyle_GildedTitleComplete      = RecordToastStyle(7)
	RecordToastStyle_CraftingRecipeUnlocked   = RecordToastStyle(8)
	RecordToastStyle_ToastGuardianRankDetails = RecordToastStyle(9)
)
View Source
const (
	RecordValueStyle_Integer      = RecordValueStyle(0)
	RecordValueStyle_Percentage   = RecordValueStyle(1)
	RecordValueStyle_Milliseconds = RecordValueStyle(2)
	RecordValueStyle_Boolean      = RecordValueStyle(3)
	RecordValueStyle_Decimal      = RecordValueStyle(4)
)
View Source
const (
	Scope_Profile   = Scope(0)
	Scope_Character = Scope(1)
)
View Source
const (
	SocketCategoryStyle_Unknown     = SocketCategoryStyle(0)
	SocketCategoryStyle_Reusable    = SocketCategoryStyle(1)
	SocketCategoryStyle_Consumable  = SocketCategoryStyle(2)
	SocketCategoryStyle_Unlockable  = SocketCategoryStyle(3)
	SocketCategoryStyle_Intrinsic   = SocketCategoryStyle(4)
	SocketCategoryStyle_EnergyMeter = SocketCategoryStyle(5)
	SocketCategoryStyle_LargePerk   = SocketCategoryStyle(6)
	SocketCategoryStyle_Abilities   = SocketCategoryStyle(7)
	SocketCategoryStyle_Supers      = SocketCategoryStyle(8)
)
View Source
const (
	SocketVisibility_Visible                  = SocketVisibility(0)
	SocketVisibility_Hidden                   = SocketVisibility(1)
	SocketVisibility_HiddenWhenEmpty          = SocketVisibility(2)
	SocketVisibility_HiddenIfNoPlugsAvailable = SocketVisibility(3)
)
View Source
const (
	StatAggregationType_CharacterAverage = StatAggregationType(0)
	StatAggregationType_Character        = StatAggregationType(1)
	StatAggregationType_Item             = StatAggregationType(2)
)
View Source
const (
	StatCategory_Gameplay = StatCategory(0)
	StatCategory_Weapon   = StatCategory(1)
	StatCategory_Defense  = StatCategory(2)
	StatCategory_Primary  = StatCategory(3)
)
View Source
const (
	TalentNodeState_Invalid         = TalentNodeState(0)
	TalentNodeState_CanUpgrade      = TalentNodeState(1)
	TalentNodeState_NoPoints        = TalentNodeState(2)
	TalentNodeState_NoPrerequisites = TalentNodeState(3)
	TalentNodeState_NoSteps         = TalentNodeState(4)
	TalentNodeState_NoUnlock        = TalentNodeState(5)
	TalentNodeState_NoMaterial      = TalentNodeState(6)
	TalentNodeState_NoGridLevel     = TalentNodeState(7)
	TalentNodeState_SwappingLocked  = TalentNodeState(8)
	TalentNodeState_MustSwap        = TalentNodeState(9)
	TalentNodeState_Complete        = TalentNodeState(10)
	TalentNodeState_Unknown         = TalentNodeState(11)
	TalentNodeState_CreationOnly    = TalentNodeState(12)
	TalentNodeState_Hidden          = TalentNodeState(13)
)
View Source
const (
	UnlockValueUIStyle_Automatic          = UnlockValueUIStyle(0)
	UnlockValueUIStyle_Fraction           = UnlockValueUIStyle(1)
	UnlockValueUIStyle_Checkbox           = UnlockValueUIStyle(2)
	UnlockValueUIStyle_Percentage         = UnlockValueUIStyle(3)
	UnlockValueUIStyle_DateTime           = UnlockValueUIStyle(4)
	UnlockValueUIStyle_FractionFloat      = UnlockValueUIStyle(5)
	UnlockValueUIStyle_Integer            = UnlockValueUIStyle(6)
	UnlockValueUIStyle_TimeDuration       = UnlockValueUIStyle(7)
	UnlockValueUIStyle_Hidden             = UnlockValueUIStyle(8)
	UnlockValueUIStyle_Multiplier         = UnlockValueUIStyle(9)
	UnlockValueUIStyle_GreenPips          = UnlockValueUIStyle(10)
	UnlockValueUIStyle_RedPips            = UnlockValueUIStyle(11)
	UnlockValueUIStyle_ExplicitPercentage = UnlockValueUIStyle(12)
	UnlockValueUIStyle_RawFloat           = UnlockValueUIStyle(13)
	UnlockValueUIStyle_LevelAndReward     = UnlockValueUIStyle(14)
)
View Source
const (
	VendorFilter_None           = VendorFilter(0)
	VendorFilter_ApiPurchasable = VendorFilter(1)
)
View Source
const (
	VendorInteractionRewardSelection_None = VendorInteractionRewardSelection(0)
	VendorInteractionRewardSelection_One  = VendorInteractionRewardSelection(1)
	VendorInteractionRewardSelection_All  = VendorInteractionRewardSelection(2)
)
View Source
const (
	VendorItemRefundPolicy_NotRefundable  = VendorItemRefundPolicy(0)
	VendorItemRefundPolicy_DeletesItem    = VendorItemRefundPolicy(1)
	VendorItemRefundPolicy_RevokesLicense = VendorItemRefundPolicy(2)
)
View Source
const (
	VendorItemState_None                     = VendorItemState(0)
	VendorItemState_Incomplete               = VendorItemState(1)
	VendorItemState_RewardAvailable          = VendorItemState(2)
	VendorItemState_Complete                 = VendorItemState(4)
	VendorItemState_New                      = VendorItemState(8)
	VendorItemState_Featured                 = VendorItemState(16)
	VendorItemState_Ending                   = VendorItemState(32)
	VendorItemState_OnSale                   = VendorItemState(64)
	VendorItemState_Owned                    = VendorItemState(128)
	VendorItemState_WideView                 = VendorItemState(256)
	VendorItemState_NexusAttention           = VendorItemState(512)
	VendorItemState_SetDiscount              = VendorItemState(1024)
	VendorItemState_PriceDrop                = VendorItemState(2048)
	VendorItemState_DailyOffer               = VendorItemState(4096)
	VendorItemState_Charity                  = VendorItemState(8192)
	VendorItemState_SeasonalRewardExpiration = VendorItemState(16384)
	VendorItemState_BestDeal                 = VendorItemState(32768)
	VendorItemState_Popular                  = VendorItemState(65536)
	VendorItemState_Free                     = VendorItemState(131072)
	VendorItemState_Locked                   = VendorItemState(262144)
	VendorItemState_Paracausal               = VendorItemState(524288)
	VendorItemState_Cryptarch                = VendorItemState(1048576)
)
View Source
const (
	VendorProgressionType_Default           = VendorProgressionType(0)
	VendorProgressionType_Ritual            = VendorProgressionType(1)
	VendorProgressionType_NoSeasonalRefresh = VendorProgressionType(2)
)
View Source
const (
	VendorReplyType_Accept   = VendorReplyType(0)
	VendorReplyType_Decline  = VendorReplyType(1)
	VendorReplyType_Complete = VendorReplyType(2)
)
View Source
const (
	EquipFailureReason_None                         = EquipFailureReason(0)
	EquipFailureReason_ItemUnequippable             = EquipFailureReason(1)
	EquipFailureReason_ItemUniqueEquipRestricted    = EquipFailureReason(2)
	EquipFailureReason_ItemFailedUnlockCheck        = EquipFailureReason(4)
	EquipFailureReason_ItemFailedLevelCheck         = EquipFailureReason(8)
	EquipFailureReason_ItemWrapped                  = EquipFailureReason(16)
	EquipFailureReason_ItemNotLoaded                = EquipFailureReason(32)
	EquipFailureReason_ItemEquipBlocklisted         = EquipFailureReason(64)
	EquipFailureReason_ItemLoadoutRequirementNotMet = EquipFailureReason(128)
)
View Source
const (
	EquippingItemBlockAttributes_None           = EquippingItemBlockAttributes(0)
	EquippingItemBlockAttributes_EquipOnAcquire = EquippingItemBlockAttributes(1)
)
View Source
const (
	ActivityModeType_None                    = ActivityModeType(0)
	ActivityModeType_Story                   = ActivityModeType(2)
	ActivityModeType_Strike                  = ActivityModeType(3)
	ActivityModeType_Raid                    = ActivityModeType(4)
	ActivityModeType_AllPvP                  = ActivityModeType(5)
	ActivityModeType_Patrol                  = ActivityModeType(6)
	ActivityModeType_AllPvE                  = ActivityModeType(7)
	ActivityModeType_Reserved9               = ActivityModeType(9)
	ActivityModeType_Control                 = ActivityModeType(10)
	ActivityModeType_Reserved11              = ActivityModeType(11)
	ActivityModeType_Clash                   = ActivityModeType(12)
	ActivityModeType_Reserved13              = ActivityModeType(13)
	ActivityModeType_CrimsonDoubles          = ActivityModeType(15)
	ActivityModeType_Nightfall               = ActivityModeType(16)
	ActivityModeType_HeroicNightfall         = ActivityModeType(17)
	ActivityModeType_AllStrikes              = ActivityModeType(18)
	ActivityModeType_IronBanner              = ActivityModeType(19)
	ActivityModeType_Reserved20              = ActivityModeType(20)
	ActivityModeType_Reserved21              = ActivityModeType(21)
	ActivityModeType_Reserved22              = ActivityModeType(22)
	ActivityModeType_Reserved24              = ActivityModeType(24)
	ActivityModeType_AllMayhem               = ActivityModeType(25)
	ActivityModeType_Reserved26              = ActivityModeType(26)
	ActivityModeType_Reserved27              = ActivityModeType(27)
	ActivityModeType_Reserved28              = ActivityModeType(28)
	ActivityModeType_Reserved29              = ActivityModeType(29)
	ActivityModeType_Reserved30              = ActivityModeType(30)
	ActivityModeType_Supremacy               = ActivityModeType(31)
	ActivityModeType_PrivateMatchesAll       = ActivityModeType(32)
	ActivityModeType_Survival                = ActivityModeType(37)
	ActivityModeType_Countdown               = ActivityModeType(38)
	ActivityModeType_TrialsOfTheNine         = ActivityModeType(39)
	ActivityModeType_Social                  = ActivityModeType(40)
	ActivityModeType_TrialsCountdown         = ActivityModeType(41)
	ActivityModeType_TrialsSurvival          = ActivityModeType(42)
	ActivityModeType_IronBannerControl       = ActivityModeType(43)
	ActivityModeType_IronBannerClash         = ActivityModeType(44)
	ActivityModeType_IronBannerSupremacy     = ActivityModeType(45)
	ActivityModeType_ScoredNightfall         = ActivityModeType(46)
	ActivityModeType_ScoredHeroicNightfall   = ActivityModeType(47)
	ActivityModeType_Rumble                  = ActivityModeType(48)
	ActivityModeType_AllDoubles              = ActivityModeType(49)
	ActivityModeType_Doubles                 = ActivityModeType(50)
	ActivityModeType_PrivateMatchesClash     = ActivityModeType(51)
	ActivityModeType_PrivateMatchesControl   = ActivityModeType(52)
	ActivityModeType_PrivateMatchesSupremacy = ActivityModeType(53)
	ActivityModeType_PrivateMatchesCountdown = ActivityModeType(54)
	ActivityModeType_PrivateMatchesSurvival  = ActivityModeType(55)
	ActivityModeType_PrivateMatchesMayhem    = ActivityModeType(56)
	ActivityModeType_PrivateMatchesRumble    = ActivityModeType(57)
	ActivityModeType_HeroicAdventure         = ActivityModeType(58)
	ActivityModeType_Showdown                = ActivityModeType(59)
	ActivityModeType_Lockdown                = ActivityModeType(60)
	ActivityModeType_Scorched                = ActivityModeType(61)
	ActivityModeType_ScorchedTeam            = ActivityModeType(62)
	ActivityModeType_Gambit                  = ActivityModeType(63)
	ActivityModeType_AllPvECompetitive       = ActivityModeType(64)
	ActivityModeType_Breakthrough            = ActivityModeType(65)
	ActivityModeType_BlackArmoryRun          = ActivityModeType(66)
	ActivityModeType_Salvage                 = ActivityModeType(67)
	ActivityModeType_IronBannerSalvage       = ActivityModeType(68)
	ActivityModeType_PvPCompetitive          = ActivityModeType(69)
	ActivityModeType_PvPQuickplay            = ActivityModeType(70)
	ActivityModeType_ClashQuickplay          = ActivityModeType(71)
	ActivityModeType_ClashCompetitive        = ActivityModeType(72)
	ActivityModeType_ControlQuickplay        = ActivityModeType(73)
	ActivityModeType_ControlCompetitive      = ActivityModeType(74)
	ActivityModeType_GambitPrime             = ActivityModeType(75)
	ActivityModeType_Reckoning               = ActivityModeType(76)
	ActivityModeType_Menagerie               = ActivityModeType(77)
	ActivityModeType_VexOffensive            = ActivityModeType(78)
	ActivityModeType_NightmareHunt           = ActivityModeType(79)
	ActivityModeType_Elimination             = ActivityModeType(80)
	ActivityModeType_Momentum                = ActivityModeType(81)
	ActivityModeType_Dungeon                 = ActivityModeType(82)
	ActivityModeType_Sundial                 = ActivityModeType(83)
	ActivityModeType_TrialsOfOsiris          = ActivityModeType(84)
	ActivityModeType_Dares                   = ActivityModeType(85)
	ActivityModeType_Offensive               = ActivityModeType(86)
	ActivityModeType_LostSector              = ActivityModeType(87)
	ActivityModeType_Rift                    = ActivityModeType(88)
	ActivityModeType_ZoneControl             = ActivityModeType(89)
	ActivityModeType_IronBannerRift          = ActivityModeType(90)
	ActivityModeType_IronBannerZoneControl   = ActivityModeType(91)
)
View Source
const (
	StatsCategoryType_None              = StatsCategoryType(0)
	StatsCategoryType_Kills             = StatsCategoryType(1)
	StatsCategoryType_Assists           = StatsCategoryType(2)
	StatsCategoryType_Deaths            = StatsCategoryType(3)
	StatsCategoryType_Criticals         = StatsCategoryType(4)
	StatsCategoryType_KDa               = StatsCategoryType(5)
	StatsCategoryType_KD                = StatsCategoryType(6)
	StatsCategoryType_Score             = StatsCategoryType(7)
	StatsCategoryType_Entered           = StatsCategoryType(8)
	StatsCategoryType_TimePlayed        = StatsCategoryType(9)
	StatsCategoryType_MedalWins         = StatsCategoryType(10)
	StatsCategoryType_MedalGame         = StatsCategoryType(11)
	StatsCategoryType_MedalSpecialKills = StatsCategoryType(12)
	StatsCategoryType_MedalSprees       = StatsCategoryType(13)
	StatsCategoryType_MedalMultiKills   = StatsCategoryType(14)
	StatsCategoryType_MedalAbilities    = StatsCategoryType(15)
)
View Source
const (
	StatsGroupType_None           = StatsGroupType(0)
	StatsGroupType_General        = StatsGroupType(1)
	StatsGroupType_Weapons        = StatsGroupType(2)
	StatsGroupType_Medals         = StatsGroupType(3)
	StatsGroupType_ReservedGroups = StatsGroupType(100)
	StatsGroupType_Leaderboard    = StatsGroupType(101)
	StatsGroupType_Activity       = StatsGroupType(102)
	StatsGroupType_UniqueWeapon   = StatsGroupType(103)
	StatsGroupType_Internal       = StatsGroupType(104)
)
View Source
const (
	StatsMergeMethod_Add = StatsMergeMethod(0)
	StatsMergeMethod_Min = StatsMergeMethod(1)
	StatsMergeMethod_Max = StatsMergeMethod(2)
)
View Source
const (
	PeriodType_None     = PeriodType(0)
	PeriodType_Daily    = PeriodType(1)
	PeriodType_AllTime  = PeriodType(2)
	PeriodType_Activity = PeriodType(3)
)
View Source
const (
	UnitType_None             = UnitType(0)
	UnitType_Count            = UnitType(1)
	UnitType_PerGame          = UnitType(2)
	UnitType_Seconds          = UnitType(3)
	UnitType_Points           = UnitType(4)
	UnitType_Team             = UnitType(5)
	UnitType_Distance         = UnitType(6)
	UnitType_Percent          = UnitType(7)
	UnitType_Ratio            = UnitType(8)
	UnitType_Boolean          = UnitType(9)
	UnitType_WeaponType       = UnitType(10)
	UnitType_Standing         = UnitType(11)
	UnitType_Milliseconds     = UnitType(12)
	UnitType_CompletionReason = UnitType(13)
)
View Source
const (
	ItemBindStatus_NotBound         = ItemBindStatus(0)
	ItemBindStatus_BoundToCharacter = ItemBindStatus(1)
	ItemBindStatus_BoundToAccount   = ItemBindStatus(2)
	ItemBindStatus_BoundToGuild     = ItemBindStatus(3)
)
View Source
const (
	ItemLocation_Unknown    = ItemLocation(0)
	ItemLocation_Inventory  = ItemLocation(1)
	ItemLocation_Vault      = ItemLocation(2)
	ItemLocation_Vendor     = ItemLocation(3)
	ItemLocation_Postmaster = ItemLocation(4)
)
View Source
const (
	ItemPerkVisibility_Visible  = ItemPerkVisibility(0)
	ItemPerkVisibility_Disabled = ItemPerkVisibility(1)
	ItemPerkVisibility_Hidden   = ItemPerkVisibility(2)
)
View Source
const (
	ItemState_None                 = ItemState(0)
	ItemState_Locked               = ItemState(1)
	ItemState_Tracked              = ItemState(2)
	ItemState_Masterwork           = ItemState(4)
	ItemState_Crafted              = ItemState(8)
	ItemState_HighlightedObjective = ItemState(16)
)
View Source
const (
	PlugAvailabilityMode_Normal                                          = PlugAvailabilityMode(0)
	PlugAvailabilityMode_UnavailableIfSocketContainsMatchingPlugCategory = PlugAvailabilityMode(1)
	PlugAvailabilityMode_AvailableIfSocketContainsMatchingPlugCategory   = PlugAvailabilityMode(2)
)
View Source
const (
	PlugUiStyles_None       = PlugUiStyles(0)
	PlugUiStyles_Masterwork = PlugUiStyles(1)
)
View Source
const (
	SocketArrayType_Default   = SocketArrayType(0)
	SocketArrayType_Intrinsic = SocketArrayType(1)
)
View Source
const (
	SocketPlugSources_None              = SocketPlugSources(0)
	SocketPlugSources_InventorySourced  = SocketPlugSources(1)
	SocketPlugSources_ReusablePlugItems = SocketPlugSources(2)
	SocketPlugSources_ProfilePlugSet    = SocketPlugSources(4)
	SocketPlugSources_CharacterPlugSet  = SocketPlugSources(8)
)
View Source
const (
	SocketTypeActionType_InsertPlug         = SocketTypeActionType(0)
	SocketTypeActionType_InfuseItem         = SocketTypeActionType(1)
	SocketTypeActionType_ReinitializeSocket = SocketTypeActionType(2)
)
View Source
const (
	SpecialItemType_None             = SpecialItemType(0)
	SpecialItemType_SpecialCurrency  = SpecialItemType(1)
	SpecialItemType_Armor            = SpecialItemType(8)
	SpecialItemType_Weapon           = SpecialItemType(9)
	SpecialItemType_Engram           = SpecialItemType(23)
	SpecialItemType_Consumable       = SpecialItemType(24)
	SpecialItemType_ExchangeMaterial = SpecialItemType(25)
	SpecialItemType_MissionReward    = SpecialItemType(27)
	SpecialItemType_Currency         = SpecialItemType(29)
)
View Source
const (
	TierType_Unknown  = TierType(0)
	TierType_Currency = TierType(1)
	TierType_Basic    = TierType(2)
	TierType_Common   = TierType(3)
	TierType_Rare     = TierType(4)
	TierType_Superior = TierType(5)
	TierType_Exotic   = TierType(6)
)
View Source
const (
	TransferStatuses_CanTransfer         = TransferStatuses(0)
	TransferStatuses_ItemIsEquipped      = TransferStatuses(1)
	TransferStatuses_NotTransferrable    = TransferStatuses(2)
	TransferStatuses_NoRoomInDestination = TransferStatuses(4)
)
View Source
const (
	VendorDisplayCategorySortOrder_Default    = VendorDisplayCategorySortOrder(0)
	VendorDisplayCategorySortOrder_SortByTier = VendorDisplayCategorySortOrder(1)
)
View Source
const (
	VendorInteractionType_Unknown           = VendorInteractionType(0)
	VendorInteractionType_Undefined         = VendorInteractionType(1)
	VendorInteractionType_QuestComplete     = VendorInteractionType(2)
	VendorInteractionType_QuestContinue     = VendorInteractionType(3)
	VendorInteractionType_ReputationPreview = VendorInteractionType(4)
	VendorInteractionType_RankUpReward      = VendorInteractionType(5)
	VendorInteractionType_TokenTurnIn       = VendorInteractionType(6)
	VendorInteractionType_QuestAccept       = VendorInteractionType(7)
	VendorInteractionType_ProgressTab       = VendorInteractionType(8)
	VendorInteractionType_End               = VendorInteractionType(9)
	VendorInteractionType_Start             = VendorInteractionType(10)
)
View Source
const (
	VendorItemStatus_Success               = VendorItemStatus(0)
	VendorItemStatus_NoInventorySpace      = VendorItemStatus(1)
	VendorItemStatus_NoFunds               = VendorItemStatus(2)
	VendorItemStatus_NoProgression         = VendorItemStatus(4)
	VendorItemStatus_NoUnlock              = VendorItemStatus(8)
	VendorItemStatus_NoQuantity            = VendorItemStatus(16)
	VendorItemStatus_OutsidePurchaseWindow = VendorItemStatus(32)
	VendorItemStatus_NotAvailable          = VendorItemStatus(64)
	VendorItemStatus_UniquenessViolation   = VendorItemStatus(128)
	VendorItemStatus_UnknownError          = VendorItemStatus(256)
	VendorItemStatus_AlreadySelling        = VendorItemStatus(512)
	VendorItemStatus_Unsellable            = VendorItemStatus(1024)
	VendorItemStatus_SellingInhibited      = VendorItemStatus(2048)
	VendorItemStatus_AlreadyOwned          = VendorItemStatus(4096)
	VendorItemStatus_DisplayOnly           = VendorItemStatus(8192)
)
View Source
const (
	PlatformErrorCodes_None                                                   = PlatformErrorCodes(0)
	PlatformErrorCodes_Success                                                = PlatformErrorCodes(1)
	PlatformErrorCodes_TransportException                                     = PlatformErrorCodes(2)
	PlatformErrorCodes_UnhandledException                                     = PlatformErrorCodes(3)
	PlatformErrorCodes_NotImplemented                                         = PlatformErrorCodes(4)
	PlatformErrorCodes_SystemDisabled                                         = PlatformErrorCodes(5)
	PlatformErrorCodes_FailedToLoadAvailableLocalesConfiguration              = PlatformErrorCodes(6)
	PlatformErrorCodes_ParameterParseFailure                                  = PlatformErrorCodes(7)
	PlatformErrorCodes_ParameterInvalidRange                                  = PlatformErrorCodes(8)
	PlatformErrorCodes_BadRequest                                             = PlatformErrorCodes(9)
	PlatformErrorCodes_AuthenticationInvalid                                  = PlatformErrorCodes(10)
	PlatformErrorCodes_DataNotFound                                           = PlatformErrorCodes(11)
	PlatformErrorCodes_InsufficientPrivileges                                 = PlatformErrorCodes(12)
	PlatformErrorCodes_Duplicate                                              = PlatformErrorCodes(13)
	PlatformErrorCodes_UnknownSqlResult                                       = PlatformErrorCodes(14)
	PlatformErrorCodes_ValidationError                                        = PlatformErrorCodes(15)
	PlatformErrorCodes_ValidationMissingFieldError                            = PlatformErrorCodes(16)
	PlatformErrorCodes_ValidationInvalidInputError                            = PlatformErrorCodes(17)
	PlatformErrorCodes_InvalidParameters                                      = PlatformErrorCodes(18)
	PlatformErrorCodes_ParameterNotFound                                      = PlatformErrorCodes(19)
	PlatformErrorCodes_UnhandledHttpException                                 = PlatformErrorCodes(20)
	PlatformErrorCodes_NotFound                                               = PlatformErrorCodes(21)
	PlatformErrorCodes_WebAuthModuleAsyncFailed                               = PlatformErrorCodes(22)
	PlatformErrorCodes_InvalidReturnValue                                     = PlatformErrorCodes(23)
	PlatformErrorCodes_UserBanned                                             = PlatformErrorCodes(24)
	PlatformErrorCodes_InvalidPostBody                                        = PlatformErrorCodes(25)
	PlatformErrorCodes_MissingPostBody                                        = PlatformErrorCodes(26)
	PlatformErrorCodes_ExternalServiceTimeout                                 = PlatformErrorCodes(27)
	PlatformErrorCodes_ValidationLengthError                                  = PlatformErrorCodes(28)
	PlatformErrorCodes_ValidationRangeError                                   = PlatformErrorCodes(29)
	PlatformErrorCodes_JsonDeserializationError                               = PlatformErrorCodes(30)
	PlatformErrorCodes_ThrottleLimitExceeded                                  = PlatformErrorCodes(31)
	PlatformErrorCodes_ValidationTagError                                     = PlatformErrorCodes(32)
	PlatformErrorCodes_ValidationProfanityError                               = PlatformErrorCodes(33)
	PlatformErrorCodes_ValidationUrlFormatError                               = PlatformErrorCodes(34)
	PlatformErrorCodes_ThrottleLimitExceededMinutes                           = PlatformErrorCodes(35)
	PlatformErrorCodes_ThrottleLimitExceededMomentarily                       = PlatformErrorCodes(36)
	PlatformErrorCodes_ThrottleLimitExceededSeconds                           = PlatformErrorCodes(37)
	PlatformErrorCodes_ExternalServiceUnknown                                 = PlatformErrorCodes(38)
	PlatformErrorCodes_ValidationWordLengthError                              = PlatformErrorCodes(39)
	PlatformErrorCodes_ValidationInvisibleUnicode                             = PlatformErrorCodes(40)
	PlatformErrorCodes_ValidationBadNames                                     = PlatformErrorCodes(41)
	PlatformErrorCodes_ExternalServiceFailed                                  = PlatformErrorCodes(42)
	PlatformErrorCodes_ServiceRetired                                         = PlatformErrorCodes(43)
	PlatformErrorCodes_UnknownSqlException                                    = PlatformErrorCodes(44)
	PlatformErrorCodes_UnsupportedLocale                                      = PlatformErrorCodes(45)
	PlatformErrorCodes_InvalidPageNumber                                      = PlatformErrorCodes(46)
	PlatformErrorCodes_MaximumPageSizeExceeded                                = PlatformErrorCodes(47)
	PlatformErrorCodes_ServiceUnsupported                                     = PlatformErrorCodes(48)
	PlatformErrorCodes_ValidationMaximumUnicodeCombiningCharacters            = PlatformErrorCodes(49)
	PlatformErrorCodes_ValidationMaximumSequentialCarriageReturns             = PlatformErrorCodes(50)
	PlatformErrorCodes_PerEndpointRequestThrottleExceeded                     = PlatformErrorCodes(51)
	PlatformErrorCodes_AuthContextCacheAssertion                              = PlatformErrorCodes(52)
	PlatformErrorCodes_ExPlatformStringValidationError                        = PlatformErrorCodes(53)
	PlatformErrorCodes_PerApplicationThrottleExceeded                         = PlatformErrorCodes(54)
	PlatformErrorCodes_PerApplicationAnonymousThrottleExceeded                = PlatformErrorCodes(55)
	PlatformErrorCodes_PerApplicationAuthenticatedThrottleExceeded            = PlatformErrorCodes(56)
	PlatformErrorCodes_PerUserThrottleExceeded                                = PlatformErrorCodes(57)
	PlatformErrorCodes_PayloadSignatureVerificationFailure                    = PlatformErrorCodes(58)
	PlatformErrorCodes_InvalidServiceAuthContext                              = PlatformErrorCodes(59)
	PlatformErrorCodes_ObsoleteCredentialType                                 = PlatformErrorCodes(89)
	PlatformErrorCodes_UnableToUnPairMobileApp                                = PlatformErrorCodes(90)
	PlatformErrorCodes_UnableToPairMobileApp                                  = PlatformErrorCodes(91)
	PlatformErrorCodes_CannotUseMobileAuthWithNonMobileProvider               = PlatformErrorCodes(92)
	PlatformErrorCodes_MissingDeviceCookie                                    = PlatformErrorCodes(93)
	PlatformErrorCodes_FacebookTokenExpired                                   = PlatformErrorCodes(94)
	PlatformErrorCodes_AuthTicketRequired                                     = PlatformErrorCodes(95)
	PlatformErrorCodes_CookieContextRequired                                  = PlatformErrorCodes(96)
	PlatformErrorCodes_UnknownAuthenticationError                             = PlatformErrorCodes(97)
	PlatformErrorCodes_BungieNetAccountCreationRequired                       = PlatformErrorCodes(98)
	PlatformErrorCodes_WebAuthRequired                                        = PlatformErrorCodes(99)
	PlatformErrorCodes_ContentUnknownSqlResult                                = PlatformErrorCodes(100)
	PlatformErrorCodes_ContentNeedUniquePath                                  = PlatformErrorCodes(101)
	PlatformErrorCodes_ContentSqlException                                    = PlatformErrorCodes(102)
	PlatformErrorCodes_ContentNotFound                                        = PlatformErrorCodes(103)
	PlatformErrorCodes_ContentSuccessWithTagAddFail                           = PlatformErrorCodes(104)
	PlatformErrorCodes_ContentSearchMissingParameters                         = PlatformErrorCodes(105)
	PlatformErrorCodes_ContentInvalidId                                       = PlatformErrorCodes(106)
	PlatformErrorCodes_ContentPhysicalFileDeletionError                       = PlatformErrorCodes(107)
	PlatformErrorCodes_ContentPhysicalFileCreationError                       = PlatformErrorCodes(108)
	PlatformErrorCodes_ContentPerforceSubmissionError                         = PlatformErrorCodes(109)
	PlatformErrorCodes_ContentPerforceInitializationError                     = PlatformErrorCodes(110)
	PlatformErrorCodes_ContentDeploymentPackageNotReadyError                  = PlatformErrorCodes(111)
	PlatformErrorCodes_ContentUploadFailed                                    = PlatformErrorCodes(112)
	PlatformErrorCodes_ContentTooManyResults                                  = PlatformErrorCodes(113)
	PlatformErrorCodes_ContentInvalidState                                    = PlatformErrorCodes(115)
	PlatformErrorCodes_ContentNavigationParentNotFound                        = PlatformErrorCodes(116)
	PlatformErrorCodes_ContentNavigationParentUpdateError                     = PlatformErrorCodes(117)
	PlatformErrorCodes_DeploymentPackageNotEditable                           = PlatformErrorCodes(118)
	PlatformErrorCodes_ContentValidationError                                 = PlatformErrorCodes(119)
	PlatformErrorCodes_ContentPropertiesValidationError                       = PlatformErrorCodes(120)
	PlatformErrorCodes_ContentTypeNotFound                                    = PlatformErrorCodes(121)
	PlatformErrorCodes_DeploymentPackageNotFound                              = PlatformErrorCodes(122)
	PlatformErrorCodes_ContentSearchInvalidParameters                         = PlatformErrorCodes(123)
	PlatformErrorCodes_ContentItemPropertyAggregationError                    = PlatformErrorCodes(124)
	PlatformErrorCodes_DeploymentPackageFileNotFound                          = PlatformErrorCodes(125)
	PlatformErrorCodes_ContentPerforceFileHistoryNotFound                     = PlatformErrorCodes(126)
	PlatformErrorCodes_ContentAssetZipCreationFailure                         = PlatformErrorCodes(127)
	PlatformErrorCodes_ContentAssetZipCreationBusy                            = PlatformErrorCodes(128)
	PlatformErrorCodes_ContentProjectNotFound                                 = PlatformErrorCodes(129)
	PlatformErrorCodes_ContentFolderNotFound                                  = PlatformErrorCodes(130)
	PlatformErrorCodes_ContentPackagesInconsistent                            = PlatformErrorCodes(131)
	PlatformErrorCodes_ContentPackagesInvalidState                            = PlatformErrorCodes(132)
	PlatformErrorCodes_ContentPackagesInconsistentType                        = PlatformErrorCodes(133)
	PlatformErrorCodes_ContentCannotDeletePackage                             = PlatformErrorCodes(134)
	PlatformErrorCodes_ContentLockedForChanges                                = PlatformErrorCodes(135)
	PlatformErrorCodes_ContentFileUploadFailed                                = PlatformErrorCodes(136)
	PlatformErrorCodes_ContentNotReviewed                                     = PlatformErrorCodes(137)
	PlatformErrorCodes_ContentPermissionDenied                                = PlatformErrorCodes(138)
	PlatformErrorCodes_ContentInvalidExternalUrl                              = PlatformErrorCodes(139)
	PlatformErrorCodes_ContentExternalFileCannotBeImportedLocally             = PlatformErrorCodes(140)
	PlatformErrorCodes_ContentTagSaveFailure                                  = PlatformErrorCodes(141)
	PlatformErrorCodes_ContentPerforceUnmatchedFileError                      = PlatformErrorCodes(142)
	PlatformErrorCodes_ContentPerforceChangelistResultNotFound                = PlatformErrorCodes(143)
	PlatformErrorCodes_ContentPerforceChangelistFileItemsNotFound             = PlatformErrorCodes(144)
	PlatformErrorCodes_ContentPerforceInvalidRevisionError                    = PlatformErrorCodes(145)
	PlatformErrorCodes_ContentUnloadedSaveResult                              = PlatformErrorCodes(146)
	PlatformErrorCodes_ContentPropertyInvalidNumber                           = PlatformErrorCodes(147)
	PlatformErrorCodes_ContentPropertyInvalidUrl                              = PlatformErrorCodes(148)
	PlatformErrorCodes_ContentPropertyInvalidDate                             = PlatformErrorCodes(149)
	PlatformErrorCodes_ContentPropertyInvalidSet                              = PlatformErrorCodes(150)
	PlatformErrorCodes_ContentPropertyCannotDeserialize                       = PlatformErrorCodes(151)
	PlatformErrorCodes_ContentRegexValidationFailOnProperty                   = PlatformErrorCodes(152)
	PlatformErrorCodes_ContentMaxLengthFailOnProperty                         = PlatformErrorCodes(153)
	PlatformErrorCodes_ContentPropertyUnexpectedDeserializationError          = PlatformErrorCodes(154)
	PlatformErrorCodes_ContentPropertyRequired                                = PlatformErrorCodes(155)
	PlatformErrorCodes_ContentCannotCreateFile                                = PlatformErrorCodes(156)
	PlatformErrorCodes_ContentInvalidMigrationFile                            = PlatformErrorCodes(157)
	PlatformErrorCodes_ContentMigrationAlteringProcessedItem                  = PlatformErrorCodes(158)
	PlatformErrorCodes_ContentPropertyDefinitionNotFound                      = PlatformErrorCodes(159)
	PlatformErrorCodes_ContentReviewDataChanged                               = PlatformErrorCodes(160)
	PlatformErrorCodes_ContentRollbackRevisionNotInPackage                    = PlatformErrorCodes(161)
	PlatformErrorCodes_ContentItemNotBasedOnLatestRevision                    = PlatformErrorCodes(162)
	PlatformErrorCodes_ContentUnauthorized                                    = PlatformErrorCodes(163)
	PlatformErrorCodes_ContentCannotCreateDeploymentPackage                   = PlatformErrorCodes(164)
	PlatformErrorCodes_ContentUserNotFound                                    = PlatformErrorCodes(165)
	PlatformErrorCodes_ContentLocalePermissionDenied                          = PlatformErrorCodes(166)
	PlatformErrorCodes_ContentInvalidLinkToInternalEnvironment                = PlatformErrorCodes(167)
	PlatformErrorCodes_ContentInvalidBlacklistedContent                       = PlatformErrorCodes(168)
	PlatformErrorCodes_ContentMacroMalformedNoContentId                       = PlatformErrorCodes(169)
	PlatformErrorCodes_ContentMacroMalformedNoTemplateType                    = PlatformErrorCodes(170)
	PlatformErrorCodes_ContentIllegalBNetMembershipId                         = PlatformErrorCodes(171)
	PlatformErrorCodes_ContentLocaleDidNotMatchExpected                       = PlatformErrorCodes(172)
	PlatformErrorCodes_ContentBabelCallFailed                                 = PlatformErrorCodes(173)
	PlatformErrorCodes_ContentEnglishPostLiveForbidden                        = PlatformErrorCodes(174)
	PlatformErrorCodes_ContentLocaleEditPermissionDenied                      = PlatformErrorCodes(175)
	PlatformErrorCodes_ContentStackUnknownError                               = PlatformErrorCodes(176)
	PlatformErrorCodes_ContentStackNotFound                                   = PlatformErrorCodes(177)
	PlatformErrorCodes_ContentStackRateLimited                                = PlatformErrorCodes(178)
	PlatformErrorCodes_ContentStackTimeout                                    = PlatformErrorCodes(179)
	PlatformErrorCodes_ContentStackServiceError                               = PlatformErrorCodes(180)
	PlatformErrorCodes_ContentStackDeserializationFailure                     = PlatformErrorCodes(181)
	PlatformErrorCodes_UserNonUniqueName                                      = PlatformErrorCodes(200)
	PlatformErrorCodes_UserManualLinkingStepRequired                          = PlatformErrorCodes(201)
	PlatformErrorCodes_UserCreateUnknownSqlResult                             = PlatformErrorCodes(202)
	PlatformErrorCodes_UserCreateUnknownSqlException                          = PlatformErrorCodes(203)
	PlatformErrorCodes_UserMalformedMembershipId                              = PlatformErrorCodes(204)
	PlatformErrorCodes_UserCannotFindRequestedUser                            = PlatformErrorCodes(205)
	PlatformErrorCodes_UserCannotLoadAccountCredentialLinkInfo                = PlatformErrorCodes(206)
	PlatformErrorCodes_UserInvalidMobileAppType                               = PlatformErrorCodes(207)
	PlatformErrorCodes_UserMissingMobilePairingInfo                           = PlatformErrorCodes(208)
	PlatformErrorCodes_UserCannotGenerateMobileKeyWhileUsingMobileCredential  = PlatformErrorCodes(209)
	PlatformErrorCodes_UserGenerateMobileKeyExistingSlotCollision             = PlatformErrorCodes(210)
	PlatformErrorCodes_UserDisplayNameMissingOrInvalid                        = PlatformErrorCodes(211)
	PlatformErrorCodes_UserCannotLoadAccountProfileData                       = PlatformErrorCodes(212)
	PlatformErrorCodes_UserCannotSaveUserProfileData                          = PlatformErrorCodes(213)
	PlatformErrorCodes_UserEmailMissingOrInvalid                              = PlatformErrorCodes(214)
	PlatformErrorCodes_UserTermsOfUseRequired                                 = PlatformErrorCodes(215)
	PlatformErrorCodes_UserCannotCreateNewAccountWhileLoggedIn                = PlatformErrorCodes(216)
	PlatformErrorCodes_UserCannotResolveCentralAccount                        = PlatformErrorCodes(217)
	PlatformErrorCodes_UserInvalidAvatar                                      = PlatformErrorCodes(218)
	PlatformErrorCodes_UserMissingCreatedUserResult                           = PlatformErrorCodes(219)
	PlatformErrorCodes_UserCannotChangeUniqueNameYet                          = PlatformErrorCodes(220)
	PlatformErrorCodes_UserCannotChangeDisplayNameYet                         = PlatformErrorCodes(221)
	PlatformErrorCodes_UserCannotChangeEmail                                  = PlatformErrorCodes(222)
	PlatformErrorCodes_UserUniqueNameMustStartWithLetter                      = PlatformErrorCodes(223)
	PlatformErrorCodes_UserNoLinkedAccountsSupportFriendListings              = PlatformErrorCodes(224)
	PlatformErrorCodes_UserAcknowledgmentTableFull                            = PlatformErrorCodes(225)
	PlatformErrorCodes_UserCreationDestinyMembershipRequired                  = PlatformErrorCodes(226)
	PlatformErrorCodes_UserFriendsTokenNeedsRefresh                           = PlatformErrorCodes(227)
	PlatformErrorCodes_UserEmailValidationUnknown                             = PlatformErrorCodes(228)
	PlatformErrorCodes_UserEmailValidationLimit                               = PlatformErrorCodes(229)
	PlatformErrorCodes_TransactionEmailSendFailure                            = PlatformErrorCodes(230)
	PlatformErrorCodes_MailHookPermissionFailure                              = PlatformErrorCodes(231)
	PlatformErrorCodes_MailServiceRateLimit                                   = PlatformErrorCodes(232)
	PlatformErrorCodes_UserEmailMustBeVerified                                = PlatformErrorCodes(233)
	PlatformErrorCodes_UserMustAllowCustomerServiceEmails                     = PlatformErrorCodes(234)
	PlatformErrorCodes_NonTransactionalEmailSendFailure                       = PlatformErrorCodes(235)
	PlatformErrorCodes_UnknownErrorSettingGlobalDisplayName                   = PlatformErrorCodes(236)
	PlatformErrorCodes_DuplicateGlobalDisplayName                             = PlatformErrorCodes(237)
	PlatformErrorCodes_ErrorRunningNameValidationChecks                       = PlatformErrorCodes(238)
	PlatformErrorCodes_ErrorDatabaseGlobalName                                = PlatformErrorCodes(239)
	PlatformErrorCodes_ErrorNoAvailableNameChanges                            = PlatformErrorCodes(240)
	PlatformErrorCodes_ErrorNameAlreadySetToInput                             = PlatformErrorCodes(241)
	PlatformErrorCodes_UserDisplayNameLessThanMinLength                       = PlatformErrorCodes(242)
	PlatformErrorCodes_UserDisplayNameGreaterThanMaxLength                    = PlatformErrorCodes(243)
	PlatformErrorCodes_UserDisplayNameContainsUnacceptableOrInvalidContent    = PlatformErrorCodes(244)
	PlatformErrorCodes_MessagingUnknownError                                  = PlatformErrorCodes(300)
	PlatformErrorCodes_MessagingSelfError                                     = PlatformErrorCodes(301)
	PlatformErrorCodes_MessagingSendThrottle                                  = PlatformErrorCodes(302)
	PlatformErrorCodes_MessagingNoBody                                        = PlatformErrorCodes(303)
	PlatformErrorCodes_MessagingTooManyUsers                                  = PlatformErrorCodes(304)
	PlatformErrorCodes_MessagingCanNotLeaveConversation                       = PlatformErrorCodes(305)
	PlatformErrorCodes_MessagingUnableToSend                                  = PlatformErrorCodes(306)
	PlatformErrorCodes_MessagingDeletedUserForbidden                          = PlatformErrorCodes(307)
	PlatformErrorCodes_MessagingCannotDeleteExternalConversation              = PlatformErrorCodes(308)
	PlatformErrorCodes_MessagingGroupChatDisabled                             = PlatformErrorCodes(309)
	PlatformErrorCodes_MessagingMustIncludeSelfInPrivateMessage               = PlatformErrorCodes(310)
	PlatformErrorCodes_MessagingSenderIsBanned                                = PlatformErrorCodes(311)
	PlatformErrorCodes_MessagingGroupOptionalChatExceededMaximum              = PlatformErrorCodes(312)
	PlatformErrorCodes_PrivateMessagingRequiresDestinyMembership              = PlatformErrorCodes(313)
	PlatformErrorCodes_AddSurveyAnswersUnknownSqlException                    = PlatformErrorCodes(400)
	PlatformErrorCodes_ForumBodyCannotBeEmpty                                 = PlatformErrorCodes(500)
	PlatformErrorCodes_ForumSubjectCannotBeEmptyOnTopicPost                   = PlatformErrorCodes(501)
	PlatformErrorCodes_ForumCannotLocateParentPost                            = PlatformErrorCodes(502)
	PlatformErrorCodes_ForumThreadLockedForReplies                            = PlatformErrorCodes(503)
	PlatformErrorCodes_ForumUnknownSqlResultDuringCreatePost                  = PlatformErrorCodes(504)
	PlatformErrorCodes_ForumUnknownTagCreationError                           = PlatformErrorCodes(505)
	PlatformErrorCodes_ForumUnknownSqlResultDuringTagItem                     = PlatformErrorCodes(506)
	PlatformErrorCodes_ForumUnknownExceptionCreatePost                        = PlatformErrorCodes(507)
	PlatformErrorCodes_ForumQuestionMustBeTopicPost                           = PlatformErrorCodes(508)
	PlatformErrorCodes_ForumExceptionDuringTagSearch                          = PlatformErrorCodes(509)
	PlatformErrorCodes_ForumExceptionDuringTopicRetrieval                     = PlatformErrorCodes(510)
	PlatformErrorCodes_ForumAliasedTagError                                   = PlatformErrorCodes(511)
	PlatformErrorCodes_ForumCannotLocateThread                                = PlatformErrorCodes(512)
	PlatformErrorCodes_ForumUnknownExceptionEditPost                          = PlatformErrorCodes(513)
	PlatformErrorCodes_ForumCannotLocatePost                                  = PlatformErrorCodes(514)
	PlatformErrorCodes_ForumUnknownExceptionGetOrCreateTags                   = PlatformErrorCodes(515)
	PlatformErrorCodes_ForumEditPermissionDenied                              = PlatformErrorCodes(516)
	PlatformErrorCodes_ForumUnknownSqlResultDuringTagIdRetrieval              = PlatformErrorCodes(517)
	PlatformErrorCodes_ForumCannotGetRating                                   = PlatformErrorCodes(518)
	PlatformErrorCodes_ForumUnknownExceptionGetRating                         = PlatformErrorCodes(519)
	PlatformErrorCodes_ForumRatingsAccessError                                = PlatformErrorCodes(520)
	PlatformErrorCodes_ForumRelatedPostAccessError                            = PlatformErrorCodes(521)
	PlatformErrorCodes_ForumLatestReplyAccessError                            = PlatformErrorCodes(522)
	PlatformErrorCodes_ForumUserStatusAccessError                             = PlatformErrorCodes(523)
	PlatformErrorCodes_ForumAuthorAccessError                                 = PlatformErrorCodes(524)
	PlatformErrorCodes_ForumGroupAccessError                                  = PlatformErrorCodes(525)
	PlatformErrorCodes_ForumUrlExpectedButMissing                             = PlatformErrorCodes(526)
	PlatformErrorCodes_ForumRepliesCannotBeEmpty                              = PlatformErrorCodes(527)
	PlatformErrorCodes_ForumRepliesCannotBeInDifferentGroups                  = PlatformErrorCodes(528)
	PlatformErrorCodes_ForumSubTopicCannotBeCreatedAtThisThreadLevel          = PlatformErrorCodes(529)
	PlatformErrorCodes_ForumCannotCreateContentTopic                          = PlatformErrorCodes(530)
	PlatformErrorCodes_ForumTopicDoesNotExist                                 = PlatformErrorCodes(531)
	PlatformErrorCodes_ForumContentCommentsNotAllowed                         = PlatformErrorCodes(532)
	PlatformErrorCodes_ForumUnknownSqlResultDuringEditPost                    = PlatformErrorCodes(533)
	PlatformErrorCodes_ForumUnknownSqlResultDuringGetPost                     = PlatformErrorCodes(534)
	PlatformErrorCodes_ForumPostValidationBadUrl                              = PlatformErrorCodes(535)
	PlatformErrorCodes_ForumBodyTooLong                                       = PlatformErrorCodes(536)
	PlatformErrorCodes_ForumSubjectTooLong                                    = PlatformErrorCodes(537)
	PlatformErrorCodes_ForumAnnouncementNotAllowed                            = PlatformErrorCodes(538)
	PlatformErrorCodes_ForumCannotShareOwnPost                                = PlatformErrorCodes(539)
	PlatformErrorCodes_ForumEditNoOp                                          = PlatformErrorCodes(540)
	PlatformErrorCodes_ForumUnknownDatabaseErrorDuringGetPost                 = PlatformErrorCodes(541)
	PlatformErrorCodes_ForumExceeedMaximumRowLimit                            = PlatformErrorCodes(542)
	PlatformErrorCodes_ForumCannotSharePrivatePost                            = PlatformErrorCodes(543)
	PlatformErrorCodes_ForumCannotCrossPostBetweenGroups                      = PlatformErrorCodes(544)
	PlatformErrorCodes_ForumIncompatibleCategories                            = PlatformErrorCodes(555)
	PlatformErrorCodes_ForumCannotUseTheseCategoriesOnNonTopicPost            = PlatformErrorCodes(556)
	PlatformErrorCodes_ForumCanOnlyDeleteTopics                               = PlatformErrorCodes(557)
	PlatformErrorCodes_ForumDeleteSqlException                                = PlatformErrorCodes(558)
	PlatformErrorCodes_ForumDeleteSqlUnknownResult                            = PlatformErrorCodes(559)
	PlatformErrorCodes_ForumTooManyTags                                       = PlatformErrorCodes(560)
	PlatformErrorCodes_ForumCanOnlyRateTopics                                 = PlatformErrorCodes(561)
	PlatformErrorCodes_ForumBannedPostsCannotBeEdited                         = PlatformErrorCodes(562)
	PlatformErrorCodes_ForumThreadRootIsBanned                                = PlatformErrorCodes(563)
	PlatformErrorCodes_ForumCannotUseOfficialTagCategoryAsTag                 = PlatformErrorCodes(564)
	PlatformErrorCodes_ForumAnswerCannotBeMadeOnCreatePost                    = PlatformErrorCodes(565)
	PlatformErrorCodes_ForumAnswerCannotBeMadeOnEditPost                      = PlatformErrorCodes(566)
	PlatformErrorCodes_ForumAnswerPostIdIsNotADirectReplyOfQuestion           = PlatformErrorCodes(567)
	PlatformErrorCodes_ForumAnswerTopicIdIsNotAQuestion                       = PlatformErrorCodes(568)
	PlatformErrorCodes_ForumUnknownExceptionDuringMarkAnswer                  = PlatformErrorCodes(569)
	PlatformErrorCodes_ForumUnknownSqlResultDuringMarkAnswer                  = PlatformErrorCodes(570)
	PlatformErrorCodes_ForumCannotRateYourOwnPosts                            = PlatformErrorCodes(571)
	PlatformErrorCodes_ForumPollsMustBeTheFirstPostInTopic                    = PlatformErrorCodes(572)
	PlatformErrorCodes_ForumInvalidPollInput                                  = PlatformErrorCodes(573)
	PlatformErrorCodes_ForumGroupAdminEditNonMember                           = PlatformErrorCodes(574)
	PlatformErrorCodes_ForumCannotEditModeratorEditedPost                     = PlatformErrorCodes(575)
	PlatformErrorCodes_ForumRequiresDestinyMembership                         = PlatformErrorCodes(576)
	PlatformErrorCodes_ForumUnexpectedError                                   = PlatformErrorCodes(577)
	PlatformErrorCodes_ForumAgeLock                                           = PlatformErrorCodes(578)
	PlatformErrorCodes_ForumMaxPages                                          = PlatformErrorCodes(579)
	PlatformErrorCodes_ForumMaxPagesOldestFirst                               = PlatformErrorCodes(580)
	PlatformErrorCodes_ForumCannotApplyForumIdWithoutTags                     = PlatformErrorCodes(581)
	PlatformErrorCodes_ForumCannotApplyForumIdToNonTopics                     = PlatformErrorCodes(582)
	PlatformErrorCodes_ForumCannotDownvoteCommunityCreations                  = PlatformErrorCodes(583)
	PlatformErrorCodes_ForumTopicsMustHaveOfficialCategory                    = PlatformErrorCodes(584)
	PlatformErrorCodes_ForumRecruitmentTopicMalformed                         = PlatformErrorCodes(585)
	PlatformErrorCodes_ForumRecruitmentTopicNotFound                          = PlatformErrorCodes(586)
	PlatformErrorCodes_ForumRecruitmentTopicNoSlotsRemaining                  = PlatformErrorCodes(587)
	PlatformErrorCodes_ForumRecruitmentTopicKickBan                           = PlatformErrorCodes(588)
	PlatformErrorCodes_ForumRecruitmentTopicRequirementsNotMet                = PlatformErrorCodes(589)
	PlatformErrorCodes_ForumRecruitmentTopicNoPlayers                         = PlatformErrorCodes(590)
	PlatformErrorCodes_ForumRecruitmentApproveFailMessageBan                  = PlatformErrorCodes(591)
	PlatformErrorCodes_ForumRecruitmentGlobalBan                              = PlatformErrorCodes(592)
	PlatformErrorCodes_ForumUserBannedFromThisTopic                           = PlatformErrorCodes(593)
	PlatformErrorCodes_ForumRecruitmentFireteamMembersOnly                    = PlatformErrorCodes(594)
	PlatformErrorCodes_ForumRequiresDestiny2Progress                          = PlatformErrorCodes(595)
	PlatformErrorCodes_ForumRequiresDestiny2EntitlementPurchase               = PlatformErrorCodes(596)
	PlatformErrorCodes_GroupMembershipApplicationAlreadyResolved              = PlatformErrorCodes(601)
	PlatformErrorCodes_GroupMembershipAlreadyApplied                          = PlatformErrorCodes(602)
	PlatformErrorCodes_GroupMembershipInsufficientPrivileges                  = PlatformErrorCodes(603)
	PlatformErrorCodes_GroupIdNotReturnedFromCreation                         = PlatformErrorCodes(604)
	PlatformErrorCodes_GroupSearchInvalidParameters                           = PlatformErrorCodes(605)
	PlatformErrorCodes_GroupMembershipPendingApplicationNotFound              = PlatformErrorCodes(606)
	PlatformErrorCodes_GroupInvalidId                                         = PlatformErrorCodes(607)
	PlatformErrorCodes_GroupInvalidMembershipId                               = PlatformErrorCodes(608)
	PlatformErrorCodes_GroupInvalidMembershipType                             = PlatformErrorCodes(609)
	PlatformErrorCodes_GroupMissingTags                                       = PlatformErrorCodes(610)
	PlatformErrorCodes_GroupMembershipNotFound                                = PlatformErrorCodes(611)
	PlatformErrorCodes_GroupInvalidRating                                     = PlatformErrorCodes(612)
	PlatformErrorCodes_GroupUserFollowingAccessError                          = PlatformErrorCodes(613)
	PlatformErrorCodes_GroupUserMembershipAccessError                         = PlatformErrorCodes(614)
	PlatformErrorCodes_GroupCreatorAccessError                                = PlatformErrorCodes(615)
	PlatformErrorCodes_GroupAdminAccessError                                  = PlatformErrorCodes(616)
	PlatformErrorCodes_GroupPrivatePostNotViewable                            = PlatformErrorCodes(617)
	PlatformErrorCodes_GroupMembershipNotLoggedIn                             = PlatformErrorCodes(618)
	PlatformErrorCodes_GroupNotDeleted                                        = PlatformErrorCodes(619)
	PlatformErrorCodes_GroupUnknownErrorUndeletingGroup                       = PlatformErrorCodes(620)
	PlatformErrorCodes_GroupDeleted                                           = PlatformErrorCodes(621)
	PlatformErrorCodes_GroupNotFound                                          = PlatformErrorCodes(622)
	PlatformErrorCodes_GroupMemberBanned                                      = PlatformErrorCodes(623)
	PlatformErrorCodes_GroupMembershipClosed                                  = PlatformErrorCodes(624)
	PlatformErrorCodes_GroupPrivatePostOverrideError                          = PlatformErrorCodes(625)
	PlatformErrorCodes_GroupNameTaken                                         = PlatformErrorCodes(626)
	PlatformErrorCodes_GroupDeletionGracePeriodExpired                        = PlatformErrorCodes(627)
	PlatformErrorCodes_GroupCannotCheckBanStatus                              = PlatformErrorCodes(628)
	PlatformErrorCodes_GroupMaximumMembershipCountReached                     = PlatformErrorCodes(629)
	PlatformErrorCodes_NoDestinyAccountForClanPlatform                        = PlatformErrorCodes(630)
	PlatformErrorCodes_AlreadyRequestingMembershipForClanPlatform             = PlatformErrorCodes(631)
	PlatformErrorCodes_AlreadyClanMemberOnPlatform                            = PlatformErrorCodes(632)
	PlatformErrorCodes_GroupJoinedCannotSetClanName                           = PlatformErrorCodes(633)
	PlatformErrorCodes_GroupLeftCannotClearClanName                           = PlatformErrorCodes(634)
	PlatformErrorCodes_GroupRelationshipRequestPending                        = PlatformErrorCodes(635)
	PlatformErrorCodes_GroupRelationshipRequestBlocked                        = PlatformErrorCodes(636)
	PlatformErrorCodes_GroupRelationshipRequestNotFound                       = PlatformErrorCodes(637)
	PlatformErrorCodes_GroupRelationshipBlockNotFound                         = PlatformErrorCodes(638)
	PlatformErrorCodes_GroupRelationshipNotFound                              = PlatformErrorCodes(639)
	PlatformErrorCodes_GroupAlreadyAllied                                     = PlatformErrorCodes(641)
	PlatformErrorCodes_GroupAlreadyMember                                     = PlatformErrorCodes(642)
	PlatformErrorCodes_GroupRelationshipAlreadyExists                         = PlatformErrorCodes(643)
	PlatformErrorCodes_InvalidGroupTypesForRelationshipRequest                = PlatformErrorCodes(644)
	PlatformErrorCodes_GroupAtMaximumAlliances                                = PlatformErrorCodes(646)
	PlatformErrorCodes_GroupCannotSetClanOnlySettings                         = PlatformErrorCodes(647)
	PlatformErrorCodes_ClanCannotSetTwoDefaultPostTypes                       = PlatformErrorCodes(648)
	PlatformErrorCodes_GroupMemberInvalidMemberType                           = PlatformErrorCodes(649)
	PlatformErrorCodes_GroupInvalidPlatformType                               = PlatformErrorCodes(650)
	PlatformErrorCodes_GroupMemberInvalidSort                                 = PlatformErrorCodes(651)
	PlatformErrorCodes_GroupInvalidResolveState                               = PlatformErrorCodes(652)
	PlatformErrorCodes_ClanAlreadyEnabledForPlatform                          = PlatformErrorCodes(653)
	PlatformErrorCodes_ClanNotEnabledForPlatform                              = PlatformErrorCodes(654)
	PlatformErrorCodes_ClanEnabledButCouldNotJoinNoAccount                    = PlatformErrorCodes(655)
	PlatformErrorCodes_ClanEnabledButCouldNotJoinAlreadyMember                = PlatformErrorCodes(656)
	PlatformErrorCodes_ClanCannotJoinNoCredential                             = PlatformErrorCodes(657)
	PlatformErrorCodes_NoClanMembershipForPlatform                            = PlatformErrorCodes(658)
	PlatformErrorCodes_GroupToGroupFollowLimitReached                         = PlatformErrorCodes(659)
	PlatformErrorCodes_ChildGroupAlreadyInAlliance                            = PlatformErrorCodes(660)
	PlatformErrorCodes_OwnerGroupAlreadyInAlliance                            = PlatformErrorCodes(661)
	PlatformErrorCodes_AllianceOwnerCannotJoinAlliance                        = PlatformErrorCodes(662)
	PlatformErrorCodes_GroupNotInAlliance                                     = PlatformErrorCodes(663)
	PlatformErrorCodes_ChildGroupCannotInviteToAlliance                       = PlatformErrorCodes(664)
	PlatformErrorCodes_GroupToGroupAlreadyFollowed                            = PlatformErrorCodes(665)
	PlatformErrorCodes_GroupToGroupNotFollowing                               = PlatformErrorCodes(666)
	PlatformErrorCodes_ClanMaximumMembershipReached                           = PlatformErrorCodes(667)
	PlatformErrorCodes_ClanNameNotValid                                       = PlatformErrorCodes(668)
	PlatformErrorCodes_ClanNameNotValidError                                  = PlatformErrorCodes(669)
	PlatformErrorCodes_AllianceOwnerNotDefined                                = PlatformErrorCodes(670)
	PlatformErrorCodes_AllianceChildNotDefined                                = PlatformErrorCodes(671)
	PlatformErrorCodes_ClanCultureIllegalCharacters                           = PlatformErrorCodes(672)
	PlatformErrorCodes_ClanTagIllegalCharacters                               = PlatformErrorCodes(673)
	PlatformErrorCodes_ClanRequiresInvitation                                 = PlatformErrorCodes(674)
	PlatformErrorCodes_ClanMembershipClosed                                   = PlatformErrorCodes(675)
	PlatformErrorCodes_ClanInviteAlreadyMember                                = PlatformErrorCodes(676)
	PlatformErrorCodes_GroupInviteAlreadyMember                               = PlatformErrorCodes(677)
	PlatformErrorCodes_GroupJoinApprovalRequired                              = PlatformErrorCodes(678)
	PlatformErrorCodes_ClanTagRequired                                        = PlatformErrorCodes(679)
	PlatformErrorCodes_GroupNameCannotStartOrEndWithWhiteSpace                = PlatformErrorCodes(680)
	PlatformErrorCodes_ClanCallsignCannotStartOrEndWithWhiteSpace             = PlatformErrorCodes(681)
	PlatformErrorCodes_ClanMigrationFailed                                    = PlatformErrorCodes(682)
	PlatformErrorCodes_ClanNotEnabledAlreadyMemberOfAnotherClan               = PlatformErrorCodes(683)
	PlatformErrorCodes_GroupModerationNotPermittedOnNonMembers                = PlatformErrorCodes(684)
	PlatformErrorCodes_ClanCreationInWorldServerFailed                        = PlatformErrorCodes(685)
	PlatformErrorCodes_ClanNotFound                                           = PlatformErrorCodes(686)
	PlatformErrorCodes_ClanMembershipLevelDoesNotPermitThatAction             = PlatformErrorCodes(687)
	PlatformErrorCodes_ClanMemberNotFound                                     = PlatformErrorCodes(688)
	PlatformErrorCodes_ClanMissingMembershipApprovers                         = PlatformErrorCodes(689)
	PlatformErrorCodes_ClanInWrongStateForRequestedAction                     = PlatformErrorCodes(690)
	PlatformErrorCodes_ClanNameAlreadyUsed                                    = PlatformErrorCodes(691)
	PlatformErrorCodes_ClanTooFewMembers                                      = PlatformErrorCodes(692)
	PlatformErrorCodes_ClanInfoCannotBeWhitespace                             = PlatformErrorCodes(693)
	PlatformErrorCodes_GroupCultureThrottle                                   = PlatformErrorCodes(694)
	PlatformErrorCodes_ClanTargetDisallowsInvites                             = PlatformErrorCodes(695)
	PlatformErrorCodes_ClanInvalidOperation                                   = PlatformErrorCodes(696)
	PlatformErrorCodes_ClanFounderCannotLeaveWithoutAbdication                = PlatformErrorCodes(697)
	PlatformErrorCodes_ClanNameReserved                                       = PlatformErrorCodes(698)
	PlatformErrorCodes_ClanApplicantInClanSoNowInvited                        = PlatformErrorCodes(699)
	PlatformErrorCodes_ActivitiesUnknownException                             = PlatformErrorCodes(701)
	PlatformErrorCodes_ActivitiesParameterNull                                = PlatformErrorCodes(702)
	PlatformErrorCodes_ActivityCountsDiabled                                  = PlatformErrorCodes(703)
	PlatformErrorCodes_ActivitySearchInvalidParameters                        = PlatformErrorCodes(704)
	PlatformErrorCodes_ActivityPermissionDenied                               = PlatformErrorCodes(705)
	PlatformErrorCodes_ShareAlreadyShared                                     = PlatformErrorCodes(706)
	PlatformErrorCodes_ActivityLoggingDisabled                                = PlatformErrorCodes(707)
	PlatformErrorCodes_ClanRequiresExistingDestinyAccount                     = PlatformErrorCodes(750)
	PlatformErrorCodes_ClanNameRestricted                                     = PlatformErrorCodes(751)
	PlatformErrorCodes_ClanCreationBan                                        = PlatformErrorCodes(752)
	PlatformErrorCodes_ClanCreationTenureRequirementsNotMet                   = PlatformErrorCodes(753)
	PlatformErrorCodes_ClanFieldContainsReservedTerms                         = PlatformErrorCodes(754)
	PlatformErrorCodes_ClanFieldContainsInappropriateContent                  = PlatformErrorCodes(755)
	PlatformErrorCodes_ItemAlreadyFollowed                                    = PlatformErrorCodes(801)
	PlatformErrorCodes_ItemNotFollowed                                        = PlatformErrorCodes(802)
	PlatformErrorCodes_CannotFollowSelf                                       = PlatformErrorCodes(803)
	PlatformErrorCodes_GroupFollowLimitExceeded                               = PlatformErrorCodes(804)
	PlatformErrorCodes_TagFollowLimitExceeded                                 = PlatformErrorCodes(805)
	PlatformErrorCodes_UserFollowLimitExceeded                                = PlatformErrorCodes(806)
	PlatformErrorCodes_FollowUnsupportedEntityType                            = PlatformErrorCodes(807)
	PlatformErrorCodes_NoValidTagsInList                                      = PlatformErrorCodes(900)
	PlatformErrorCodes_BelowMinimumSuggestionLength                           = PlatformErrorCodes(901)
	PlatformErrorCodes_CannotGetSuggestionsOnMultipleTagsSimultaneously       = PlatformErrorCodes(902)
	PlatformErrorCodes_NotAValidPartialTag                                    = PlatformErrorCodes(903)
	PlatformErrorCodes_TagSuggestionsUnknownSqlResult                         = PlatformErrorCodes(904)
	PlatformErrorCodes_TagsUnableToLoadPopularTagsFromDatabase                = PlatformErrorCodes(905)
	PlatformErrorCodes_TagInvalid                                             = PlatformErrorCodes(906)
	PlatformErrorCodes_TagNotFound                                            = PlatformErrorCodes(907)
	PlatformErrorCodes_SingleTagExpected                                      = PlatformErrorCodes(908)
	PlatformErrorCodes_TagsExceededMaximumPerItem                             = PlatformErrorCodes(909)
	PlatformErrorCodes_IgnoreInvalidParameters                                = PlatformErrorCodes(1000)
	PlatformErrorCodes_IgnoreSqlException                                     = PlatformErrorCodes(1001)
	PlatformErrorCodes_IgnoreErrorRetrievingGroupPermissions                  = PlatformErrorCodes(1002)
	PlatformErrorCodes_IgnoreErrorInsufficientPermission                      = PlatformErrorCodes(1003)
	PlatformErrorCodes_IgnoreErrorRetrievingItem                              = PlatformErrorCodes(1004)
	PlatformErrorCodes_IgnoreCannotIgnoreSelf                                 = PlatformErrorCodes(1005)
	PlatformErrorCodes_IgnoreIllegalType                                      = PlatformErrorCodes(1006)
	PlatformErrorCodes_IgnoreNotFound                                         = PlatformErrorCodes(1007)
	PlatformErrorCodes_IgnoreUserGloballyIgnored                              = PlatformErrorCodes(1008)
	PlatformErrorCodes_IgnoreUserIgnored                                      = PlatformErrorCodes(1009)
	PlatformErrorCodes_TargetUserIgnored                                      = PlatformErrorCodes(1010)
	PlatformErrorCodes_NotificationSettingInvalid                             = PlatformErrorCodes(1100)
	PlatformErrorCodes_PsnApiExpiredAccessToken                               = PlatformErrorCodes(1204)
	PlatformErrorCodes_PSNExForbidden                                         = PlatformErrorCodes(1205)
	PlatformErrorCodes_PSNExSystemDisabled                                    = PlatformErrorCodes(1218)
	PlatformErrorCodes_PsnApiErrorCodeUnknown                                 = PlatformErrorCodes(1223)
	PlatformErrorCodes_PsnApiErrorWebException                                = PlatformErrorCodes(1224)
	PlatformErrorCodes_PsnApiBadRequest                                       = PlatformErrorCodes(1225)
	PlatformErrorCodes_PsnApiAccessTokenRequired                              = PlatformErrorCodes(1226)
	PlatformErrorCodes_PsnApiInvalidAccessToken                               = PlatformErrorCodes(1227)
	PlatformErrorCodes_PsnApiBannedUser                                       = PlatformErrorCodes(1229)
	PlatformErrorCodes_PsnApiAccountUpgradeRequired                           = PlatformErrorCodes(1230)
	PlatformErrorCodes_PsnApiServiceTemporarilyUnavailable                    = PlatformErrorCodes(1231)
	PlatformErrorCodes_PsnApiServerBusy                                       = PlatformErrorCodes(1232)
	PlatformErrorCodes_PsnApiUnderMaintenance                                 = PlatformErrorCodes(1233)
	PlatformErrorCodes_PsnApiProfileUserNotFound                              = PlatformErrorCodes(1234)
	PlatformErrorCodes_PsnApiProfilePrivacyRestriction                        = PlatformErrorCodes(1235)
	PlatformErrorCodes_PsnApiProfileUnderMaintenance                          = PlatformErrorCodes(1236)
	PlatformErrorCodes_PsnApiAccountAttributeMissing                          = PlatformErrorCodes(1237)
	PlatformErrorCodes_PsnApiNoPermission                                     = PlatformErrorCodes(1238)
	PlatformErrorCodes_PsnApiTargetUserBlocked                                = PlatformErrorCodes(1239)
	PlatformErrorCodes_PsnApiJwksMissing                                      = PlatformErrorCodes(1240)
	PlatformErrorCodes_PsnApiJwtMalformedHeader                               = PlatformErrorCodes(1241)
	PlatformErrorCodes_PsnApiJwtMalformedPayload                              = PlatformErrorCodes(1242)
	PlatformErrorCodes_XblExSystemDisabled                                    = PlatformErrorCodes(1300)
	PlatformErrorCodes_XblExUnknownError                                      = PlatformErrorCodes(1301)
	PlatformErrorCodes_XblApiErrorWebException                                = PlatformErrorCodes(1302)
	PlatformErrorCodes_XblStsTokenInvalid                                     = PlatformErrorCodes(1303)
	PlatformErrorCodes_XblStsMissingToken                                     = PlatformErrorCodes(1304)
	PlatformErrorCodes_XblStsExpiredToken                                     = PlatformErrorCodes(1305)
	PlatformErrorCodes_XblAccessToTheSandboxDenied                            = PlatformErrorCodes(1306)
	PlatformErrorCodes_XblMsaResponseMissing                                  = PlatformErrorCodes(1307)
	PlatformErrorCodes_XblMsaAccessTokenExpired                               = PlatformErrorCodes(1308)
	PlatformErrorCodes_XblMsaInvalidRequest                                   = PlatformErrorCodes(1309)
	PlatformErrorCodes_XblMsaFriendsRequireSignIn                             = PlatformErrorCodes(1310)
	PlatformErrorCodes_XblUserActionRequired                                  = PlatformErrorCodes(1311)
	PlatformErrorCodes_XblParentalControls                                    = PlatformErrorCodes(1312)
	PlatformErrorCodes_XblDeveloperAccount                                    = PlatformErrorCodes(1313)
	PlatformErrorCodes_XblUserTokenExpired                                    = PlatformErrorCodes(1314)
	PlatformErrorCodes_XblUserTokenInvalid                                    = PlatformErrorCodes(1315)
	PlatformErrorCodes_XblOffline                                             = PlatformErrorCodes(1316)
	PlatformErrorCodes_XblUnknownErrorCode                                    = PlatformErrorCodes(1317)
	PlatformErrorCodes_XblMsaInvalidGrant                                     = PlatformErrorCodes(1318)
	PlatformErrorCodes_ReportNotYetResolved                                   = PlatformErrorCodes(1400)
	PlatformErrorCodes_ReportOverturnDoesNotChangeDecision                    = PlatformErrorCodes(1401)
	PlatformErrorCodes_ReportNotFound                                         = PlatformErrorCodes(1402)
	PlatformErrorCodes_ReportAlreadyReported                                  = PlatformErrorCodes(1403)
	PlatformErrorCodes_ReportInvalidResolution                                = PlatformErrorCodes(1404)
	PlatformErrorCodes_ReportNotAssignedToYou                                 = PlatformErrorCodes(1405)
	PlatformErrorCodes_LegacyGameStatsSystemDisabled                          = PlatformErrorCodes(1500)
	PlatformErrorCodes_LegacyGameStatsUnknownError                            = PlatformErrorCodes(1501)
	PlatformErrorCodes_LegacyGameStatsMalformedSneakerNetCode                 = PlatformErrorCodes(1502)
	PlatformErrorCodes_DestinyAccountAcquisitionFailure                       = PlatformErrorCodes(1600)
	PlatformErrorCodes_DestinyAccountNotFound                                 = PlatformErrorCodes(1601)
	PlatformErrorCodes_DestinyBuildStatsDatabaseError                         = PlatformErrorCodes(1602)
	PlatformErrorCodes_DestinyCharacterStatsDatabaseError                     = PlatformErrorCodes(1603)
	PlatformErrorCodes_DestinyPvPStatsDatabaseError                           = PlatformErrorCodes(1604)
	PlatformErrorCodes_DestinyPvEStatsDatabaseError                           = PlatformErrorCodes(1605)
	PlatformErrorCodes_DestinyGrimoireStatsDatabaseError                      = PlatformErrorCodes(1606)
	PlatformErrorCodes_DestinyStatsParameterMembershipTypeParseError          = PlatformErrorCodes(1607)
	PlatformErrorCodes_DestinyStatsParameterMembershipIdParseError            = PlatformErrorCodes(1608)
	PlatformErrorCodes_DestinyStatsParameterRangeParseError                   = PlatformErrorCodes(1609)
	PlatformErrorCodes_DestinyStringItemHashNotFound                          = PlatformErrorCodes(1610)
	PlatformErrorCodes_DestinyStringSetNotFound                               = PlatformErrorCodes(1611)
	PlatformErrorCodes_DestinyContentLookupNotFoundForKey                     = PlatformErrorCodes(1612)
	PlatformErrorCodes_DestinyContentItemNotFound                             = PlatformErrorCodes(1613)
	PlatformErrorCodes_DestinyContentSectionNotFound                          = PlatformErrorCodes(1614)
	PlatformErrorCodes_DestinyContentPropertyNotFound                         = PlatformErrorCodes(1615)
	PlatformErrorCodes_DestinyContentConfigNotFound                           = PlatformErrorCodes(1616)
	PlatformErrorCodes_DestinyContentPropertyBucketValueNotFound              = PlatformErrorCodes(1617)
	PlatformErrorCodes_DestinyUnexpectedError                                 = PlatformErrorCodes(1618)
	PlatformErrorCodes_DestinyInvalidAction                                   = PlatformErrorCodes(1619)
	PlatformErrorCodes_DestinyCharacterNotFound                               = PlatformErrorCodes(1620)
	PlatformErrorCodes_DestinyInvalidFlag                                     = PlatformErrorCodes(1621)
	PlatformErrorCodes_DestinyInvalidRequest                                  = PlatformErrorCodes(1622)
	PlatformErrorCodes_DestinyItemNotFound                                    = PlatformErrorCodes(1623)
	PlatformErrorCodes_DestinyInvalidCustomizationChoices                     = PlatformErrorCodes(1624)
	PlatformErrorCodes_DestinyVendorItemNotFound                              = PlatformErrorCodes(1625)
	PlatformErrorCodes_DestinyInternalError                                   = PlatformErrorCodes(1626)
	PlatformErrorCodes_DestinyVendorNotFound                                  = PlatformErrorCodes(1627)
	PlatformErrorCodes_DestinyRecentActivitiesDatabaseError                   = PlatformErrorCodes(1628)
	PlatformErrorCodes_DestinyItemBucketNotFound                              = PlatformErrorCodes(1629)
	PlatformErrorCodes_DestinyInvalidMembershipType                           = PlatformErrorCodes(1630)
	PlatformErrorCodes_DestinyVersionIncompatibility                          = PlatformErrorCodes(1631)
	PlatformErrorCodes_DestinyItemAlreadyInInventory                          = PlatformErrorCodes(1632)
	PlatformErrorCodes_DestinyBucketNotFound                                  = PlatformErrorCodes(1633)
	PlatformErrorCodes_DestinyCharacterNotInTower                             = PlatformErrorCodes(1634)
	PlatformErrorCodes_DestinyCharacterNotLoggedIn                            = PlatformErrorCodes(1635)
	PlatformErrorCodes_DestinyDefinitionsNotLoaded                            = PlatformErrorCodes(1636)
	PlatformErrorCodes_DestinyInventoryFull                                   = PlatformErrorCodes(1637)
	PlatformErrorCodes_DestinyItemFailedLevelCheck                            = PlatformErrorCodes(1638)
	PlatformErrorCodes_DestinyItemFailedUnlockCheck                           = PlatformErrorCodes(1639)
	PlatformErrorCodes_DestinyItemUnequippable                                = PlatformErrorCodes(1640)
	PlatformErrorCodes_DestinyItemUniqueEquipRestricted                       = PlatformErrorCodes(1641)
	PlatformErrorCodes_DestinyNoRoomInDestination                             = PlatformErrorCodes(1642)
	PlatformErrorCodes_DestinyServiceFailure                                  = PlatformErrorCodes(1643)
	PlatformErrorCodes_DestinyServiceRetired                                  = PlatformErrorCodes(1644)
	PlatformErrorCodes_DestinyTransferFailed                                  = PlatformErrorCodes(1645)
	PlatformErrorCodes_DestinyTransferNotFoundForSourceBucket                 = PlatformErrorCodes(1646)
	PlatformErrorCodes_DestinyUnexpectedResultInVendorTransferCheck           = PlatformErrorCodes(1647)
	PlatformErrorCodes_DestinyUniquenessViolation                             = PlatformErrorCodes(1648)
	PlatformErrorCodes_DestinyErrorDeserializationFailure                     = PlatformErrorCodes(1649)
	PlatformErrorCodes_DestinyValidAccountTicketRequired                      = PlatformErrorCodes(1650)
	PlatformErrorCodes_DestinyShardRelayClientTimeout                         = PlatformErrorCodes(1651)
	PlatformErrorCodes_DestinyShardRelayProxyTimeout                          = PlatformErrorCodes(1652)
	PlatformErrorCodes_DestinyPGCRNotFound                                    = PlatformErrorCodes(1653)
	PlatformErrorCodes_DestinyAccountMustBeOffline                            = PlatformErrorCodes(1654)
	PlatformErrorCodes_DestinyCanOnlyEquipInGame                              = PlatformErrorCodes(1655)
	PlatformErrorCodes_DestinyCannotPerformActionOnEquippedItem               = PlatformErrorCodes(1656)
	PlatformErrorCodes_DestinyQuestAlreadyCompleted                           = PlatformErrorCodes(1657)
	PlatformErrorCodes_DestinyQuestAlreadyTracked                             = PlatformErrorCodes(1658)
	PlatformErrorCodes_DestinyTrackableQuestsFull                             = PlatformErrorCodes(1659)
	PlatformErrorCodes_DestinyItemNotTransferrable                            = PlatformErrorCodes(1660)
	PlatformErrorCodes_DestinyVendorPurchaseNotAllowed                        = PlatformErrorCodes(1661)
	PlatformErrorCodes_DestinyContentVersionMismatch                          = PlatformErrorCodes(1662)
	PlatformErrorCodes_DestinyItemActionForbidden                             = PlatformErrorCodes(1663)
	PlatformErrorCodes_DestinyRefundInvalid                                   = PlatformErrorCodes(1664)
	PlatformErrorCodes_DestinyPrivacyRestriction                              = PlatformErrorCodes(1665)
	PlatformErrorCodes_DestinyActionInsufficientPrivileges                    = PlatformErrorCodes(1666)
	PlatformErrorCodes_DestinyInvalidClaimException                           = PlatformErrorCodes(1667)
	PlatformErrorCodes_DestinyLegacyPlatformRestricted                        = PlatformErrorCodes(1668)
	PlatformErrorCodes_DestinyLegacyPlatformInUse                             = PlatformErrorCodes(1669)
	PlatformErrorCodes_DestinyLegacyPlatformInaccessible                      = PlatformErrorCodes(1670)
	PlatformErrorCodes_DestinyCannotPerformActionAtThisLocation               = PlatformErrorCodes(1671)
	PlatformErrorCodes_DestinyThrottledByGameServer                           = PlatformErrorCodes(1672)
	PlatformErrorCodes_DestinyItemNotTransferrableHasSideEffects              = PlatformErrorCodes(1673)
	PlatformErrorCodes_DestinyItemLocked                                      = PlatformErrorCodes(1674)
	PlatformErrorCodes_DestinyCannotAffordMaterialRequirements                = PlatformErrorCodes(1675)
	PlatformErrorCodes_DestinyFailedPlugInsertionRules                        = PlatformErrorCodes(1676)
	PlatformErrorCodes_DestinySocketNotFound                                  = PlatformErrorCodes(1677)
	PlatformErrorCodes_DestinySocketActionNotAllowed                          = PlatformErrorCodes(1678)
	PlatformErrorCodes_DestinySocketAlreadyHasPlug                            = PlatformErrorCodes(1679)
	PlatformErrorCodes_DestinyPlugItemNotAvailable                            = PlatformErrorCodes(1680)
	PlatformErrorCodes_DestinyCharacterLoggedInNotAllowed                     = PlatformErrorCodes(1681)
	PlatformErrorCodes_DestinyPublicAccountNotAccessible                      = PlatformErrorCodes(1682)
	PlatformErrorCodes_DestinyClaimsItemAlreadyClaimed                        = PlatformErrorCodes(1683)
	PlatformErrorCodes_DestinyClaimsNoInventorySpace                          = PlatformErrorCodes(1684)
	PlatformErrorCodes_DestinyClaimsRequiredLevelNotMet                       = PlatformErrorCodes(1685)
	PlatformErrorCodes_DestinyClaimsInvalidState                              = PlatformErrorCodes(1686)
	PlatformErrorCodes_DestinyNotEnoughRoomForMultipleRewards                 = PlatformErrorCodes(1687)
	PlatformErrorCodes_DestinyDirectBabelClientTimeout                        = PlatformErrorCodes(1688)
	PlatformErrorCodes_FbInvalidRequest                                       = PlatformErrorCodes(1800)
	PlatformErrorCodes_FbRedirectMismatch                                     = PlatformErrorCodes(1801)
	PlatformErrorCodes_FbAccessDenied                                         = PlatformErrorCodes(1802)
	PlatformErrorCodes_FbUnsupportedResponseType                              = PlatformErrorCodes(1803)
	PlatformErrorCodes_FbInvalidScope                                         = PlatformErrorCodes(1804)
	PlatformErrorCodes_FbUnsupportedGrantType                                 = PlatformErrorCodes(1805)
	PlatformErrorCodes_FbInvalidGrant                                         = PlatformErrorCodes(1806)
	PlatformErrorCodes_InvitationExpired                                      = PlatformErrorCodes(1900)
	PlatformErrorCodes_InvitationUnknownType                                  = PlatformErrorCodes(1901)
	PlatformErrorCodes_InvitationInvalidResponseStatus                        = PlatformErrorCodes(1902)
	PlatformErrorCodes_InvitationInvalidType                                  = PlatformErrorCodes(1903)
	PlatformErrorCodes_InvitationAlreadyPending                               = PlatformErrorCodes(1904)
	PlatformErrorCodes_InvitationInsufficientPermission                       = PlatformErrorCodes(1905)
	PlatformErrorCodes_InvitationInvalidCode                                  = PlatformErrorCodes(1906)
	PlatformErrorCodes_InvitationInvalidTargetState                           = PlatformErrorCodes(1907)
	PlatformErrorCodes_InvitationCannotBeReactivated                          = PlatformErrorCodes(1908)
	PlatformErrorCodes_InvitationNoRecipients                                 = PlatformErrorCodes(1910)
	PlatformErrorCodes_InvitationGroupCannotSendToSelf                        = PlatformErrorCodes(1911)
	PlatformErrorCodes_InvitationTooManyRecipients                            = PlatformErrorCodes(1912)
	PlatformErrorCodes_InvitationInvalid                                      = PlatformErrorCodes(1913)
	PlatformErrorCodes_InvitationNotFound                                     = PlatformErrorCodes(1914)
	PlatformErrorCodes_TokenInvalid                                           = PlatformErrorCodes(2000)
	PlatformErrorCodes_TokenBadFormat                                         = PlatformErrorCodes(2001)
	PlatformErrorCodes_TokenAlreadyClaimed                                    = PlatformErrorCodes(2002)
	PlatformErrorCodes_TokenAlreadyClaimedSelf                                = PlatformErrorCodes(2003)
	PlatformErrorCodes_TokenThrottling                                        = PlatformErrorCodes(2004)
	PlatformErrorCodes_TokenUnknownRedemptionFailure                          = PlatformErrorCodes(2005)
	PlatformErrorCodes_TokenPurchaseClaimFailedAfterTokenClaimed              = PlatformErrorCodes(2006)
	PlatformErrorCodes_TokenUserAlreadyOwnsOffer                              = PlatformErrorCodes(2007)
	PlatformErrorCodes_TokenInvalidOfferKey                                   = PlatformErrorCodes(2008)
	PlatformErrorCodes_TokenEmailNotValidated                                 = PlatformErrorCodes(2009)
	PlatformErrorCodes_TokenProvisioningBadVendorOrOffer                      = PlatformErrorCodes(2010)
	PlatformErrorCodes_TokenPurchaseHistoryUnknownError                       = PlatformErrorCodes(2011)
	PlatformErrorCodes_TokenThrottleStateUnknownError                         = PlatformErrorCodes(2012)
	PlatformErrorCodes_TokenUserAgeNotVerified                                = PlatformErrorCodes(2013)
	PlatformErrorCodes_TokenExceededOfferMaximum                              = PlatformErrorCodes(2014)
	PlatformErrorCodes_TokenNoAvailableUnlocks                                = PlatformErrorCodes(2015)
	PlatformErrorCodes_TokenMarketplaceInvalidPlatform                        = PlatformErrorCodes(2016)
	PlatformErrorCodes_TokenNoMarketplaceCodesFound                           = PlatformErrorCodes(2017)
	PlatformErrorCodes_TokenOfferNotAvailableForRedemption                    = PlatformErrorCodes(2018)
	PlatformErrorCodes_TokenUnlockPartialFailure                              = PlatformErrorCodes(2019)
	PlatformErrorCodes_TokenMarketplaceInvalidRegion                          = PlatformErrorCodes(2020)
	PlatformErrorCodes_TokenOfferExpired                                      = PlatformErrorCodes(2021)
	PlatformErrorCodes_RAFExceededMaximumReferrals                            = PlatformErrorCodes(2022)
	PlatformErrorCodes_RAFDuplicateBond                                       = PlatformErrorCodes(2023)
	PlatformErrorCodes_RAFNoValidVeteranDestinyMembershipsFound               = PlatformErrorCodes(2024)
	PlatformErrorCodes_RAFNotAValidVeteranUser                                = PlatformErrorCodes(2025)
	PlatformErrorCodes_RAFCodeAlreadyClaimedOrNotFound                        = PlatformErrorCodes(2026)
	PlatformErrorCodes_RAFMismatchedDestinyMembershipType                     = PlatformErrorCodes(2027)
	PlatformErrorCodes_RAFUnableToAccessPurchaseHistory                       = PlatformErrorCodes(2028)
	PlatformErrorCodes_RAFUnableToCreateBond                                  = PlatformErrorCodes(2029)
	PlatformErrorCodes_RAFUnableToFindBond                                    = PlatformErrorCodes(2030)
	PlatformErrorCodes_RAFUnableToRemoveBond                                  = PlatformErrorCodes(2031)
	PlatformErrorCodes_RAFCannotBondToSelf                                    = PlatformErrorCodes(2032)
	PlatformErrorCodes_RAFInvalidPlatform                                     = PlatformErrorCodes(2033)
	PlatformErrorCodes_RAFGenerateThrottled                                   = PlatformErrorCodes(2034)
	PlatformErrorCodes_RAFUnableToCreateBondVersionMismatch                   = PlatformErrorCodes(2035)
	PlatformErrorCodes_RAFUnableToRemoveBondVersionMismatch                   = PlatformErrorCodes(2036)
	PlatformErrorCodes_RAFRedeemThrottled                                     = PlatformErrorCodes(2037)
	PlatformErrorCodes_NoAvailableDiscountCode                                = PlatformErrorCodes(2038)
	PlatformErrorCodes_DiscountAlreadyClaimed                                 = PlatformErrorCodes(2039)
	PlatformErrorCodes_DiscountClaimFailure                                   = PlatformErrorCodes(2040)
	PlatformErrorCodes_DiscountConfigurationFailure                           = PlatformErrorCodes(2041)
	PlatformErrorCodes_DiscountGenerationFailure                              = PlatformErrorCodes(2042)
	PlatformErrorCodes_DiscountAlreadyExists                                  = PlatformErrorCodes(2043)
	PlatformErrorCodes_TokenRequiresCredentialXuid                            = PlatformErrorCodes(2044)
	PlatformErrorCodes_TokenRequiresCredentialPsnid                           = PlatformErrorCodes(2045)
	PlatformErrorCodes_OfferRequired                                          = PlatformErrorCodes(2046)
	PlatformErrorCodes_UnknownEververseHistoryError                           = PlatformErrorCodes(2047)
	PlatformErrorCodes_MissingEververseHistoryError                           = PlatformErrorCodes(2048)
	PlatformErrorCodes_BungieRewardEmailStateInvalid                          = PlatformErrorCodes(2049)
	PlatformErrorCodes_BungieRewardNotYetClaimable                            = PlatformErrorCodes(2050)
	PlatformErrorCodes_MissingOfferConfig                                     = PlatformErrorCodes(2051)
	PlatformErrorCodes_RAFQuestEntitlementRequiresBnet                        = PlatformErrorCodes(2052)
	PlatformErrorCodes_RAFQuestEntitlementTransportFailure                    = PlatformErrorCodes(2053)
	PlatformErrorCodes_RAFQuestEntitlementUnknownFailure                      = PlatformErrorCodes(2054)
	PlatformErrorCodes_RAFVeteranRewardUnknownFailure                         = PlatformErrorCodes(2055)
	PlatformErrorCodes_RAFTooEarlyToCancelBond                                = PlatformErrorCodes(2056)
	PlatformErrorCodes_LoyaltyRewardAlreadyRedeemed                           = PlatformErrorCodes(2057)
	PlatformErrorCodes_UnclaimedLoyaltyRewardEntryNotFound                    = PlatformErrorCodes(2058)
	PlatformErrorCodes_PartnerOfferPartialFailure                             = PlatformErrorCodes(2059)
	PlatformErrorCodes_PartnerOfferAlreadyClaimed                             = PlatformErrorCodes(2060)
	PlatformErrorCodes_PartnerOfferSkuNotFound                                = PlatformErrorCodes(2061)
	PlatformErrorCodes_PartnerOfferSkuExpired                                 = PlatformErrorCodes(2062)
	PlatformErrorCodes_PartnerOfferPermissionFailure                          = PlatformErrorCodes(2063)
	PlatformErrorCodes_PartnerOfferNoDestinyAccount                           = PlatformErrorCodes(2064)
	PlatformErrorCodes_PartnerOfferApplyDataNotFound                          = PlatformErrorCodes(2065)
	PlatformErrorCodes_ApiExceededMaxKeys                                     = PlatformErrorCodes(2100)
	PlatformErrorCodes_ApiInvalidOrExpiredKey                                 = PlatformErrorCodes(2101)
	PlatformErrorCodes_ApiKeyMissingFromRequest                               = PlatformErrorCodes(2102)
	PlatformErrorCodes_ApplicationDisabled                                    = PlatformErrorCodes(2103)
	PlatformErrorCodes_ApplicationExceededMax                                 = PlatformErrorCodes(2104)
	PlatformErrorCodes_ApplicationDisallowedByScope                           = PlatformErrorCodes(2105)
	PlatformErrorCodes_AuthorizationCodeInvalid                               = PlatformErrorCodes(2106)
	PlatformErrorCodes_OriginHeaderDoesNotMatchKey                            = PlatformErrorCodes(2107)
	PlatformErrorCodes_AccessNotPermittedByApplicationScope                   = PlatformErrorCodes(2108)
	PlatformErrorCodes_ApplicationNameIsTaken                                 = PlatformErrorCodes(2109)
	PlatformErrorCodes_RefreshTokenNotYetValid                                = PlatformErrorCodes(2110)
	PlatformErrorCodes_AccessTokenHasExpired                                  = PlatformErrorCodes(2111)
	PlatformErrorCodes_ApplicationTokenFormatNotValid                         = PlatformErrorCodes(2112)
	PlatformErrorCodes_ApplicationNotConfiguredForBungieAuth                  = PlatformErrorCodes(2113)
	PlatformErrorCodes_ApplicationNotConfiguredForOAuth                       = PlatformErrorCodes(2114)
	PlatformErrorCodes_OAuthAccessTokenExpired                                = PlatformErrorCodes(2115)
	PlatformErrorCodes_ApplicationTokenKeyIdDoesNotExist                      = PlatformErrorCodes(2116)
	PlatformErrorCodes_ProvidedTokenNotValidRefreshToken                      = PlatformErrorCodes(2117)
	PlatformErrorCodes_RefreshTokenExpired                                    = PlatformErrorCodes(2118)
	PlatformErrorCodes_AuthorizationRecordInvalid                             = PlatformErrorCodes(2119)
	PlatformErrorCodes_TokenPreviouslyRevoked                                 = PlatformErrorCodes(2120)
	PlatformErrorCodes_TokenInvalidMembership                                 = PlatformErrorCodes(2121)
	PlatformErrorCodes_AuthorizationCodeStale                                 = PlatformErrorCodes(2122)
	PlatformErrorCodes_AuthorizationRecordExpired                             = PlatformErrorCodes(2123)
	PlatformErrorCodes_AuthorizationRecordRevoked                             = PlatformErrorCodes(2124)
	PlatformErrorCodes_AuthorizationRecordInactiveApiKey                      = PlatformErrorCodes(2125)
	PlatformErrorCodes_AuthorizationRecordApiKeyMatching                      = PlatformErrorCodes(2126)
	PlatformErrorCodes_PartnershipInvalidType                                 = PlatformErrorCodes(2200)
	PlatformErrorCodes_PartnershipValidationError                             = PlatformErrorCodes(2201)
	PlatformErrorCodes_PartnershipValidationTimeout                           = PlatformErrorCodes(2202)
	PlatformErrorCodes_PartnershipAccessFailure                               = PlatformErrorCodes(2203)
	PlatformErrorCodes_PartnershipAccountInvalid                              = PlatformErrorCodes(2204)
	PlatformErrorCodes_PartnershipGetAccountInfoFailure                       = PlatformErrorCodes(2205)
	PlatformErrorCodes_PartnershipDisabled                                    = PlatformErrorCodes(2206)
	PlatformErrorCodes_PartnershipAlreadyExists                               = PlatformErrorCodes(2207)
	PlatformErrorCodes_CommunityStreamingUnavailable                          = PlatformErrorCodes(2300)
	PlatformErrorCodes_TwitchNotLinked                                        = PlatformErrorCodes(2500)
	PlatformErrorCodes_TwitchAccountNotFound                                  = PlatformErrorCodes(2501)
	PlatformErrorCodes_TwitchCouldNotLoadDestinyInfo                          = PlatformErrorCodes(2502)
	PlatformErrorCodes_TwitchCouldNotRegisterUser                             = PlatformErrorCodes(2503)
	PlatformErrorCodes_TwitchCouldNotUnregisterUser                           = PlatformErrorCodes(2504)
	PlatformErrorCodes_TwitchRequiresRelinking                                = PlatformErrorCodes(2505)
	PlatformErrorCodes_TwitchNoPlatformChosen                                 = PlatformErrorCodes(2506)
	PlatformErrorCodes_TwitchDropHistoryPermissionFailure                     = PlatformErrorCodes(2507)
	PlatformErrorCodes_TwitchDropsRepairPartialFailure                        = PlatformErrorCodes(2508)
	PlatformErrorCodes_TwitchNotAuthorized                                    = PlatformErrorCodes(2509)
	PlatformErrorCodes_TwitchUnknownAuthorizationFailure                      = PlatformErrorCodes(2510)
	PlatformErrorCodes_TrendingCategoryNotFound                               = PlatformErrorCodes(2600)
	PlatformErrorCodes_TrendingEntryTypeNotSupported                          = PlatformErrorCodes(2601)
	PlatformErrorCodes_ReportOffenderNotInPgcr                                = PlatformErrorCodes(2700)
	PlatformErrorCodes_ReportRequestorNotInPgcr                               = PlatformErrorCodes(2701)
	PlatformErrorCodes_ReportSubmissionFailed                                 = PlatformErrorCodes(2702)
	PlatformErrorCodes_ReportCannotReportSelf                                 = PlatformErrorCodes(2703)
	PlatformErrorCodes_AwaTypeDisabled                                        = PlatformErrorCodes(2800)
	PlatformErrorCodes_AwaTooManyPendingRequests                              = PlatformErrorCodes(2801)
	PlatformErrorCodes_AwaTheFeatureRequiresARegisteredDevice                 = PlatformErrorCodes(2802)
	PlatformErrorCodes_AwaRequestWasUnansweredForTooLong                      = PlatformErrorCodes(2803)
	PlatformErrorCodes_AwaWriteRequestMissingOrInvalidToken                   = PlatformErrorCodes(2804)
	PlatformErrorCodes_AwaWriteRequestTokenExpired                            = PlatformErrorCodes(2805)
	PlatformErrorCodes_AwaWriteRequestTokenUsageLimitReached                  = PlatformErrorCodes(2806)
	PlatformErrorCodes_SteamWebApiError                                       = PlatformErrorCodes(2900)
	PlatformErrorCodes_SteamWebNullResponseError                              = PlatformErrorCodes(2901)
	PlatformErrorCodes_SteamAccountRequired                                   = PlatformErrorCodes(2902)
	PlatformErrorCodes_SteamNotAuthorized                                     = PlatformErrorCodes(2903)
	PlatformErrorCodes_ClanFireteamNotFound                                   = PlatformErrorCodes(3000)
	PlatformErrorCodes_ClanFireteamAddNoAlternatesForImmediate                = PlatformErrorCodes(3001)
	PlatformErrorCodes_ClanFireteamFull                                       = PlatformErrorCodes(3002)
	PlatformErrorCodes_ClanFireteamAltFull                                    = PlatformErrorCodes(3003)
	PlatformErrorCodes_ClanFireteamBlocked                                    = PlatformErrorCodes(3004)
	PlatformErrorCodes_ClanFireteamPlayerEntryNotFound                        = PlatformErrorCodes(3005)
	PlatformErrorCodes_ClanFireteamPermissions                                = PlatformErrorCodes(3006)
	PlatformErrorCodes_ClanFireteamInvalidPlatform                            = PlatformErrorCodes(3007)
	PlatformErrorCodes_ClanFireteamCannotAdjustSlotCount                      = PlatformErrorCodes(3008)
	PlatformErrorCodes_ClanFireteamInvalidPlayerPlatform                      = PlatformErrorCodes(3009)
	PlatformErrorCodes_ClanFireteamNotReadyForInvitesNotEnoughPlayers         = PlatformErrorCodes(3010)
	PlatformErrorCodes_ClanFireteamGameInvitesNotSupportForPlatform           = PlatformErrorCodes(3011)
	PlatformErrorCodes_ClanFireteamPlatformInvitePreqFailure                  = PlatformErrorCodes(3012)
	PlatformErrorCodes_ClanFireteamInvalidAuthContext                         = PlatformErrorCodes(3013)
	PlatformErrorCodes_ClanFireteamInvalidAuthProviderPsn                     = PlatformErrorCodes(3014)
	PlatformErrorCodes_ClanFireteamPs4SessionFull                             = PlatformErrorCodes(3015)
	PlatformErrorCodes_ClanFireteamInvalidAuthToken                           = PlatformErrorCodes(3016)
	PlatformErrorCodes_ClanFireteamScheduledFireteamsDisabled                 = PlatformErrorCodes(3017)
	PlatformErrorCodes_ClanFireteamNotReadyForInvitesNotScheduledYet          = PlatformErrorCodes(3018)
	PlatformErrorCodes_ClanFireteamNotReadyForInvitesClosed                   = PlatformErrorCodes(3019)
	PlatformErrorCodes_ClanFireteamScheduledFireteamsRequireAdminPermissions  = PlatformErrorCodes(3020)
	PlatformErrorCodes_ClanFireteamNonPublicMustHaveClan                      = PlatformErrorCodes(3021)
	PlatformErrorCodes_ClanFireteamPublicCreationRestriction                  = PlatformErrorCodes(3022)
	PlatformErrorCodes_ClanFireteamAlreadyJoined                              = PlatformErrorCodes(3023)
	PlatformErrorCodes_ClanFireteamScheduledFireteamsRange                    = PlatformErrorCodes(3024)
	PlatformErrorCodes_ClanFireteamPublicCreationRestrictionExtended          = PlatformErrorCodes(3025)
	PlatformErrorCodes_ClanFireteamExpired                                    = PlatformErrorCodes(3026)
	PlatformErrorCodes_ClanFireteamInvalidAuthProvider                        = PlatformErrorCodes(3027)
	PlatformErrorCodes_ClanFireteamInvalidAuthProviderXuid                    = PlatformErrorCodes(3028)
	PlatformErrorCodes_ClanFireteamThrottle                                   = PlatformErrorCodes(3029)
	PlatformErrorCodes_ClanFireteamTooManyOpenScheduledFireteams              = PlatformErrorCodes(3030)
	PlatformErrorCodes_ClanFireteamCannotReopenScheduledFireteams             = PlatformErrorCodes(3031)
	PlatformErrorCodes_ClanFireteamJoinNoAccountSpecified                     = PlatformErrorCodes(3032)
	PlatformErrorCodes_ClanFireteamMinDestiny2ProgressForCreation             = PlatformErrorCodes(3033)
	PlatformErrorCodes_ClanFireteamMinDestiny2ProgressForJoin                 = PlatformErrorCodes(3034)
	PlatformErrorCodes_ClanFireteamSMSOrPurchaseRequiredCreate                = PlatformErrorCodes(3035)
	PlatformErrorCodes_ClanFireteamPurchaseRequiredCreate                     = PlatformErrorCodes(3036)
	PlatformErrorCodes_ClanFireteamSMSOrPurchaseRequiredJoin                  = PlatformErrorCodes(3037)
	PlatformErrorCodes_ClanFireteamPurchaseRequiredJoin                       = PlatformErrorCodes(3038)
	PlatformErrorCodes_CrossSaveOverriddenAccountNotFound                     = PlatformErrorCodes(3200)
	PlatformErrorCodes_CrossSaveTooManyOverriddenPlatforms                    = PlatformErrorCodes(3201)
	PlatformErrorCodes_CrossSaveNoOverriddenPlatforms                         = PlatformErrorCodes(3202)
	PlatformErrorCodes_CrossSavePrimaryAccountNotFound                        = PlatformErrorCodes(3203)
	PlatformErrorCodes_CrossSaveRequestInvalid                                = PlatformErrorCodes(3204)
	PlatformErrorCodes_CrossSaveBungieAccountValidationFailure                = PlatformErrorCodes(3206)
	PlatformErrorCodes_CrossSaveOverriddenPlatformNotAllowed                  = PlatformErrorCodes(3207)
	PlatformErrorCodes_CrossSaveThresholdExceeded                             = PlatformErrorCodes(3208)
	PlatformErrorCodes_CrossSaveIncompatibleMembershipType                    = PlatformErrorCodes(3209)
	PlatformErrorCodes_CrossSaveCouldNotFindLinkedAccountForMembershipType    = PlatformErrorCodes(3210)
	PlatformErrorCodes_CrossSaveCouldNotCreateDestinyProfileForMembershipType = PlatformErrorCodes(3211)
	PlatformErrorCodes_CrossSaveErrorCreatingDestinyProfileForMembershipType  = PlatformErrorCodes(3212)
	PlatformErrorCodes_CrossSaveCannotOverrideSelf                            = PlatformErrorCodes(3213)
	PlatformErrorCodes_CrossSaveRecentSilverPurchase                          = PlatformErrorCodes(3214)
	PlatformErrorCodes_CrossSaveSilverBalanceNegative                         = PlatformErrorCodes(3215)
	PlatformErrorCodes_CrossSaveAccountNotAuthenticated                       = PlatformErrorCodes(3216)
	PlatformErrorCodes_ErrorOneAccountAlreadyActive                           = PlatformErrorCodes(3217)
	PlatformErrorCodes_ErrorOneAccountDestinyRestriction                      = PlatformErrorCodes(3218)
	PlatformErrorCodes_CrossSaveMustMigrateToSteam                            = PlatformErrorCodes(3219)
	PlatformErrorCodes_CrossSaveSteamAlreadyPaired                            = PlatformErrorCodes(3220)
	PlatformErrorCodes_CrossSaveCannotPairJustSteamAndBlizzard                = PlatformErrorCodes(3221)
	PlatformErrorCodes_CrossSaveCannotPairSteamAloneBeforeShadowkeep          = PlatformErrorCodes(3222)
	PlatformErrorCodes_AuthVerificationNotLinkedToAccount                     = PlatformErrorCodes(3300)
	PlatformErrorCodes_PCMigrationMissingBlizzard                             = PlatformErrorCodes(3400)
	PlatformErrorCodes_PCMigrationMissingSteam                                = PlatformErrorCodes(3401)
	PlatformErrorCodes_PCMigrationInvalidBlizzard                             = PlatformErrorCodes(3402)
	PlatformErrorCodes_PCMigrationInvalidSteam                                = PlatformErrorCodes(3403)
	PlatformErrorCodes_PCMigrationUnknownFailure                              = PlatformErrorCodes(3404)
	PlatformErrorCodes_PCMigrationUnknownException                            = PlatformErrorCodes(3405)
	PlatformErrorCodes_PCMigrationNotLinked                                   = PlatformErrorCodes(3406)
	PlatformErrorCodes_PCMigrationAccountsAlreadyUsed                         = PlatformErrorCodes(3407)
	PlatformErrorCodes_PCMigrationStepFailed                                  = PlatformErrorCodes(3408)
	PlatformErrorCodes_PCMigrationInvalidBlizzardCrossSaveState               = PlatformErrorCodes(3409)
	PlatformErrorCodes_PCMigrationDestinationBanned                           = PlatformErrorCodes(3410)
	PlatformErrorCodes_PCMigrationDestinyFailure                              = PlatformErrorCodes(3411)
	PlatformErrorCodes_PCMigrationSilverTransferFailed                        = PlatformErrorCodes(3412)
	PlatformErrorCodes_PCMigrationEntitlementTransferFailed                   = PlatformErrorCodes(3413)
	PlatformErrorCodes_PCMigrationCannotStompClanFounder                      = PlatformErrorCodes(3414)
	PlatformErrorCodes_UnsupportedBrowser                                     = PlatformErrorCodes(3500)
	PlatformErrorCodes_StadiaAccountRequired                                  = PlatformErrorCodes(3600)
	PlatformErrorCodes_ErrorPhoneValidationTooManyUses                        = PlatformErrorCodes(3702)
	PlatformErrorCodes_ErrorPhoneValidationNoAssociatedPhone                  = PlatformErrorCodes(3703)
	PlatformErrorCodes_ErrorPhoneValidationCodeInvalid                        = PlatformErrorCodes(3705)
	PlatformErrorCodes_ErrorPhoneValidationBanned                             = PlatformErrorCodes(3706)
	PlatformErrorCodes_ErrorPhoneValidationCodeTooRecentlySent                = PlatformErrorCodes(3707)
	PlatformErrorCodes_ErrorPhoneValidationCodeExpired                        = PlatformErrorCodes(3708)
	PlatformErrorCodes_ErrorPhoneValidationInvalidNumberType                  = PlatformErrorCodes(3709)
	PlatformErrorCodes_ErrorPhoneValidationCodeTooRecentlyChecked             = PlatformErrorCodes(3710)
	PlatformErrorCodes_ApplePushErrorUnknown                                  = PlatformErrorCodes(3800)
	PlatformErrorCodes_ApplePushErrorNull                                     = PlatformErrorCodes(3801)
	PlatformErrorCodes_ApplePushErrorTimeout                                  = PlatformErrorCodes(3802)
	PlatformErrorCodes_ApplePushBadRequest                                    = PlatformErrorCodes(3803)
	PlatformErrorCodes_ApplePushFailedAuth                                    = PlatformErrorCodes(3804)
	PlatformErrorCodes_ApplePushThrottled                                     = PlatformErrorCodes(3805)
	PlatformErrorCodes_ApplePushServiceUnavailable                            = PlatformErrorCodes(3806)
	PlatformErrorCodes_NotAnImageOrVideo                                      = PlatformErrorCodes(3807)
	PlatformErrorCodes_ErrorBungieFriendsBlockFailed                          = PlatformErrorCodes(3900)
	PlatformErrorCodes_ErrorBungieFriendsAutoReject                           = PlatformErrorCodes(3901)
	PlatformErrorCodes_ErrorBungieFriendsNoRequestFound                       = PlatformErrorCodes(3902)
	PlatformErrorCodes_ErrorBungieFriendsAlreadyFriends                       = PlatformErrorCodes(3903)
	PlatformErrorCodes_ErrorBungieFriendsUnableToRemoveRequest                = PlatformErrorCodes(3904)
	PlatformErrorCodes_ErrorBungieFriendsUnableToRemove                       = PlatformErrorCodes(3905)
	PlatformErrorCodes_ErrorBungieFriendsIdenticalSourceTarget                = PlatformErrorCodes(3906)
	PlatformErrorCodes_ErrorBungieFriendsSelf                                 = PlatformErrorCodes(3907)
	PlatformErrorCodes_ErrorBungieBlockSelf                                   = PlatformErrorCodes(3908)
	PlatformErrorCodes_ErrorBungieFriendsListFull                             = PlatformErrorCodes(3910)
	PlatformErrorCodes_ErrorBungieBlockListFull                               = PlatformErrorCodes(3911)
	PlatformErrorCodes_ErrorEgsUnknown                                        = PlatformErrorCodes(4000)
	PlatformErrorCodes_ErrorEgsBadRequest                                     = PlatformErrorCodes(4001)
	PlatformErrorCodes_ErrorEgsNotAuthorized                                  = PlatformErrorCodes(4002)
	PlatformErrorCodes_ErrorEgsForbidden                                      = PlatformErrorCodes(4003)
	PlatformErrorCodes_ErrorEgsAccountNotFound                                = PlatformErrorCodes(4004)
	PlatformErrorCodes_ErrorEgsWebException                                   = PlatformErrorCodes(4005)
	PlatformErrorCodes_ErrorEgsUnavailable                                    = PlatformErrorCodes(4006)
	PlatformErrorCodes_ErrorEgsJwksMissing                                    = PlatformErrorCodes(4007)
	PlatformErrorCodes_ErrorEgsJwtMalformedHeader                             = PlatformErrorCodes(4008)
	PlatformErrorCodes_ErrorEgsJwtMalformedPayload                            = PlatformErrorCodes(4009)
)
View Source
const (
	FireteamDateRange_All             = FireteamDateRange(0)
	FireteamDateRange_Now             = FireteamDateRange(1)
	FireteamDateRange_TwentyFourHours = FireteamDateRange(2)
	FireteamDateRange_FortyEightHours = FireteamDateRange(3)
	FireteamDateRange_ThisWeek        = FireteamDateRange(4)
)
View Source
const (
	FireteamPlatform_Any          = FireteamPlatform(0)
	FireteamPlatform_Playstation4 = FireteamPlatform(1)
	FireteamPlatform_XboxOne      = FireteamPlatform(2)
	FireteamPlatform_Blizzard     = FireteamPlatform(3)
	FireteamPlatform_Steam        = FireteamPlatform(4)
	FireteamPlatform_Stadia       = FireteamPlatform(5)
	FireteamPlatform_Egs          = FireteamPlatform(6)
)
View Source
const (
	FireteamPlatformInviteResult_None              = FireteamPlatformInviteResult(0)
	FireteamPlatformInviteResult_Success           = FireteamPlatformInviteResult(1)
	FireteamPlatformInviteResult_AlreadyInFireteam = FireteamPlatformInviteResult(2)
	FireteamPlatformInviteResult_Throttled         = FireteamPlatformInviteResult(3)
	FireteamPlatformInviteResult_ServiceError      = FireteamPlatformInviteResult(4)
)
View Source
const (
	FireteamPublicSearchOption_PublicAndPrivate = FireteamPublicSearchOption(0)
	FireteamPublicSearchOption_PublicOnly       = FireteamPublicSearchOption(1)
	FireteamPublicSearchOption_PrivateOnly      = FireteamPublicSearchOption(2)
)
View Source
const (
	FireteamSlotSearch_NoSlotRestriction       = FireteamSlotSearch(0)
	FireteamSlotSearch_HasOpenPlayerSlots      = FireteamSlotSearch(1)
	FireteamSlotSearch_HasOpenPlayerOrAltSlots = FireteamSlotSearch(2)
)
View Source
const (
	CommunityContentSortMode_Trending     = CommunityContentSortMode(0)
	CommunityContentSortMode_Latest       = CommunityContentSortMode(1)
	CommunityContentSortMode_HighestRated = CommunityContentSortMode(2)
)
View Source
const (
	ForumMediaType_None    = ForumMediaType(0)
	ForumMediaType_Image   = ForumMediaType(1)
	ForumMediaType_Video   = ForumMediaType(2)
	ForumMediaType_Youtube = ForumMediaType(3)
)
View Source
const (
	ForumPostPopularity_Empty     = ForumPostPopularity(0)
	ForumPostPopularity_Default   = ForumPostPopularity(1)
	ForumPostPopularity_Discussed = ForumPostPopularity(2)
	ForumPostPopularity_CoolStory = ForumPostPopularity(3)
	ForumPostPopularity_HeatingUp = ForumPostPopularity(4)
	ForumPostPopularity_Hot       = ForumPostPopularity(5)
)
View Source
const (
	ForumPostSort_Default     = ForumPostSort(0)
	ForumPostSort_OldestFirst = ForumPostSort(1)
)
View Source
const (
	ForumRecruitmentIntensityLabel_None         = ForumRecruitmentIntensityLabel(0)
	ForumRecruitmentIntensityLabel_Casual       = ForumRecruitmentIntensityLabel(1)
	ForumRecruitmentIntensityLabel_Professional = ForumRecruitmentIntensityLabel(2)
)
View Source
const (
	ForumRecruitmentToneLabel_None           = ForumRecruitmentToneLabel(0)
	ForumRecruitmentToneLabel_FamilyFriendly = ForumRecruitmentToneLabel(1)
	ForumRecruitmentToneLabel_Rowdy          = ForumRecruitmentToneLabel(2)
)
View Source
const (
	ForumTopicsCategoryFilters_None              = ForumTopicsCategoryFilters(0)
	ForumTopicsCategoryFilters_Links             = ForumTopicsCategoryFilters(1)
	ForumTopicsCategoryFilters_Questions         = ForumTopicsCategoryFilters(2)
	ForumTopicsCategoryFilters_AnsweredQuestions = ForumTopicsCategoryFilters(4)
	ForumTopicsCategoryFilters_Media             = ForumTopicsCategoryFilters(8)
	ForumTopicsCategoryFilters_TextOnly          = ForumTopicsCategoryFilters(16)
	ForumTopicsCategoryFilters_Announcement      = ForumTopicsCategoryFilters(32)
	ForumTopicsCategoryFilters_BungieOfficial    = ForumTopicsCategoryFilters(64)
	ForumTopicsCategoryFilters_Polls             = ForumTopicsCategoryFilters(128)
)
View Source
const (
	ForumTopicsQuickDate_All       = ForumTopicsQuickDate(0)
	ForumTopicsQuickDate_LastYear  = ForumTopicsQuickDate(1)
	ForumTopicsQuickDate_LastMonth = ForumTopicsQuickDate(2)
	ForumTopicsQuickDate_LastWeek  = ForumTopicsQuickDate(3)
	ForumTopicsQuickDate_LastDay   = ForumTopicsQuickDate(4)
)
View Source
const (
	ForumTopicsSort_Default          = ForumTopicsSort(0)
	ForumTopicsSort_LastReplied      = ForumTopicsSort(1)
	ForumTopicsSort_MostReplied      = ForumTopicsSort(2)
	ForumTopicsSort_Popularity       = ForumTopicsSort(3)
	ForumTopicsSort_Controversiality = ForumTopicsSort(4)
	ForumTopicsSort_Liked            = ForumTopicsSort(5)
	ForumTopicsSort_HighestRated     = ForumTopicsSort(6)
	ForumTopicsSort_MostUpvoted      = ForumTopicsSort(7)
)
View Source
const (
	ForumFlags_None                       = ForumFlags(0)
	ForumFlags_BungieStaffPost            = ForumFlags(1)
	ForumFlags_ForumNinjaPost             = ForumFlags(2)
	ForumFlags_ForumMentorPost            = ForumFlags(4)
	ForumFlags_TopicBungieStaffPosted     = ForumFlags(8)
	ForumFlags_TopicBungieVolunteerPosted = ForumFlags(16)
	ForumFlags_QuestionAnsweredByBungie   = ForumFlags(32)
	ForumFlags_QuestionAnsweredByNinja    = ForumFlags(64)
	ForumFlags_CommunityContent           = ForumFlags(128)
)
View Source
const (
	ForumPostCategory_None           = ForumPostCategory(0)
	ForumPostCategory_TextOnly       = ForumPostCategory(1)
	ForumPostCategory_Media          = ForumPostCategory(2)
	ForumPostCategory_Link           = ForumPostCategory(4)
	ForumPostCategory_Poll           = ForumPostCategory(8)
	ForumPostCategory_Question       = ForumPostCategory(16)
	ForumPostCategory_Answered       = ForumPostCategory(32)
	ForumPostCategory_Announcement   = ForumPostCategory(64)
	ForumPostCategory_ContentComment = ForumPostCategory(128)
	ForumPostCategory_BungieOfficial = ForumPostCategory(256)
	ForumPostCategory_NinjaOfficial  = ForumPostCategory(512)
	ForumPostCategory_Recruitment    = ForumPostCategory(1024)
)
View Source
const (
	GlobalAlertLevel_Unknown = GlobalAlertLevel(0)
	GlobalAlertLevel_Blue    = GlobalAlertLevel(1)
	GlobalAlertLevel_Yellow  = GlobalAlertLevel(2)
	GlobalAlertLevel_Red     = GlobalAlertLevel(3)
)
View Source
const (
	GlobalAlertType_GlobalAlert    = GlobalAlertType(0)
	GlobalAlertType_StreamingAlert = GlobalAlertType(1)
)
View Source
const (
	Capabilities_None                  = Capabilities(0)
	Capabilities_Leaderboards          = Capabilities(1)
	Capabilities_Callsign              = Capabilities(2)
	Capabilities_OptionalConversations = Capabilities(4)
	Capabilities_ClanBanner            = Capabilities(8)
	Capabilities_D2InvestmentData      = Capabilities(16)
	Capabilities_Tags                  = Capabilities(32)
	Capabilities_Alliances             = Capabilities(64)
)
View Source
const (
	ChatSecuritySetting_Group  = ChatSecuritySetting(0)
	ChatSecuritySetting_Admins = ChatSecuritySetting(1)
)
View Source
const (
	GroupAllianceStatus_Unallied = GroupAllianceStatus(0)
	GroupAllianceStatus_Parent   = GroupAllianceStatus(1)
	GroupAllianceStatus_Child    = GroupAllianceStatus(2)
)
View Source
const (
	GroupApplicationResolveState_Unresolved = GroupApplicationResolveState(0)
	GroupApplicationResolveState_Accepted   = GroupApplicationResolveState(1)
	GroupApplicationResolveState_Denied     = GroupApplicationResolveState(2)
	GroupApplicationResolveState_Rescinded  = GroupApplicationResolveState(3)
)
View Source
const (
	GroupDateRange_All       = GroupDateRange(0)
	GroupDateRange_PastDay   = GroupDateRange(1)
	GroupDateRange_PastWeek  = GroupDateRange(2)
	GroupDateRange_PastMonth = GroupDateRange(3)
	GroupDateRange_PastYear  = GroupDateRange(4)
)
View Source
const (
	GroupHomepage_Wall          = GroupHomepage(0)
	GroupHomepage_Forum         = GroupHomepage(1)
	GroupHomepage_AllianceForum = GroupHomepage(2)
)
View Source
const (
	GroupMemberCountFilter_All                   = GroupMemberCountFilter(0)
	GroupMemberCountFilter_OneToTen              = GroupMemberCountFilter(1)
	GroupMemberCountFilter_ElevenToOneHundred    = GroupMemberCountFilter(2)
	GroupMemberCountFilter_GreaterThanOneHundred = GroupMemberCountFilter(3)
)
View Source
const (
	GroupPostPublicity_Public   = GroupPostPublicity(0)
	GroupPostPublicity_Alliance = GroupPostPublicity(1)
	GroupPostPublicity_Private  = GroupPostPublicity(2)
)
View Source
const (
	GroupPotentialMemberStatus_None      = GroupPotentialMemberStatus(0)
	GroupPotentialMemberStatus_Applicant = GroupPotentialMemberStatus(1)
	GroupPotentialMemberStatus_Invitee   = GroupPotentialMemberStatus(2)
)
View Source
const (
	GroupSortBy_Name       = GroupSortBy(0)
	GroupSortBy_Date       = GroupSortBy(1)
	GroupSortBy_Popularity = GroupSortBy(2)
	GroupSortBy_Id         = GroupSortBy(3)
)
View Source
const (
	GroupType_General = GroupType(0)
	GroupType_Clan    = GroupType(1)
)
View Source
const (
	GroupsForMemberFilter_All        = GroupsForMemberFilter(0)
	GroupsForMemberFilter_Founded    = GroupsForMemberFilter(1)
	GroupsForMemberFilter_NonFounded = GroupsForMemberFilter(2)
)
View Source
const (
	HostGuidedGamesPermissionLevel_None     = HostGuidedGamesPermissionLevel(0)
	HostGuidedGamesPermissionLevel_Beginner = HostGuidedGamesPermissionLevel(1)
	HostGuidedGamesPermissionLevel_Member   = HostGuidedGamesPermissionLevel(2)
)
View Source
const (
	MembershipOption_Reviewed = MembershipOption(0)
	MembershipOption_Open     = MembershipOption(1)
	MembershipOption_Closed   = MembershipOption(2)
)
View Source
const (
	RuntimeGroupMemberType_None          = RuntimeGroupMemberType(0)
	RuntimeGroupMemberType_Beginner      = RuntimeGroupMemberType(1)
	RuntimeGroupMemberType_Member        = RuntimeGroupMemberType(2)
	RuntimeGroupMemberType_Admin         = RuntimeGroupMemberType(3)
	RuntimeGroupMemberType_ActingFounder = RuntimeGroupMemberType(4)
	RuntimeGroupMemberType_Founder       = RuntimeGroupMemberType(5)
)
View Source
const (
	IgnoreLength_None         = IgnoreLength(0)
	IgnoreLength_Week         = IgnoreLength(1)
	IgnoreLength_TwoWeeks     = IgnoreLength(2)
	IgnoreLength_ThreeWeeks   = IgnoreLength(3)
	IgnoreLength_Month        = IgnoreLength(4)
	IgnoreLength_ThreeMonths  = IgnoreLength(5)
	IgnoreLength_SixMonths    = IgnoreLength(6)
	IgnoreLength_Year         = IgnoreLength(7)
	IgnoreLength_Forever      = IgnoreLength(8)
	IgnoreLength_ThreeMinutes = IgnoreLength(9)
	IgnoreLength_Hour         = IgnoreLength(10)
	IgnoreLength_ThirtyDays   = IgnoreLength(11)
)
View Source
const (
	IgnoreStatus_NotIgnored     = IgnoreStatus(0)
	IgnoreStatus_IgnoredUser    = IgnoreStatus(1)
	IgnoreStatus_IgnoredGroup   = IgnoreStatus(2)
	IgnoreStatus_IgnoredByGroup = IgnoreStatus(4)
	IgnoreStatus_IgnoredPost    = IgnoreStatus(8)
	IgnoreStatus_IgnoredTag     = IgnoreStatus(16)
	IgnoreStatus_IgnoredGlobal  = IgnoreStatus(32)
)
View Source
const (
	FriendRelationshipState_Unknown         = FriendRelationshipState(0)
	FriendRelationshipState_Friend          = FriendRelationshipState(1)
	FriendRelationshipState_IncomingRequest = FriendRelationshipState(2)
	FriendRelationshipState_OutgoingRequest = FriendRelationshipState(3)
)
View Source
const (
	PlatformFriendType_Unknown = PlatformFriendType(0)
	PlatformFriendType_Xbox    = PlatformFriendType(1)
	PlatformFriendType_PSN     = PlatformFriendType(2)
	PlatformFriendType_Steam   = PlatformFriendType(3)
	PlatformFriendType_Egs     = PlatformFriendType(4)
)
View Source
const (
	PresenceOnlineStateFlags_None     = PresenceOnlineStateFlags(0)
	PresenceOnlineStateFlags_Destiny1 = PresenceOnlineStateFlags(1)
	PresenceOnlineStateFlags_Destiny2 = PresenceOnlineStateFlags(2)
)
View Source
const (
	PresenceStatus_OfflineOrUnknown = PresenceStatus(0)
	PresenceStatus_Online           = PresenceStatus(1)
)
View Source
const (
	DropState_Claimed   = DropState(0)
	DropState_Applied   = DropState(1)
	DropState_Fulfilled = DropState(2)
)
View Source
const (
	TrendingEntryType_News            = TrendingEntryType(0)
	TrendingEntryType_DestinyItem     = TrendingEntryType(1)
	TrendingEntryType_DestinyActivity = TrendingEntryType(2)
	TrendingEntryType_DestinyRitual   = TrendingEntryType(3)
	TrendingEntryType_SupportArticle  = TrendingEntryType(4)
	TrendingEntryType_Creation        = TrendingEntryType(5)
	TrendingEntryType_Stream          = TrendingEntryType(6)
	TrendingEntryType_Update          = TrendingEntryType(7)
	TrendingEntryType_Link            = TrendingEntryType(8)
	TrendingEntryType_ForumTag        = TrendingEntryType(9)
	TrendingEntryType_Container       = TrendingEntryType(10)
	TrendingEntryType_Release         = TrendingEntryType(11)
)
View Source
const (
	OptInFlags_None            = OptInFlags(0)
	OptInFlags_Newsletter      = OptInFlags(1)
	OptInFlags_System          = OptInFlags(2)
	OptInFlags_Marketing       = OptInFlags(4)
	OptInFlags_UserResearch    = OptInFlags(8)
	OptInFlags_CustomerService = OptInFlags(16)
	OptInFlags_Social          = OptInFlags(32)
	OptInFlags_PlayTests       = OptInFlags(64)
	OptInFlags_PlayTestsLocal  = OptInFlags(128)
	OptInFlags_Careers         = OptInFlags(256)
)

Variables

This section is empty.

Functions

func Version

func Version() string

Types

type API

type API struct {
	UserAgent   string
	Application string
	// contains filtered or unexported fields
}

func NewAPI

func NewAPI(apiKey string) *API

func (API) AppGetApplicationApiUsage

func (a API) AppGetApplicationApiUsage(ctx context.Context, req AppGetApplicationApiUsageRequest) (*ServerResponse[ApiUsage], error)

AppGetApplicationApiUsage: Get API usage by application for time frame specified. You can go as far back as 30 days ago, and can ask for up to a 48 hour window of time in a single request. You must be authenticated with at least the ReadUserData permission to access this endpoint.

URL: /App/ApiUsage/{applicationId}/

Operation: App.GetApplicationApiUsage

Scope: oauth2 [ReadUserData]

func (API) AppGetBungieApplications

func (a API) AppGetBungieApplications(ctx context.Context, req AppGetBungieApplicationsRequest) (*ServerResponse[[]Application], error)

AppGetBungieApplications: Get list of applications created by Bungie.

URL: /App/FirstParty/

Operation: App.GetBungieApplications

func (API) CommunityContentGetCommunityContent

func (a API) CommunityContentGetCommunityContent(ctx context.Context, req CommunityContentGetCommunityContentRequest) (*ServerResponse[PostSearchResponse], error)

CommunityContentGetCommunityContent: Returns community content.

URL: /CommunityContent/Get/{sort}/{mediaFilter}/{page}/

Operation: CommunityContent.GetCommunityContent

func (API) ContentGetContentById

ContentGetContentById: Returns a content item referenced by id

URL: /Content/GetContentById/{id}/{locale}/

Operation: Content.GetContentById

func (API) ContentGetContentByTagAndType

ContentGetContentByTagAndType: Returns the newest item that matches a given tag and Content Type.

URL: /Content/GetContentByTagAndType/{tag}/{type}/{locale}/

Operation: Content.GetContentByTagAndType

func (API) ContentGetContentType

ContentGetContentType: Gets an object describing a particular variant of content.

URL: /Content/GetContentType/{type}/

Operation: Content.GetContentType

func (API) ContentRssNewsArticles

ContentRssNewsArticles: Returns a JSON string response that is the RSS feed for news articles.

URL: /Content/Rss/NewsArticles/{pageToken}/

Operation: Content.RssNewsArticles

func (API) ContentSearchContentByTagAndType

ContentSearchContentByTagAndType: Searches for Content Items that match the given Tag and Content Type.

URL: /Content/SearchContentByTagAndType/{tag}/{type}/{locale}/

Operation: Content.SearchContentByTagAndType

func (API) ContentSearchContentWithText

ContentSearchContentWithText: Gets content based on querystring information passed in. Provides basic search and text search capabilities.

URL: /Content/Search/{locale}/

Operation: Content.SearchContentWithText

func (API) ContentSearchHelpArticles

func (a API) ContentSearchHelpArticles(ctx context.Context, req ContentSearchHelpArticlesRequest) (*ServerResponse[any], error)

ContentSearchHelpArticles: Search for Help Articles.

URL: /Content/SearchHelpArticles/{searchtext}/{size}/

Operation: Content.SearchHelpArticles

func (API) Destiny2AwaGetActionToken

Destiny2AwaGetActionToken: Returns the action token if user approves the request.

URL: /Destiny2/Awa/GetActionToken/{correlationId}/

Operation: Destiny2.AwaGetActionToken

Scope: oauth2 [AdvancedWriteActions]

func (API) Destiny2AwaInitializeRequest

Destiny2AwaInitializeRequest: Initialize a request to perform an advanced write action.

URL: /Destiny2/Awa/Initialize/

Operation: Destiny2.AwaInitializeRequest

Scope: oauth2 [AdvancedWriteActions]

func (API) Destiny2AwaProvideAuthorizationResult

func (a API) Destiny2AwaProvideAuthorizationResult(ctx context.Context, req Destiny2AwaProvideAuthorizationResultRequest) (*ServerResponse[int32], error)

Destiny2AwaProvideAuthorizationResult: Provide the result of the user interaction. Called by the Bungie Destiny App to approve or reject a request.

URL: /Destiny2/Awa/AwaProvideAuthorizationResult/

Operation: Destiny2.AwaProvideAuthorizationResult

func (API) Destiny2ClearLoadout

func (a API) Destiny2ClearLoadout(ctx context.Context, req Destiny2ClearLoadoutRequest) (*ServerResponse[int32], error)

Destiny2ClearLoadout: Clear the identifiers and items of a loadout.

URL: /Destiny2/Actions/Loadouts/ClearLoadout/

Operation: Destiny2.ClearLoadout

Scope: oauth2 [MoveEquipDestinyItems]

func (API) Destiny2EquipItem

func (a API) Destiny2EquipItem(ctx context.Context, req Destiny2EquipItemRequest) (*ServerResponse[int32], error)

Destiny2EquipItem: Equip an item. You must have a valid Destiny Account, and either be in a social space, in orbit, or offline.

URL: /Destiny2/Actions/Items/EquipItem/

Operation: Destiny2.EquipItem

Scope: oauth2 [MoveEquipDestinyItems]

func (API) Destiny2EquipItems

Destiny2EquipItems: Equip a list of items by itemInstanceIds. You must have a valid Destiny Account, and either be in a social space, in orbit, or offline. Any items not found on your character will be ignored.

URL: /Destiny2/Actions/Items/EquipItems/

Operation: Destiny2.EquipItems

Scope: oauth2 [MoveEquipDestinyItems]

func (API) Destiny2EquipLoadout

func (a API) Destiny2EquipLoadout(ctx context.Context, req Destiny2EquipLoadoutRequest) (*ServerResponse[int32], error)

Destiny2EquipLoadout: Equip a loadout. You must have a valid Destiny Account, and either be in a social space, in orbit, or offline.

URL: /Destiny2/Actions/Loadouts/EquipLoadout/

Operation: Destiny2.EquipLoadout

Scope: oauth2 [MoveEquipDestinyItems]

func (API) Destiny2GetActivityHistory

Destiny2GetActivityHistory: Gets activity history stats for indicated character.

URL: /Destiny2/{membershipType}/Account/{destinyMembershipId}/Character/{characterId}/Stats/Activities/

Operation: Destiny2.GetActivityHistory

func (API) Destiny2GetCharacter

Destiny2GetCharacter: Returns character information for the supplied character.

URL: /Destiny2/{membershipType}/Profile/{destinyMembershipId}/Character/{characterId}/

Operation: Destiny2.GetCharacter

func (API) Destiny2GetClanAggregateStats

func (a API) Destiny2GetClanAggregateStats(ctx context.Context, req Destiny2GetClanAggregateStatsRequest) (*ServerResponse[[]ClanAggregateStat], error)

Destiny2GetClanAggregateStats: Gets aggregated stats for a clan using the same categories as the clan leaderboards. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation.

URL: /Destiny2/Stats/AggregateClanStats/{groupId}/

Operation: Destiny2.GetClanAggregateStats

func (API) Destiny2GetClanBannerSource

func (a API) Destiny2GetClanBannerSource(ctx context.Context, req Destiny2GetClanBannerSourceRequest) (*ServerResponse[ClanBannerSource], error)

Destiny2GetClanBannerSource: Returns the dictionary of values for the Clan Banner

URL: /Destiny2/Clan/ClanBannerDictionary/

Operation: Destiny2.GetClanBannerSource

func (API) Destiny2GetClanLeaderboards

func (a API) Destiny2GetClanLeaderboards(ctx context.Context, req Destiny2GetClanLeaderboardsRequest) (*ServerResponse[map[string]map[string]Leaderboard], error)

Destiny2GetClanLeaderboards: Gets leaderboards with the signed in user's friends and the supplied destinyMembershipId as the focus. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation.

URL: /Destiny2/Stats/Leaderboards/Clans/{groupId}/

Operation: Destiny2.GetClanLeaderboards

func (API) Destiny2GetClanWeeklyRewardState

func (a API) Destiny2GetClanWeeklyRewardState(ctx context.Context, req Destiny2GetClanWeeklyRewardStateRequest) (*ServerResponse[Milestone], error)

Destiny2GetClanWeeklyRewardState: Returns information on the weekly clan rewards and if the clan has earned them or not. Note that this will always report rewards as not redeemed.

URL: /Destiny2/Clan/{groupId}/WeeklyRewardState/

Operation: Destiny2.GetClanWeeklyRewardState

func (API) Destiny2GetCollectibleNodeDetails

Destiny2GetCollectibleNodeDetails: Given a Presentation Node that has Collectibles as direct descendants, this will return item details about those descendants in the context of the requesting character.

URL: /Destiny2/{membershipType}/Profile/{destinyMembershipId}/Character/{characterId}/Collectibles/{collectiblePresentationNodeHash}/

Operation: Destiny2.GetCollectibleNodeDetails

func (API) Destiny2GetDestinyAggregateActivityStats

func (a API) Destiny2GetDestinyAggregateActivityStats(ctx context.Context, req Destiny2GetDestinyAggregateActivityStatsRequest) (*ServerResponse[AggregateActivityResults], error)

Destiny2GetDestinyAggregateActivityStats: Gets all activities the character has participated in together with aggregate statistics for those activities.

URL: /Destiny2/{membershipType}/Account/{destinyMembershipId}/Character/{characterId}/Stats/AggregateActivityStats/

Operation: Destiny2.GetDestinyAggregateActivityStats

func (API) Destiny2GetDestinyEntityDefinition

func (a API) Destiny2GetDestinyEntityDefinition(ctx context.Context, req Destiny2GetDestinyEntityDefinitionRequest) (*ServerResponse[Definition], error)

Destiny2GetDestinyEntityDefinition: Returns the static definition of an entity of the given Type and hash identifier. Examine the API Documentation for the Type Names of entities that have their own definitions. Note that the return type will always *inherit from* DestinyDefinition, but the specific type returned will be the requested entity type if it can be found. Please don't use this as a chatty alternative to the Manifest database if you require large sets of data, but for simple and one-off accesses this should be handy.

URL: /Destiny2/Manifest/{entityType}/{hashIdentifier}/

Operation: Destiny2.GetDestinyEntityDefinition

func (API) Destiny2GetDestinyManifest

func (a API) Destiny2GetDestinyManifest(ctx context.Context, req Destiny2GetDestinyManifestRequest) (*ServerResponse[Manifest], error)

Destiny2GetDestinyManifest: Returns the current version of the manifest as a json object.

URL: /Destiny2/Manifest/

Operation: Destiny2.GetDestinyManifest

func (API) Destiny2GetHistoricalStats

Destiny2GetHistoricalStats: Gets historical stats for indicated character.

URL: /Destiny2/{membershipType}/Account/{destinyMembershipId}/Character/{characterId}/Stats/

Operation: Destiny2.GetHistoricalStats

func (API) Destiny2GetHistoricalStatsDefinition

func (a API) Destiny2GetHistoricalStatsDefinition(ctx context.Context, req Destiny2GetHistoricalStatsDefinitionRequest) (*ServerResponse[map[string]HistoricalStatsDefinition], error)

Destiny2GetHistoricalStatsDefinition: Gets historical stats definitions.

URL: /Destiny2/Stats/Definition/

Operation: Destiny2.GetHistoricalStatsDefinition

func (API) Destiny2GetHistoricalStatsForAccount

Destiny2GetHistoricalStatsForAccount: Gets aggregate historical stats organized around each character for a given account.

URL: /Destiny2/{membershipType}/Account/{destinyMembershipId}/Stats/

Operation: Destiny2.GetHistoricalStatsForAccount

func (API) Destiny2GetItem

func (a API) Destiny2GetItem(ctx context.Context, req Destiny2GetItemRequest) (*ServerResponse[ItemResponse], error)

Destiny2GetItem: Retrieve the details of an instanced Destiny Item. An instanced Destiny item is one with an ItemInstanceId. Non-instanced items, such as materials, have no useful instance-specific details and thus are not queryable here.

URL: /Destiny2/{membershipType}/Profile/{destinyMembershipId}/Item/{itemInstanceId}/

Operation: Destiny2.GetItem

func (API) Destiny2GetLeaderboards

func (a API) Destiny2GetLeaderboards(ctx context.Context, req Destiny2GetLeaderboardsRequest) (*ServerResponse[map[string]map[string]Leaderboard], error)

Destiny2GetLeaderboards: Gets leaderboards with the signed in user's friends and the supplied destinyMembershipId as the focus. PREVIEW: This endpoint has not yet been implemented. It is being returned for a preview of future functionality, and for public comment/suggestion/preparation.

URL: /Destiny2/{membershipType}/Account/{destinyMembershipId}/Stats/Leaderboards/

Operation: Destiny2.GetLeaderboards

func (API) Destiny2GetLeaderboardsForCharacter

func (a API) Destiny2GetLeaderboardsForCharacter(ctx context.Context, req Destiny2GetLeaderboardsForCharacterRequest) (*ServerResponse[map[string]map[string]Leaderboard], error)

Destiny2GetLeaderboardsForCharacter: Gets leaderboards with the signed in user's friends and the supplied destinyMembershipId as the focus. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation.

URL: /Destiny2/Stats/Leaderboards/{membershipType}/{destinyMembershipId}/{characterId}/

Operation: Destiny2.GetLeaderboardsForCharacter

func (API) Destiny2GetLinkedProfiles

Destiny2GetLinkedProfiles: Returns a summary information about all profiles linked to the requesting membership type/membership ID that have valid Destiny information. The passed-in Membership Type/Membership ID may be a Bungie.Net membership or a Destiny membership. It only returns the minimal amount of data to begin making more substantive requests, but will hopefully serve as a useful alternative to UserServices for people who just care about Destiny data. Note that it will only return linked accounts whose linkages you are allowed to view.

URL: /Destiny2/{membershipType}/Profile/{membershipId}/LinkedProfiles/

Operation: Destiny2.GetLinkedProfiles

func (API) Destiny2GetPostGameCarnageReport

Destiny2GetPostGameCarnageReport: Gets the available post game carnage report for the activity ID.

URL: /Destiny2/Stats/PostGameCarnageReport/{activityId}/

Operation: Destiny2.GetPostGameCarnageReport

func (API) Destiny2GetProfile

func (a API) Destiny2GetProfile(ctx context.Context, req Destiny2GetProfileRequest) (*ServerResponse[ProfileResponse], error)

Destiny2GetProfile: Returns Destiny Profile information for the supplied membership.

URL: /Destiny2/{membershipType}/Profile/{destinyMembershipId}/

Operation: Destiny2.GetProfile

func (API) Destiny2GetPublicMilestoneContent

func (a API) Destiny2GetPublicMilestoneContent(ctx context.Context, req Destiny2GetPublicMilestoneContentRequest) (*ServerResponse[MilestoneContent], error)

Destiny2GetPublicMilestoneContent: Gets custom localized content for the milestone of the given hash, if it exists.

URL: /Destiny2/Milestones/{milestoneHash}/Content/

Operation: Destiny2.GetPublicMilestoneContent

func (API) Destiny2GetPublicMilestones

func (a API) Destiny2GetPublicMilestones(ctx context.Context, req Destiny2GetPublicMilestonesRequest) (*ServerResponse[map[uint32]PublicMilestone], error)

Destiny2GetPublicMilestones: Gets public information about currently available Milestones.

URL: /Destiny2/Milestones/

Operation: Destiny2.GetPublicMilestones

func (API) Destiny2GetPublicVendors

Destiny2GetPublicVendors: Get items available from vendors where the vendors have items for sale that are common for everyone. If any portion of the Vendor's available inventory is character or account specific, we will be unable to return their data from this endpoint due to the way that available inventory is computed. As I am often guilty of saying: 'It's a long story...'

URL: /Destiny2/Vendors/

Operation: Destiny2.GetPublicVendors

func (API) Destiny2GetUniqueWeaponHistory

Destiny2GetUniqueWeaponHistory: Gets details about unique weapon usage, including all exotic weapons.

URL: /Destiny2/{membershipType}/Account/{destinyMembershipId}/Character/{characterId}/Stats/UniqueWeapons/

Operation: Destiny2.GetUniqueWeaponHistory

func (API) Destiny2GetVendor

func (a API) Destiny2GetVendor(ctx context.Context, req Destiny2GetVendorRequest) (*ServerResponse[VendorResponse], error)

Destiny2GetVendor: Get the details of a specific Vendor.

URL: /Destiny2/{membershipType}/Profile/{destinyMembershipId}/Character/{characterId}/Vendors/{vendorHash}/

Operation: Destiny2.GetVendor

func (API) Destiny2GetVendors

func (a API) Destiny2GetVendors(ctx context.Context, req Destiny2GetVendorsRequest) (*ServerResponse[VendorsResponse], error)

Destiny2GetVendors: Get currently available vendors from the list of vendors that can possibly have rotating inventory. Note that this does not include things like preview vendors and vendors-as-kiosks, neither of whom have rotating/dynamic inventories. Use their definitions as-is for those.

URL: /Destiny2/{membershipType}/Profile/{destinyMembershipId}/Character/{characterId}/Vendors/

Operation: Destiny2.GetVendors

func (API) Destiny2InsertSocketPlug

func (a API) Destiny2InsertSocketPlug(ctx context.Context, req Destiny2InsertSocketPlugRequest) (*ServerResponse[ItemChangeResponse], error)

Destiny2InsertSocketPlug: Insert a plug into a socketed item. I know how it sounds, but I assure you it's much more G-rated than you might be guessing. We haven't decided yet whether this will be able to insert plugs that have side effects, but if we do it will require special scope permission for an application attempting to do so. You must have a valid Destiny Account, and either be in a social space, in orbit, or offline. Request must include proof of permission for 'InsertPlugs' from the account owner.

URL: /Destiny2/Actions/Items/InsertSocketPlug/

Operation: Destiny2.InsertSocketPlug

Scope: oauth2 [AdvancedWriteActions]

func (API) Destiny2InsertSocketPlugFree

func (a API) Destiny2InsertSocketPlugFree(ctx context.Context, req Destiny2InsertSocketPlugFreeRequest) (*ServerResponse[ItemChangeResponse], error)

Destiny2InsertSocketPlugFree: Insert a 'free' plug into an item's socket. This does not require 'Advanced Write Action' authorization and is available to 3rd-party apps, but will only work on 'free and reversible' socket actions (Perks, Armor Mods, Shaders, Ornaments, etc.). You must have a valid Destiny Account, and the character must either be in a social space, in orbit, or offline.

URL: /Destiny2/Actions/Items/InsertSocketPlugFree/

Operation: Destiny2.InsertSocketPlugFree

Scope: oauth2 [MoveEquipDestinyItems]

func (API) Destiny2PullFromPostmaster

func (a API) Destiny2PullFromPostmaster(ctx context.Context, req Destiny2PullFromPostmasterRequest) (*ServerResponse[int32], error)

Destiny2PullFromPostmaster: Extract an item from the Postmaster, with whatever implications that may entail. You must have a valid Destiny account. You must also pass BOTH a reference AND an instance ID if it's an instanced item.

URL: /Destiny2/Actions/Items/PullFromPostmaster/

Operation: Destiny2.PullFromPostmaster

Scope: oauth2 [MoveEquipDestinyItems]

func (API) Destiny2ReportOffensivePostGameCarnageReportPlayer

func (a API) Destiny2ReportOffensivePostGameCarnageReportPlayer(ctx context.Context, req Destiny2ReportOffensivePostGameCarnageReportPlayerRequest) (*ServerResponse[int32], error)

Destiny2ReportOffensivePostGameCarnageReportPlayer: Report a player that you met in an activity that was engaging in ToS-violating activities. Both you and the offending player must have played in the activityId passed in. Please use this judiciously and only when you have strong suspicions of violation, pretty please.

URL: /Destiny2/Stats/PostGameCarnageReport/{activityId}/Report/

Operation: Destiny2.ReportOffensivePostGameCarnageReportPlayer

Scope: oauth2 [BnetWrite]

func (API) Destiny2SearchDestinyEntities

func (a API) Destiny2SearchDestinyEntities(ctx context.Context, req Destiny2SearchDestinyEntitiesRequest) (*ServerResponse[EntitySearchResult], error)

Destiny2SearchDestinyEntities: Gets a page list of Destiny items.

URL: /Destiny2/Armory/Search/{type}/{searchTerm}/

Operation: Destiny2.SearchDestinyEntities

func (API) Destiny2SearchDestinyPlayerByBungieName

func (a API) Destiny2SearchDestinyPlayerByBungieName(ctx context.Context, req Destiny2SearchDestinyPlayerByBungieNameRequest) (*ServerResponse[[]UserInfoCard], error)

Destiny2SearchDestinyPlayerByBungieName: Returns a list of Destiny memberships given a global Bungie Display Name. This method will hide overridden memberships due to cross save.

URL: /Destiny2/SearchDestinyPlayerByBungieName/{membershipType}/

Operation: Destiny2.SearchDestinyPlayerByBungieName

func (API) Destiny2SetItemLockState

func (a API) Destiny2SetItemLockState(ctx context.Context, req Destiny2SetItemLockStateRequest) (*ServerResponse[int32], error)

Destiny2SetItemLockState: Set the Lock State for an instanced item. You must have a valid Destiny Account.

URL: /Destiny2/Actions/Items/SetLockState/

Operation: Destiny2.SetItemLockState

Scope: oauth2 [MoveEquipDestinyItems]

func (API) Destiny2SetQuestTrackedState

func (a API) Destiny2SetQuestTrackedState(ctx context.Context, req Destiny2SetQuestTrackedStateRequest) (*ServerResponse[int32], error)

Destiny2SetQuestTrackedState: Set the Tracking State for an instanced item, if that item is a Quest or Bounty. You must have a valid Destiny Account. Yeah, it's an item.

URL: /Destiny2/Actions/Items/SetTrackedState/

Operation: Destiny2.SetQuestTrackedState

Scope: oauth2 [MoveEquipDestinyItems]

func (API) Destiny2SnapshotLoadout

func (a API) Destiny2SnapshotLoadout(ctx context.Context, req Destiny2SnapshotLoadoutRequest) (*ServerResponse[int32], error)

Destiny2SnapshotLoadout: Snapshot a loadout with the currently equipped items.

URL: /Destiny2/Actions/Loadouts/SnapshotLoadout/

Operation: Destiny2.SnapshotLoadout

Scope: oauth2 [MoveEquipDestinyItems]

func (API) Destiny2TransferItem

func (a API) Destiny2TransferItem(ctx context.Context, req Destiny2TransferItemRequest) (*ServerResponse[int32], error)

Destiny2TransferItem: Transfer an item to/from your vault. You must have a valid Destiny account. You must also pass BOTH a reference AND an instance ID if it's an instanced item. itshappening.gif

URL: /Destiny2/Actions/Items/TransferItem/

Operation: Destiny2.TransferItem

Scope: oauth2 [MoveEquipDestinyItems]

func (API) Destiny2UpdateLoadoutIdentifiers

func (a API) Destiny2UpdateLoadoutIdentifiers(ctx context.Context, req Destiny2UpdateLoadoutIdentifiersRequest) (*ServerResponse[int32], error)

Destiny2UpdateLoadoutIdentifiers: Update the color, icon, and name of a loadout.

URL: /Destiny2/Actions/Loadouts/UpdateLoadoutIdentifiers/

Operation: Destiny2.UpdateLoadoutIdentifiers

Scope: oauth2 [MoveEquipDestinyItems]

func (API) FireteamGetActivePrivateClanFireteamCount

func (a API) FireteamGetActivePrivateClanFireteamCount(ctx context.Context, req FireteamGetActivePrivateClanFireteamCountRequest) (*ServerResponse[int32], error)

FireteamGetActivePrivateClanFireteamCount: Gets a count of all active non-public fireteams for the specified clan. Maximum value returned is 25.

URL: /Fireteam/Clan/{groupId}/ActiveCount/

Operation: Fireteam.GetActivePrivateClanFireteamCount

Scope: oauth2 [ReadGroups]

func (API) FireteamGetAvailableClanFireteams

FireteamGetAvailableClanFireteams: Gets a listing of all of this clan's fireteams that are have available slots. Caller is not checked for join criteria so caching is maximized.

URL: /Fireteam/Clan/{groupId}/Available/{platform}/{activityType}/{dateRange}/{slotFilter}/{publicOnly}/{page}/

Operation: Fireteam.GetAvailableClanFireteams

Scope: oauth2 [ReadGroups]

func (API) FireteamGetClanFireteam

func (a API) FireteamGetClanFireteam(ctx context.Context, req FireteamGetClanFireteamRequest) (*ServerResponse[FireteamResponse], error)

FireteamGetClanFireteam: Gets a specific fireteam.

URL: /Fireteam/Clan/{groupId}/Summary/{fireteamId}/

Operation: Fireteam.GetClanFireteam

Scope: oauth2 [ReadGroups]

func (API) FireteamGetMyClanFireteams

FireteamGetMyClanFireteams: Gets a listing of all fireteams that caller is an applicant, a member, or an alternate of.

URL: /Fireteam/Clan/{groupId}/My/{platform}/{includeClosed}/{page}/

Operation: Fireteam.GetMyClanFireteams

Scope: oauth2 [ReadGroups]

func (API) FireteamSearchPublicAvailableClanFireteams

func (a API) FireteamSearchPublicAvailableClanFireteams(ctx context.Context, req FireteamSearchPublicAvailableClanFireteamsRequest) (*ServerResponse[SearchResult[FireteamSummary]], error)

FireteamSearchPublicAvailableClanFireteams: Gets a listing of all public fireteams starting now with open slots. Caller is not checked for join criteria so caching is maximized.

URL: /Fireteam/Search/Available/{platform}/{activityType}/{dateRange}/{slotFilter}/{page}/

Operation: Fireteam.SearchPublicAvailableClanFireteams

Scope: oauth2 [ReadGroups]

func (API) ForumGetCoreTopicsPaged

func (a API) ForumGetCoreTopicsPaged(ctx context.Context, req ForumGetCoreTopicsPagedRequest) (*ServerResponse[PostSearchResponse], error)

ForumGetCoreTopicsPaged: Gets a listing of all topics marked as part of the core group.

URL: /Forum/GetCoreTopicsPaged/{page}/{sort}/{quickDate}/{categoryFilter}/

Operation: Forum.GetCoreTopicsPaged

func (API) ForumGetForumTagSuggestions

func (a API) ForumGetForumTagSuggestions(ctx context.Context, req ForumGetForumTagSuggestionsRequest) (*ServerResponse[[]TagResponse], error)

ForumGetForumTagSuggestions: Gets tag suggestions based on partial text entry, matching them with other tags previously used in the forums.

URL: /Forum/GetForumTagSuggestions/

Operation: Forum.GetForumTagSuggestions

func (API) ForumGetPoll

ForumGetPoll: Gets the specified forum poll.

URL: /Forum/Poll/{topicId}/

Operation: Forum.GetPoll

func (API) ForumGetPostAndParent

ForumGetPostAndParent: Returns the post specified and its immediate parent.

URL: /Forum/GetPostAndParent/{childPostId}/

Operation: Forum.GetPostAndParent

func (API) ForumGetPostAndParentAwaitingApproval

func (a API) ForumGetPostAndParentAwaitingApproval(ctx context.Context, req ForumGetPostAndParentAwaitingApprovalRequest) (*ServerResponse[PostSearchResponse], error)

ForumGetPostAndParentAwaitingApproval: Returns the post specified and its immediate parent of posts that are awaiting approval.

URL: /Forum/GetPostAndParentAwaitingApproval/{childPostId}/

Operation: Forum.GetPostAndParentAwaitingApproval

func (API) ForumGetPostsThreadedPaged

func (a API) ForumGetPostsThreadedPaged(ctx context.Context, req ForumGetPostsThreadedPagedRequest) (*ServerResponse[PostSearchResponse], error)

ForumGetPostsThreadedPaged: Returns a thread of posts at the given parent, optionally returning replies to those posts as well as the original parent.

URL: /Forum/GetPostsThreadedPaged/{parentPostId}/{page}/{pageSize}/{replySize}/{getParentPost}/{rootThreadMode}/{sortMode}/

Operation: Forum.GetPostsThreadedPaged

func (API) ForumGetPostsThreadedPagedFromChild

func (a API) ForumGetPostsThreadedPagedFromChild(ctx context.Context, req ForumGetPostsThreadedPagedFromChildRequest) (*ServerResponse[PostSearchResponse], error)

ForumGetPostsThreadedPagedFromChild: Returns a thread of posts starting at the topicId of the input childPostId, optionally returning replies to those posts as well as the original parent.

URL: /Forum/GetPostsThreadedPagedFromChild/{childPostId}/{page}/{pageSize}/{replySize}/{rootThreadMode}/{sortMode}/

Operation: Forum.GetPostsThreadedPagedFromChild

func (API) ForumGetRecruitmentThreadSummaries

func (a API) ForumGetRecruitmentThreadSummaries(ctx context.Context, req ForumGetRecruitmentThreadSummariesRequest) (*ServerResponse[[]ForumRecruitmentDetail], error)

ForumGetRecruitmentThreadSummaries: Allows the caller to get a list of to 25 recruitment thread summary information objects.

URL: /Forum/Recruit/Summaries/

Operation: Forum.GetRecruitmentThreadSummaries

func (API) ForumGetTopicForContent

func (a API) ForumGetTopicForContent(ctx context.Context, req ForumGetTopicForContentRequest) (*ServerResponse[Int64], error)

ForumGetTopicForContent: Gets the post Id for the given content item's comments, if it exists.

URL: /Forum/GetTopicForContent/{contentId}/

Operation: Forum.GetTopicForContent

func (API) ForumGetTopicsPaged

ForumGetTopicsPaged: Get topics from any forum.

URL: /Forum/GetTopicsPaged/{page}/{pageSize}/{group}/{sort}/{quickDate}/{categoryFilter}/

Operation: Forum.GetTopicsPaged

func (API) GetAvailableLocales

func (a API) GetAvailableLocales(ctx context.Context, req GetAvailableLocalesRequest) (*ServerResponse[map[string]string], error)

GetAvailableLocales: List of available localization cultures

URL: /GetAvailableLocales/

Operation: .GetAvailableLocales

func (API) GetCommonSettings

GetCommonSettings: Get the common settings used by the Bungie.Net environment.

URL: /Settings/

Operation: .GetCommonSettings

func (API) GetDef

func (a API) GetDef(table string, hash uint32, out any) error

func (API) GetGlobalAlerts

func (a API) GetGlobalAlerts(ctx context.Context, req GetGlobalAlertsRequest) (*ServerResponse[[]GlobalAlert], error)

GetGlobalAlerts: Gets any active global alert for display in the forum banners, help pages, etc. Usually used for DOC alerts.

URL: /GlobalAlerts/

Operation: .GetGlobalAlerts

func (API) GetUserSystemOverrides

func (a API) GetUserSystemOverrides(ctx context.Context, req GetUserSystemOverridesRequest) (*ServerResponse[map[string]CoreSystem], error)

GetUserSystemOverrides: Get the user-specific system overrides that should be respected alongside common systems.

URL: /UserSystemOverrides/

Operation: .GetUserSystemOverrides

func (API) GroupV2AbdicateFoundership

func (a API) GroupV2AbdicateFoundership(ctx context.Context, req GroupV2AbdicateFoundershipRequest) (*ServerResponse[bool], error)

GroupV2AbdicateFoundership: An administrative method to allow the founder of a group or clan to give up their position to another admin permanently.

URL: /GroupV2/{groupId}/Admin/AbdicateFoundership/{membershipType}/{founderIdNew}/

Operation: GroupV2.AbdicateFoundership

func (API) GroupV2AddOptionalConversation

func (a API) GroupV2AddOptionalConversation(ctx context.Context, req GroupV2AddOptionalConversationRequest) (*ServerResponse[Int64], error)

GroupV2AddOptionalConversation: Add a new optional conversation/chat channel. Requires admin permissions to the group.

URL: /GroupV2/{groupId}/OptionalConversations/Add/

Operation: GroupV2.AddOptionalConversation

Scope: oauth2 [AdminGroups]

func (API) GroupV2ApproveAllPending

func (a API) GroupV2ApproveAllPending(ctx context.Context, req GroupV2ApproveAllPendingRequest) (*ServerResponse[[]EntityActionResult], error)

GroupV2ApproveAllPending: Approve all of the pending users for the given group.

URL: /GroupV2/{groupId}/Members/ApproveAll/

Operation: GroupV2.ApproveAllPending

Scope: oauth2 [AdminGroups]

func (API) GroupV2ApprovePending

func (a API) GroupV2ApprovePending(ctx context.Context, req GroupV2ApprovePendingRequest) (*ServerResponse[bool], error)

GroupV2ApprovePending: Approve the given membershipId to join the group/clan as long as they have applied.

URL: /GroupV2/{groupId}/Members/Approve/{membershipType}/{membershipId}/

Operation: GroupV2.ApprovePending

Scope: oauth2 [AdminGroups]

func (API) GroupV2ApprovePendingForList

func (a API) GroupV2ApprovePendingForList(ctx context.Context, req GroupV2ApprovePendingForListRequest) (*ServerResponse[[]EntityActionResult], error)

GroupV2ApprovePendingForList: Approve all of the pending users for the given group.

URL: /GroupV2/{groupId}/Members/ApproveList/

Operation: GroupV2.ApprovePendingForList

Scope: oauth2 [AdminGroups]

func (API) GroupV2BanMember

func (a API) GroupV2BanMember(ctx context.Context, req GroupV2BanMemberRequest) (*ServerResponse[int32], error)

GroupV2BanMember: Bans the requested member from the requested group for the specified period of time.

URL: /GroupV2/{groupId}/Members/{membershipType}/{membershipId}/Ban/

Operation: GroupV2.BanMember

Scope: oauth2 [AdminGroups]

func (API) GroupV2DenyAllPending

func (a API) GroupV2DenyAllPending(ctx context.Context, req GroupV2DenyAllPendingRequest) (*ServerResponse[[]EntityActionResult], error)

GroupV2DenyAllPending: Deny all of the pending users for the given group.

URL: /GroupV2/{groupId}/Members/DenyAll/

Operation: GroupV2.DenyAllPending

Scope: oauth2 [AdminGroups]

func (API) GroupV2DenyPendingForList

func (a API) GroupV2DenyPendingForList(ctx context.Context, req GroupV2DenyPendingForListRequest) (*ServerResponse[[]EntityActionResult], error)

GroupV2DenyPendingForList: Deny all of the pending users for the given group that match the passed-in .

URL: /GroupV2/{groupId}/Members/DenyList/

Operation: GroupV2.DenyPendingForList

Scope: oauth2 [AdminGroups]

func (API) GroupV2EditClanBanner

func (a API) GroupV2EditClanBanner(ctx context.Context, req GroupV2EditClanBannerRequest) (*ServerResponse[int32], error)

GroupV2EditClanBanner: Edit an existing group's clan banner. You must have suitable permissions in the group to perform this operation. All fields are required.

URL: /GroupV2/{groupId}/EditClanBanner/

Operation: GroupV2.EditClanBanner

Scope: oauth2 [AdminGroups]

func (API) GroupV2EditFounderOptions

func (a API) GroupV2EditFounderOptions(ctx context.Context, req GroupV2EditFounderOptionsRequest) (*ServerResponse[int32], error)

GroupV2EditFounderOptions: Edit group options only available to a founder. You must have suitable permissions in the group to perform this operation.

URL: /GroupV2/{groupId}/EditFounderOptions/

Operation: GroupV2.EditFounderOptions

Scope: oauth2 [AdminGroups]

func (API) GroupV2EditGroup

func (a API) GroupV2EditGroup(ctx context.Context, req GroupV2EditGroupRequest) (*ServerResponse[int32], error)

GroupV2EditGroup: 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.

URL: /GroupV2/{groupId}/Edit/

Operation: GroupV2.EditGroup

Scope: oauth2 [AdminGroups]

func (API) GroupV2EditGroupMembership

func (a API) GroupV2EditGroupMembership(ctx context.Context, req GroupV2EditGroupMembershipRequest) (*ServerResponse[int32], error)

GroupV2EditGroupMembership: Edit the membership type of a given member. You must have suitable permissions in the group to perform this operation.

URL: /GroupV2/{groupId}/Members/{membershipType}/{membershipId}/SetMembershipType/{memberType}/

Operation: GroupV2.EditGroupMembership

Scope: oauth2 [AdminGroups]

func (API) GroupV2EditOptionalConversation

func (a API) GroupV2EditOptionalConversation(ctx context.Context, req GroupV2EditOptionalConversationRequest) (*ServerResponse[Int64], error)

GroupV2EditOptionalConversation: Edit the settings of an optional conversation/chat channel. Requires admin permissions to the group.

URL: /GroupV2/{groupId}/OptionalConversations/Edit/{conversationId}/

Operation: GroupV2.EditOptionalConversation

Scope: oauth2 [AdminGroups]

func (API) GroupV2GetAdminsAndFounderOfGroup

func (a API) GroupV2GetAdminsAndFounderOfGroup(ctx context.Context, req GroupV2GetAdminsAndFounderOfGroupRequest) (*ServerResponse[SearchResult[GroupMember]], error)

GroupV2GetAdminsAndFounderOfGroup: Get the list of members in a given group who are of admin level or higher.

URL: /GroupV2/{groupId}/AdminsAndFounder/

Operation: GroupV2.GetAdminsAndFounderOfGroup

func (API) GroupV2GetAvailableAvatars

func (a API) GroupV2GetAvailableAvatars(ctx context.Context, req GroupV2GetAvailableAvatarsRequest) (*ServerResponse[map[int32]string], error)

GroupV2GetAvailableAvatars: Returns a list of all available group avatars for the signed-in user.

URL: /GroupV2/GetAvailableAvatars/

Operation: GroupV2.GetAvailableAvatars

func (API) GroupV2GetAvailableThemes

func (a API) GroupV2GetAvailableThemes(ctx context.Context, req GroupV2GetAvailableThemesRequest) (*ServerResponse[[]GroupTheme], error)

GroupV2GetAvailableThemes: Returns a list of all available group themes.

URL: /GroupV2/GetAvailableThemes/

Operation: GroupV2.GetAvailableThemes

func (API) GroupV2GetBannedMembersOfGroup

func (a API) GroupV2GetBannedMembersOfGroup(ctx context.Context, req GroupV2GetBannedMembersOfGroupRequest) (*ServerResponse[SearchResult[GroupBan]], error)

GroupV2GetBannedMembersOfGroup: 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.

URL: /GroupV2/{groupId}/Banned/

Operation: GroupV2.GetBannedMembersOfGroup

Scope: oauth2 [AdminGroups]

func (API) GroupV2GetGroup

func (a API) GroupV2GetGroup(ctx context.Context, req GroupV2GetGroupRequest) (*ServerResponse[GroupResponse], error)

GroupV2GetGroup: Get information about a specific group of the given ID.

URL: /GroupV2/{groupId}/

Operation: GroupV2.GetGroup

func (API) GroupV2GetGroupByName

func (a API) GroupV2GetGroupByName(ctx context.Context, req GroupV2GetGroupByNameRequest) (*ServerResponse[GroupResponse], error)

GroupV2GetGroupByName: Get information about a specific group with the given name and type.

URL: /GroupV2/Name/{groupName}/{groupType}/

Operation: GroupV2.GetGroupByName

func (API) GroupV2GetGroupByNameV2

func (a API) GroupV2GetGroupByNameV2(ctx context.Context, req GroupV2GetGroupByNameV2Request) (*ServerResponse[GroupResponse], error)

GroupV2GetGroupByNameV2: Get information about a specific group with the given name and type. The POST version.

URL: /GroupV2/NameV2/

Operation: GroupV2.GetGroupByNameV2

func (API) GroupV2GetGroupOptionalConversations

func (a API) GroupV2GetGroupOptionalConversations(ctx context.Context, req GroupV2GetGroupOptionalConversationsRequest) (*ServerResponse[[]GroupOptionalConversation], error)

GroupV2GetGroupOptionalConversations: Gets a list of available optional conversation channels and their settings.

URL: /GroupV2/{groupId}/OptionalConversations/

Operation: GroupV2.GetGroupOptionalConversations

func (API) GroupV2GetGroupsForMember

GroupV2GetGroupsForMember: Get information about the groups that a given member has joined.

URL: /GroupV2/User/{membershipType}/{membershipId}/{filter}/{groupType}/

Operation: GroupV2.GetGroupsForMember

func (API) GroupV2GetInvitedIndividuals

GroupV2GetInvitedIndividuals: Get the list of users who have been invited into the group.

URL: /GroupV2/{groupId}/Members/InvitedIndividuals/

Operation: GroupV2.GetInvitedIndividuals

Scope: oauth2 [AdminGroups]

func (API) GroupV2GetMembersOfGroup

GroupV2GetMembersOfGroup: Get the list of members in a given group.

URL: /GroupV2/{groupId}/Members/

Operation: GroupV2.GetMembersOfGroup

func (API) GroupV2GetPendingMemberships

GroupV2GetPendingMemberships: Get the list of users who are awaiting a decision on their application to join a given group. Modified to include application info.

URL: /GroupV2/{groupId}/Members/Pending/

Operation: GroupV2.GetPendingMemberships

Scope: oauth2 [AdminGroups]

func (API) GroupV2GetPotentialGroupsForMember

GroupV2GetPotentialGroupsForMember: Get information about the groups that a given member has applied to or been invited to.

URL: /GroupV2/User/Potential/{membershipType}/{membershipId}/{filter}/{groupType}/

Operation: GroupV2.GetPotentialGroupsForMember

func (API) GroupV2GetRecommendedGroups

func (a API) GroupV2GetRecommendedGroups(ctx context.Context, req GroupV2GetRecommendedGroupsRequest) (*ServerResponse[[]GroupV2Card], error)

GroupV2GetRecommendedGroups: Gets groups recommended for you based on the groups to whom those you follow belong.

URL: /GroupV2/Recommended/{groupType}/{createDateRange}/

Operation: GroupV2.GetRecommendedGroups

Scope: oauth2 [ReadGroups]

func (API) GroupV2GetUserClanInviteSetting

func (a API) GroupV2GetUserClanInviteSetting(ctx context.Context, req GroupV2GetUserClanInviteSettingRequest) (*ServerResponse[bool], error)

GroupV2GetUserClanInviteSetting: 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.

URL: /GroupV2/GetUserClanInviteSetting/{mType}/

Operation: GroupV2.GetUserClanInviteSetting

Scope: oauth2 [ReadUserData]

func (API) GroupV2GroupSearch

GroupV2GroupSearch: Search for Groups.

URL: /GroupV2/Search/

Operation: GroupV2.GroupSearch

func (API) GroupV2IndividualGroupInvite

GroupV2IndividualGroupInvite: Invite a user to join this group.

URL: /GroupV2/{groupId}/Members/IndividualInvite/{membershipType}/{membershipId}/

Operation: GroupV2.IndividualGroupInvite

Scope: oauth2 [AdminGroups]

func (API) GroupV2IndividualGroupInviteCancel

GroupV2IndividualGroupInviteCancel: Cancels a pending invitation to join a group.

URL: /GroupV2/{groupId}/Members/IndividualInviteCancel/{membershipType}/{membershipId}/

Operation: GroupV2.IndividualGroupInviteCancel

Scope: oauth2 [AdminGroups]

func (API) GroupV2KickMember

GroupV2KickMember: 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.

URL: /GroupV2/{groupId}/Members/{membershipType}/{membershipId}/Kick/

Operation: GroupV2.KickMember

Scope: oauth2 [AdminGroups]

func (API) GroupV2RecoverGroupForFounder

GroupV2RecoverGroupForFounder: Allows a founder to manually recover a group they can see in game but not on bungie.net

URL: /GroupV2/Recover/{membershipType}/{membershipId}/{groupType}/

Operation: GroupV2.RecoverGroupForFounder

func (API) GroupV2UnbanMember

func (a API) GroupV2UnbanMember(ctx context.Context, req GroupV2UnbanMemberRequest) (*ServerResponse[int32], error)

GroupV2UnbanMember: Unbans the requested member, allowing them to re-apply for membership.

URL: /GroupV2/{groupId}/Members/{membershipType}/{membershipId}/Unban/

Operation: GroupV2.UnbanMember

Scope: oauth2 [AdminGroups]

func (API) SocialAcceptFriendRequest

func (a API) SocialAcceptFriendRequest(ctx context.Context, req SocialAcceptFriendRequestRequest) (*ServerResponse[bool], error)

SocialAcceptFriendRequest: Accepts a friend relationship with the target user. The user must be on your incoming friend request list, though no error will occur if they are not.

URL: /Social/Friends/Requests/Accept/{membershipId}/

Operation: Social.AcceptFriendRequest

Scope: oauth2 [BnetWrite]

func (API) SocialDeclineFriendRequest

func (a API) SocialDeclineFriendRequest(ctx context.Context, req SocialDeclineFriendRequestRequest) (*ServerResponse[bool], error)

SocialDeclineFriendRequest: Declines a friend relationship with the target user. The user must be on your incoming friend request list, though no error will occur if they are not.

URL: /Social/Friends/Requests/Decline/{membershipId}/

Operation: Social.DeclineFriendRequest

Scope: oauth2 [BnetWrite]

func (API) SocialGetFriendList

SocialGetFriendList: Returns your Bungie Friend list

URL: /Social/Friends/

Operation: Social.GetFriendList

Scope: oauth2 [ReadUserData]

func (API) SocialGetFriendRequestList

SocialGetFriendRequestList: Returns your friend request queue.

URL: /Social/Friends/Requests/

Operation: Social.GetFriendRequestList

Scope: oauth2 [ReadUserData]

func (API) SocialGetPlatformFriendList

SocialGetPlatformFriendList: Gets the platform friend of the requested type, with additional information if they have Bungie accounts. Must have a recent login session with said platform.

URL: /Social/PlatformFriends/{friendPlatform}/{page}/

Operation: Social.GetPlatformFriendList

func (API) SocialIssueFriendRequest

func (a API) SocialIssueFriendRequest(ctx context.Context, req SocialIssueFriendRequestRequest) (*ServerResponse[bool], error)

SocialIssueFriendRequest: Requests a friend relationship with the target user. Any of the target user's linked membership ids are valid inputs.

URL: /Social/Friends/Add/{membershipId}/

Operation: Social.IssueFriendRequest

Scope: oauth2 [BnetWrite]

func (API) SocialRemoveFriend

func (a API) SocialRemoveFriend(ctx context.Context, req SocialRemoveFriendRequest) (*ServerResponse[bool], error)

SocialRemoveFriend: Remove a friend relationship with the target user. The user must be on your friend list, though no error will occur if they are not.

URL: /Social/Friends/Remove/{membershipId}/

Operation: Social.RemoveFriend

Scope: oauth2 [BnetWrite]

func (API) SocialRemoveFriendRequest

func (a API) SocialRemoveFriendRequest(ctx context.Context, req SocialRemoveFriendRequestRequest) (*ServerResponse[bool], error)

SocialRemoveFriendRequest: Remove a friend relationship with the target user. The user must be on your outgoing request friend list, though no error will occur if they are not.

URL: /Social/Friends/Requests/Remove/{membershipId}/

Operation: Social.RemoveFriendRequest

Scope: oauth2 [BnetWrite]

func (API) TokensApplyMissingPartnerOffersWithoutClaim

func (a API) TokensApplyMissingPartnerOffersWithoutClaim(ctx context.Context, req TokensApplyMissingPartnerOffersWithoutClaimRequest) (*ServerResponse[bool], error)

TokensApplyMissingPartnerOffersWithoutClaim: Apply a partner offer to the targeted user. This endpoint does not claim a new offer, but any already claimed offers will be applied to the game if not already.

URL: /Tokens/Partner/ApplyMissingOffers/{partnerApplicationId}/{targetBnetMembershipId}/

Operation: Tokens.ApplyMissingPartnerOffersWithoutClaim

Scope: oauth2 [PartnerOfferGrant]

func (API) TokensClaimPartnerOffer

func (a API) TokensClaimPartnerOffer(ctx context.Context, req TokensClaimPartnerOfferRequest) (*ServerResponse[bool], error)

TokensClaimPartnerOffer: Claim a partner offer as the authenticated user.

URL: /Tokens/Partner/ClaimOffer/

Operation: Tokens.ClaimPartnerOffer

Scope: oauth2 [PartnerOfferGrant]

func (API) TokensForceDropsRepair

func (a API) TokensForceDropsRepair(ctx context.Context, req TokensForceDropsRepairRequest) (*ServerResponse[bool], error)

TokensForceDropsRepair: Twitch Drops self-repair function - scans twitch for drops not marked as fulfilled and resyncs them.

URL: /Tokens/Partner/ForceDropsRepair/

Operation: Tokens.ForceDropsRepair

Scope: oauth2 [PartnerOfferGrant]

func (API) TokensGetBungieRewardsForPlatformUser

func (a API) TokensGetBungieRewardsForPlatformUser(ctx context.Context, req TokensGetBungieRewardsForPlatformUserRequest) (*ServerResponse[map[string]BungieRewardDisplay], error)

TokensGetBungieRewardsForPlatformUser: Returns the bungie rewards for the targeted user when a platform membership Id and Type are used.

URL: /Tokens/Rewards/GetRewardsForPlatformUser/{membershipId}/{membershipType}/

Operation: Tokens.GetBungieRewardsForPlatformUser

Scope: oauth2 [ReadAndApplyTokens]

func (API) TokensGetBungieRewardsForUser

func (a API) TokensGetBungieRewardsForUser(ctx context.Context, req TokensGetBungieRewardsForUserRequest) (*ServerResponse[map[string]BungieRewardDisplay], error)

TokensGetBungieRewardsForUser: Returns the bungie rewards for the targeted user.

URL: /Tokens/Rewards/GetRewardsForUser/{membershipId}/

Operation: Tokens.GetBungieRewardsForUser

Scope: oauth2 [ReadAndApplyTokens]

func (API) TokensGetBungieRewardsList

func (a API) TokensGetBungieRewardsList(ctx context.Context, req TokensGetBungieRewardsListRequest) (*ServerResponse[map[string]BungieRewardDisplay], error)

TokensGetBungieRewardsList: Returns a list of the current bungie rewards

URL: /Tokens/Rewards/BungieRewards/

Operation: Tokens.GetBungieRewardsList

func (API) TokensGetPartnerOfferSkuHistory

TokensGetPartnerOfferSkuHistory: Returns the partner sku and offer history of the targeted user. Elevated permissions are required to see users that are not yourself.

URL: /Tokens/Partner/History/{partnerApplicationId}/{targetBnetMembershipId}/

Operation: Tokens.GetPartnerOfferSkuHistory

Scope: oauth2 [PartnerOfferGrant]

func (API) TokensGetPartnerRewardHistory

TokensGetPartnerRewardHistory: Returns the partner rewards history of the targeted user, both partner offers and Twitch drops.

URL: /Tokens/Partner/History/{targetBnetMembershipId}/Application/{partnerApplicationId}/

Operation: Tokens.GetPartnerRewardHistory

Scope: oauth2 [PartnerOfferGrant]

func (API) TrendingGetTrendingCategories

func (a API) TrendingGetTrendingCategories(ctx context.Context, req TrendingGetTrendingCategoriesRequest) (*ServerResponse[TrendingCategories], error)

TrendingGetTrendingCategories: Returns trending items for Bungie.net, collapsed into the first page of items per category. For pagination within a category, call GetTrendingCategory.

URL: /Trending/Categories/

Operation: Trending.GetTrendingCategories

func (API) TrendingGetTrendingCategory

TrendingGetTrendingCategory: Returns paginated lists of trending items for a category.

URL: /Trending/Categories/{categoryId}/{pageNumber}/

Operation: Trending.GetTrendingCategory

func (API) TrendingGetTrendingEntryDetail

func (a API) TrendingGetTrendingEntryDetail(ctx context.Context, req TrendingGetTrendingEntryDetailRequest) (*ServerResponse[TrendingDetail], error)

TrendingGetTrendingEntryDetail: Returns the detailed results for a specific trending entry. Note that trending entries are uniquely identified by a combination of *both* the TrendingEntryType *and* the identifier: the identifier alone is not guaranteed to be globally unique.

URL: /Trending/Details/{trendingEntryType}/{identifier}/

Operation: Trending.GetTrendingEntryDetail

func (API) UserGetAvailableThemes

func (a API) UserGetAvailableThemes(ctx context.Context, req UserGetAvailableThemesRequest) (*ServerResponse[[]UserTheme], error)

UserGetAvailableThemes: Returns a list of all available user themes.

URL: /User/GetAvailableThemes/

Operation: User.GetAvailableThemes

func (API) UserGetBungieNetUserById

func (a API) UserGetBungieNetUserById(ctx context.Context, req UserGetBungieNetUserByIdRequest) (*ServerResponse[GeneralUser], error)

UserGetBungieNetUserById: Loads a bungienet user by membership id.

URL: /User/GetBungieNetUserById/{id}/

Operation: User.GetBungieNetUserById

func (API) UserGetCredentialTypesForTargetAccount

UserGetCredentialTypesForTargetAccount: Returns a list of credential types attached to the requested account

URL: /User/GetCredentialTypesForTargetAccount/{membershipId}/

Operation: User.GetCredentialTypesForTargetAccount

func (API) UserGetMembershipDataById

func (a API) UserGetMembershipDataById(ctx context.Context, req UserGetMembershipDataByIdRequest) (*ServerResponse[UserMembershipData], error)

UserGetMembershipDataById: Returns a list of accounts associated with the supplied membership ID and membership type. This will include all linked accounts (even when hidden) if supplied credentials permit it.

URL: /User/GetMembershipsById/{membershipId}/{membershipType}/

Operation: User.GetMembershipDataById

func (API) UserGetMembershipDataForCurrentUser

func (a API) UserGetMembershipDataForCurrentUser(ctx context.Context, req UserGetMembershipDataForCurrentUserRequest) (*ServerResponse[UserMembershipData], error)

UserGetMembershipDataForCurrentUser: Returns a list of accounts associated with signed in user. This is useful for OAuth implementations that do not give you access to the token response.

URL: /User/GetMembershipsForCurrentUser/

Operation: User.GetMembershipDataForCurrentUser

Scope: oauth2 [ReadBasicUserProfile]

func (API) UserGetMembershipFromHardLinkedCredential

func (a API) UserGetMembershipFromHardLinkedCredential(ctx context.Context, req UserGetMembershipFromHardLinkedCredentialRequest) (*ServerResponse[HardLinkedUserMembership], error)

UserGetMembershipFromHardLinkedCredential: Gets any hard linked membership given a credential. Only works for credentials that are public (just SteamID64 right now). Cross Save aware.

URL: /User/GetMembershipFromHardLinkedCredential/{crType}/{credential}/

Operation: User.GetMembershipFromHardLinkedCredential

func (API) UserGetSanitizedPlatformDisplayNames

func (a API) UserGetSanitizedPlatformDisplayNames(ctx context.Context, req UserGetSanitizedPlatformDisplayNamesRequest) (*ServerResponse[map[string]string], error)

UserGetSanitizedPlatformDisplayNames: Gets a list of all display names linked to this membership id but sanitized (profanity filtered). Obeys all visibility rules of calling user and is heavily cached.

URL: /User/GetSanitizedPlatformDisplayNames/{membershipId}/

Operation: User.GetSanitizedPlatformDisplayNames

func (API) UserSearchByGlobalNamePost

func (a API) UserSearchByGlobalNamePost(ctx context.Context, req UserSearchByGlobalNamePostRequest) (*ServerResponse[UserSearchResponse], error)

UserSearchByGlobalNamePost: Given the prefix of a global display name, returns all users who share that name.

URL: /User/Search/GlobalName/{page}/

Operation: User.SearchByGlobalNamePost

func (API) UserSearchByGlobalNamePrefix

func (a API) UserSearchByGlobalNamePrefix(ctx context.Context, req UserSearchByGlobalNamePrefixRequest) (*ServerResponse[UserSearchResponse], error)

UserSearchByGlobalNamePrefix: [OBSOLETE] Do not use this to search users, use SearchByGlobalNamePost instead.

URL: /User/Search/Prefix/{displayNamePrefix}/{page}/

Operation: User.SearchByGlobalNamePrefix

func (*API) WithAuthToken

func (a *API) WithAuthToken(tok string) *API

type ActionRequest

type ActionRequest struct {
	MembershipType BungieMembershipType `json:"membershipType"`
}

Destiny.Requests.Actions.DestinyActionRequest

type Activity

type Activity struct {

	// The hash identifier of the Activity. Use this to look up the DestinyActivityDefinition of the
	// activity.
	ActivityHash Hash[ActivityDefinition] `json:"activityHash"`

	// The set of activity options for this activity, keyed by an identifier that's unique for this
	// activity (not guaranteed to be unique between or across all activities, though should be unique for
	// every *variant* of a given *conceptual* activity: for instance, the original D2 Raid has many
	// variant DestinyActivityDefinitions. While other activities could potentially have the same option
	// hashes, for any given D2 base Raid variant the hash will be unique).
	// As a concrete example of this data, the hashes you get for Raids will correspond to the currently
	// active "Challenge Mode".
	// We don't have any human readable information for these, but saavy 3rd party app users could manually
	// associate the key (a hash identifier for the "option" that is enabled/disabled) and the value
	// (whether it's enabled or disabled presently)
	// On our side, we don't necessarily even know what these are used for (the game designers know, but we
	// don't), and we have no human readable data for them. In order to use them, you will have to do some
	// experimentation.
	BooleanActivityOptions map[uint32]bool `json:"booleanActivityOptions"`

	// If true, the user is allowed to join with another Fireteam in this activity.
	CanJoin bool `json:"canJoin"`

	// If true, the user is allowed to lead a Fireteam into this activity.
	CanLead bool `json:"canLead"`

	Challenges []ChallengeStatus `json:"challenges"`

	// A DestinyActivityDifficultyTier enum value indicating the difficulty of the activity.
	DifficultyTier ActivityDifficultyTier `json:"difficultyTier"`

	// The difficulty level of the activity, if applicable.
	DisplayLevel Nullable[int32] `json:"displayLevel,omitempty"`

	// If true, we both have the ability to know that the user has completed this activity and they have
	// completed it. Unfortunately, we can't necessarily know this for all activities. As such, this should
	// probably only be used if you already know in advance which specific activities you wish to check.
	IsCompleted bool `json:"isCompleted"`

	// If true, then the activity should have a "new" indicator in the Director UI.
	IsNew bool `json:"isNew"`

	// If true, the user should be able to see this activity.
	IsVisible bool `json:"isVisible"`

	// If returned, this is the index into the DestinyActivityDefinition's "loadouts" property, indicating
	// the currently active loadout requirements.
	LoadoutRequirementIndex Nullable[int32] `json:"loadoutRequirementIndex,omitempty"`

	// If the activity has modifiers, this will be the list of modifiers that all variants have in common.
	// Perform lookups against DestinyActivityModifierDefinition which defines the modifier being applied
	// to get at the modifier data.
	// Note that, in the DestiyActivityDefinition, you will see many more modifiers than this being
	// referred to: those are all *possible* modifiers for the activity, not the active ones. Use only the
	// active ones to match what's really live.
	ModifierHashes []uint32 `json:"modifierHashes"`

	// The recommended light level for the activity, if applicable.
	RecommendedLight Nullable[int32] `json:"recommendedLight,omitempty"`
}

Destiny.DestinyActivity

Represents the "Live" data that we can obtain about a Character's status with a specific Activity. This will tell you whether the character can participate in the activity, as well as some other basic mutable information. Meant to be combined with static DestinyActivityDefinition data for a full picture of the Activity.

type ActivityChallengeDefinition

type ActivityChallengeDefinition struct {

	// The rewards as they're represented in the UI. Note that they generally link to "dummy" items that
	// give a summary of rewards rather than direct, real items themselves.
	// If the quantity is 0, don't show the quantity.
	DummyRewards []ItemQuantity `json:"dummyRewards"`

	// The hash for the Objective that matches this challenge. Use it to look up the
	// DestinyObjectiveDefinition.
	ObjectiveHash Hash[ObjectiveDefinition] `json:"objectiveHash"`
}

Destiny.Definitions.DestinyActivityChallengeDefinition

Represents a reference to a Challenge, which for now is just an Objective.

func (ActivityChallengeDefinition) DefinitionTable

func (d ActivityChallengeDefinition) DefinitionTable() string

type ActivityDefinition

type ActivityDefinition struct {

	// Unfortunately, in practice this is almost never populated. In theory, this is supposed to tell which
	// Activity Graph to show if you bring up the director while in this activity.
	ActivityGraphList []ActivityGraphListEntryDefinition `json:"activityGraphList"`

	// The recommended light level for this activity.
	ActivityLightLevel int32 `json:"activityLightLevel"`

	// A list of location mappings that are affected by this activity. Pulled out of
	// DestinyLocationDefinitions for our/your lookup convenience.
	ActivityLocationMappings []EnvironmentLocationMapping `json:"activityLocationMappings"`

	// The hash identifiers for Activity Modes relevant to this activity.  Note that if this is a playlist,
	// the specific playlist entry chosen will determine the actual activity modes that end up being
	// relevant.
	ActivityModeHashes []uint32 `json:"activityModeHashes"`

	// The activity modes - if any - in enum form. Because we can't seem to escape the enums.
	ActivityModeTypes []ActivityModeType `json:"activityModeTypes"`

	// The hash identifier for the Activity Type of this Activity. You may use it to look up the
	// DestinyActivityTypeDefinition for human readable info, but be forewarned: Playlists and many PVP Map
	// Activities will map to generic Activity Types. You'll have to use your knowledge of the Activity
	// Mode being played to get more specific information about what the user is playing.
	ActivityTypeHash Hash[ActivityTypeDefinition] `json:"activityTypeHash"`

	// An activity can have many Challenges, of which any subset of them may be active for play at any
	// given period of time. This gives the information about the challenges and data that we use to
	// understand when they're active and what rewards they provide. Sadly, at the moment there's no
	// central definition for challenges: much like "Skulls" were in Destiny 1, these are defined on
	// individual activities and there can be many duplicates/near duplicates across the Destiny 2
	// ecosystem. I have it in mind to centralize these in a future revision of the API, but we are out of
	// time.
	Challenges []ActivityChallengeDefinition `json:"challenges"`

	// The hash identifier for the Destination on which this Activity is played. Use it to look up the
	// DestinyDestinationDefinition for human readable info about the destination. A Destination can be
	// thought of as a more specific location than a "Place". For instance, if the "Place" is Earth, the
	// "Destination" would be a specific city or region on Earth.
	DestinationHash Hash[DestinationDefinition] `json:"destinationHash"`

	// If this activity had an activity mode directly defined on it, this will be the hash of that mode.
	DirectActivityModeHash Nullable[Hash[ActivityModeDefinition]] `json:"directActivityModeHash,omitempty"`

	// If the activity had an activity mode directly defined on it, this will be the enum value of that
	// mode.
	DirectActivityModeType Nullable[int32] `json:"directActivityModeType,omitempty"`

	// The title, subtitle, and icon for the activity. We do a little post-processing on this to try and
	// account for Activities where the designers have left this data too minimal to determine what
	// activity is actually being played.
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// This block of data, if it exists, provides information about the guided game experience and
	// restrictions for this activity. If it doesn't exist, the game is not able to be played as a guided
	// game.
	GuidedGame ActivityGuidedBlockDefinition `json:"guidedGame"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// The list of phases or points of entry into an activity, along with information we can use to
	// determine their gating and availability.
	InsertionPoints []ActivityInsertionPointDefinition `json:"insertionPoints"`

	// If True, this Activity is actually a Playlist that refers to multiple possible specific Activities
	// and Activity Modes. For instance, a Crucible Playlist may have references to multiple Activities
	// (Maps) with multiple Activity Modes (specific PvP gameplay modes). If this is true, refer to the
	// playlistItems property for the specific entries in the playlist.
	IsPlaylist bool `json:"isPlaylist"`

	// If true, this activity is a PVP activity or playlist.
	IsPvP bool `json:"isPvP"`

	// The set of all possible loadout requirements that could be active for this activity. Only one will
	// be active at any given time, and you can discover which one through activity-associated data such as
	// Milestones that have activity info on them.
	Loadouts []ActivityLoadoutRequirementSet `json:"loadouts"`

	// This block of data provides information about the Activity's matchmaking attributes: how many people
	// can join and such.
	Matchmaking ActivityMatchmakingBlockDefinition `json:"matchmaking"`

	// Activities can have Modifiers, as defined in DestinyActivityModifierDefinition. These are references
	// to the modifiers that *can* be applied to that activity, along with data that we use to determine if
	// that modifier is actually active at any given point in time.
	Modifiers []ActivityModifierReferenceDefinition `json:"modifiers"`

	// If there are status strings related to the activity and based on internal state of the game,
	// account, or character, then this will be the definition of those strings and the states needed in
	// order for the strings to be shown.
	OptionalUnlockStrings []ActivityUnlockStringDefinition `json:"optionalUnlockStrings"`

	// The unadulterated form of the display properties, as they ought to be shown in the Director (if the
	// activity appears in the director).
	OriginalDisplayProperties DisplayPropertiesDefinition `json:"originalDisplayProperties"`

	// When Activities are completed, we generate a "Post-Game Carnage Report", or PGCR, with details about
	// what happened in that activity (how many kills someone got, which team won, etc...) We use this
	// image as the background when displaying PGCR information, and often use it when we refer to the
	// Activity in general.
	PgcrImage string `json:"pgcrImage"`

	// The hash identifier for the "Place" on which this Activity is played. Use it to look up the
	// DestinyPlaceDefinition for human readable info about the Place. A Place is the largest-scoped
	// concept for location information. For instance, if the "Place" is Earth, the "Destination" would be
	// a specific city or region on Earth.
	PlaceHash Hash[PlaceDefinition] `json:"placeHash"`

	// Represents all of the possible activities that could be played in the Playlist, along with
	// information that we can use to determine if they are active at the present time.
	PlaylistItems []ActivityPlaylistItemDefinition `json:"playlistItems"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	// If the activity has an icon associated with a specific release (such as a DLC), this is the path to
	// that release's icon.
	ReleaseIcon string `json:"releaseIcon"`

	// If the activity will not be visible until a specific and known time, this will be the seconds since
	// the Epoch when it will become visible.
	ReleaseTime int32 `json:"releaseTime"`

	// The expected possible rewards for the activity. These rewards may or may not be accessible for an
	// individual player based on their character state, the account state, and even the game's state
	// overall. But it is a useful reference for possible rewards you can earn in the activity. These match
	// up to rewards displayed when you hover over the Activity in the in-game Director, and often refer to
	// Placeholder or "Dummy" items: items that tell you what you can earn in vague terms rather than what
	// you'll specifically be earning (partly because the game doesn't even know what you'll earn
	// specifically until you roll for it at the end)
	Rewards []ActivityRewardDefinition `json:"rewards"`

	// The title, subtitle, and icon for the activity as determined by Selection Screen data, if there is
	// any for this activity. There won't be data in this field if the activity is never shown in a
	// selection/options screen.
	SelectionScreenDisplayProperties DisplayPropertiesDefinition `json:"selectionScreenDisplayProperties"`

	// The difficulty tier of the activity.
	Tier int32 `json:"tier"`
}

Destiny.Definitions.DestinyActivityDefinition

The static data about Activities in Destiny 2. Note that an Activity must be combined with an ActivityMode to know - from a Gameplay perspective - what the user is "Playing". In most PvE activities, this is fairly straightforward. A Story Activity can only be played in the Story Activity Mode. However, in PvP activities, the Activity alone only tells you the map being played, or the Playlist that the user chose to enter. You'll need to know the Activity Mode they're playing to know that they're playing Mode X on Map Y. Activity Definitions tell a great deal of information about what *could* be relevant to a user: what rewards they can earn, what challenges could be performed, what modifiers could be applied. To figure out which of these properties is actually live, you'll need to combine the definition with "Live" data from one of the Destiny endpoints. Activities also have Activity Types, but unfortunately in Destiny 2 these are even less reliable of a source of information than they were in Destiny 1. I will be looking into ways to provide more reliable sources for type information as time goes on, but for now we're going to have to deal with the limitations. See DestinyActivityTypeDefinition for more information.

func (ActivityDefinition) DefinitionTable

func (d ActivityDefinition) DefinitionTable() string

type ActivityDifficultyTier

type ActivityDifficultyTier int32

Destiny.DestinyActivityDifficultyTier

An enumeration representing the potential difficulty levels of an activity. Their names are... more qualitative than quantitative.

func (ActivityDifficultyTier) Enum

func (e ActivityDifficultyTier) Enum() string

type ActivityGraphArtElementDefinition

type ActivityGraphArtElementDefinition struct {

	// The position on the map of the art element.
	Position PositionDefinition `json:"position"`
}

Destiny.Definitions.Director.DestinyActivityGraphArtElementDefinition

These Art Elements are meant to represent one-off visual effects overlaid on the map. Currently, we do not have a pipeline to import the assets for these overlays, so this info exists as a placeholder for when such a pipeline exists (if it ever will)

func (ActivityGraphArtElementDefinition) DefinitionTable

func (d ActivityGraphArtElementDefinition) DefinitionTable() string

type ActivityGraphConnectionDefinition

type ActivityGraphConnectionDefinition struct {
	DestNodeHash uint32 `json:"destNodeHash"`

	SourceNodeHash uint32 `json:"sourceNodeHash"`
}

Destiny.Definitions.Director.DestinyActivityGraphConnectionDefinition

Nodes on a graph can be visually connected: this appears to be the information about which nodes to link. It appears to lack more detailed information, such as the path for that linking.

func (ActivityGraphConnectionDefinition) DefinitionTable

func (d ActivityGraphConnectionDefinition) DefinitionTable() string

type ActivityGraphDefinition

type ActivityGraphDefinition struct {

	// Represents one-off/special UI elements that appear on the map.
	ArtElements []ActivityGraphArtElementDefinition `json:"artElements"`

	// Represents connections between graph nodes. However, it lacks context that we'd need to make good
	// use of it.
	Connections []ActivityGraphConnectionDefinition `json:"connections"`

	// Objectives can display on maps, and this is supposedly metadata for that. I have not had the time to
	// analyze the details of what is useful within however: we could be missing important data to make
	// this work. Expect this property to be expanded on later if possible.
	DisplayObjectives []ActivityGraphDisplayObjectiveDefinition `json:"displayObjectives"`

	// Progressions can also display on maps, but similarly to displayObjectives we appear to lack some
	// required information and context right now. We will have to look into it later and add more data if
	// possible.
	DisplayProgressions []ActivityGraphDisplayProgressionDefinition `json:"displayProgressions"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// Represents links between this Activity Graph and other ones.
	LinkedGraphs []LinkedGraphDefinition `json:"linkedGraphs"`

	// These represent the visual "nodes" on the map's view. These are the activities you can click on in
	// the map.
	Nodes []ActivityGraphNodeDefinition `json:"nodes"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.Director.DestinyActivityGraphDefinition

Represents a Map View in the director: be them overview views, destination views, or other. They have nodes which map to activities, and other various visual elements that we (or others) may or may not be able to use. Activity graphs, most importantly, have nodes which can have activities in various states of playability. Unfortunately, activity graphs are combined at runtime with Game UI-only assets such as fragments of map images, various in-game special effects, decals etc... that we don't get in these definitions. If we end up having time, we may end up trying to manually populate those here: but the last time we tried that, before the lead-up to D1, it proved to be unmaintainable as the game's content changed. So don't bet the farm on us providing that content in this definition.

func (ActivityGraphDefinition) DefinitionTable

func (d ActivityGraphDefinition) DefinitionTable() string

type ActivityGraphDisplayObjectiveDefinition

type ActivityGraphDisplayObjectiveDefinition struct {

	// $NOTE $amola 2017-01-19 This field is apparently something that CUI uses to manually wire up
	// objectives to display info. I am unsure how it works.
	Id uint32 `json:"id"`

	// The objective being shown on the map.
	ObjectiveHash Hash[ObjectiveDefinition] `json:"objectiveHash"`
}

Destiny.Definitions.Director.DestinyActivityGraphDisplayObjectiveDefinition

When a Graph needs to show active Objectives, this defines those objectives as well as an identifier.

func (ActivityGraphDisplayObjectiveDefinition) DefinitionTable

func (d ActivityGraphDisplayObjectiveDefinition) DefinitionTable() string

type ActivityGraphDisplayProgressionDefinition

type ActivityGraphDisplayProgressionDefinition struct {
	Id uint32 `json:"id"`

	ProgressionHash uint32 `json:"progressionHash"`
}

Destiny.Definitions.Director.DestinyActivityGraphDisplayProgressionDefinition

When a Graph needs to show active Progressions, this defines those objectives as well as an identifier.

func (ActivityGraphDisplayProgressionDefinition) DefinitionTable

type ActivityGraphListEntryDefinition

type ActivityGraphListEntryDefinition struct {

	// The hash identifier of the DestinyActivityGraphDefinition that should be shown when opening the
	// director.
	ActivityGraphHash Hash[ActivityGraphDefinition] `json:"activityGraphHash"`
}

Destiny.Definitions.DestinyActivityGraphListEntryDefinition

Destinations and Activities may have default Activity Graphs that should be shown when you bring up the Director and are playing in either. This contract defines the graph referred to and the gating for when it is relevant.

func (ActivityGraphListEntryDefinition) DefinitionTable

func (d ActivityGraphListEntryDefinition) DefinitionTable() string

type ActivityGraphNodeActivityDefinition

type ActivityGraphNodeActivityDefinition struct {

	// The activity that will be activated if the user clicks on this node. Controls all activity-related
	// information displayed on the node if it is active (the text shown in the tooltip etc)
	ActivityHash Hash[ActivityDefinition] `json:"activityHash"`

	// An identifier for this node activity. It is only guaranteed to be unique within the Activity Graph.
	NodeActivityID uint32 `json:"nodeActivityId"`
}

Destiny.Definitions.Director.DestinyActivityGraphNodeActivityDefinition

The actual activity to be redirected to when you click on the node. Note that a node can have many Activities attached to it: but only one will be active at any given time. The list of Node Activities will be traversed, and the first one found to be active will be displayed. This way, a node can layer multiple variants of an activity on top of each other. For instance, one node can control the weekly Crucible Playlist. There are multiple possible playlists, but only one is active for the week.

func (ActivityGraphNodeActivityDefinition) DefinitionTable

func (d ActivityGraphNodeActivityDefinition) DefinitionTable() string

type ActivityGraphNodeDefinition

type ActivityGraphNodeDefinition struct {

	// The node may have various possible activities that could be active for it, however only one may be
	// active at a time. See the DestinyActivityGraphNodeActivityDefinition for details.
	Activities []ActivityGraphNodeActivityDefinition `json:"activities"`

	// The node may have various visual accents placed on it, or styles applied. These are the list of
	// possible styles that the Node can have. The game iterates through each, looking for the first one
	// that passes a check of the required game/character/account state in order to show that style, and
	// then renders the node in that style.
	FeaturingStates []ActivityGraphNodeFeaturingStateDefinition `json:"featuringStates"`

	// An identifier for the Activity Graph Node, only guaranteed to be unique within its parent Activity
	// Graph.
	NodeID uint32 `json:"nodeId"`

	// The node *may* have display properties that override the active Activity's display properties.
	OverrideDisplay DisplayPropertiesDefinition `json:"overrideDisplay"`

	// The position on the map for this node.
	Position PositionDefinition `json:"position"`

	// Represents possible states that the graph node can be in. These are combined with some checking that
	// happens in the game client and server to determine which state is actually active at any given time.
	States []ActivityGraphNodeStateEntry `json:"states"`
}

Destiny.Definitions.Director.DestinyActivityGraphNodeDefinition

This is the position and other data related to nodes in the activity graph that you can click to launch activities. An Activity Graph node will only have one active Activity at a time, which will determine the activity to be launched (and, unless overrideDisplay information is provided, will also determine the tooltip and other UI related to the node)

func (ActivityGraphNodeDefinition) DefinitionTable

func (d ActivityGraphNodeDefinition) DefinitionTable() string

type ActivityGraphNodeFeaturingStateDefinition

type ActivityGraphNodeFeaturingStateDefinition struct {

	// The node can be highlighted in a variety of ways - the game iterates through these and finds the
	// first FeaturingState that is valid at the present moment given the Game, Account, and Character
	// state, and renders the node in that state. See the ActivityGraphNodeHighlightType enum for possible
	// values.
	HighlightType ActivityGraphNodeHighlightType `json:"highlightType"`
}

Destiny.Definitions.Director.DestinyActivityGraphNodeFeaturingStateDefinition

Nodes can have different visual states. This object represents a single visual state ("highlight type") that a node can be in, and the unlock expression condition to determine whether it should be set.

func (ActivityGraphNodeFeaturingStateDefinition) DefinitionTable

type ActivityGraphNodeHighlightType

type ActivityGraphNodeHighlightType int32

Destiny.ActivityGraphNodeHighlightType

The various known UI styles in which an item can be highlighted. It'll be up to you to determine what you want to show based on this highlighting, BNet doesn't have any assets that correspond to these states. And yeah, RiseOfIron and Comet have their own special highlight states. Don't ask me, I can't imagine they're still used.

func (ActivityGraphNodeHighlightType) Enum

type ActivityGraphNodeStateEntry

type ActivityGraphNodeStateEntry struct {
	State GraphNodeState `json:"state"`
}

Destiny.Definitions.Director.DestinyActivityGraphNodeStateEntry

Represents a single state that a graph node might end up in. Depending on what's going on in the game, graph nodes could be shown in different ways or even excluded from view entirely.

func (ActivityGraphNodeStateEntry) DefinitionTable

func (d ActivityGraphNodeStateEntry) DefinitionTable() string

type ActivityGuidedBlockDefinition

type ActivityGuidedBlockDefinition struct {

	// If -1, the guided group cannot be disbanded. Otherwise, take the total # of players in the activity
	// and subtract this number: that is the total # of votes needed for the guided group to disband.
	GuidedDisbandCount int32 `json:"guidedDisbandCount"`

	// The maximum amount of people that can be in the waiting lobby.
	GuidedMaxLobbySize int32 `json:"guidedMaxLobbySize"`

	// The minimum amount of people that can be in the waiting lobby.
	GuidedMinLobbySize int32 `json:"guidedMinLobbySize"`
}

Destiny.Definitions.DestinyActivityGuidedBlockDefinition

Guided Game information for this activity.

func (ActivityGuidedBlockDefinition) DefinitionTable

func (d ActivityGuidedBlockDefinition) DefinitionTable() string

type ActivityHistoryResults

type ActivityHistoryResults struct {

	// List of activities, the most recent activity first.
	Activities []HistoricalStatsPeriodGroup `json:"activities"`
}

Destiny.HistoricalStats.DestinyActivityHistoryResults

type ActivityInsertionPointDefinition

type ActivityInsertionPointDefinition struct {

	// A unique hash value representing the phase. This can be useful for, for example, comparing how
	// different instances of Raids have phases in different orders!
	PhaseHash uint32 `json:"phaseHash"`
}

Destiny.Definitions.DestinyActivityInsertionPointDefinition

A point of entry into an activity, gated by an unlock flag and with some more-or-less useless (for our purposes) phase information. I'm including it in case we end up being able to bolt more useful information onto it in the future. UPDATE: Turns out this information isn't actually useless, and is in fact actually useful for people. Who would have thought? We still don't have localized info for it, but at least this will help people when they're looking at phase indexes in stats data, or when they want to know what phases have been completed on a weekly achievement.

func (ActivityInsertionPointDefinition) DefinitionTable

func (d ActivityInsertionPointDefinition) DefinitionTable() string

type ActivityLoadoutRequirement

type ActivityLoadoutRequirement struct {
	AllowedEquippedItemHashes []uint32 `json:"allowedEquippedItemHashes"`

	AllowedWeaponSubTypes []ItemSubType `json:"allowedWeaponSubTypes"`

	EquipmentSlotHash Hash[EquipmentSlotDefinition] `json:"equipmentSlotHash"`
}

Destiny.Definitions.DestinyActivityLoadoutRequirement

func (ActivityLoadoutRequirement) DefinitionTable

func (d ActivityLoadoutRequirement) DefinitionTable() string

type ActivityLoadoutRequirementSet

type ActivityLoadoutRequirementSet struct {

	// The set of requirements that will be applied on the activity if this requirement set is active.
	Requirements []ActivityLoadoutRequirement `json:"requirements"`
}

Destiny.Definitions.DestinyActivityLoadoutRequirementSet

func (ActivityLoadoutRequirementSet) DefinitionTable

func (d ActivityLoadoutRequirementSet) DefinitionTable() string

type ActivityMatchmakingBlockDefinition

type ActivityMatchmakingBlockDefinition struct {

	// If TRUE, the activity is matchmade. Otherwise, it requires explicit forming of a party.
	IsMatchmade bool `json:"isMatchmade"`

	// The maximum # of people allowed in a Fireteam.
	MaxParty int32 `json:"maxParty"`

	// The maximum # of people allowed across all teams in the activity.
	MaxPlayers int32 `json:"maxPlayers"`

	// The minimum # of people in the fireteam for the activity to launch.
	MinParty int32 `json:"minParty"`

	// If true, you have to Solemnly Swear to be up to Nothing But Good(tm) to play.
	RequiresGuardianOath bool `json:"requiresGuardianOath"`
}

Destiny.Definitions.DestinyActivityMatchmakingBlockDefinition

Information about matchmaking and party size for the activity.

func (ActivityMatchmakingBlockDefinition) DefinitionTable

func (d ActivityMatchmakingBlockDefinition) DefinitionTable() string

type ActivityModeCategory

type ActivityModeCategory int32

Destiny.DestinyActivityModeCategory

Activity Modes are grouped into a few possible broad categories.

func (ActivityModeCategory) Enum

func (e ActivityModeCategory) Enum() string

type ActivityModeDefinition

type ActivityModeDefinition struct {

	// The type of play being performed in broad terms (PVP, PVE)
	ActivityModeCategory ActivityModeCategory `json:"activityModeCategory"`

	// If this exists, the mode has specific Activities (referred to by the Key) that should instead map to
	// other Activity Modes when they are played. This was useful in D1 for Private Matches, where we
	// wanted to have Private Matches as an activity mode while still referring to the specific mode being
	// played.
	ActivityModeMappings map[uint32]ActivityModeType `json:"activityModeMappings"`

	// If FALSE, we want to ignore this type when we're showing activity modes in BNet UI. It will still be
	// returned in case 3rd parties want to use it for any purpose.
	Display bool `json:"display"`

	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// A Friendly identifier you can use for referring to this Activity Mode. We really only used this in
	// our URLs, so... you know, take that for whatever it's worth.
	FriendlyName string `json:"friendlyName"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If true, this mode is an aggregation of other, more specific modes rather than being a mode in
	// itself. This includes modes that group Features/Events rather than Gameplay, such as Trials of The
	// Nine: Trials of the Nine being an Event that is interesting to see aggregate data for, but when you
	// play the activities within Trials of the Nine they are more specific activity modes such as Clash.
	IsAggregateMode bool `json:"isAggregateMode"`

	// If True, this mode has oppositional teams fighting against each other rather than "Free-For-All" or
	// Co-operative modes of play.
	// Note that Aggregate modes are never marked as team based, even if they happen to be team based at
	// the moment. At any time, an aggregate whose subordinates are only team based could be changed so
	// that one or more aren't team based, and then this boolean won't make much sense (the aggregation
	// would become "sometimes team based"). Let's not deal with that right now.
	IsTeamBased bool `json:"isTeamBased"`

	// The Enumeration value for this Activity Mode. Pass this identifier into Stats endpoints to get
	// aggregate stats for this mode.
	ModeType ActivityModeType `json:"modeType"`

	// The relative ordering of activity modes.
	Order int32 `json:"order"`

	// The hash identifiers of the DestinyActivityModeDefinitions that represent all of the "parent" modes
	// for this mode. For instance, the Nightfall Mode is also a member of AllStrikes and AllPvE.
	ParentHashes []uint32 `json:"parentHashes"`

	// If this activity mode has a related PGCR image, this will be the path to said image.
	PgcrImage string `json:"pgcrImage"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.DestinyActivityModeDefinition

This definition represents an "Activity Mode" as it exists in the Historical Stats endpoints. An individual Activity Mode represents a collection of activities that are played in a certain way. For example, Nightfall Strikes are part of a "Nightfall" activity mode, and any activities played as the PVP mode "Clash" are part of the "Clash activity mode. Activity modes are nested under each other in a hierarchy, so that if you ask for - for example - "AllPvP", you will get any PVP activities that the user has played, regardless of what specific PVP mode was being played.

func (ActivityModeDefinition) DefinitionTable

func (d ActivityModeDefinition) DefinitionTable() string

type ActivityModeType

type ActivityModeType int32

Destiny.HistoricalStats.Definitions.DestinyActivityModeType

For historical reasons, this list will have both D1 and D2-relevant Activity Modes in it. Please don't take this to mean that some D1-only feature is coming back!

func (ActivityModeType) Enum

func (e ActivityModeType) Enum() string

type ActivityModifierDefinition

type ActivityModifierDefinition struct {
	DisplayInActivitySelection bool `json:"displayInActivitySelection"`

	DisplayInNavMode bool `json:"displayInNavMode"`

	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.ActivityModifiers.DestinyActivityModifierDefinition

Modifiers - in Destiny 1, these were referred to as "Skulls" - are changes that can be applied to an Activity.

func (ActivityModifierDefinition) DefinitionTable

func (d ActivityModifierDefinition) DefinitionTable() string

type ActivityModifierReferenceDefinition

type ActivityModifierReferenceDefinition struct {

	// The hash identifier for the DestinyActivityModifierDefinition referenced by this activity.
	ActivityModifierHash Hash[ActivityModifierDefinition] `json:"activityModifierHash"`
}

Destiny.Definitions.DestinyActivityModifierReferenceDefinition

A reference to an Activity Modifier from another entity, such as an Activity (for now, just Activities). This defines some

func (ActivityModifierReferenceDefinition) DefinitionTable

func (d ActivityModifierReferenceDefinition) DefinitionTable() string

type ActivityNavPointType

type ActivityNavPointType int32

Destiny.DestinyActivityNavPointType

func (ActivityNavPointType) Enum

func (e ActivityNavPointType) Enum() string

type ActivityPlaylistItemDefinition

type ActivityPlaylistItemDefinition struct {

	// The hash identifier of the Activity that can be played. Use it to look up the
	// DestinyActivityDefinition.
	ActivityHash Hash[ActivityDefinition] `json:"activityHash"`

	// The hash identifiers for Activity Modes relevant to this entry.
	ActivityModeHashes []uint32 `json:"activityModeHashes"`

	// The activity modes - if any - in enum form. Because we can't seem to escape the enums.
	ActivityModeTypes []ActivityModeType `json:"activityModeTypes"`

	// If this playlist entry had an activity mode directly defined on it, this will be the hash of that
	// mode.
	DirectActivityModeHash Nullable[Hash[ActivityModeDefinition]] `json:"directActivityModeHash,omitempty"`

	// If the playlist entry had an activity mode directly defined on it, this will be the enum value of
	// that mode.
	DirectActivityModeType Nullable[int32] `json:"directActivityModeType,omitempty"`
}

Destiny.Definitions.DestinyActivityPlaylistItemDefinition

If the activity is a playlist, this is the definition for a specific entry in the playlist: a single possible combination of Activity and Activity Mode that can be chosen.

func (ActivityPlaylistItemDefinition) DefinitionTable

func (d ActivityPlaylistItemDefinition) DefinitionTable() string

type ActivityRewardDefinition

type ActivityRewardDefinition struct {

	// The "Items provided" in the reward. This is almost always a pointer to a
	// DestinyInventoryItemDefintion for an item that you can't actually earn in-game, but that has
	// name/description/icon information for the vague concept of the rewards you will receive. This is
	// because the actual reward generation is non-deterministic and extremely complicated, so the best the
	// game can do is tell you what you'll get in vague terms. And so too shall we.
	// Interesting trivia: you actually *do* earn these items when you complete the activity. They go into
	// a single-slot bucket on your profile, which is how you see the pop-ups of these rewards when you
	// complete an activity that match these "dummy" items. You can even see them if you look at the last
	// one you earned in your profile-level inventory through the BNet API! Who said reading documentation
	// is a waste of time?
	RewardItems []ItemQuantity `json:"rewardItems"`

	// The header for the reward set, if any.
	RewardText string `json:"rewardText"`
}

Destiny.Definitions.DestinyActivityRewardDefinition

Activities can refer to one or more sets of tooltip-friendly reward data. These are the definitions for those tooltip friendly rewards.

func (ActivityRewardDefinition) DefinitionTable

func (d ActivityRewardDefinition) DefinitionTable() string

type ActivityTypeDefinition

type ActivityTypeDefinition struct {
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.DestinyActivityTypeDefinition

The definition for an Activity Type. In Destiny 2, an Activity Type represents a conceptual categorization of Activities. These are most commonly used in the game for the subtitle under Activities, but BNet uses them extensively to identify and group activities by their common properties. Unfortunately, there has been a movement away from providing the richer data in Destiny 2 that we used to get in Destiny 1 for Activity Types. For instance, Nightfalls are grouped under the same Activity Type as regular Strikes. For this reason, BNet will eventually migrate toward Activity Modes as a better indicator of activity category. But for the time being, it is still referred to in many places across our codebase.

func (ActivityTypeDefinition) DefinitionTable

func (d ActivityTypeDefinition) DefinitionTable() string

type ActivityUnlockStringDefinition

type ActivityUnlockStringDefinition struct {

	// The string to be displayed if the conditions are met.
	DisplayString string `json:"displayString"`
}

Destiny.Definitions.DestinyActivityUnlockStringDefinition

Represents a status string that could be conditionally displayed about an activity. Note that externally, you can only see the strings themselves. Internally we combine this information with server state to determine which strings should be shown.

func (ActivityUnlockStringDefinition) DefinitionTable

func (d ActivityUnlockStringDefinition) DefinitionTable() string

type AggregateActivityResults

type AggregateActivityResults struct {

	// List of all activities the player has participated in.
	Activities []AggregateActivityStats `json:"activities"`
}

Destiny.HistoricalStats.DestinyAggregateActivityResults

type AggregateActivityStats

type AggregateActivityStats struct {

	// Hash ID that can be looked up in the DestinyActivityTable.
	ActivityHash Hash[ActivityDefinition] `json:"activityHash"`

	// Collection of stats for the player in this activity.
	Values map[string]HistoricalStatsValue `json:"values"`
}

Destiny.HistoricalStats.DestinyAggregateActivityStats

type AmmunitionType

type AmmunitionType int32

Destiny.DestinyAmmunitionType

func (AmmunitionType) Enum

func (e AmmunitionType) Enum() string

type AnimationReference

type AnimationReference struct {
	AnimIdentifier string `json:"animIdentifier"`

	AnimName string `json:"animName"`

	Path string `json:"path"`
}

Destiny.Definitions.Animations.DestinyAnimationReference

func (AnimationReference) DefinitionTable

func (d AnimationReference) DefinitionTable() string

type ApiUsage

type ApiUsage struct {

	// Counts for on API calls made for the time range.
	ApiCalls []Series `json:"apiCalls"`

	// Instances of blocked requests or requests that crossed the warn threshold during the time range.
	ThrottledRequests []Series `json:"throttledRequests"`
}

Applications.ApiUsage

type AppGetApplicationApiUsageRequest

type AppGetApplicationApiUsageRequest struct {

	// ID of the application to get usage statistics.
	// Required.
	ApplicationID int32

	// End time for query. Goes to now if not specified.
	End Timestamp

	// Start time for query. Goes to 24 hours ago if not specified.
	Start Timestamp
}

AppGetApplicationApiUsageRequest are the request parameters for operation App.GetApplicationApiUsage

type AppGetBungieApplicationsRequest

type AppGetBungieApplicationsRequest struct {
}

AppGetBungieApplicationsRequest are the request parameters for operation App.GetBungieApplications

type Application

type Application struct {

	// Unique ID assigned to the application
	ApplicationID int32 `json:"applicationId"`

	// Date the application was first added to our database.
	CreationDate Timestamp `json:"creationDate"`

	// Date the first time the application status entered the 'Public' status.
	FirstPublished Timestamp `json:"firstPublished"`

	// Link to website for the application where a user can learn more about the app.
	Link string `json:"link"`

	// Name of the application
	Name string `json:"name"`

	// Value of the Origin header sent in requests generated by this application.
	Origin string `json:"origin"`

	// An optional override for the Authorize view name.
	OverrideAuthorizeViewName string `json:"overrideAuthorizeViewName"`

	// URL used to pass the user's authorization code to the application
	RedirectUrl string `json:"redirectUrl"`

	// Permissions the application needs to work
	Scope Int64 `json:"scope"`

	// Current status of the application.
	Status ApplicationStatus `json:"status"`

	// Date the application status last changed.
	StatusChanged Timestamp `json:"statusChanged"`

	// List of team members who manage this application on Bungie.net. Will always consist of at least the
	// application owner.
	Team []ApplicationDeveloper `json:"team"`
}

Applications.Application

type ApplicationDeveloper

type ApplicationDeveloper struct {
	ApiEulaVersion int32 `json:"apiEulaVersion"`

	Role DeveloperRole `json:"role"`

	User UserInfoCard `json:"user"`
}

Applications.ApplicationDeveloper

type ApplicationScopes

type ApplicationScopes Int64

Applications.ApplicationScopes

func (ApplicationScopes) Enum

func (e ApplicationScopes) Enum() string

type ApplicationStatus

type ApplicationStatus int32

Applications.ApplicationStatus

func (ApplicationStatus) Enum

func (e ApplicationStatus) Enum() string

type ArrangementRegionFilterDefinition

type ArrangementRegionFilterDefinition struct {
	ArrangementIndexByStatValue map[int32]int32 `json:"arrangementIndexByStatValue"`

	ArtArrangementRegionHash uint32 `json:"artArrangementRegionHash"`

	ArtArrangementRegionIndex int32 `json:"artArrangementRegionIndex"`

	StatHash uint32 `json:"statHash"`
}

Destiny.Definitions.DestinyArrangementRegionFilterDefinition

func (ArrangementRegionFilterDefinition) DefinitionTable

func (d ArrangementRegionFilterDefinition) DefinitionTable() string

type ArtDyeReference

type ArtDyeReference struct {
	ArtDyeChannelHash uint32 `json:"artDyeChannelHash"`
}

Destiny.Definitions.DestinyArtDyeReference

func (ArtDyeReference) DefinitionTable

func (d ArtDyeReference) DefinitionTable() string

type ArtifactCharacterScoped

type ArtifactCharacterScoped struct {
	ArtifactHash Hash[ArtifactDefinition] `json:"artifactHash"`

	PointsUsed int32 `json:"pointsUsed"`

	ResetCount int32 `json:"resetCount"`

	Tiers []ArtifactTier `json:"tiers"`
}

Destiny.Artifacts.DestinyArtifactCharacterScoped

type ArtifactDefinition

type ArtifactDefinition struct {

	// Any basic display info we know about the Artifact. Currently sourced from a related inventory item,
	// but the source of this data is subject to change.
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	// Any Tier/Rank data related to this artifact, listed in display order.  Currently sourced from a
	// Vendor, but this source is subject to change.
	Tiers []ArtifactTierDefinition `json:"tiers"`

	// Any Geometry/3D info we know about the Artifact. Currently sourced from a related inventory item's
	// gearset information, but the source of this data is subject to change.
	TranslationBlock ItemTranslationBlockDefinition `json:"translationBlock"`
}

Destiny.Definitions.Artifacts.DestinyArtifactDefinition

Represents known info about a Destiny Artifact. We cannot guarantee that artifact definitions will be immutable between seasons - in fact, we've been told that they will be replaced between seasons. But this definition is built both to minimize the amount of lookups for related data that have to occur, and is built in hope that, if this plan changes, we will be able to accommodate it more easily.

func (ArtifactDefinition) DefinitionTable

func (d ArtifactDefinition) DefinitionTable() string

type ArtifactProfileScoped

type ArtifactProfileScoped struct {
	ArtifactHash Hash[ArtifactDefinition] `json:"artifactHash"`

	PointProgression Progression `json:"pointProgression"`

	PointsAcquired int32 `json:"pointsAcquired"`

	PowerBonus int32 `json:"powerBonus"`

	PowerBonusProgression Progression `json:"powerBonusProgression"`
}

Destiny.Artifacts.DestinyArtifactProfileScoped

Represents a Seasonal Artifact and all data related to it for the requested Account. It can be combined with Character-scoped data for a full picture of what a character has available/has chosen, or just these settings can be used for overview information.

type ArtifactTier

type ArtifactTier struct {
	IsUnlocked bool `json:"isUnlocked"`

	Items []ArtifactTierItem `json:"items"`

	PointsToUnlock int32 `json:"pointsToUnlock"`

	TierHash uint32 `json:"tierHash"`
}

Destiny.Artifacts.DestinyArtifactTier

type ArtifactTierDefinition

type ArtifactTierDefinition struct {

	// The human readable title of this tier, if any.
	DisplayTitle string `json:"displayTitle"`

	// The items that can be earned within this tier.
	Items []ArtifactTierItemDefinition `json:"items"`

	// The minimum number of "unlock points" that you must have used before you can unlock items from this
	// tier.
	MinimumUnlockPointsUsedRequirement int32 `json:"minimumUnlockPointsUsedRequirement"`

	// A string representing the localized minimum requirement text for this Tier, if any.
	ProgressRequirementMessage string `json:"progressRequirementMessage"`

	// An identifier, unique within the Artifact, for this specific tier.
	TierHash uint32 `json:"tierHash"`
}

Destiny.Definitions.Artifacts.DestinyArtifactTierDefinition

func (ArtifactTierDefinition) DefinitionTable

func (d ArtifactTierDefinition) DefinitionTable() string

type ArtifactTierItem

type ArtifactTierItem struct {
	IsActive bool `json:"isActive"`

	ItemHash Hash[InventoryItemDefinition] `json:"itemHash"`
}

Destiny.Artifacts.DestinyArtifactTierItem

type ArtifactTierItemDefinition

type ArtifactTierItemDefinition struct {

	// The identifier of the Plug Item unlocked by activating this item in the Artifact.
	ItemHash Hash[InventoryItemDefinition] `json:"itemHash"`
}

Destiny.Definitions.Artifacts.DestinyArtifactTierItemDefinition

func (ArtifactTierItemDefinition) DefinitionTable

func (d ArtifactTierItemDefinition) DefinitionTable() string

type AwaAuthorizationResult

type AwaAuthorizationResult struct {

	// Credential used to prove the user authorized an advanced write action.
	ActionToken string `json:"actionToken"`

	// Message to the app developer to help understand the response.
	DeveloperNote string `json:"developerNote"`

	// This token may be used to perform the requested action this number of times, at a maximum. If this
	// value is 0, then there is no limit.
	MaximumNumberOfUses int32 `json:"maximumNumberOfUses"`

	// MembershipType from the permission request.
	MembershipType BungieMembershipType `json:"membershipType"`

	ResponseReason AwaResponseReason `json:"responseReason"`

	// Advanced Write Action Type from the permission request.
	Type AwaType `json:"type"`

	// Indication of how the user responded to the request. If the value is "Approved" the actionToken will
	// contain the token that can be presented when performing the advanced write action.
	UserSelection AwaUserSelection `json:"userSelection"`

	// Time, UTC, when token expires.
	ValidUntil Nullable[Timestamp] `json:"validUntil,omitempty"`
}

Destiny.Advanced.AwaAuthorizationResult

type AwaInitializeResponse

type AwaInitializeResponse struct {

	// ID used to get the token. Present this ID to the user as it will identify this specific request on
	// their device.
	CorrelationID string `json:"correlationId"`

	// True if the PUSH message will only be sent to the device that made this request.
	SentToSelf bool `json:"sentToSelf"`
}

Destiny.Advanced.AwaInitializeResponse

type AwaPermissionRequested

type AwaPermissionRequested struct {

	// Item instance ID the action shall be applied to. This is optional for all but a new AwaType values.
	// Rule of thumb is to provide the item instance ID if one is available.
	AffectedItemID Nullable[Int64] `json:"affectedItemId,omitempty"`

	// Destiny character ID, if applicable, that will be affected by the action.
	CharacterID Nullable[Int64] `json:"characterId,omitempty"`

	// Destiny membership type of the account to modify.
	MembershipType BungieMembershipType `json:"membershipType"`

	// Type of advanced write action.
	Type AwaType `json:"type"`
}

Destiny.Advanced.AwaPermissionRequested

type AwaResponseReason

type AwaResponseReason int32

Destiny.Advanced.AwaResponseReason

func (AwaResponseReason) Enum

func (e AwaResponseReason) Enum() string

type AwaType

type AwaType int32

Destiny.Advanced.AwaType

func (AwaType) Enum

func (e AwaType) Enum() string

type AwaUserResponse

type AwaUserResponse struct {

	// Correlation ID of the request
	CorrelationID string `json:"correlationId"`

	// Secret nonce received via the PUSH notification.
	Nonce []int `json:"nonce"`

	// Indication of the selection the user has made (Approving or rejecting the action)
	Selection AwaUserSelection `json:"selection"`
}

Destiny.Advanced.AwaUserResponse

type AwaUserSelection

type AwaUserSelection int32

Destiny.Advanced.AwaUserSelection

func (AwaUserSelection) Enum

func (e AwaUserSelection) Enum() string

type BaseItemComponentSet

type BaseItemComponentSet[T comparable] struct {
	Objectives ComponentResponse[map[T]ItemObjectivesComponent] `json:"objectives"`
}

type BitmaskSet

type BitmaskSet[T ~uint32 | ~uint64 | ~int32 | OptInFlags] uint64

func (BitmaskSet[T]) Add

func (b BitmaskSet[T]) Add(value T) BitmaskSet[T]

func (BitmaskSet[T]) Clear

func (b BitmaskSet[T]) Clear(value T) BitmaskSet[T]

func (BitmaskSet[T]) Has

func (b BitmaskSet[T]) Has(value T) bool

func (BitmaskSet[T]) HasAll

func (b BitmaskSet[T]) HasAll(vals ...T) bool

func (BitmaskSet[T]) Remove

func (b BitmaskSet[T]) Remove(value T) BitmaskSet[T]

type BreakerType

type BreakerType int32

Destiny.DestinyBreakerType

A plug can optionally have a "Breaker Type": a special ability that can affect units in unique ways. Activating this plug can grant one of these types.

func (BreakerType) Enum

func (e BreakerType) Enum() string

type BreakerTypeDefinition

type BreakerTypeDefinition struct {
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// We have an enumeration for Breaker types for quick reference. This is the current definition's
	// breaker type enum value.
	EnumValue BreakerType `json:"enumValue"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.BreakerTypes.DestinyBreakerTypeDefinition

func (BreakerTypeDefinition) DefinitionTable

func (d BreakerTypeDefinition) DefinitionTable() string

type BubbleDefinition

type BubbleDefinition struct {

	// The display properties of this bubble, so you don't have to look them up in a separate list anymore.
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The identifier for the bubble: only guaranteed to be unique within the Destination.
	Hash uint32 `json:"hash"`
}

Destiny.Definitions.DestinyBubbleDefinition

Basic identifying data about the bubble. Combine with DestinyDestinationBubbleSettingDefinition - see DestinyDestinationDefinition.bubbleSettings for more information.

func (BubbleDefinition) DefinitionTable

func (d BubbleDefinition) DefinitionTable() string

type BucketCategory

type BucketCategory int32

Destiny.BucketCategory

func (BucketCategory) Enum

func (e BucketCategory) Enum() string

type BucketScope

type BucketScope int32

Destiny.BucketScope

func (BucketScope) Enum

func (e BucketScope) Enum() string

type BungieCredentialType

type BungieCredentialType int

BungieCredentialType

The types of credentials the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.CredentialType.

func (BungieCredentialType) Enum

func (e BungieCredentialType) Enum() string

type BungieFriend

type BungieFriend struct {
	BungieGlobalDisplayName string `json:"bungieGlobalDisplayName"`

	BungieGlobalDisplayNameCode Nullable[int16] `json:"bungieGlobalDisplayNameCode,omitempty"`

	BungieNetUser GeneralUser `json:"bungieNetUser"`

	LastSeenAsBungieMembershipType BungieMembershipType `json:"lastSeenAsBungieMembershipType"`

	LastSeenAsMembershipID Int64 `json:"lastSeenAsMembershipId"`

	OnlineStatus PresenceStatus `json:"onlineStatus"`

	OnlineTitle BitmaskSet[PresenceOnlineStateFlags] `json:"onlineTitle"`

	Relationship FriendRelationshipState `json:"relationship"`
}

Social.Friends.BungieFriend

type BungieFriendListResponse

type BungieFriendListResponse struct {
	Friends []BungieFriend `json:"friends"`
}

Social.Friends.BungieFriendListResponse

type BungieFriendRequestListResponse

type BungieFriendRequestListResponse struct {
	IncomingRequests []BungieFriend `json:"incomingRequests"`

	OutgoingRequests []BungieFriend `json:"outgoingRequests"`
}

Social.Friends.BungieFriendRequestListResponse

type BungieMembershipType

type BungieMembershipType int32

BungieMembershipType

The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.

func (BungieMembershipType) Enum

func (e BungieMembershipType) Enum() string

type BungieRewardDisplay

type BungieRewardDisplay struct {
	ObjectiveDisplayProperties RewardDisplayProperties `json:"ObjectiveDisplayProperties"`

	RewardDisplayProperties RewardDisplayProperties `json:"RewardDisplayProperties"`

	UserRewardAvailabilityModel UserRewardAvailabilityModel `json:"UserRewardAvailabilityModel"`
}

Tokens.BungieRewardDisplay

type Capabilities

type Capabilities int32

GroupsV2.Capabilities

func (Capabilities) Enum

func (e Capabilities) Enum() string

type ChallengeStatus

type ChallengeStatus struct {

	// The progress - including completion status - of the active challenge.
	Objective ObjectiveProgress `json:"objective"`
}

Destiny.Challenges.DestinyChallengeStatus

Represents the status and other related information for a challenge that is - or was - available to a player. A challenge is a bonus objective, generally tacked onto Quests or Activities, that provide additional variations on play.

type CharacterActionRequest

type CharacterActionRequest struct {
	CharacterID Int64 `json:"characterId"`

	MembershipType BungieMembershipType `json:"membershipType"`
}

Destiny.Requests.Actions.DestinyCharacterActionRequest

type CharacterActivitiesComponent

type CharacterActivitiesComponent struct {

	// The list of activities that the user can play.
	AvailableActivities []Activity `json:"availableActivities"`

	// If the user is in an activity, this will be the hash of the Activity being played. Note that you
	// must combine this info with currentActivityModeHash to get a real picture of what the user is doing
	// right now. For instance, PVP "Activities" are just maps: it's the ActivityMode that determines what
	// type of PVP game they're playing.
	CurrentActivityHash Hash[ActivityDefinition] `json:"currentActivityHash"`

	// If the user is in an activity, this will be the hash of the activity mode being played. Combine with
	// currentActivityHash to give a person a full picture of what they're doing right now.
	CurrentActivityModeHash Hash[ActivityModeDefinition] `json:"currentActivityModeHash"`

	// If the user is in an activity, this will be the hashes of the DestinyActivityModeDefinition being
	// played. Combine with currentActivityHash to give a person a full picture of what they're doing right
	// now.
	CurrentActivityModeHashes []uint32 `json:"currentActivityModeHashes"`

	// And the current activity's most specific mode type, if it can be found.
	CurrentActivityModeType Nullable[int32] `json:"currentActivityModeType,omitempty"`

	// All Activity Modes that apply to the current activity being played, in enum form.
	CurrentActivityModeTypes []ActivityModeType `json:"currentActivityModeTypes"`

	// If the user is in a playlist, this is the hash identifier for the playlist that they chose.
	CurrentPlaylistActivityHash Nullable[Hash[ActivityDefinition]] `json:"currentPlaylistActivityHash,omitempty"`

	// The last date that the user started playing an activity.
	DateActivityStarted Timestamp `json:"dateActivityStarted"`

	// This will have the activity hash of the last completed story/campaign mission, in case you care
	// about that.
	LastCompletedStoryHash Hash[ActivityDefinition] `json:"lastCompletedStoryHash"`
}

Destiny.Entities.Characters.DestinyCharacterActivitiesComponent

This component holds activity data for a character. It will tell you about the character's current activity status, as well as activities that are available to the user.

type CharacterComponent

type CharacterComponent struct {

	// The "base" level of your character, not accounting for any light level.
	BaseCharacterLevel int32 `json:"baseCharacterLevel"`

	// The unique identifier for the character.
	CharacterID Int64 `json:"characterId"`

	// Use this hash to look up the character's DestinyClassDefinition.
	ClassHash Hash[ClassDefinition] `json:"classHash"`

	// Mostly for historical purposes at this point, this is an enumeration for the character's class.
	// It'll be preferable in the general case to look up the related definition: but for some people this
	// was too convenient to remove.
	ClassType Class `json:"classType"`

	// The last date that the user played Destiny.
	DateLastPlayed Timestamp `json:"dateLastPlayed"`

	// A shortcut path to the user's currently equipped emblem background image. If you're just showing
	// summary info for a user, this is more convenient than examining their equipped emblem and looking up
	// the definition.
	EmblemBackgroundPath string `json:"emblemBackgroundPath"`

	// A shortcut for getting the background color of the user's currently equipped emblem without having
	// to do a DestinyInventoryItemDefinition lookup.
	EmblemColor Color `json:"emblemColor"`

	// The hash of the currently equipped emblem for the user. Can be used to look up the
	// DestinyInventoryItemDefinition.
	EmblemHash Hash[InventoryItemDefinition] `json:"emblemHash"`

	// A shortcut path to the user's currently equipped emblem image. If you're just showing summary info
	// for a user, this is more convenient than examining their equipped emblem and looking up the
	// definition.
	EmblemPath string `json:"emblemPath"`

	// Use this hash to look up the character's DestinyGenderDefinition.
	GenderHash Hash[GenderDefinition] `json:"genderHash"`

	// Mostly for historical purposes at this point, this is an enumeration for the character's Gender.
	// It'll be preferable in the general case to look up the related definition: but for some people this
	// was too convenient to remove. And yeah, it's an enumeration and not a boolean. Fight me.
	GenderType Gender `json:"genderType"`

	// The progression that indicates your character's level. Not their light level, but their character
	// level: you know, the thing you max out a couple hours in and then ignore for the sake of light
	// level.
	LevelProgression Progression `json:"levelProgression"`

	// The user's calculated "Light Level". Light level is an indicator of your power that mostly matters
	// in the end game, once you've reached the maximum character level: it's a level that's dependent on
	// the average Attack/Defense power of your items.
	Light int32 `json:"light"`

	// Every Destiny Profile has a membershipId. This is provided on the character as well for convenience.
	MembershipID Int64 `json:"membershipId"`

	// membershipType tells you the platform on which the character plays. Examine the BungieMembershipType
	// enumeration for possible values.
	MembershipType BungieMembershipType `json:"membershipType"`

	// If the user is currently playing, this is how long they've been playing.
	MinutesPlayedThisSession Int64 `json:"minutesPlayedThisSession"`

	// If this value is 525,600, then they played Destiny for a year. Or they're a very dedicated Rent fan.
	// Note that this includes idle time, not just time spent actually in activities shooting things.
	MinutesPlayedTotal Int64 `json:"minutesPlayedTotal"`

	// A number between 0 and 100, indicating the whole and fractional % remaining to get to the next
	// character level.
	PercentToNextLevel float64 `json:"percentToNextLevel"`

	// Use this hash to look up the character's DestinyRaceDefinition.
	RaceHash Hash[RaceDefinition] `json:"raceHash"`

	// Mostly for historical purposes at this point, this is an enumeration for the character's race.
	// It'll be preferable in the general case to look up the related definition: but for some people this
	// was too convenient to remove.
	RaceType Race `json:"raceType"`

	// Your character's stats, such as Agility, Resilience, etc... *not* historical stats.
	// You'll have to call a different endpoint for those.
	Stats map[uint32]int32 `json:"stats"`

	// If this Character has a title assigned to it, this is the identifier of the DestinyRecordDefinition
	// that has that title information.
	TitleRecordHash Nullable[Hash[RecordDefinition]] `json:"titleRecordHash,omitempty"`
}

Destiny.Entities.Characters.DestinyCharacterComponent

This component contains base properties of the character. You'll probably want to always request this component, but hey you do you.

type CharacterCustomization

type CharacterCustomization struct {
	DecalColor uint32 `json:"decalColor"`

	DecalIndex int32 `json:"decalIndex"`

	EyeColor uint32 `json:"eyeColor"`

	Face uint32 `json:"face"`

	FeatureColors []uint32 `json:"featureColors"`

	FeatureIndex int32 `json:"featureIndex"`

	HairColors []uint32 `json:"hairColors"`

	HairIndex int32 `json:"hairIndex"`

	LipColor uint32 `json:"lipColor"`

	Personality uint32 `json:"personality"`

	SkinColor uint32 `json:"skinColor"`

	WearHelmet bool `json:"wearHelmet"`
}

Destiny.Character.DestinyCharacterCustomization

Raw data about the customization options chosen for a character's face and appearance. You can look up the relevant class/race/gender combo in DestinyCharacterCustomizationOptionDefinition for the character, and then look up these values within the CustomizationOptions found to pull some data about their choices. Warning: not all of that data is meaningful. Some data has useful icons. Others have nothing, and are only meant for 3D rendering purposes (which we sadly do not expose yet)

type CharacterPeerView

type CharacterPeerView struct {
	Equipment []ItemPeerView `json:"equipment"`
}

Destiny.Character.DestinyCharacterPeerView

A minimal view of a character's equipped items, for the purpose of rendering a summary screen or showing the character in 3D.

type CharacterProgressionComponent

type CharacterProgressionComponent struct {

	// The set of checklists that can be examined for this specific character, keyed by the hash identifier
	// of the Checklist (DestinyChecklistDefinition)
	// For each checklist returned, its value is itself a Dictionary keyed by the checklist's hash
	// identifier with the value being a boolean indicating if it's been discovered yet.
	Checklists map[Hash[ChecklistDefinition]]map[uint32]bool `json:"checklists"`

	// A dictionary of all known Factions, keyed by the Faction's hash. It contains data about this
	// character's status with the faction.
	Factions map[Hash[FactionDefinition]]FactionProgression `json:"factions"`

	// Milestones are related to the simple progressions shown in the game, but return additional and
	// hopefully helpful information for users about the specifics of the Milestone's status.
	Milestones map[Hash[MilestoneDefinition]]Milestone `json:"milestones"`

	// A Dictionary of all known progressions for the Character, keyed by the Progression's hash.
	// Not all progressions have user-facing data, but those who do will have that data contained in the
	// DestinyProgressionDefinition.
	Progressions map[Hash[ProgressionDefinition]]Progression `json:"progressions"`

	// If the user has any active quests, the quests' statuses will be returned here.
	//
	//	Note that quests have been largely supplanted by Milestones, but that doesn't mean that they won't
	//
	// make a comeback independent of milestones at some point.
	//
	//	(Fun fact: quests came back as I feared they would, but we never looped back to populate this...
	//
	// I'm going to put that in the backlog.)
	Quests []QuestStatus `json:"quests"`

	// Data related to your progress on the current season's artifact that can vary per character.
	SeasonalArtifact ArtifactCharacterScoped `json:"seasonalArtifact"`

	// Sometimes, you have items in your inventory that don't have instances, but still have Objective
	// information. This provides you that objective information for uninstanced items.
	// This dictionary is keyed by the item's hash: which you can use to look up the name and description
	// for the overall task(s) implied by the objective. The value is the list of objectives for this item,
	// and their statuses.
	UninstancedItemObjectives map[Hash[InventoryItemDefinition]][]ObjectiveProgress `json:"uninstancedItemObjectives"`

	// Sometimes, you have items in your inventory that don't have instances, but still have perks (for
	// example: Trials passage cards). This gives you the perk information for uninstanced items.
	// This dictionary is keyed by item hash, which you can use to look up the corresponding item
	// definition. The value is the list of perks states for the item.
	UninstancedItemPerks map[Hash[InventoryItemDefinition]]ItemPerksComponent `json:"uninstancedItemPerks"`
}

Destiny.Entities.Characters.DestinyCharacterProgressionComponent

This component returns anything that could be considered "Progression" on a user: data where the user is gaining levels, reputation, completions, rewards, etc...

type CharacterRecordsComponent

type CharacterRecordsComponent struct {
	FeaturedRecordHashes []uint32 `json:"featuredRecordHashes"`

	// The hash for the root presentation node definition of Triumph categories.
	RecordCategoriesRootNodeHash Hash[PresentationNodeDefinition] `json:"recordCategoriesRootNodeHash"`

	// The hash for the root presentation node definition of Triumph Seals.
	RecordSealsRootNodeHash Hash[PresentationNodeDefinition] `json:"recordSealsRootNodeHash"`

	Records map[uint32]RecordComponent `json:"records"`
}

Destiny.Components.Records.DestinyCharacterRecordsComponent

type CharacterRenderComponent

type CharacterRenderComponent struct {

	// Custom dyes, calculated by iterating over the character's equipped items. Useful for pre-fetching
	// all of the dye data needed from our server.
	CustomDyes []DyeReference `json:"customDyes"`

	// This is actually something that Spasm.js *doesn't* do right now, and that we don't return assets for
	// yet. This is the data about what character customization options you picked. You can combine this
	// with DestinyCharacterCustomizationOptionDefinition to show some cool info, and hopefully someday to
	// actually render a user's face in 3D. We'll see if we ever end up with time for that.
	Customization CharacterCustomization `json:"customization"`

	// A minimal view of:
	// - Equipped items
	// - The rendering-related custom options on those equipped items
	// Combined, that should be enough to render all of the items on the equipped character.
	PeerView CharacterPeerView `json:"peerView"`
}

Destiny.Entities.Characters.DestinyCharacterRenderComponent

Only really useful if you're attempting to render the character's current appearance in 3D, this returns a bare minimum of information, pre-aggregated, that you'll need to perform that rendering. Note that you need to combine this with other 3D assets and data from our servers. Examine the Javascript returned by https://bungie.net/sharedbundle/spasm to see how we use this data, but be warned: the rabbit hole goes pretty deep.

type CharacterResponse

type CharacterResponse struct {

	// Activity data - info about current activities available to the player.
	// COMPONENT TYPE: CharacterActivities
	Activities ComponentResponse[CharacterActivitiesComponent] `json:"activities"`

	// Base information about the character in question.
	// COMPONENT TYPE: Characters
	Character ComponentResponse[CharacterComponent] `json:"character"`

	// COMPONENT TYPE: Collectibles
	Collectibles ComponentResponse[CollectiblesComponent] `json:"collectibles"`

	// A "lookup" convenience component that can be used to quickly check if the character has access to
	// items that can be used for purchasing.
	// COMPONENT TYPE: CurrencyLookups
	CurrencyLookups ComponentResponse[CurrenciesComponent] `json:"currencyLookups"`

	// Equipped items on the character.
	// COMPONENT TYPE: CharacterEquipment
	Equipment ComponentResponse[InventoryComponent] `json:"equipment"`

	// The character-level non-equipped inventory items.
	// COMPONENT TYPE: CharacterInventories
	Inventory ComponentResponse[InventoryComponent] `json:"inventory"`

	// The set of components belonging to the player's instanced items.
	// COMPONENT TYPE: [See inside the DestinyItemComponentSet contract for component types.]
	ItemComponents ItemComponentSet[int64] `json:"itemComponents"`

	// Items available from Kiosks that are available to this specific character.
	// COMPONENT TYPE: Kiosks
	Kiosks ComponentResponse[KiosksComponent] `json:"kiosks"`

	// The loadouts available to the character.
	// COMPONENT TYPE: CharacterLoadouts
	Loadouts ComponentResponse[LoadoutsComponent] `json:"loadouts"`

	// When sockets refer to reusable Plug Sets (see DestinyPlugSetDefinition for more info), this is the
	// set of plugs and their states that are scoped to this character.
	// This comes back with ItemSockets, as it is needed for a complete picture of the sockets on requested
	// items.
	// COMPONENT TYPE: ItemSockets
	PlugSets ComponentResponse[PlugSetsComponent] `json:"plugSets"`

	// COMPONENT TYPE: PresentationNodes
	PresentationNodes ComponentResponse[PresentationNodesComponent] `json:"presentationNodes"`

	// Character progression data, including Milestones.
	// COMPONENT TYPE: CharacterProgressions
	Progressions ComponentResponse[CharacterProgressionComponent] `json:"progressions"`

	// COMPONENT TYPE: Records
	Records ComponentResponse[CharacterRecordsComponent] `json:"records"`

	// Character rendering data - a minimal set of information about equipment and dyes used for rendering.
	// COMPONENT TYPE: CharacterRenderData
	RenderData ComponentResponse[CharacterRenderComponent] `json:"renderData"`

	// The set of components belonging to the player's UNinstanced items. Because apparently now those too
	// can have information relevant to the character's state.
	// COMPONENT TYPE: [See inside the DestinyItemComponentSet contract for component types.]
	UninstancedItemComponents BaseItemComponentSet[uint32] `json:"uninstancedItemComponents"`
}

Destiny.Responses.DestinyCharacterResponse

The response contract for GetDestinyCharacter, with components that can be returned for character and item-level data.

type ChatSecuritySetting

type ChatSecuritySetting int32

GroupsV2.ChatSecuritySetting

func (ChatSecuritySetting) Enum

func (e ChatSecuritySetting) Enum() string

type ChecklistDefinition

type ChecklistDefinition struct {
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The individual checklist items. Gotta catch 'em all.
	Entries []ChecklistEntryDefinition `json:"entries"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	// Indicates whether you will find this checklist on the Profile or Character components.
	Scope Scope `json:"scope"`

	// A localized string prompting you to view the checklist.
	ViewActionString string `json:"viewActionString"`
}

Destiny.Definitions.Checklists.DestinyChecklistDefinition

By public demand, Checklists are loose sets of "things to do/things you have done" in Destiny that we were actually able to track. They include easter eggs you find in the world, unique chests you unlock, and other such data where the first time you do it is significant enough to be tracked, and you have the potential to "get them all". These may be account-wide, or may be per character. The status of these will be returned in related "Checklist" data coming down from API requests such as GetProfile or GetCharacter. Generally speaking, the items in a checklist can be completed in any order: we return an ordered list which only implies the way we are showing them in our own UI, and you can feel free to alter it as you wish. Note that, in the future, there will be something resembling the old D1 Record Books in at least some vague form. When that is created, it may be that it will supercede much or all of this Checklist data. It remains to be seen if that will be the case, so for now assume that the Checklists will still exist even after the release of D2: Forsaken.

func (ChecklistDefinition) DefinitionTable

func (d ChecklistDefinition) DefinitionTable() string

type ChecklistEntryDefinition

type ChecklistEntryDefinition struct {
	ActivityHash Nullable[Hash[ActivityDefinition]] `json:"activityHash,omitempty"`

	// Note that a Bubble's hash doesn't uniquely identify a "top level" entity in Destiny. Only the
	// combination of location and bubble can uniquely identify a place in the world of Destiny: so if
	// bubbleHash is populated, locationHash must too be populated for it to have any meaning.
	// You can use this property if it is populated to look up the DestinyLocationDefinition's associated
	// .locationReleases[].activityBubbleName property.
	BubbleHash Nullable[uint32] `json:"bubbleHash,omitempty"`

	DestinationHash Nullable[Hash[DestinationDefinition]] `json:"destinationHash,omitempty"`

	// Even if no other associations exist, we will give you *something* for display properties. In cases
	// where we have no associated entities, it may be as simple as a numerical identifier.
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The identifier for this Checklist entry. Guaranteed unique only within this Checklist Definition,
	// and not globally/for all checklists.
	Hash uint32 `json:"hash"`

	ItemHash Nullable[Hash[InventoryItemDefinition]] `json:"itemHash,omitempty"`

	LocationHash Nullable[Hash[LocationDefinition]] `json:"locationHash,omitempty"`

	// The scope at which this specific entry can be computed.
	Scope Scope `json:"scope"`

	VendorHash Nullable[Hash[VendorDefinition]] `json:"vendorHash,omitempty"`

	VendorInteractionIndex Nullable[int32] `json:"vendorInteractionIndex,omitempty"`
}

Destiny.Definitions.Checklists.DestinyChecklistEntryDefinition

The properties of an individual checklist item. Note that almost everything is optional: it is *highly* variable what kind of data we'll actually be able to return: at times we may have no other relationships to entities at all. Whatever UI you build, do it with the knowledge that any given entry might not actually be able to be associated with some other Destiny entity.

func (ChecklistEntryDefinition) DefinitionTable

func (d ChecklistEntryDefinition) DefinitionTable() string

type ClanAggregateStat

type ClanAggregateStat struct {

	// The id of the mode of stats (allPvp, allPvE, etc)
	Mode ActivityModeType `json:"mode"`

	// The id of the stat
	StatID string `json:"statId"`

	// Value of the stat for this player
	Value HistoricalStatsValue `json:"value"`
}

Destiny.HistoricalStats.DestinyClanAggregateStat

type ClanBanner

type ClanBanner struct {
	DecalBackgroundColorID uint32 `json:"decalBackgroundColorId"`

	DecalColorID uint32 `json:"decalColorId"`

	DecalID uint32 `json:"decalId"`

	GonfalonColorID uint32 `json:"gonfalonColorId"`

	GonfalonDetailColorID uint32 `json:"gonfalonDetailColorId"`

	GonfalonDetailID uint32 `json:"gonfalonDetailId"`

	GonfalonID uint32 `json:"gonfalonId"`
}

GroupsV2.ClanBanner

type ClanBannerDecal

type ClanBannerDecal struct {
	BackgroundPath string `json:"backgroundPath"`

	ForegroundPath string `json:"foregroundPath"`

	Identifier string `json:"identifier"`
}

Config.ClanBanner.ClanBannerDecal

type ClanBannerSource

type ClanBannerSource map[string]any

Config.ClanBanner.ClanBannerSource

type Class

type Class int32

Destiny.DestinyClass

func (Class) Enum

func (e Class) Enum() string

type ClassDefinition

type ClassDefinition struct {

	// In Destiny 1, we added a convenience Enumeration for referring to classes. We've kept it, though
	// mostly for posterity. This is the enum value for this definition's class.
	ClassType Class `json:"classType"`

	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// A localized string referring to the singular form of the Class's name when referred to in gendered
	// form. Keyed by the DestinyGender.
	GenderedClassNames map[string]string `json:"genderedClassNames"`

	GenderedClassNamesByGenderHash map[Hash[GenderDefinition]]string `json:"genderedClassNamesByGenderHash"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// Mentors don't really mean anything anymore. Don't expect this to be populated.
	MentorVendorHash Nullable[Hash[VendorDefinition]] `json:"mentorVendorHash,omitempty"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.DestinyClassDefinition

Defines a Character Class in Destiny 2. These are types of characters you can play, like Titan, Warlock, and Hunter.

func (ClassDefinition) DefinitionTable

func (d ClassDefinition) DefinitionTable() string

type Client

type Client interface {
	Do(ctx context.Context,
		operation string,
		method string,
		pathSpec string,
		headers map[string]string,
		pathParams map[string]string,
		queryParams url.Values,
		body any,
		resp any) error
}

type CollectibleAcquisitionBlock

type CollectibleAcquisitionBlock struct {
	AcquireMaterialRequirementHash Nullable[Hash[MaterialRequirementSetDefinition]] `json:"acquireMaterialRequirementHash,omitempty"`

	AcquireTimestampUnlockValueHash Nullable[Hash[UnlockValueDefinition]] `json:"acquireTimestampUnlockValueHash,omitempty"`
}

Destiny.Definitions.Collectibles.DestinyCollectibleAcquisitionBlock

func (CollectibleAcquisitionBlock) DefinitionTable

func (d CollectibleAcquisitionBlock) DefinitionTable() string

type CollectibleComponent

type CollectibleComponent struct {
	State BitmaskSet[CollectibleState] `json:"state"`
}

Destiny.Components.Collectibles.DestinyCollectibleComponent

type CollectibleDefinition

type CollectibleDefinition struct {
	AcquisitionInfo CollectibleAcquisitionBlock `json:"acquisitionInfo"`

	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	ItemHash Hash[InventoryItemDefinition] `json:"itemHash"`

	// A quick reference to presentation nodes that have this node as a child. Presentation nodes can be
	// parented under multiple parents.
	ParentNodeHashes []uint32 `json:"parentNodeHashes"`

	PresentationInfo PresentationChildBlock `json:"presentationInfo"`

	PresentationNodeType PresentationNodeType `json:"presentationNodeType"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	// Indicates whether the state of this Collectible is determined on a per-character or on an
	// account-wide basis.
	Scope Scope `json:"scope"`

	// This is a hash identifier we are building on the BNet side in an attempt to let people group
	// collectibles by similar sources.
	// I can't promise that it's going to be 100% accurate, but if the designers were consistent in
	// assigning the same source strings to items with the same sources, it *ought to* be. No promises
	// though.
	// This hash also doesn't relate to an actual definition, just to note: we've got nothing useful other
	// than the source string for this data.
	SourceHash Nullable[uint32] `json:"sourceHash,omitempty"`

	// A human readable string for a hint about how to acquire the item.
	SourceString string `json:"sourceString"`

	StateInfo CollectibleStateBlock `json:"stateInfo"`

	TraitHashes []uint32 `json:"traitHashes"`

	TraitIds []string `json:"traitIds"`
}

Destiny.Definitions.Collectibles.DestinyCollectibleDefinition

Defines a

func (CollectibleDefinition) DefinitionTable

func (d CollectibleDefinition) DefinitionTable() string

type CollectibleDefinitions

type CollectibleDefinitions struct {
	CollectibleDefinition CollectibleDefinition `json:"CollectibleDefinition"`

	DestinyInventoryItemDefinition InventoryItemDefinition `json:"DestinyInventoryItemDefinition"`
}

Tokens.CollectibleDefinitions

type CollectibleNodeDetailResponse

type CollectibleNodeDetailResponse struct {

	// Item components, keyed by the item hash of the items pointed at collectibles found under the
	// requested Presentation Node.
	// NOTE: I had a lot of hemming and hawing about whether these should be keyed by collectible hash or
	// item hash... but ultimately having it be keyed by item hash meant that UI that already uses
	// DestinyItemComponentSet data wouldn't have to have a special override to do the collectible -> item
	// lookup once you delve into an item's details, and it also meant that you didn't have to remember
	// that the Hash being used as the key for plugSets was different from the Hash being used for the
	// other Dictionaries. As a result, using the Item Hash felt like the least crappy solution.
	// We may all come to regret this decision. We will see.
	// COMPONENT TYPE: [See inside the DestinyItemComponentSet contract for component types.]
	CollectibleItemComponents ItemComponentSet[uint32] `json:"collectibleItemComponents"`

	// COMPONENT TYPE: Collectibles
	Collectibles ComponentResponse[CollectiblesComponent] `json:"collectibles"`
}

Destiny.Responses.DestinyCollectibleNodeDetailResponse

Returns the detailed information about a Collectible Presentation Node and any Collectibles that are direct descendants.

type CollectibleState

type CollectibleState int32

Destiny.DestinyCollectibleState

A Flags Enumeration/bitmask where each bit represents a different state that the Collectible can be in. A collectible can be in any number of these states, and you can choose to use or ignore any or all of them when making your own UI that shows Collectible info. Our displays are going to honor them, but we're also the kind of people who only pretend to inhale before quickly passing it to the left. So, you know, do what you got to do. (All joking aside, please note the caveat I mention around the Invisible flag: there are cases where it is in the best interest of your users to honor these flags even if you're a "show all the data" person. Collector-oriented compulsion is a very unfortunate and real thing, and I would hate to instill that compulsion in others through showing them items that they cannot earn. Please consider this when you are making your own apps/sites.)

func (CollectibleState) Enum

func (e CollectibleState) Enum() string

type CollectibleStateBlock

type CollectibleStateBlock struct {
	ObscuredOverrideItemHash Nullable[Hash[InventoryItemDefinition]] `json:"obscuredOverrideItemHash,omitempty"`

	Requirements PresentationNodeRequirementsBlock `json:"requirements"`
}

Destiny.Definitions.Collectibles.DestinyCollectibleStateBlock

func (CollectibleStateBlock) DefinitionTable

func (d CollectibleStateBlock) DefinitionTable() string

type CollectiblesComponent

type CollectiblesComponent struct {
	Collectibles map[Hash[CollectibleDefinition]]CollectibleComponent `json:"collectibles"`

	// The hash for the root presentation node definition of Collection Badges.
	CollectionBadgesRootNodeHash Hash[PresentationNodeDefinition] `json:"collectionBadgesRootNodeHash"`

	// The hash for the root presentation node definition of Collection categories.
	CollectionCategoriesRootNodeHash Hash[PresentationNodeDefinition] `json:"collectionCategoriesRootNodeHash"`
}

Destiny.Components.Collectibles.DestinyCollectiblesComponent

type Color

type Color struct {
	Alpha int `json:"alpha"`

	Blue int `json:"blue"`

	Green int `json:"green"`

	Red int `json:"red"`
}

Destiny.Misc.DestinyColor

Represents a color whose RGBA values are all represented as values between 0 and 255.

type CommentSummary

type CommentSummary struct {
	CommentCount int32 `json:"commentCount"`

	TopicID Int64 `json:"topicId"`
}

Content.CommentSummary

type CommunityContentGetCommunityContentRequest

type CommunityContentGetCommunityContentRequest struct {

	// The type of media to get
	// Required.
	MediaFilter BitmaskSet[ForumTopicsCategoryFilters]

	// Zero based page
	// Required.
	Page int32

	// The sort mode.
	// Required.
	Sort CommunityContentSortMode
}

CommunityContentGetCommunityContentRequest are the request parameters for operation CommunityContent.GetCommunityContent

type CommunityContentSortMode

type CommunityContentSortMode int

Forum.CommunityContentSortMode

func (CommunityContentSortMode) Enum

type ComponentPrivacySetting

type ComponentPrivacySetting int32

Components.ComponentPrivacySetting

A set of flags for reason(s) why the component populated in the way that it did. Inspect the individual flags for the reasons.

func (ComponentPrivacySetting) Enum

type ComponentResponse

type ComponentResponse[T any] struct {
	Data T `json:"data"`

	// If true, this component is disabled.
	Disabled Nullable[bool] `json:"disabled,omitempty"`

	Privacy ComponentPrivacySetting `json:"privacy"`
}

Components.ComponentResponse

The base class for any component-returning object that may need to indicate information about the state of the component being returned.

type ComponentType

type ComponentType int32

Destiny.DestinyComponentType

Represents the possible components that can be returned from Destiny "Get" calls such as GetProfile, GetCharacter, GetVendor etc... When making one of these requests, you will pass one or more of these components as a comma separated list in the "?components=" querystring parameter. For instance, if you want baseline Profile data, Character Data, and character progressions, you would pass "?components=Profiles,Characters,CharacterProgressions" You may use either the numerical or string values.

func (ComponentType) Enum

func (e ComponentType) Enum() string

type ContentGetContentByIdRequest

type ContentGetContentByIdRequest struct {

	// false
	Head bool

	// Required.
	Id Int64

	// Required.
	Locale string
}

ContentGetContentByIdRequest are the request parameters for operation Content.GetContentById

type ContentGetContentByTagAndTypeRequest

type ContentGetContentByTagAndTypeRequest struct {

	// Not used.
	Head bool

	// Required.
	Locale string

	// Required.
	Tag string

	// Required.
	Type string
}

ContentGetContentByTagAndTypeRequest are the request parameters for operation Content.GetContentByTagAndType

type ContentGetContentTypeRequest

type ContentGetContentTypeRequest struct {

	// Required.
	Type string
}

ContentGetContentTypeRequest are the request parameters for operation Content.GetContentType

type ContentItemPublicContract

type ContentItemPublicContract struct {
	AllowComments bool `json:"allowComments"`

	Author GeneralUser `json:"author"`

	AutoEnglishPropertyFallback bool `json:"autoEnglishPropertyFallback"`

	CType string `json:"cType"`

	CmsPath string `json:"cmsPath"`

	CommentSummary CommentSummary `json:"commentSummary"`

	ContentID Int64 `json:"contentId"`

	CreationDate Timestamp `json:"creationDate"`

	HasAgeGate bool `json:"hasAgeGate"`

	MinimumAge int32 `json:"minimumAge"`

	ModifyDate Timestamp `json:"modifyDate"`

	// Firehose content is really a collection of metadata and "properties", which are the
	// potentially-but-not-strictly localizable data that comprises the meat of whatever content is being
	// shown.
	// As Cole Porter would have crooned, "Anything Goes" with Firehose properties. They are most often
	// strings, but they can theoretically be anything. They are JSON encoded, and could be JSON
	// structures, simple strings, numbers etc... The Content Type of the item (cType) will describe the
	// properties, and thus how they ought to be deserialized.
	Properties map[string]any `json:"properties"`

	RatingImagePath string `json:"ratingImagePath"`

	Representations []ContentRepresentation `json:"representations"`

	// NOTE: Tags will always be lower case.
	Tags []string `json:"tags"`
}

Content.ContentItemPublicContract

type ContentPreview

type ContentPreview struct {
	ItemInSet bool `json:"itemInSet"`

	Name string `json:"name"`

	Path string `json:"path"`

	SetNesting int32 `json:"setNesting"`

	SetTag string `json:"setTag"`

	UseSetID int32 `json:"useSetId"`
}

Content.Models.ContentPreview

type ContentPropertyDataType

type ContentPropertyDataType int32

Content.Models.ContentPropertyDataTypeEnum

func (ContentPropertyDataType) Enum

type ContentRepresentation

type ContentRepresentation struct {
	Name string `json:"name"`

	Path string `json:"path"`

	ValidationString string `json:"validationString"`
}

Content.ContentRepresentation

type ContentRssNewsArticlesRequest

type ContentRssNewsArticlesRequest struct {

	// Optionally filter response to only include news items in a certain category.
	Categoryfilter string

	// Optionally include full content body for each news item.
	Includebody bool

	// Zero-based pagination token for paging through result sets.
	// Required.
	PageToken string
}

ContentRssNewsArticlesRequest are the request parameters for operation Content.RssNewsArticles

type ContentSearchContentByTagAndTypeRequest

type ContentSearchContentByTagAndTypeRequest struct {

	// Page number for the search results starting with page 1.
	Currentpage int32

	// Not used.
	Head bool

	// Not used.
	Itemsperpage int32

	// Required.
	Locale string

	// Required.
	Tag string

	// Required.
	Type string
}

ContentSearchContentByTagAndTypeRequest are the request parameters for operation Content.SearchContentByTagAndType

type ContentSearchContentWithTextRequest

type ContentSearchContentWithTextRequest struct {

	// Content type tag: Help, News, etc. Supply multiple ctypes separated by space.
	Ctype string

	// Page number for the search results, starting with page 1.
	Currentpage int32

	// Not used.
	Head bool

	// Required.
	Locale string

	// Word or phrase for the search.
	Searchtext string

	// For analytics, hint at the part of the app that triggered the search. Optional.
	Source string

	// Tag used on the content to be searched.
	Tag string
}

ContentSearchContentWithTextRequest are the request parameters for operation Content.SearchContentWithText

type ContentSearchHelpArticlesRequest

type ContentSearchHelpArticlesRequest struct {

	// Required.
	Searchtext string

	// Required.
	Size string
}

ContentSearchHelpArticlesRequest are the request parameters for operation Content.SearchHelpArticles

type ContentTypeDefaultValue

type ContentTypeDefaultValue struct {
	DefaultValue string `json:"defaultValue"`

	WhenClause string `json:"whenClause"`

	WhenValue string `json:"whenValue"`
}

Content.Models.ContentTypeDefaultValue

type ContentTypeDescription

type ContentTypeDescription struct {
	AllowComments bool `json:"allowComments"`

	AutoEnglishPropertyFallback bool `json:"autoEnglishPropertyFallback"`

	BindIdentifierToProperty string `json:"bindIdentifierToProperty"`

	BoundRegex string `json:"boundRegex"`

	BulkUploadable bool `json:"bulkUploadable"`

	CType string `json:"cType"`

	ContentDescription string `json:"contentDescription"`

	ForceIdentifierBinding bool `json:"forceIdentifierBinding"`

	Name string `json:"name"`

	PreviewImage string `json:"previewImage"`

	Previews []ContentPreview `json:"previews"`

	Priority int32 `json:"priority"`

	Properties []ContentTypeProperty `json:"properties"`

	PropertySections []ContentTypePropertySection `json:"propertySections"`

	Reminder string `json:"reminder"`

	ShowInContentEditor bool `json:"showInContentEditor"`

	SuppressCmsPath bool `json:"suppressCmsPath"`

	TagMetadata []TagMetadataDefinition `json:"tagMetadata"`

	TagMetadataItems map[string]TagMetadataItem `json:"tagMetadataItems"`

	TypeOf string `json:"typeOf"`

	UsageExamples []string `json:"usageExamples"`
}

Content.Models.ContentTypeDescription

type ContentTypeProperty

type ContentTypeProperty struct {
	Attributes map[string]string `json:"attributes"`

	BindToProperty string `json:"bindToProperty"`

	BoundRegex string `json:"boundRegex"`

	ChildProperties []ContentTypeProperty `json:"childProperties"`

	ContentTypeAllowed string `json:"contentTypeAllowed"`

	Datatype ContentPropertyDataType `json:"datatype"`

	DefaultValues []ContentTypeDefaultValue `json:"defaultValues"`

	Enabled bool `json:"enabled"`

	Entitytype string `json:"entitytype"`

	Fallback bool `json:"fallback"`

	IsCombo bool `json:"isCombo"`

	IsExternalAllowed bool `json:"isExternalAllowed"`

	IsImage bool `json:"isImage"`

	IsTitle bool `json:"isTitle"`

	IsVideo bool `json:"isVideo"`

	LegalContentTypes []string `json:"legalContentTypes"`

	Localizable bool `json:"localizable"`

	MaxByteLength int32 `json:"maxByteLength"`

	MaxFileSize int32 `json:"maxFileSize"`

	MaxHeight int32 `json:"maxHeight"`

	MaxLength int32 `json:"maxLength"`

	MaxWidth int32 `json:"maxWidth"`

	MinHeight int32 `json:"minHeight"`

	MinWidth int32 `json:"minWidth"`

	Name string `json:"name"`

	Order int32 `json:"order"`

	PropertyDescription string `json:"propertyDescription"`

	PropertySection string `json:"propertySection"`

	ReadableName string `json:"readableName"`

	Regexp string `json:"regexp"`

	RepresentationSelection map[string]string `json:"representationSelection"`

	RepresentationValidationString string `json:"representationValidationString"`

	Required bool `json:"required"`

	RootPropertyName string `json:"rootPropertyName"`

	RssAttribute string `json:"rssAttribute"`

	SuppressProperty bool `json:"suppressProperty"`

	ValidateAs string `json:"validateAs"`

	Value string `json:"value"`

	Visible bool `json:"visible"`

	VisibleDependency string `json:"visibleDependency"`

	VisibleOn string `json:"visibleOn"`

	Weight int32 `json:"weight"`
}

Content.Models.ContentTypeProperty

type ContentTypePropertySection

type ContentTypePropertySection struct {
	Collapsed bool `json:"collapsed"`

	Name string `json:"name"`

	ReadableName string `json:"readableName"`
}

Content.Models.ContentTypePropertySection

type CoreSetting

type CoreSetting struct {
	ChildSettings []CoreSetting `json:"childSettings"`

	DisplayName string `json:"displayName"`

	Identifier string `json:"identifier"`

	ImagePath string `json:"imagePath"`

	IsDefault bool `json:"isDefault"`

	Summary string `json:"summary"`
}

Common.Models.CoreSetting

type CoreSettings

type CoreSettings struct {
	ActiveSealsRootNodeHash Hash[PresentationNodeDefinition] `json:"activeSealsRootNodeHash"`

	ActiveTriumphsRootNodeHash Hash[PresentationNodeDefinition] `json:"activeTriumphsRootNodeHash"`

	AmmoTypeHeavyIcon string `json:"ammoTypeHeavyIcon"`

	AmmoTypePrimaryIcon string `json:"ammoTypePrimaryIcon"`

	AmmoTypeSpecialIcon string `json:"ammoTypeSpecialIcon"`

	BadgesRootNode Hash[PresentationNodeDefinition] `json:"badgesRootNode"`

	CollectionRootNode Hash[PresentationNodeDefinition] `json:"collectionRootNode"`

	CraftingRootNodeHash Hash[PresentationNodeDefinition] `json:"craftingRootNodeHash"`

	CurrentRankProgressionHashes []uint32 `json:"currentRankProgressionHashes"`

	CurrentSeasonHash Nullable[Hash[SeasonDefinition]] `json:"currentSeasonHash,omitempty"`

	CurrentSeasonalArtifactHash Hash[VendorDefinition] `json:"currentSeasonalArtifactHash"`

	ExoticCatalystsRootNodeHash Hash[PresentationNodeDefinition] `json:"exoticCatalystsRootNodeHash"`

	FutureSeasonHashes []uint32 `json:"futureSeasonHashes"`

	GuardianRankConstantsHash Hash[GuardianRankConstantsDefinition] `json:"guardianRankConstantsHash"`

	GuardianRanksRootNodeHash Hash[PresentationNodeDefinition] `json:"guardianRanksRootNodeHash"`

	InsertPlugFreeBlockedSocketTypeHashes []uint32 `json:"insertPlugFreeBlockedSocketTypeHashes"`

	InsertPlugFreeProtectedPlugItemHashes []uint32 `json:"insertPlugFreeProtectedPlugItemHashes"`

	LegacySealsRootNodeHash Hash[PresentationNodeDefinition] `json:"legacySealsRootNodeHash"`

	LegacyTriumphsRootNodeHash Hash[PresentationNodeDefinition] `json:"legacyTriumphsRootNodeHash"`

	LoadoutConstantsHash Hash[LoadoutConstantsDefinition] `json:"loadoutConstantsHash"`

	LoreRootNodeHash Hash[PresentationNodeDefinition] `json:"loreRootNodeHash"`

	MedalsRootNode Hash[PresentationNodeDefinition] `json:"medalsRootNode"`

	MedalsRootNodeHash Hash[PresentationNodeDefinition] `json:"medalsRootNodeHash"`

	MetricsRootNode Hash[PresentationNodeDefinition] `json:"metricsRootNode"`

	PastSeasonHashes []uint32 `json:"pastSeasonHashes"`

	RecordsRootNode Hash[PresentationNodeDefinition] `json:"recordsRootNode"`

	SeasonalChallengesPresentationNodeHash Nullable[Hash[PresentationNodeDefinition]] `json:"seasonalChallengesPresentationNodeHash,omitempty"`

	UndiscoveredCollectibleImage string `json:"undiscoveredCollectibleImage"`
}

Common.Models.Destiny2CoreSettings

type CoreSettingsConfiguration

type CoreSettingsConfiguration struct {
	ClanBannerDecalColors []CoreSetting `json:"clanBannerDecalColors"`

	ClanBannerDecals []CoreSetting `json:"clanBannerDecals"`

	ClanBannerGonfalonColors []CoreSetting `json:"clanBannerGonfalonColors"`

	ClanBannerGonfalonDetailColors []CoreSetting `json:"clanBannerGonfalonDetailColors"`

	ClanBannerGonfalonDetails []CoreSetting `json:"clanBannerGonfalonDetails"`

	ClanBannerGonfalons []CoreSetting `json:"clanBannerGonfalons"`

	ClanBannerStandards []CoreSetting `json:"clanBannerStandards"`

	DefaultGroupTheme CoreSetting `json:"defaultGroupTheme"`

	Destiny2CoreSettings CoreSettings `json:"destiny2CoreSettings"`

	DestinyMembershipTypes []CoreSetting `json:"destinyMembershipTypes"`

	EmailSettings EmailSettings `json:"emailSettings"`

	Environment string `json:"environment"`

	FireteamActivities []CoreSetting `json:"fireteamActivities"`

	ForumCategories []CoreSetting `json:"forumCategories"`

	GroupAvatars []CoreSetting `json:"groupAvatars"`

	IgnoreReasons []CoreSetting `json:"ignoreReasons"`

	RecruitmentActivities []CoreSetting `json:"recruitmentActivities"`

	RecruitmentMiscTags []CoreSetting `json:"recruitmentMiscTags"`

	RecruitmentPlatformTags []CoreSetting `json:"recruitmentPlatformTags"`

	SystemContentLocales []CoreSetting `json:"systemContentLocales"`

	Systems map[string]CoreSystem `json:"systems"`

	UserContentLocales []CoreSetting `json:"userContentLocales"`
}

Common.Models.CoreSettingsConfiguration

type CoreSystem

type CoreSystem struct {
	Enabled bool `json:"enabled"`

	Parameters map[string]string `json:"parameters"`
}

Common.Models.CoreSystem

type CraftableComponent

type CraftableComponent struct {

	// If the requirements are not met for crafting this item, these will index into the list of failure
	// strings.
	FailedRequirementIndexes []int32 `json:"failedRequirementIndexes"`

	// Plug item state for the crafting sockets.
	Sockets []CraftableSocketComponent `json:"sockets"`

	Visible bool `json:"visible"`
}

Destiny.Components.Craftables.DestinyCraftableComponent

type CraftableSocketComponent

type CraftableSocketComponent struct {
	PlugSetHash Hash[PlugSetDefinition] `json:"plugSetHash"`

	// Unlock state for plugs in the socket plug set definition
	Plugs []CraftableSocketPlugComponent `json:"plugs"`
}

Destiny.Components.Craftables.DestinyCraftableSocketComponent

type CraftableSocketPlugComponent

type CraftableSocketPlugComponent struct {

	// Index into the unlock requirements to display failure descriptions
	FailedRequirementIndexes []int32 `json:"failedRequirementIndexes"`

	PlugItemHash Hash[InventoryItemDefinition] `json:"plugItemHash"`
}

Destiny.Components.Craftables.DestinyCraftableSocketPlugComponent

type CraftablesComponent

type CraftablesComponent struct {

	// A map of craftable item hashes to craftable item state components.
	Craftables map[Hash[InventoryItemDefinition]]CraftableComponent `json:"craftables"`

	// The hash for the root presentation node definition of craftable item categories.
	CraftingRootNodeHash Hash[PresentationNodeDefinition] `json:"craftingRootNodeHash"`
}

Destiny.Components.Craftables.DestinyCraftablesComponent

type CrossSaveUserMembership

type CrossSaveUserMembership struct {

	// 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
	ApplicableMembershipTypes []BungieMembershipType `json:"applicableMembershipTypes"`

	// The bungie global display name, if set.
	BungieGlobalDisplayName string `json:"bungieGlobalDisplayName"`

	// The bungie global display name code, if set.
	BungieGlobalDisplayNameCode Nullable[int16] `json:"bungieGlobalDisplayNameCode,omitempty"`

	// If there is a cross save override in effect, this value will tell you the type that is overridding
	// this one.
	CrossSaveOverride BungieMembershipType `json:"crossSaveOverride"`

	// 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.
	DisplayName string `json:"displayName"`

	// If True, this is a public user membership.
	IsPublic bool `json:"isPublic"`

	// Membership ID as they user is known in the Accounts service
	MembershipID Int64 `json:"membershipId"`

	// Type of the membership. Not necessarily the native type.
	MembershipType BungieMembershipType `json:"membershipType"`
}

User.CrossSaveUserMembership

Very basic info about a user as returned by the Account server, but including CrossSave information. Do NOT use as a request contract.

type CurrenciesComponent

type CurrenciesComponent struct {

	// A dictionary - keyed by the item's hash identifier (DestinyInventoryItemDefinition), and whose value
	// is the amount of that item you have across all available inventory buckets for purchasing.
	// This allows you to see whether the requesting character can afford any given purchase/action without
	// having to re-create this list itself.
	ItemQuantities map[Hash[InventoryItemDefinition]]int32 `json:"itemQuantities"`
}

Destiny.Components.Inventory.DestinyCurrenciesComponent

This component provides a quick lookup of every item the requested character has and how much of that item they have. Requesting this component will allow you to circumvent manually putting together the list of which currencies you have for the purpose of testing currency requirements on an item being purchased, or operations that have costs. You *could* figure this out yourself by doing a GetCharacter or GetProfile request and forming your own lookup table, but that is inconvenient enough that this feels like a worthwhile (and optional) redundency. Don't bother requesting it if you have already created your own lookup from prior GetCharacter/GetProfile calls.

type DamageType

type DamageType int32

Destiny.DamageType

func (DamageType) Enum

func (e DamageType) Enum() string

type DamageTypeDefinition

type DamageTypeDefinition struct {

	// A color associated with the damage type. The displayProperties icon is tinted with a color close to
	// this.
	Color Color `json:"color"`

	// The description of the damage type, icon etc...
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// We have an enumeration for damage types for quick reference. This is the current definition's damage
	// type enum value.
	EnumValue DamageType `json:"enumValue"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	// If TRUE, the game shows this damage type's icon. Otherwise, it doesn't. Whether you show it or not
	// is up to you.
	ShowIcon bool `json:"showIcon"`

	// A variant of the icon that is transparent and colorless.
	TransparentIconPath string `json:"transparentIconPath"`
}

Destiny.Definitions.DestinyDamageTypeDefinition

All damage types that are possible in the game are defined here, along with localized info and icons as needed.

func (DamageTypeDefinition) DefinitionTable

func (d DamageTypeDefinition) DefinitionTable() string

type Datapoint

type Datapoint struct {

	// Count associated with timestamp
	Count Nullable[float64] `json:"count,omitempty"`

	// Timestamp for the related count.
	Time Timestamp `json:"time"`
}

Applications.Datapoint

type DateRange

type DateRange struct {
	End Timestamp `json:"end"`

	Start Timestamp `json:"start"`
}

Dates.DateRange

type DefaultClient

type DefaultClient *http.Client

type Definition

type Definition struct {

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.DestinyDefinition

Provides common properties for destiny definitions.

func (Definition) DefinitionTable

func (d Definition) DefinitionTable() string

type DerivedItemCategoryDefinition

type DerivedItemCategoryDefinition struct {

	// The localized string for the category title. This will be something describing the items you can get
	// as a group, or your likelihood/the quantity you'll get.
	CategoryDescription string `json:"categoryDescription"`

	// This is the list of all of the items for this category and the basic properties we'll know about
	// them.
	Items []DerivedItemDefinition `json:"items"`
}

Destiny.Definitions.Items.DestinyDerivedItemCategoryDefinition

A shortcut for the fact that some items have a "Preview Vendor" - See DestinyInventoryItemDefinition.preview.previewVendorHash - that is intended to be used to show what items you can get as a result of acquiring or using this item. A common example of this in Destiny 1 was Eververse "Boxes," which could have many possible items. This "Preview Vendor" is not a vendor you can actually see in the game, but it defines categories and sale items for all of the possible items you could get from the Box so that the game can show them to you. We summarize that info here so that you don't have to do that Vendor lookup and aggregation manually.

func (DerivedItemCategoryDefinition) DefinitionTable

func (d DerivedItemCategoryDefinition) DefinitionTable() string

type DerivedItemDefinition

type DerivedItemDefinition struct {

	// An icon for the item.
	IconPath string `json:"iconPath"`

	// A brief description of the item.
	ItemDescription string `json:"itemDescription"`

	// Additional details about the derived item, in addition to the description.
	ItemDetail string `json:"itemDetail"`

	// The hash for the DestinyInventoryItemDefinition of this derived item, if there is one. Sometimes we
	// are given this information as a manual override, in which case there won't be an actual
	// DestinyInventoryItemDefinition for what we display, but you can still show the strings from this
	// object itself.
	ItemHash Nullable[uint32] `json:"itemHash,omitempty"`

	// The name of the derived item.
	ItemName string `json:"itemName"`

	// If the item was derived from a "Preview Vendor", this will be an index into the
	// DestinyVendorDefinition's itemList property. Otherwise, -1.
	VendorItemIndex int32 `json:"vendorItemIndex"`
}

Destiny.Definitions.Items.DestinyDerivedItemDefinition

This is a reference to, and summary data for, a specific item that you can get as a result of Using or Acquiring some other Item (For example, this could be summary information for an Emote that you can get by opening an an Eververse Box) See DestinyDerivedItemCategoryDefinition for more information.

func (DerivedItemDefinition) DefinitionTable

func (d DerivedItemDefinition) DefinitionTable() string

type DestinationBubbleSettingDefinition

type DestinationBubbleSettingDefinition struct {
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`
}

Destiny.Definitions.DestinyDestinationBubbleSettingDefinition

Human readable data about the bubble. Combine with DestinyBubbleDefinition - see DestinyDestinationDefinition.bubbleSettings for more information. DEPRECATED - Just use bubbles.

func (DestinationBubbleSettingDefinition) DefinitionTable

func (d DestinationBubbleSettingDefinition) DefinitionTable() string

type DestinationDefinition

type DestinationDefinition struct {

	// If the Destination has default Activity Graphs (i.e. "Map") that should be shown in the director,
	// this is the list of those Graphs. At most, only one should be active at any given time for a
	// Destination: these would represent, for example, different variants on a Map if the Destination is
	// changing on a macro level based on game state.
	ActivityGraphEntries []ActivityGraphListEntryDefinition `json:"activityGraphEntries"`

	// A Destination may have many "Bubbles" zones with human readable properties.
	// We don't get as much info as I'd like about them - I'd love to return info like where on the map
	// they are located - but at least this gives you the name of those bubbles. bubbleSettings and bubbles
	// both have the identical number of entries, and you should match up their indexes to provide matching
	// bubble and bubbleSettings data.
	// DEPRECATED - Just use bubbles, it now has this data.
	BubbleSettings []DestinationBubbleSettingDefinition `json:"bubbleSettings"`

	// This provides the unique identifiers for every bubble in the destination (only guaranteed unique
	// within the destination), and any intrinsic properties of the bubble.
	// bubbleSettings and bubbles both have the identical number of entries, and you should match up their
	// indexes to provide matching bubble and bubbleSettings data.
	Bubbles []BubbleDefinition `json:"bubbles"`

	// If this Destination has a default Free-Roam activity, this is the hash for that Activity. Use it to
	// look up the DestinyActivityDefintion.
	DefaultFreeroamActivityHash Hash[ActivityDefinition] `json:"defaultFreeroamActivityHash"`

	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// The place that "owns" this Destination. Use this hash to look up the DestinyPlaceDefinition.
	PlaceHash Hash[PlaceDefinition] `json:"placeHash"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.DestinyDestinationDefinition

On to one of the more confusing subjects of the API. What is a Destination, and what is the relationship between it, Activities, Locations, and Places? A "Destination" is a specific region/city/area of a larger "Place". For instance, a Place might be Earth where a Destination might be Bellevue, Washington. (Please, pick a more interesting destination if you come to visit Earth).

func (DestinationDefinition) DefinitionTable

func (d DestinationDefinition) DefinitionTable() string

type Destiny2AwaGetActionTokenRequest

type Destiny2AwaGetActionTokenRequest struct {

	// The identifier for the advanced write action request.
	// Required.
	CorrelationID string
}

Destiny2AwaGetActionTokenRequest are the request parameters for operation Destiny2.AwaGetActionToken

type Destiny2AwaInitializeRequestRequest

type Destiny2AwaInitializeRequestRequest struct {

	// Required.
	Body AwaPermissionRequested
}

Destiny2AwaInitializeRequestRequest are the request parameters for operation Destiny2.AwaInitializeRequest

type Destiny2AwaProvideAuthorizationResultRequest

type Destiny2AwaProvideAuthorizationResultRequest struct {

	// Required.
	Body AwaUserResponse
}

Destiny2AwaProvideAuthorizationResultRequest are the request parameters for operation Destiny2.AwaProvideAuthorizationResult

type Destiny2ClearLoadoutRequest

type Destiny2ClearLoadoutRequest struct {

	// Required.
	Body LoadoutActionRequest
}

Destiny2ClearLoadoutRequest are the request parameters for operation Destiny2.ClearLoadout

type Destiny2EquipItemRequest

type Destiny2EquipItemRequest struct {

	// Required.
	Body ItemActionRequest
}

Destiny2EquipItemRequest are the request parameters for operation Destiny2.EquipItem

type Destiny2EquipItemsRequest

type Destiny2EquipItemsRequest struct {

	// Required.
	Body ItemSetActionRequest
}

Destiny2EquipItemsRequest are the request parameters for operation Destiny2.EquipItems

type Destiny2EquipLoadoutRequest

type Destiny2EquipLoadoutRequest struct {

	// Required.
	Body LoadoutActionRequest
}

Destiny2EquipLoadoutRequest are the request parameters for operation Destiny2.EquipLoadout

type Destiny2GetActivityHistoryRequest

type Destiny2GetActivityHistoryRequest struct {

	// The id of the character to retrieve.
	// Required.
	CharacterID Int64

	// Number of rows to return
	Count int32

	// The Destiny membershipId of the user to retrieve.
	// Required.
	DestinyMembershipID Int64

	// A valid non-BungieNet membership type.
	// Required.
	MembershipType BungieMembershipType

	// A filter for the activity mode to be returned. None returns all activities. See the documentation
	// for DestinyActivityModeType for valid values, and pass in string representation.
	Mode ActivityModeType

	// Page number to return, starting with 0.
	Page int32
}

Destiny2GetActivityHistoryRequest are the request parameters for operation Destiny2.GetActivityHistory

type Destiny2GetCharacterRequest

type Destiny2GetCharacterRequest struct {

	// ID of the character.
	// Required.
	CharacterID Int64

	// A comma separated list of components to return (as strings or numeric values). See the
	// DestinyComponentType enum for valid components to request. You must request at least one component
	// to receive results.
	Components []ComponentType

	// Destiny membership ID.
	// Required.
	DestinyMembershipID Int64

	// A valid non-BungieNet membership type.
	// Required.
	MembershipType BungieMembershipType
}

Destiny2GetCharacterRequest are the request parameters for operation Destiny2.GetCharacter

type Destiny2GetClanAggregateStatsRequest

type Destiny2GetClanAggregateStatsRequest struct {

	// Group ID of the clan whose leaderboards you wish to fetch.
	// Required.
	GroupID Int64

	// List of game modes for which to get leaderboards. See the documentation for DestinyActivityModeType
	// for valid values, and pass in string representation, comma delimited.
	Modes string
}

Destiny2GetClanAggregateStatsRequest are the request parameters for operation Destiny2.GetClanAggregateStats

type Destiny2GetClanBannerSourceRequest

type Destiny2GetClanBannerSourceRequest struct {
}

Destiny2GetClanBannerSourceRequest are the request parameters for operation Destiny2.GetClanBannerSource

type Destiny2GetClanLeaderboardsRequest

type Destiny2GetClanLeaderboardsRequest struct {

	// Group ID of the clan whose leaderboards you wish to fetch.
	// Required.
	GroupID Int64

	// Maximum number of top players to return. Use a large number to get entire leaderboard.
	Maxtop int32

	// List of game modes for which to get leaderboards. See the documentation for DestinyActivityModeType
	// for valid values, and pass in string representation, comma delimited.
	Modes string

	// ID of stat to return rather than returning all Leaderboard stats.
	Statid string
}

Destiny2GetClanLeaderboardsRequest are the request parameters for operation Destiny2.GetClanLeaderboards

type Destiny2GetClanWeeklyRewardStateRequest

type Destiny2GetClanWeeklyRewardStateRequest struct {

	// A valid group id of clan.
	// Required.
	GroupID Int64
}

Destiny2GetClanWeeklyRewardStateRequest are the request parameters for operation Destiny2.GetClanWeeklyRewardState

type Destiny2GetCollectibleNodeDetailsRequest

type Destiny2GetCollectibleNodeDetailsRequest struct {

	// The Destiny Character ID of the character for whom we're getting collectible detail info.
	// Required.
	CharacterID Int64

	// The hash identifier of the Presentation Node for whom we should return collectible details. Details
	// will only be returned for collectibles that are direct descendants of this node.
	// Required.
	CollectiblePresentationNodeHash uint32

	// A comma separated list of components to return (as strings or numeric values). See the
	// DestinyComponentType enum for valid components to request. You must request at least one component
	// to receive results.
	Components []ComponentType

	// Destiny membership ID of another user. You may be denied.
	// Required.
	DestinyMembershipID Int64

	// A valid non-BungieNet membership type.
	// Required.
	MembershipType BungieMembershipType
}

Destiny2GetCollectibleNodeDetailsRequest are the request parameters for operation Destiny2.GetCollectibleNodeDetails

type Destiny2GetDestinyAggregateActivityStatsRequest

type Destiny2GetDestinyAggregateActivityStatsRequest struct {

	// The specific character whose activities should be returned.
	// Required.
	CharacterID Int64

	// The Destiny membershipId of the user to retrieve.
	// Required.
	DestinyMembershipID Int64

	// A valid non-BungieNet membership type.
	// Required.
	MembershipType BungieMembershipType
}

Destiny2GetDestinyAggregateActivityStatsRequest are the request parameters for operation Destiny2.GetDestinyAggregateActivityStats

type Destiny2GetDestinyEntityDefinitionRequest

type Destiny2GetDestinyEntityDefinitionRequest struct {

	// The type of entity for whom you would like results. These correspond to the entity's definition
	// contract name. For instance, if you are looking for items, this property should be
	// 'DestinyInventoryItemDefinition'. PREVIEW: This endpoint is still in beta, and may experience rough
	// edges. The schema is tentatively in final form, but there may be bugs that prevent desirable
	// operation.
	// Required.
	EntityType string

	// The hash identifier for the specific Entity you want returned.
	// Required.
	HashIdentifier uint32
}

Destiny2GetDestinyEntityDefinitionRequest are the request parameters for operation Destiny2.GetDestinyEntityDefinition

type Destiny2GetDestinyManifestRequest

type Destiny2GetDestinyManifestRequest struct {
}

Destiny2GetDestinyManifestRequest are the request parameters for operation Destiny2.GetDestinyManifest

type Destiny2GetHistoricalStatsDefinitionRequest

type Destiny2GetHistoricalStatsDefinitionRequest struct {
}

Destiny2GetHistoricalStatsDefinitionRequest are the request parameters for operation Destiny2.GetHistoricalStatsDefinition

type Destiny2GetHistoricalStatsForAccountRequest

type Destiny2GetHistoricalStatsForAccountRequest struct {

	// The Destiny membershipId of the user to retrieve.
	// Required.
	DestinyMembershipID Int64

	// Groups of stats to include, otherwise only general stats are returned. Comma separated list is
	// allowed. Values: General, Weapons, Medals.
	Groups []StatsGroupType

	// A valid non-BungieNet membership type.
	// Required.
	MembershipType BungieMembershipType
}

Destiny2GetHistoricalStatsForAccountRequest are the request parameters for operation Destiny2.GetHistoricalStatsForAccount

type Destiny2GetHistoricalStatsRequest

type Destiny2GetHistoricalStatsRequest struct {

	// The id of the character to retrieve. You can omit this character ID or set it to 0 to get aggregate
	// stats across all characters.
	// Required.
	CharacterID Int64

	// Last day to return when daily stats are requested. Use the format YYYY-MM-DD. Currently, we cannot
	// allow more than 31 days of daily data to be requested in a single request.
	Dayend Timestamp

	// First day to return when daily stats are requested. Use the format YYYY-MM-DD. Currently, we cannot
	// allow more than 31 days of daily data to be requested in a single request.
	Daystart Timestamp

	// The Destiny membershipId of the user to retrieve.
	// Required.
	DestinyMembershipID Int64

	// Group of stats to include, otherwise only general stats are returned. Comma separated list is
	// allowed. Values: General, Weapons, Medals
	Groups []StatsGroupType

	// A valid non-BungieNet membership type.
	// Required.
	MembershipType BungieMembershipType

	// Game modes to return. See the documentation for DestinyActivityModeType for valid values, and pass
	// in string representation, comma delimited.
	Modes []ActivityModeType

	// Indicates a specific period type to return. Optional. May be: Daily, AllTime, or Activity
	PeriodType PeriodType
}

Destiny2GetHistoricalStatsRequest are the request parameters for operation Destiny2.GetHistoricalStats

type Destiny2GetItemRequest

type Destiny2GetItemRequest struct {

	// A comma separated list of components to return (as strings or numeric values). See the
	// DestinyComponentType enum for valid components to request. You must request at least one component
	// to receive results.
	Components []ComponentType

	// The membership ID of the destiny profile.
	// Required.
	DestinyMembershipID Int64

	// The Instance ID of the destiny item.
	// Required.
	ItemInstanceID Int64

	// A valid non-BungieNet membership type.
	// Required.
	MembershipType BungieMembershipType
}

Destiny2GetItemRequest are the request parameters for operation Destiny2.GetItem

type Destiny2GetLeaderboardsForCharacterRequest

type Destiny2GetLeaderboardsForCharacterRequest struct {

	// The specific character to build the leaderboard around for the provided Destiny Membership.
	// Required.
	CharacterID Int64

	// The Destiny membershipId of the user to retrieve.
	// Required.
	DestinyMembershipID Int64

	// Maximum number of top players to return. Use a large number to get entire leaderboard.
	Maxtop int32

	// A valid non-BungieNet membership type.
	// Required.
	MembershipType BungieMembershipType

	// List of game modes for which to get leaderboards. See the documentation for DestinyActivityModeType
	// for valid values, and pass in string representation, comma delimited.
	Modes string

	// ID of stat to return rather than returning all Leaderboard stats.
	Statid string
}

Destiny2GetLeaderboardsForCharacterRequest are the request parameters for operation Destiny2.GetLeaderboardsForCharacter

type Destiny2GetLeaderboardsRequest

type Destiny2GetLeaderboardsRequest struct {

	// The Destiny membershipId of the user to retrieve.
	// Required.
	DestinyMembershipID Int64

	// Maximum number of top players to return. Use a large number to get entire leaderboard.
	Maxtop int32

	// A valid non-BungieNet membership type.
	// Required.
	MembershipType BungieMembershipType

	// List of game modes for which to get leaderboards. See the documentation for DestinyActivityModeType
	// for valid values, and pass in string representation, comma delimited.
	Modes string

	// ID of stat to return rather than returning all Leaderboard stats.
	Statid string
}

Destiny2GetLeaderboardsRequest are the request parameters for operation Destiny2.GetLeaderboards

type Destiny2GetLinkedProfilesRequest

type Destiny2GetLinkedProfilesRequest struct {

	// (optional) if set to 'true', all memberships regardless of whether they're obscured by overrides
	// will be returned. Normal privacy restrictions on account linking will still apply no matter what.
	GetAllMemberships bool

	// The ID of the membership whose linked Destiny accounts you want returned. Make sure your membership
	// ID matches its Membership Type: don't pass us a PSN membership ID and the XBox membership type, it's
	// not going to work!
	// Required.
	MembershipID Int64

	// The type for the membership whose linked Destiny accounts you want returned.
	// Required.
	MembershipType BungieMembershipType
}

Destiny2GetLinkedProfilesRequest are the request parameters for operation Destiny2.GetLinkedProfiles

type Destiny2GetPostGameCarnageReportRequest

type Destiny2GetPostGameCarnageReportRequest struct {

	// The ID of the activity whose PGCR is requested.
	// Required.
	ActivityID Int64
}

Destiny2GetPostGameCarnageReportRequest are the request parameters for operation Destiny2.GetPostGameCarnageReport

type Destiny2GetProfileRequest

type Destiny2GetProfileRequest struct {

	// A comma separated list of components to return (as strings or numeric values). See the
	// DestinyComponentType enum for valid components to request. You must request at least one component
	// to receive results.
	Components []ComponentType

	// Destiny membership ID.
	// Required.
	DestinyMembershipID Int64

	// A valid non-BungieNet membership type.
	// Required.
	MembershipType BungieMembershipType
}

Destiny2GetProfileRequest are the request parameters for operation Destiny2.GetProfile

type Destiny2GetPublicMilestoneContentRequest

type Destiny2GetPublicMilestoneContentRequest struct {

	// The identifier for the milestone to be returned.
	// Required.
	MilestoneHash uint32
}

Destiny2GetPublicMilestoneContentRequest are the request parameters for operation Destiny2.GetPublicMilestoneContent

type Destiny2GetPublicMilestonesRequest

type Destiny2GetPublicMilestonesRequest struct {
}

Destiny2GetPublicMilestonesRequest are the request parameters for operation Destiny2.GetPublicMilestones

type Destiny2GetPublicVendorsRequest

type Destiny2GetPublicVendorsRequest struct {

	// A comma separated list of components to return (as strings or numeric values). See the
	// DestinyComponentType enum for valid components to request. You must request at least one component
	// to receive results.
	Components []ComponentType
}

Destiny2GetPublicVendorsRequest are the request parameters for operation Destiny2.GetPublicVendors

type Destiny2GetUniqueWeaponHistoryRequest

type Destiny2GetUniqueWeaponHistoryRequest struct {

	// The id of the character to retrieve.
	// Required.
	CharacterID Int64

	// The Destiny membershipId of the user to retrieve.
	// Required.
	DestinyMembershipID Int64

	// A valid non-BungieNet membership type.
	// Required.
	MembershipType BungieMembershipType
}

Destiny2GetUniqueWeaponHistoryRequest are the request parameters for operation Destiny2.GetUniqueWeaponHistory

type Destiny2GetVendorRequest

type Destiny2GetVendorRequest struct {

	// The Destiny Character ID of the character for whom we're getting vendor info.
	// Required.
	CharacterID Int64

	// A comma separated list of components to return (as strings or numeric values). See the
	// DestinyComponentType enum for valid components to request. You must request at least one component
	// to receive results.
	Components []ComponentType

	// Destiny membership ID of another user. You may be denied.
	// Required.
	DestinyMembershipID Int64

	// A valid non-BungieNet membership type.
	// Required.
	MembershipType BungieMembershipType

	// The Hash identifier of the Vendor to be returned.
	// Required.
	VendorHash uint32
}

Destiny2GetVendorRequest are the request parameters for operation Destiny2.GetVendor

type Destiny2GetVendorsRequest

type Destiny2GetVendorsRequest struct {

	// The Destiny Character ID of the character for whom we're getting vendor info.
	// Required.
	CharacterID Int64

	// A comma separated list of components to return (as strings or numeric values). See the
	// DestinyComponentType enum for valid components to request. You must request at least one component
	// to receive results.
	Components []ComponentType

	// Destiny membership ID of another user. You may be denied.
	// Required.
	DestinyMembershipID Int64

	// The filter of what vendors and items to return, if any.
	Filter VendorFilter

	// A valid non-BungieNet membership type.
	// Required.
	MembershipType BungieMembershipType
}

Destiny2GetVendorsRequest are the request parameters for operation Destiny2.GetVendors

type Destiny2InsertSocketPlugFreeRequest

type Destiny2InsertSocketPlugFreeRequest struct {

	// Required.
	Body InsertPlugsFreeActionRequest
}

Destiny2InsertSocketPlugFreeRequest are the request parameters for operation Destiny2.InsertSocketPlugFree

type Destiny2InsertSocketPlugRequest

type Destiny2InsertSocketPlugRequest struct {

	// Required.
	Body InsertPlugsActionRequest
}

Destiny2InsertSocketPlugRequest are the request parameters for operation Destiny2.InsertSocketPlug

type Destiny2PullFromPostmasterRequest

type Destiny2PullFromPostmasterRequest struct {

	// Required.
	Body PostmasterTransferRequest
}

Destiny2PullFromPostmasterRequest are the request parameters for operation Destiny2.PullFromPostmaster

type Destiny2ReportOffensivePostGameCarnageReportPlayerRequest

type Destiny2ReportOffensivePostGameCarnageReportPlayerRequest struct {

	// The ID of the activity where you ran into the brigand that you're reporting.
	// Required.
	ActivityID Int64

	// Required.
	Body ReportOffensePgcrRequest
}

Destiny2ReportOffensivePostGameCarnageReportPlayerRequest are the request parameters for operation Destiny2.ReportOffensivePostGameCarnageReportPlayer

type Destiny2SearchDestinyEntitiesRequest

type Destiny2SearchDestinyEntitiesRequest struct {

	// Page number to return, starting with 0.
	Page int32

	// The string to use when searching for Destiny entities.
	// Required.
	SearchTerm string

	// The type of entity for whom you would like results. These correspond to the entity's definition
	// contract name. For instance, if you are looking for items, this property should be
	// 'DestinyInventoryItemDefinition'.
	// Required.
	Type string
}

Destiny2SearchDestinyEntitiesRequest are the request parameters for operation Destiny2.SearchDestinyEntities

type Destiny2SearchDestinyPlayerByBungieNameRequest

type Destiny2SearchDestinyPlayerByBungieNameRequest struct {

	// A valid non-BungieNet membership type, or All. Indicates which memberships to return. You probably
	// want this set to All.
	// Required.
	MembershipType BungieMembershipType

	// Required.
	Body ExactSearchRequest
}

Destiny2SearchDestinyPlayerByBungieNameRequest are the request parameters for operation Destiny2.SearchDestinyPlayerByBungieName

type Destiny2SetItemLockStateRequest

type Destiny2SetItemLockStateRequest struct {

	// Required.
	Body ItemStateRequest
}

Destiny2SetItemLockStateRequest are the request parameters for operation Destiny2.SetItemLockState

type Destiny2SetQuestTrackedStateRequest

type Destiny2SetQuestTrackedStateRequest struct {

	// Required.
	Body ItemStateRequest
}

Destiny2SetQuestTrackedStateRequest are the request parameters for operation Destiny2.SetQuestTrackedState

type Destiny2SnapshotLoadoutRequest

type Destiny2SnapshotLoadoutRequest struct {

	// Required.
	Body LoadoutUpdateActionRequest
}

Destiny2SnapshotLoadoutRequest are the request parameters for operation Destiny2.SnapshotLoadout

type Destiny2TransferItemRequest

type Destiny2TransferItemRequest struct {

	// Required.
	Body ItemTransferRequest
}

Destiny2TransferItemRequest are the request parameters for operation Destiny2.TransferItem

type Destiny2UpdateLoadoutIdentifiersRequest

type Destiny2UpdateLoadoutIdentifiersRequest struct {

	// Required.
	Body LoadoutUpdateActionRequest
}

Destiny2UpdateLoadoutIdentifiersRequest are the request parameters for operation Destiny2.UpdateLoadoutIdentifiers

type DeveloperRole

type DeveloperRole int32

Applications.DeveloperRole

func (DeveloperRole) Enum

func (e DeveloperRole) Enum() string

type DisplayCategoryDefinition

type DisplayCategoryDefinition struct {
	DisplayCategoryHash uint32 `json:"displayCategoryHash"`

	// If true, this category should be displayed in the "Banner" section of the vendor's UI.
	DisplayInBanner bool `json:"displayInBanner"`

	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// An indicator of how the category will be displayed in the UI. It's up to you to do something cool or
	// interesting in response to this, or just to treat it as a normal category.
	DisplayStyleHash Nullable[uint32] `json:"displayStyleHash,omitempty"`

	// An indicator of how the category will be displayed in the UI. It's up to you to do something cool or
	// interesting in response to this, or just to treat it as a normal category.
	DisplayStyleIdentifier string `json:"displayStyleIdentifier"`

	// A string identifier for the display category.
	Identifier string `json:"identifier"`

	Index int32 `json:"index"`

	// If it exists, this is the hash identifier of a DestinyProgressionDefinition that represents the
	// progression to show on this display category.
	// Specific categories can now have thier own distinct progression, apparently. So that's cool.
	ProgressionHash Nullable[Hash[ProgressionDefinition]] `json:"progressionHash,omitempty"`

	// If this category sorts items in a nonstandard way, this will be the way we sort.
	SortOrder VendorDisplayCategorySortOrder `json:"sortOrder"`
}

Destiny.Definitions.DestinyDisplayCategoryDefinition

Display Categories are different from "categories" in that these are specifically for visual grouping and display of categories in Vendor UI. The "categories" structure is for validation of the contained items, and can be categorized entirely separately from "Display Categories", there need be and often will be no meaningful relationship between the two.

func (DisplayCategoryDefinition) DefinitionTable

func (d DisplayCategoryDefinition) DefinitionTable() string

type DisplayPropertiesDefinition

type DisplayPropertiesDefinition struct {
	Description string `json:"description"`

	HasIcon bool `json:"hasIcon"`

	// If this item has a high-res icon (at least for now, many things won't), then the path to that icon
	// will be here.
	HighResIcon string `json:"highResIcon"`

	// Note that "icon" is sometimes misleading, and should be interpreted in the context of the entity.
	// For instance, in Destiny 1 the DestinyRecordBookDefinition's icon was a big picture of a book.
	// But usually, it will be a small square image that you can use as... well, an icon.
	// They are currently represented as 96px x 96px images.
	Icon string `json:"icon"`

	IconSequences []IconSequenceDefinition `json:"iconSequences"`

	Name string `json:"name"`
}

Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition

Many Destiny*Definition contracts - the "first order" entities of Destiny that have their own tables in the Manifest Database - also have displayable information. This is the base class for that display information.

func (DisplayPropertiesDefinition) DefinitionTable

func (d DisplayPropertiesDefinition) DefinitionTable() string

type DropState

type DropState int

Streaming.DropStateEnum

func (DropState) Enum

func (e DropState) Enum() string

type DyeReference

type DyeReference struct {
	ChannelHash uint32 `json:"channelHash"`

	DyeHash uint32 `json:"dyeHash"`
}

Destiny.DyeReference

type EMailSettingLocalization

type EMailSettingLocalization struct {
	Description string `json:"description"`

	Title string `json:"title"`
}

User.EMailSettingLocalization

Localized text relevant to a given EMail setting in a given localization.

type EMailSettingSubscriptionLocalization

type EMailSettingSubscriptionLocalization struct {
	Description string `json:"description"`

	KnownUserActionText string `json:"knownUserActionText"`

	RegisteredUserDescription string `json:"registeredUserDescription"`

	Title string `json:"title"`

	UnknownUserActionText string `json:"unknownUserActionText"`

	UnknownUserDescription string `json:"unknownUserDescription"`

	UnregisteredUserDescription string `json:"unregisteredUserDescription"`
}

User.EMailSettingSubscriptionLocalization

Localized text relevant to a given EMail setting in a given localization. Extra settings specifically for subscriptions.

type EmailOptInDefinition

type EmailOptInDefinition struct {

	// Information about the dependent subscriptions for this opt-in.
	DependentSubscriptions []EmailSubscriptionDefinition `json:"dependentSubscriptions"`

	// The unique identifier for this opt-in category.
	Name string `json:"name"`

	// If true, this opt-in setting should be set by default in situations where accounts are created
	// without explicit choices about what they're opting into.
	SetByDefault bool `json:"setByDefault"`

	// The flag value for this opt-in category. For historical reasons, this is defined as a flags enum.
	Value BitmaskSet[OptInFlags] `json:"value"`
}

User.EmailOptInDefinition

Defines a single opt-in category: a wide-scoped permission to send emails for the subject related to the opt-in.

type EmailSettings

type EmailSettings struct {

	// Keyed by the name identifier of the opt-in definition.
	OptInDefinitions map[string]EmailOptInDefinition `json:"optInDefinitions"`

	// Keyed by the name identifier of the Subscription definition.
	SubscriptionDefinitions map[string]EmailSubscriptionDefinition `json:"subscriptionDefinitions"`

	// Keyed by the name identifier of the View definition.
	Views map[string]EmailViewDefinition `json:"views"`
}

User.EmailSettings

The set of all email subscription/opt-in settings and definitions.

type EmailSubscriptionDefinition

type EmailSubscriptionDefinition struct {

	// A dictionary of localized text for the EMail Opt-in setting, keyed by the locale.
	Localization map[string]EMailSettingSubscriptionLocalization `json:"localization"`

	// The unique identifier for this subscription.
	Name string `json:"name"`

	// The bitflag value for this subscription. Should be a unique power of two value.
	Value Int64 `json:"value"`
}

User.EmailSubscriptionDefinition

Defines a single subscription: permission to send emails for a specific, focused subject (generally timeboxed, such as for a specific release of a product or feature).

type EmailViewDefinition

type EmailViewDefinition struct {

	// The identifier for this view.
	Name string `json:"name"`

	// The ordered list of settings to show in this view.
	ViewSettings []EmailViewDefinitionSetting `json:"viewSettings"`
}

User.EmailViewDefinition

Represents a data-driven view for Email settings. Web/Mobile UI can use this data to show new EMail settings consistently without further manual work.

type EmailViewDefinitionSetting

type EmailViewDefinitionSetting struct {

	// A dictionary of localized text for the EMail setting, keyed by the locale.
	Localization map[string]EMailSettingLocalization `json:"localization"`

	// The identifier for this UI Setting, which can be used to relate it to custom strings or other data
	// as desired.
	Name string `json:"name"`

	// The OptInFlags value to set or clear if this setting is set or cleared in the UI. It is the
	// aggregate of all underlying opt-in flags related to this setting.
	OptInAggregateValue BitmaskSet[OptInFlags] `json:"optInAggregateValue"`

	// If true, this setting should be set by default if the user hasn't chosen whether it's set or cleared
	// yet.
	SetByDefault bool `json:"setByDefault"`

	// The subscriptions to show as children of this setting, if any.
	Subscriptions []EmailSubscriptionDefinition `json:"subscriptions"`
}

User.EmailViewDefinitionSetting

type EnergyCapacityEntry

type EnergyCapacityEntry struct {

	// How much energy capacity this plug provides.
	CapacityValue int32 `json:"capacityValue"`

	// The Energy Type for this energy capacity, in enum form for easy use.
	EnergyType EnergyType `json:"energyType"`

	// Energy provided by a plug is always of a specific type - this is the hash identifier for the energy
	// type for which it provides Capacity.
	EnergyTypeHash Hash[EnergyTypeDefinition] `json:"energyTypeHash"`
}

Destiny.Definitions.Items.DestinyEnergyCapacityEntry

Items can have Energy Capacity, and plugs can provide that capacity such as on a piece of Armor in Armor 2.0. This is how much "Energy" can be spent on activating plugs for this item.

func (EnergyCapacityEntry) DefinitionTable

func (d EnergyCapacityEntry) DefinitionTable() string

type EnergyCostEntry

type EnergyCostEntry struct {

	// The Energy cost for inserting this plug.
	EnergyCost int32 `json:"energyCost"`

	// The type of energy that this plug costs, in enum form.
	EnergyType EnergyType `json:"energyType"`

	// The type of energy that this plug costs, as a reference to the DestinyEnergyTypeDefinition of the
	// energy type.
	EnergyTypeHash Hash[EnergyTypeDefinition] `json:"energyTypeHash"`
}

Destiny.Definitions.Items.DestinyEnergyCostEntry

Some plugs cost Energy, which is a stat on the item that can be increased by other plugs (that, at least in Armor 2.0, have a "masterworks-like" mechanic for upgrading). If a plug has costs, the details of that cost are defined here.

func (EnergyCostEntry) DefinitionTable

func (d EnergyCostEntry) DefinitionTable() string

type EnergyType

type EnergyType int32

Destiny.DestinyEnergyType

Represents the socket energy types for Armor 2.0, Ghosts 2.0, and Stasis subclasses.

func (EnergyType) Enum

func (e EnergyType) Enum() string

type EnergyTypeDefinition

type EnergyTypeDefinition struct {

	// If this Energy Type can be used for determining the Type of Energy that an item can consume, this is
	// the hash for the DestinyInvestmentStatDefinition that represents the stat which holds the Capacity
	// for that energy type. (Note that this is optional because "Any" is a valid cost, but not valid for
	// Capacity - an Armor must have a specific Energy Type for determining the energy type that the Armor
	// is restricted to use)
	CapacityStatHash Nullable[Hash[StatDefinition]] `json:"capacityStatHash,omitempty"`

	// If this Energy Type can be used as a cost to pay for socketing Armor 2.0 items, this is the hash for
	// the DestinyInvestmentStatDefinition that stores the plug's raw cost.
	CostStatHash Hash[StatDefinition] `json:"costStatHash"`

	// The description of the energy type, icon etc...
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// We have an enumeration for Energy types for quick reference. This is the current definition's Energy
	// type enum value.
	EnumValue EnergyType `json:"enumValue"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	// If TRUE, the game shows this Energy type's icon. Otherwise, it doesn't. Whether you show it or not
	// is up to you.
	ShowIcon bool `json:"showIcon"`

	// A variant of the icon that is transparent and colorless.
	TransparentIconPath string `json:"transparentIconPath"`
}

Destiny.Definitions.EnergyTypes.DestinyEnergyTypeDefinition

Represents types of Energy that can be used for costs and payments related to Armor 2.0 mods.

func (EnergyTypeDefinition) DefinitionTable

func (d EnergyTypeDefinition) DefinitionTable() string

type EntityActionResult

type EntityActionResult struct {
	EntityID Int64 `json:"entityId"`

	Result PlatformErrorCodes `json:"result"`
}

Entities.EntityActionResult

type EntitySearchResult

type EntitySearchResult struct {

	// The items found that are matches/near matches for the searched-for term, sorted by something vaguely
	// resembling "relevance". Hopefully this will get better in the future.
	Results SearchResult[EntitySearchResultItem] `json:"results"`

	// A list of suggested words that might make for better search results, based on the text searched for.
	SuggestedWords []string `json:"suggestedWords"`
}

Destiny.Definitions.DestinyEntitySearchResult

The results of a search for Destiny content. This will be improved on over time, I've been doing some experimenting to see what might be useful.

func (EntitySearchResult) DefinitionTable

func (d EntitySearchResult) DefinitionTable() string

type EntitySearchResultItem

type EntitySearchResultItem struct {

	// Basic display properties on the entity, so you don't have to look up the definition to show basic
	// results for the item.
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The type of entity, returned as a string matching the DestinyDefinition's contract class name.
	// You'll have to have your own mapping from class names to actually looking up those definitions in
	// the manifest databases.
	EntityType string `json:"entityType"`

	// The hash identifier of the entity. You will use this to look up the DestinyDefinition relevant for
	// the entity found.
	Hash uint32 `json:"hash"`

	// The ranking value for sorting that we calculated using our relevance formula. This will hopefully
	// get better with time and iteration.
	Weight float64 `json:"weight"`
}

Destiny.Definitions.DestinyEntitySearchResultItem

An individual Destiny Entity returned from the entity search.

func (EntitySearchResultItem) DefinitionTable

func (d EntitySearchResultItem) DefinitionTable() string

type EnvironmentLocationMapping

type EnvironmentLocationMapping struct {

	// A hint that the UI uses to figure out how this location is activated by the player.
	ActivationSource string `json:"activationSource"`

	// If this is populated, this is the activity you have to be playing in order to see this location
	// appear because of this mapping. (theoretically, a location can have multiple mappings, and some
	// might require you to be in a specific activity when others don't)
	ActivityHash Nullable[Hash[ActivityDefinition]] `json:"activityHash,omitempty"`

	// If this is populated, it is the item that you must possess for this location to be active because of
	// this mapping. (theoretically, a location can have multiple mappings, and some might require an item
	// while others don't)
	ItemHash Nullable[Hash[InventoryItemDefinition]] `json:"itemHash,omitempty"`

	// The location that is revealed on the director by this mapping.
	LocationHash Hash[LocationDefinition] `json:"locationHash"`

	// If this is populated, this is an objective related to the location.
	ObjectiveHash Nullable[Hash[ObjectiveDefinition]] `json:"objectiveHash,omitempty"`
}

Destiny.Constants.DestinyEnvironmentLocationMapping

type EquipFailureReason

type EquipFailureReason int32

Destiny.EquipFailureReason

The reasons why an item cannot be equipped, if any. Many flags can be set, or "None" if

func (EquipFailureReason) Enum

func (e EquipFailureReason) Enum() string

type EquipItemResult

type EquipItemResult struct {

	// A PlatformErrorCodes enum indicating whether it succeeded, and if it failed why.
	EquipStatus PlatformErrorCodes `json:"equipStatus"`

	// The instance ID of the item in question (all items that can be equipped must, but definition, be
	// Instanced and thus have an Instance ID that you can use to refer to them)
	ItemInstanceID Int64 `json:"itemInstanceId"`
}

Destiny.DestinyEquipItemResult

The results of an Equipping operation performed through the Destiny API.

type EquipItemResults

type EquipItemResults struct {
	EquipResults []EquipItemResult `json:"equipResults"`
}

Destiny.DestinyEquipItemResults

The results of a bulk Equipping operation performed through the Destiny API.

type EquipmentSlotDefinition

type EquipmentSlotDefinition struct {

	// If True, equipped items should have their custom art dyes applied when rendering the item.
	// Otherwise, custom art dyes on an item should be ignored if the item is equipped in this slot.
	ApplyCustomArtDyes bool `json:"applyCustomArtDyes"`

	// The Art Dye Channels that apply to this equipment slot.
	ArtDyeChannels []ArtDyeReference `json:"artDyeChannels"`

	// The inventory bucket that owns this equipment slot.
	BucketTypeHash Hash[InventoryBucketDefinition] `json:"bucketTypeHash"`

	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// These technically point to "Equipment Category Definitions". But don't get excited. There's nothing
	// of significant value in those definitions, so I didn't bother to expose them. You can use the hash
	// here to group equipment slots by common functionality, which serves the same purpose as if we had
	// the Equipment Category definitions exposed.
	EquipmentCategoryHash uint32 `json:"equipmentCategoryHash"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.DestinyEquipmentSlotDefinition

Characters can not only have Inventory buckets (containers of items that are generally matched by their type or functionality), they can also have Equipment Slots. The Equipment Slot is an indicator that the related bucket can have instanced items equipped on the character. For instance, the Primary Weapon bucket has an Equipment Slot that determines whether you can equip primary weapons, and holds the association between its slot and the inventory bucket from which it can have items equipped. An Equipment Slot must have a related Inventory Bucket, but not all inventory buckets must have Equipment Slots.

func (EquipmentSlotDefinition) DefinitionTable

func (d EquipmentSlotDefinition) DefinitionTable() string

type EquippingBlockDefinition

type EquippingBlockDefinition struct {

	// Ammo type used by a weapon is no longer determined by the bucket in which it is contained. If the
	// item has an ammo type - i.e. if it is a weapon - this will be the type of ammunition expected.
	AmmoType AmmunitionType `json:"ammoType"`

	// These are custom attributes on the equippability of the item.
	// For now, this can only be "equip on acquire", which would mean that the item will be automatically
	// equipped as soon as you pick it up.
	Attributes BitmaskSet[EquippingItemBlockAttributes] `json:"attributes"`

	// These are strings that represent the possible Game/Account/Character state failure conditions that
	// can occur when trying to equip the item. They match up one-to-one with requiredUnlockExpressions.
	DisplayStrings []string `json:"displayStrings"`

	// An equipped item *must* be equipped in an Equipment Slot. This is the hash identifier of the
	// DestinyEquipmentSlotDefinition into which it must be equipped.
	EquipmentSlotTypeHash Hash[EquipmentSlotDefinition] `json:"equipmentSlotTypeHash"`

	// If the item is part of a gearset, this is a reference to that gearset item.
	GearsetItemHash Nullable[Hash[InventoryItemDefinition]] `json:"gearsetItemHash,omitempty"`

	// If defined, this is the label used to check if the item has other items of matching types already
	// equipped.
	// For instance, when you aren't allowed to equip more than one Exotic Weapon, that's because all
	// exotic weapons have identical uniqueLabels and the game checks the to-be-equipped item's uniqueLabel
	// vs. all other already equipped items (other than the item in the slot that's about to be occupied).
	UniqueLabel string `json:"uniqueLabel"`

	// The hash of that unique label. Does not point to a specific definition.
	UniqueLabelHash uint32 `json:"uniqueLabelHash"`
}

Destiny.Definitions.DestinyEquippingBlockDefinition

Items that can be equipped define this block. It contains information we need to understand how and when the item can be equipped.

func (EquippingBlockDefinition) DefinitionTable

func (d EquippingBlockDefinition) DefinitionTable() string

type EquippingItemBlockAttributes

type EquippingItemBlockAttributes int32

Destiny.EquippingItemBlockAttributes

func (EquippingItemBlockAttributes) Enum

type ErrorProfile

type ErrorProfile struct {

	// The error that we encountered. You should be able to look up localized text to show to the user for
	// these failures.
	ErrorCode PlatformErrorCodes `json:"errorCode"`

	// Basic info about the account that failed. Don't expect anything other than membership ID, Membership
	// Type, and displayName to be populated.
	InfoCard UserInfoCard `json:"infoCard"`
}

Destiny.Responses.DestinyErrorProfile

If a Destiny Profile can't be returned, but we're pretty certain it's a valid Destiny account, this will contain as much info as we can get about the profile for your use. Assume that the most you'll get is the Error Code, the Membership Type and the Membership ID.

type EventCardDefinition

type EventCardDefinition struct {
	Color Color `json:"color"`

	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	EndTime Int64 `json:"endTime"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	Images EventCardImages `json:"images"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	LinkRedirectPath string `json:"linkRedirectPath"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	SealPresentationNodeHash Hash[PresentationNodeDefinition] `json:"sealPresentationNodeHash"`

	TicketCurrencyItemHash Hash[InventoryItemDefinition] `json:"ticketCurrencyItemHash"`

	TicketVendorCategoryHash uint32 `json:"ticketVendorCategoryHash"`

	TicketVendorHash Hash[VendorDefinition] `json:"ticketVendorHash"`

	TriumphsPresentationNodeHash Hash[PresentationNodeDefinition] `json:"triumphsPresentationNodeHash"`
}

Destiny.Definitions.Seasons.DestinyEventCardDefinition

Defines the properties of an 'Event Card' in Destiny 2, to coincide with a seasonal event for additional challenges, premium rewards, a new seal, and a special title. For example: Solstice of Heroes 2022.

func (EventCardDefinition) DefinitionTable

func (d EventCardDefinition) DefinitionTable() string

type EventCardImages

type EventCardImages struct {
	CardCompleteImagePath string `json:"cardCompleteImagePath"`

	CardCompleteWrapImagePath string `json:"cardCompleteWrapImagePath"`

	CardIncompleteImagePath string `json:"cardIncompleteImagePath"`

	ProgressIconImagePath string `json:"progressIconImagePath"`

	ThemeBackgroundImagePath string `json:"themeBackgroundImagePath"`

	UnownedCardSleeveImagePath string `json:"unownedCardSleeveImagePath"`

	UnownedCardSleeveWrapImagePath string `json:"unownedCardSleeveWrapImagePath"`
}

Destiny.Definitions.Seasons.DestinyEventCardImages

func (EventCardImages) DefinitionTable

func (d EventCardImages) DefinitionTable() string

type ExactSearchRequest

type ExactSearchRequest struct {
	DisplayName string `json:"displayName"`

	DisplayNameCode int16 `json:"displayNameCode"`
}

User.ExactSearchRequest

type FactionDefinition

type FactionDefinition struct {
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// The hash identifier for the DestinyProgressionDefinition that indicates the character's relationship
	// with this faction in terms of experience and levels.
	ProgressionHash Hash[ProgressionDefinition] `json:"progressionHash"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	// The faction reward item hash, usually an engram.
	RewardItemHash Hash[InventoryItemDefinition] `json:"rewardItemHash"`

	// The faction reward vendor hash, used for faction engram previews.
	RewardVendorHash Hash[VendorDefinition] `json:"rewardVendorHash"`

	// The faction token item hashes, and their respective progression values.
	TokenValues map[uint32]uint32 `json:"tokenValues"`

	// List of vendors that are associated with this faction. The last vendor that passes the unlock flag
	// checks is the one that should be shown.
	Vendors []FactionVendorDefinition `json:"vendors"`
}

Destiny.Definitions.DestinyFactionDefinition

These definitions represent Factions in the game. Factions have ended up unilaterally being related to Vendors that represent them, but that need not necessarily be the case. A Faction is really just an entity that has a related progression for which a character can gain experience. In Destiny 1, Dead Orbit was an example of a Faction: there happens to be a Vendor that represents Dead Orbit (and indeed, DestinyVendorDefinition.factionHash defines to this relationship), but Dead Orbit could theoretically exist without the Vendor that provides rewards.

func (FactionDefinition) DefinitionTable

func (d FactionDefinition) DefinitionTable() string

type FactionProgression

type FactionProgression struct {

	// This is the total amount of progress obtained overall for this progression (for instance, the total
	// amount of Character Level experience earned)
	CurrentProgress int32 `json:"currentProgress"`

	// The number of resets of this progression you've executed this season, if applicable to this
	// progression.
	CurrentResetCount Nullable[int32] `json:"currentResetCount,omitempty"`

	// If this progression has a daily limit, this is that limit.
	DailyLimit int32 `json:"dailyLimit"`

	// The amount of progress earned today for this progression.
	DailyProgress int32 `json:"dailyProgress"`

	// The hash identifier of the Faction related to this progression. Use it to look up the
	// DestinyFactionDefinition for more rendering info.
	FactionHash Hash[FactionDefinition] `json:"factionHash"`

	// The index of the Faction vendor that is currently available. Will be set to -1 if no vendors are
	// available.
	FactionVendorIndex int32 `json:"factionVendorIndex"`

	// This is the level of the progression (for instance, the Character Level).
	Level int32 `json:"level"`

	// This is the maximum possible level you can achieve for this progression (for example, the maximum
	// character level obtainable)
	LevelCap int32 `json:"levelCap"`

	// The total amount of progression (i.e. "Experience") needed in order to reach the next level.
	NextLevelAt int32 `json:"nextLevelAt"`

	// The amount of progression (i.e. "Experience") needed to reach the next level of this Progression.
	// Jeez, progression is such an overloaded word.
	ProgressToNextLevel int32 `json:"progressToNextLevel"`

	// The hash identifier of the Progression in question. Use it to look up the
	// DestinyProgressionDefinition in static data.
	ProgressionHash Hash[ProgressionDefinition] `json:"progressionHash"`

	// Information about historical rewards for this progression, if there is any data for it.
	RewardItemStates []BitmaskSet[ProgressionRewardItemState] `json:"rewardItemStates"`

	// Information about historical resets of this progression, if there is any data for it.
	SeasonResets []ProgressionResetEntry `json:"seasonResets"`

	// Progressions define their levels in "steps". Since the last step may be repeatable, the user may be
	// at a higher level than the actual Step achieved in the progression. Not necessarily useful, but
	// potentially interesting for those cruising the API. Relate this to the "steps" property of the
	// DestinyProgression to see which step the user is on, if you care about that. (Note that this is
	// Content Version dependent since it refers to indexes.)
	StepIndex int32 `json:"stepIndex"`

	// If this progression has a weekly limit, this is that limit.
	WeeklyLimit int32 `json:"weeklyLimit"`

	// The amount of progress earned toward this progression in the current week.
	WeeklyProgress int32 `json:"weeklyProgress"`
}

Destiny.Progression.DestinyFactionProgression

Mostly for historical purposes, we segregate Faction progressions from other progressions. This is just a DestinyProgression with a shortcut for finding the DestinyFactionDefinition of the faction related to the progression.

type FactionVendorDefinition

type FactionVendorDefinition struct {

	// The relative path to the background image representing this Vendor at this location, for use in a
	// banner.
	BackgroundImagePath string `json:"backgroundImagePath"`

	// The hash identifier for a Destination at which this vendor may be located. Each destination where a
	// Vendor may exist will only ever have a single entry.
	DestinationHash Hash[DestinationDefinition] `json:"destinationHash"`

	// The faction vendor hash.
	VendorHash Hash[VendorDefinition] `json:"vendorHash"`
}

Destiny.Definitions.DestinyFactionVendorDefinition

These definitions represent faction vendors at different points in the game. A single faction may contain multiple vendors, or the same vendor available at two different locations.

func (FactionVendorDefinition) DefinitionTable

func (d FactionVendorDefinition) DefinitionTable() string

type FireteamDateRange

type FireteamDateRange int

Fireteam.FireteamDateRange

func (FireteamDateRange) Enum

func (e FireteamDateRange) Enum() string

type FireteamGetActivePrivateClanFireteamCountRequest

type FireteamGetActivePrivateClanFireteamCountRequest struct {

	// The group id of the clan.
	// Required.
	GroupID Int64
}

FireteamGetActivePrivateClanFireteamCountRequest are the request parameters for operation Fireteam.GetActivePrivateClanFireteamCount

type FireteamGetAvailableClanFireteamsRequest

type FireteamGetAvailableClanFireteamsRequest struct {

	// The activity type to filter by.
	// Required.
	ActivityType int32

	// The date range to grab available fireteams.
	// Required.
	DateRange FireteamDateRange

	// If you wish the result to exclude immediate fireteams, set this to true. Immediate-only can be
	// forced using the dateRange enum.
	ExcludeImmediate bool

	// The group id of the clan.
	// Required.
	GroupID Int64

	// An optional language filter.
	LangFilter string

	// Zero based page
	// Required.
	Page int32

	// The platform filter.
	// Required.
	Platform FireteamPlatform

	// Determines public/private filtering.
	// Required.
	PublicOnly FireteamPublicSearchOption

	// Filters based on available slots
	// Required.
	SlotFilter FireteamSlotSearch
}

FireteamGetAvailableClanFireteamsRequest are the request parameters for operation Fireteam.GetAvailableClanFireteams

type FireteamGetClanFireteamRequest

type FireteamGetClanFireteamRequest struct {

	// The unique id of the fireteam.
	// Required.
	FireteamID Int64

	// The group id of the clan.
	// Required.
	GroupID Int64
}

FireteamGetClanFireteamRequest are the request parameters for operation Fireteam.GetClanFireteam

type FireteamGetMyClanFireteamsRequest

type FireteamGetMyClanFireteamsRequest struct {

	// If true, filter by clan. Otherwise, ignore the clan and show all of the user's fireteams.
	GroupFilter bool

	// The group id of the clan. (This parameter is ignored unless the optional query parameter groupFilter
	// is true).
	// Required.
	GroupID Int64

	// If true, return fireteams that have been closed.
	// Required.
	IncludeClosed bool

	// An optional language filter.
	LangFilter string

	// Deprecated parameter, ignored.
	// Required.
	Page int32

	// The platform filter.
	// Required.
	Platform FireteamPlatform
}

FireteamGetMyClanFireteamsRequest are the request parameters for operation Fireteam.GetMyClanFireteams

type FireteamMember

type FireteamMember struct {
	BungieNetUserInfo UserInfoCard `json:"bungieNetUserInfo"`

	CharacterID Int64 `json:"characterId"`

	DateJoined Timestamp `json:"dateJoined"`

	DestinyUserInfo FireteamUserInfoCard `json:"destinyUserInfo"`

	HasMicrophone bool `json:"hasMicrophone"`

	LastPlatformInviteAttemptDate Timestamp `json:"lastPlatformInviteAttemptDate"`

	LastPlatformInviteAttemptResult FireteamPlatformInviteResult `json:"lastPlatformInviteAttemptResult"`
}

Fireteam.FireteamMember

type FireteamPlatform

type FireteamPlatform int

Fireteam.FireteamPlatform

func (FireteamPlatform) Enum

func (e FireteamPlatform) Enum() string

type FireteamPlatformInviteResult

type FireteamPlatformInviteResult int

Fireteam.FireteamPlatformInviteResult

func (FireteamPlatformInviteResult) Enum

type FireteamPublicSearchOption

type FireteamPublicSearchOption int

Fireteam.FireteamPublicSearchOption

func (FireteamPublicSearchOption) Enum

type FireteamResponse

type FireteamResponse struct {
	Alternates []FireteamMember `json:"Alternates"`

	Members []FireteamMember `json:"Members"`

	Summary FireteamSummary `json:"Summary"`
}

Fireteam.FireteamResponse

type FireteamSearchPublicAvailableClanFireteamsRequest

type FireteamSearchPublicAvailableClanFireteamsRequest struct {

	// The activity type to filter by.
	// Required.
	ActivityType int32

	// The date range to grab available fireteams.
	// Required.
	DateRange FireteamDateRange

	// If you wish the result to exclude immediate fireteams, set this to true. Immediate-only can be
	// forced using the dateRange enum.
	ExcludeImmediate bool

	// An optional language filter.
	LangFilter string

	// Zero based page
	// Required.
	Page int32

	// The platform filter.
	// Required.
	Platform FireteamPlatform

	// Filters based on available slots
	// Required.
	SlotFilter FireteamSlotSearch
}

FireteamSearchPublicAvailableClanFireteamsRequest are the request parameters for operation Fireteam.SearchPublicAvailableClanFireteams

type FireteamSlotSearch

type FireteamSlotSearch int

Fireteam.FireteamSlotSearch

func (FireteamSlotSearch) Enum

func (e FireteamSlotSearch) Enum() string

type FireteamSummary

type FireteamSummary struct {
	ActivityType int32 `json:"activityType"`

	AlternateSlotCount Nullable[int32] `json:"alternateSlotCount,omitempty"`

	AvailableAlternateSlotCount int32 `json:"availableAlternateSlotCount"`

	AvailablePlayerSlotCount int32 `json:"availablePlayerSlotCount"`

	DateCreated Timestamp `json:"dateCreated"`

	DateModified Nullable[Timestamp] `json:"dateModified,omitempty"`

	DatePlayerModified Timestamp `json:"datePlayerModified"`

	FireteamID Int64 `json:"fireteamId"`

	GroupID Int64 `json:"groupId"`

	IsImmediate bool `json:"isImmediate"`

	IsPublic bool `json:"isPublic"`

	IsValid bool `json:"isValid"`

	Locale string `json:"locale"`

	OwnerCurrentGuardianRankSnapshot Hash[GuardianRankDefinition] `json:"ownerCurrentGuardianRankSnapshot"`

	OwnerHighestLifetimeGuardianRankSnapshot Hash[GuardianRankDefinition] `json:"ownerHighestLifetimeGuardianRankSnapshot"`

	OwnerMembershipID Int64 `json:"ownerMembershipId"`

	OwnerTotalCommendationScoreSnapshot int32 `json:"ownerTotalCommendationScoreSnapshot"`

	Platform FireteamPlatform `json:"platform"`

	PlayerSlotCount int32 `json:"playerSlotCount"`

	ScheduledTime Nullable[Timestamp] `json:"scheduledTime,omitempty"`

	Title string `json:"title"`

	TitleBeforeModeration string `json:"titleBeforeModeration"`
}

Fireteam.FireteamSummary

type FireteamUserInfoCard

type FireteamUserInfoCard struct {
	FireteamDisplayName string `json:"FireteamDisplayName"`

	FireteamMembershipType BungieMembershipType `json:"FireteamMembershipType"`

	// 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
	ApplicableMembershipTypes []BungieMembershipType `json:"applicableMembershipTypes"`

	// The bungie global display name, if set.
	BungieGlobalDisplayName string `json:"bungieGlobalDisplayName"`

	// The bungie global display name code, if set.
	BungieGlobalDisplayNameCode Nullable[int16] `json:"bungieGlobalDisplayNameCode,omitempty"`

	// If there is a cross save override in effect, this value will tell you the type that is overridding
	// this one.
	CrossSaveOverride BungieMembershipType `json:"crossSaveOverride"`

	// 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.
	DisplayName string `json:"displayName"`

	// URL the Icon if available.
	IconPath string `json:"iconPath"`

	// If True, this is a public user membership.
	IsPublic bool `json:"isPublic"`

	// Membership ID as they user is known in the Accounts service
	MembershipID Int64 `json:"membershipId"`

	// Type of the membership. Not necessarily the native type.
	MembershipType BungieMembershipType `json:"membershipType"`

	// A platform specific additional display name - ex: psn Real Name, bnet Unique Name, etc.
	SupplementalDisplayName string `json:"supplementalDisplayName"`
}

Fireteam.FireteamUserInfoCard

type ForumFlags

type ForumFlags int32

Forums.ForumFlagsEnum

func (ForumFlags) Enum

func (e ForumFlags) Enum() string

type ForumGetCoreTopicsPagedRequest

type ForumGetCoreTopicsPagedRequest struct {

	// The category filter.
	// Required.
	CategoryFilter BitmaskSet[ForumTopicsCategoryFilters]

	// Comma seperated list of locales posts must match to return in the result list. Default 'en'
	Locales string

	// Zero base page
	// Required.
	Page int32

	// The date filter.
	// Required.
	QuickDate ForumTopicsQuickDate

	// The sort mode.
	// Required.
	Sort ForumTopicsSort
}

ForumGetCoreTopicsPagedRequest are the request parameters for operation Forum.GetCoreTopicsPaged

type ForumGetForumTagSuggestionsRequest

type ForumGetForumTagSuggestionsRequest struct {

	// The partial tag input to generate suggestions from.
	Partialtag string
}

ForumGetForumTagSuggestionsRequest are the request parameters for operation Forum.GetForumTagSuggestions

type ForumGetPollRequest

type ForumGetPollRequest struct {

	// The post id of the topic that has the poll.
	// Required.
	TopicID Int64
}

ForumGetPollRequest are the request parameters for operation Forum.GetPoll

type ForumGetPostAndParentAwaitingApprovalRequest

type ForumGetPostAndParentAwaitingApprovalRequest struct {

	// Required.
	ChildPostID Int64

	// If this value is not null or empty, banned posts are requested to be returned
	Showbanned string
}

ForumGetPostAndParentAwaitingApprovalRequest are the request parameters for operation Forum.GetPostAndParentAwaitingApproval

type ForumGetPostAndParentRequest

type ForumGetPostAndParentRequest struct {

	// Required.
	ChildPostID Int64

	// If this value is not null or empty, banned posts are requested to be returned
	Showbanned string
}

ForumGetPostAndParentRequest are the request parameters for operation Forum.GetPostAndParent

type ForumGetPostsThreadedPagedFromChildRequest

type ForumGetPostsThreadedPagedFromChildRequest struct {

	// Required.
	ChildPostID Int64

	// Required.
	Page int32

	// Required.
	PageSize int32

	// Required.
	ReplySize int32

	// Required.
	RootThreadMode bool

	// If this value is not null or empty, banned posts are requested to be returned
	Showbanned string

	// Required.
	SortMode ForumPostSort
}

ForumGetPostsThreadedPagedFromChildRequest are the request parameters for operation Forum.GetPostsThreadedPagedFromChild

type ForumGetPostsThreadedPagedRequest

type ForumGetPostsThreadedPagedRequest struct {

	// Required.
	GetParentPost bool

	// Required.
	Page int32

	// Required.
	PageSize int32

	// Required.
	ParentPostID Int64

	// Required.
	ReplySize int32

	// Required.
	RootThreadMode bool

	// If this value is not null or empty, banned posts are requested to be returned
	Showbanned string

	// Required.
	SortMode ForumPostSort
}

ForumGetPostsThreadedPagedRequest are the request parameters for operation Forum.GetPostsThreadedPaged

type ForumGetRecruitmentThreadSummariesRequest

type ForumGetRecruitmentThreadSummariesRequest struct {

	// Required.
	Body []Int64
}

ForumGetRecruitmentThreadSummariesRequest are the request parameters for operation Forum.GetRecruitmentThreadSummaries

type ForumGetTopicForContentRequest

type ForumGetTopicForContentRequest struct {

	// Required.
	ContentID Int64
}

ForumGetTopicForContentRequest are the request parameters for operation Forum.GetTopicForContent

type ForumGetTopicsPagedRequest

type ForumGetTopicsPagedRequest struct {

	// A category filter
	// Required.
	CategoryFilter BitmaskSet[ForumTopicsCategoryFilters]

	// The group, if any.
	// Required.
	Group Int64

	// Comma seperated list of locales posts must match to return in the result list. Default 'en'
	Locales string

	// Zero paged page number
	// Required.
	Page int32

	// Unused
	// Required.
	PageSize int32

	// A date filter.
	// Required.
	QuickDate ForumTopicsQuickDate

	// The sort mode.
	// Required.
	Sort ForumTopicsSort

	// The tags to search, if any.
	Tagstring string
}

ForumGetTopicsPagedRequest are the request parameters for operation Forum.GetTopicsPaged

type ForumMediaType

type ForumMediaType int32

Forum.ForumMediaType

func (ForumMediaType) Enum

func (e ForumMediaType) Enum() string

type ForumPostCategory

type ForumPostCategory int32

Forums.ForumPostCategoryEnums

func (ForumPostCategory) Enum

func (e ForumPostCategory) Enum() string

type ForumPostPopularity

type ForumPostPopularity int32

Forum.ForumPostPopularity

func (ForumPostPopularity) Enum

func (e ForumPostPopularity) Enum() string

type ForumPostSort

type ForumPostSort int32

Forum.ForumPostSortEnum

func (ForumPostSort) Enum

func (e ForumPostSort) Enum() string

type ForumRecruitmentDetail

type ForumRecruitmentDetail struct {
	Fireteam []GeneralUser `json:"Fireteam"`

	Approved bool `json:"approved"`

	ConversationID Nullable[Int64] `json:"conversationId,omitempty"`

	Intensity ForumRecruitmentIntensityLabel `json:"intensity"`

	KickedPlayerIds []Int64 `json:"kickedPlayerIds"`

	MicrophoneRequired bool `json:"microphoneRequired"`

	PlayerSlotsRemaining int32 `json:"playerSlotsRemaining"`

	PlayerSlotsTotal int32 `json:"playerSlotsTotal"`

	Tone ForumRecruitmentToneLabel `json:"tone"`

	TopicID Int64 `json:"topicId"`
}

Forum.ForumRecruitmentDetail

type ForumRecruitmentIntensityLabel

type ForumRecruitmentIntensityLabel int

Forum.ForumRecruitmentIntensityLabel

func (ForumRecruitmentIntensityLabel) Enum

type ForumRecruitmentToneLabel

type ForumRecruitmentToneLabel int

Forum.ForumRecruitmentToneLabel

func (ForumRecruitmentToneLabel) Enum

type ForumTopicsCategoryFilters

type ForumTopicsCategoryFilters int32

Forum.ForumTopicsCategoryFiltersEnum

func (ForumTopicsCategoryFilters) Enum

type ForumTopicsQuickDate

type ForumTopicsQuickDate int32

Forum.ForumTopicsQuickDateEnum

func (ForumTopicsQuickDate) Enum

func (e ForumTopicsQuickDate) Enum() string

type ForumTopicsSort

type ForumTopicsSort int

Forum.ForumTopicsSortEnum

func (ForumTopicsSort) Enum

func (e ForumTopicsSort) Enum() string

type FriendRelationshipState

type FriendRelationshipState int32

Social.Friends.FriendRelationshipState

func (FriendRelationshipState) Enum

type GamePrivacySetting

type GamePrivacySetting int32

Destiny.DestinyGamePrivacySetting

A player can choose to restrict requests to join their Fireteam to specific states. These are the possible states a user can choose.

func (GamePrivacySetting) Enum

func (e GamePrivacySetting) Enum() string

type GameVersions

type GameVersions int32

Destiny.DestinyGameVersions

A flags enumeration/bitmask indicating the versions of the game that a given user has purchased.

func (GameVersions) Enum

func (e GameVersions) Enum() string

type GatingScope

type GatingScope int32

Destiny.DestinyGatingScope

This enumeration represents the most restrictive type of gating that is being performed by an entity. This is useful as a shortcut to avoid a lot of lookups when determining whether the gating on an Entity applies to everyone equally, or to their specific Profile or Character states. None = There is no gating on this item. Global = The gating on this item is based entirely on global game state. It will be gated the same for everyone. Clan = The gating on this item is at the Clan level. For instance, if you're gated by Clan level this will be the case. Profile = The gating includes Profile-specific checks, but not on the Profile's characters. An example of this might be when you acquire an Emblem: the Emblem will be available in your Kiosk for all characters in your Profile from that point onward. Character = The gating includes Character-specific checks, including character level restrictions. An example of this might be an item that you can't purchase from a Vendor until you reach a specific Character Level. Item = The gating includes item-specific checks. For BNet, this generally implies that we'll show this data only on a character level or deeper. AssumedWorstCase = The unlocks and checks being used for this calculation are of an unknown type and are used for unknown purposes. For instance, if some great person decided that an unlock value should be globally scoped, but then the game changes it using character-specific data in a way that BNet doesn't know about. Because of the open-ended potential for this to occur, many unlock checks for "globally" scoped unlock data may be assumed as the worst case unless it has been specifically whitelisted as otherwise. That sucks, but them's the breaks.

func (GatingScope) Enum

func (e GatingScope) Enum() string

type GearArtArrangementReference

type GearArtArrangementReference struct {
	ArtArrangementHash uint32 `json:"artArrangementHash"`

	ClassHash Hash[ClassDefinition] `json:"classHash"`
}

Destiny.Definitions.DestinyGearArtArrangementReference

func (GearArtArrangementReference) DefinitionTable

func (d GearArtArrangementReference) DefinitionTable() string

type GearAssetDataBaseDefinition

type GearAssetDataBaseDefinition struct {
	Path string `json:"path"`

	Version int32 `json:"version"`
}

Destiny.Config.GearAssetDataBaseDefinition

type Gender

type Gender int32

Destiny.DestinyGender

func (Gender) Enum

func (e Gender) Enum() string

type GenderDefinition

type GenderDefinition struct {
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// This is a quick reference enumeration for all of the currently defined Genders. We use the
	// enumeration for quicker lookups in related data, like DestinyClassDefinition.genderedClassNames.
	GenderType Gender `json:"genderType"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.DestinyGenderDefinition

Gender is a social construct, and as such we have definitions for Genders. Right now there happens to only be two, but we'll see what the future holds.

func (GenderDefinition) DefinitionTable

func (d GenderDefinition) DefinitionTable() string

type GeneralUser

type GeneralUser struct {
	About string `json:"about"`

	BlizzardDisplayName string `json:"blizzardDisplayName"`

	CachedBungieGlobalDisplayName string `json:"cachedBungieGlobalDisplayName"`

	CachedBungieGlobalDisplayNameCode Nullable[int16] `json:"cachedBungieGlobalDisplayNameCode,omitempty"`

	Context UserToUserContext `json:"context"`

	DisplayName string `json:"displayName"`

	EgsDisplayName string `json:"egsDisplayName"`

	FbDisplayName string `json:"fbDisplayName"`

	FirstAccess Nullable[Timestamp] `json:"firstAccess,omitempty"`

	IsDeleted bool `json:"isDeleted"`

	LastBanReportID Nullable[Int64] `json:"lastBanReportId,omitempty"`

	LastUpdate Nullable[Timestamp] `json:"lastUpdate,omitempty"`

	LegacyPortalUID Nullable[Int64] `json:"legacyPortalUID,omitempty"`

	Locale string `json:"locale"`

	LocaleInheritDefault bool `json:"localeInheritDefault"`

	MembershipID Int64 `json:"membershipId"`

	NormalizedName string `json:"normalizedName"`

	ProfileBanExpire Nullable[Timestamp] `json:"profileBanExpire,omitempty"`

	ProfilePicture int32 `json:"profilePicture"`

	ProfilePicturePath string `json:"profilePicturePath"`

	ProfilePictureWidePath string `json:"profilePictureWidePath"`

	ProfileTheme int32 `json:"profileTheme"`

	ProfileThemeName string `json:"profileThemeName"`

	PsnDisplayName string `json:"psnDisplayName"`

	ShowActivity Nullable[bool] `json:"showActivity,omitempty"`

	ShowGroupMessaging bool `json:"showGroupMessaging"`

	StadiaDisplayName string `json:"stadiaDisplayName"`

	StatusDate Timestamp `json:"statusDate"`

	StatusText string `json:"statusText"`

	SteamDisplayName string `json:"steamDisplayName"`

	SuccessMessageFlags Int64 `json:"successMessageFlags"`

	TwitchDisplayName string `json:"twitchDisplayName"`

	UniqueName string `json:"uniqueName"`

	UserTitle int32 `json:"userTitle"`

	UserTitleDisplay string `json:"userTitleDisplay"`

	XboxDisplayName string `json:"xboxDisplayName"`
}

User.GeneralUser

type GetAvailableLocalesRequest

type GetAvailableLocalesRequest struct {
}

GetAvailableLocalesRequest are the request parameters for operation .GetAvailableLocales

type GetCommonSettingsRequest

type GetCommonSettingsRequest struct {
}

GetCommonSettingsRequest are the request parameters for operation .GetCommonSettings

type GetCredentialTypesForAccountResponse

type GetCredentialTypesForAccountResponse struct {
	CredentialAsString string `json:"credentialAsString"`

	CredentialDisplayName string `json:"credentialDisplayName"`

	CredentialType BungieCredentialType `json:"credentialType"`

	IsPublic bool `json:"isPublic"`
}

User.Models.GetCredentialTypesForAccountResponse

type GetGlobalAlertsRequest

type GetGlobalAlertsRequest struct {

	// Determines whether Streaming Alerts are included in results
	Includestreaming bool
}

GetGlobalAlertsRequest are the request parameters for operation .GetGlobalAlerts

type GetGroupsForMemberResponse

type GetGroupsForMemberResponse struct {

	// A convenience property that indicates if every membership this user has that is a part of this group
	// are part of an account that is considered inactive - for example, overridden accounts in Cross Save.
	//
	//	The key is the Group ID for the group being checked, and the value is true if the users'
	//
	// memberships for that group are all inactive.
	AreAllMembershipsInactive map[Int64]bool `json:"areAllMembershipsInactive"`

	HasMore bool `json:"hasMore"`

	Query PagedQuery `json:"query"`

	ReplacementContinuationToken string `json:"replacementContinuationToken"`

	Results []GroupMembership `json:"results"`

	TotalResults int32 `json:"totalResults"`

	// If useTotalResults is true, then totalResults represents an accurate count.
	// If False, it does not, and may be estimated/only the size of the current page.
	// Either way, you should probably always only trust hasMore.
	// This is a long-held historical throwback to when we used to do paging with known total results.
	// Those queries toasted our database, and we were left to hastily alter our endpoints and create
	// backward- compatible shims, of which useTotalResults is one.
	UseTotalResults bool `json:"useTotalResults"`
}

GroupsV2.GetGroupsForMemberResponse

type GetUserSystemOverridesRequest

type GetUserSystemOverridesRequest struct {
}

GetUserSystemOverridesRequest are the request parameters for operation .GetUserSystemOverrides

type GlobalAlert

type GlobalAlert struct {
	AlertHtml string `json:"AlertHtml"`

	AlertKey string `json:"AlertKey"`

	AlertLevel GlobalAlertLevel `json:"AlertLevel"`

	AlertLink string `json:"AlertLink"`

	AlertTimestamp Timestamp `json:"AlertTimestamp"`

	AlertType GlobalAlertType `json:"AlertType"`

	StreamInfo StreamInfo `json:"StreamInfo"`
}

GlobalAlert

type GlobalAlertLevel

type GlobalAlertLevel int32

GlobalAlertLevel

func (GlobalAlertLevel) Enum

func (e GlobalAlertLevel) Enum() string

type GlobalAlertType

type GlobalAlertType int32

GlobalAlertType

func (GlobalAlertType) Enum

func (e GlobalAlertType) Enum() string

type GraphNodeState

type GraphNodeState int32

Destiny.DestinyGraphNodeState

Represents a potential state of an Activity Graph node.

func (GraphNodeState) Enum

func (e GraphNodeState) Enum() string

type GroupAllianceStatus

type GroupAllianceStatus int32

GroupsV2.GroupAllianceStatus

func (GroupAllianceStatus) Enum

func (e GroupAllianceStatus) Enum() string

type GroupApplicationListRequest

type GroupApplicationListRequest struct {
	Memberships []UserMembership `json:"memberships"`

	Message string `json:"message"`
}

GroupsV2.GroupApplicationListRequest

type GroupApplicationRequest

type GroupApplicationRequest struct {
	Message string `json:"message"`
}

GroupsV2.GroupApplicationRequest

type GroupApplicationResolveState

type GroupApplicationResolveState int32

GroupsV2.GroupApplicationResolveState

func (GroupApplicationResolveState) Enum

type GroupApplicationResponse

type GroupApplicationResponse struct {
	Resolution GroupApplicationResolveState `json:"resolution"`
}

GroupsV2.GroupApplicationResponse

type GroupBan

type GroupBan struct {
	BungieNetUserInfo UserInfoCard `json:"bungieNetUserInfo"`

	Comment string `json:"comment"`

	CreatedBy UserInfoCard `json:"createdBy"`

	DateBanned Timestamp `json:"dateBanned"`

	DateExpires Timestamp `json:"dateExpires"`

	DestinyUserInfo GroupUserInfoCard `json:"destinyUserInfo"`

	GroupID Int64 `json:"groupId"`

	LastModifiedBy UserInfoCard `json:"lastModifiedBy"`
}

GroupsV2.GroupBan

type GroupBanRequest

type GroupBanRequest struct {
	Comment string `json:"comment"`

	Length IgnoreLength `json:"length"`
}

GroupsV2.GroupBanRequest

type GroupDateRange

type GroupDateRange int32

GroupsV2.GroupDateRange

func (GroupDateRange) Enum

func (e GroupDateRange) Enum() string

type GroupEditAction

type GroupEditAction struct {
	About string `json:"about"`

	AllowChat Nullable[bool] `json:"allowChat,omitempty"`

	AvatarImageIndex Nullable[int32] `json:"avatarImageIndex,omitempty"`

	Callsign string `json:"callsign"`

	ChatSecurity Nullable[int32] `json:"chatSecurity,omitempty"`

	DefaultPublicity Nullable[int32] `json:"defaultPublicity,omitempty"`

	EnableInvitationMessagingForAdmins Nullable[bool] `json:"enableInvitationMessagingForAdmins,omitempty"`

	Homepage Nullable[int32] `json:"homepage,omitempty"`

	IsPublic Nullable[bool] `json:"isPublic,omitempty"`

	IsPublicTopicAdminOnly Nullable[bool] `json:"isPublicTopicAdminOnly,omitempty"`

	Locale string `json:"locale"`

	MembershipOption Nullable[int32] `json:"membershipOption,omitempty"`

	Motto string `json:"motto"`

	Name string `json:"name"`

	Tags string `json:"tags"`

	Theme string `json:"theme"`
}

GroupsV2.GroupEditAction

type GroupFeatures

type GroupFeatures struct {
	Capabilities BitmaskSet[Capabilities] `json:"capabilities"`

	// Minimum Member Level allowed to host guided games
	// Always Allowed: Founder, Acting Founder, Admin
	// Allowed Overrides: None, Member, Beginner
	// Default is Member for clans, None for groups, although this means nothing for groups.
	HostGuidedGamePermissionOverride HostGuidedGamesPermissionLevel `json:"hostGuidedGamePermissionOverride"`

	// Minimum Member Level allowed to invite new members to group
	// Always Allowed: Founder, Acting Founder
	// True means admins have this power, false means they don't
	// Default is false for clans, true for groups.
	InvitePermissionOverride bool `json:"invitePermissionOverride"`

	// Level to join a member at when accepting an invite, application, or joining an open clan
	// Default is Beginner.
	JoinLevel RuntimeGroupMemberType `json:"joinLevel"`

	MaximumMembers int32 `json:"maximumMembers"`

	// Maximum number of groups of this type a typical membership may join. For example, a user may join
	// about 50 General groups with their Bungie.net account. They may join one clan per Destiny
	// membership.
	MaximumMembershipsOfGroupType int32 `json:"maximumMembershipsOfGroupType"`

	MembershipTypes []BungieMembershipType `json:"membershipTypes"`

	// Minimum Member Level allowed to update banner
	// Always Allowed: Founder, Acting Founder
	// True means admins have this power, false means they don't
	// Default is false for clans, true for groups.
	UpdateBannerPermissionOverride bool `json:"updateBannerPermissionOverride"`

	// Minimum Member Level allowed to update group culture
	// Always Allowed: Founder, Acting Founder
	// True means admins have this power, false means they don't
	// Default is false for clans, true for groups.
	UpdateCulturePermissionOverride bool `json:"updateCulturePermissionOverride"`
}

GroupsV2.GroupFeatures

type GroupHomepage

type GroupHomepage int32

GroupsV2.GroupHomepage

func (GroupHomepage) Enum

func (e GroupHomepage) Enum() string

type GroupMember

type GroupMember struct {
	BungieNetUserInfo UserInfoCard `json:"bungieNetUserInfo"`

	DestinyUserInfo GroupUserInfoCard `json:"destinyUserInfo"`

	GroupID Int64 `json:"groupId"`

	IsOnline bool `json:"isOnline"`

	JoinDate Timestamp `json:"joinDate"`

	LastOnlineStatusChange Int64 `json:"lastOnlineStatusChange"`

	MemberType RuntimeGroupMemberType `json:"memberType"`
}

GroupsV2.GroupMember

type GroupMemberApplication

type GroupMemberApplication struct {
	BungieNetUserInfo UserInfoCard `json:"bungieNetUserInfo"`

	CreationDate Timestamp `json:"creationDate"`

	DestinyUserInfo GroupUserInfoCard `json:"destinyUserInfo"`

	GroupID Int64 `json:"groupId"`

	RequestMessage string `json:"requestMessage"`

	ResolveDate Nullable[Timestamp] `json:"resolveDate,omitempty"`

	ResolveMessage string `json:"resolveMessage"`

	ResolveState GroupApplicationResolveState `json:"resolveState"`

	ResolvedByMembershipID Nullable[Int64] `json:"resolvedByMembershipId,omitempty"`
}

GroupsV2.GroupMemberApplication

type GroupMemberCountFilter

type GroupMemberCountFilter int32

GroupsV2.GroupMemberCountFilter

func (GroupMemberCountFilter) Enum

func (e GroupMemberCountFilter) Enum() string

type GroupMemberLeaveResult

type GroupMemberLeaveResult struct {
	Group GroupV2 `json:"group"`

	GroupDeleted bool `json:"groupDeleted"`
}

GroupsV2.GroupMemberLeaveResult

type GroupMembership

type GroupMembership struct {
	Group GroupV2 `json:"group"`

	Member GroupMember `json:"member"`
}

GroupsV2.GroupMembership

type GroupMembershipBase

type GroupMembershipBase struct {
	Group GroupV2 `json:"group"`
}

GroupsV2.GroupMembershipBase

type GroupMembershipSearchResponse

type GroupMembershipSearchResponse struct {
	HasMore bool `json:"hasMore"`

	Query PagedQuery `json:"query"`

	ReplacementContinuationToken string `json:"replacementContinuationToken"`

	Results []GroupMembership `json:"results"`

	TotalResults int32 `json:"totalResults"`

	// If useTotalResults is true, then totalResults represents an accurate count.
	// If False, it does not, and may be estimated/only the size of the current page.
	// Either way, you should probably always only trust hasMore.
	// This is a long-held historical throwback to when we used to do paging with known total results.
	// Those queries toasted our database, and we were left to hastily alter our endpoints and create
	// backward- compatible shims, of which useTotalResults is one.
	UseTotalResults bool `json:"useTotalResults"`
}

GroupsV2.GroupMembershipSearchResponse

type GroupNameSearchRequest

type GroupNameSearchRequest struct {
	GroupName string `json:"groupName"`

	GroupType GroupType `json:"groupType"`
}

GroupsV2.GroupNameSearchRequest

type GroupOptionalConversation

type GroupOptionalConversation struct {
	ChatEnabled bool `json:"chatEnabled"`

	ChatName string `json:"chatName"`

	ChatSecurity ChatSecuritySetting `json:"chatSecurity"`

	ConversationID Int64 `json:"conversationId"`

	GroupID Int64 `json:"groupId"`
}

GroupsV2.GroupOptionalConversation

type GroupOptionalConversationAddRequest

type GroupOptionalConversationAddRequest struct {
	ChatName string `json:"chatName"`

	ChatSecurity ChatSecuritySetting `json:"chatSecurity"`
}

GroupsV2.GroupOptionalConversationAddRequest

type GroupOptionalConversationEditRequest

type GroupOptionalConversationEditRequest struct {
	ChatEnabled Nullable[bool] `json:"chatEnabled,omitempty"`

	ChatName string `json:"chatName"`

	ChatSecurity Nullable[int32] `json:"chatSecurity,omitempty"`
}

GroupsV2.GroupOptionalConversationEditRequest

type GroupOptionsEditAction

type GroupOptionsEditAction struct {

	// Minimum Member Level allowed to host guided games
	// Always Allowed: Founder, Acting Founder, Admin
	// Allowed Overrides: None, Member, Beginner
	// Default is Member for clans, None for groups, although this means nothing for groups.
	HostGuidedGamePermissionOverride Nullable[int32] `json:"HostGuidedGamePermissionOverride,omitempty"`

	// Minimum Member Level allowed to invite new members to group
	// Always Allowed: Founder, Acting Founder
	// True means admins have this power, false means they don't
	// Default is false for clans, true for groups.
	InvitePermissionOverride Nullable[bool] `json:"InvitePermissionOverride,omitempty"`

	// Level to join a member at when accepting an invite, application, or joining an open clan
	// Default is Beginner.
	JoinLevel Nullable[int32] `json:"JoinLevel,omitempty"`

	// Minimum Member Level allowed to update banner
	// Always Allowed: Founder, Acting Founder
	// True means admins have this power, false means they don't
	// Default is false for clans, true for groups.
	UpdateBannerPermissionOverride Nullable[bool] `json:"UpdateBannerPermissionOverride,omitempty"`

	// Minimum Member Level allowed to update group culture
	// Always Allowed: Founder, Acting Founder
	// True means admins have this power, false means they don't
	// Default is false for clans, true for groups.
	UpdateCulturePermissionOverride Nullable[bool] `json:"UpdateCulturePermissionOverride,omitempty"`
}

GroupsV2.GroupOptionsEditAction

type GroupPostPublicity

type GroupPostPublicity int32

GroupsV2.GroupPostPublicity

func (GroupPostPublicity) Enum

func (e GroupPostPublicity) Enum() string

type GroupPotentialMember

type GroupPotentialMember struct {
	BungieNetUserInfo UserInfoCard `json:"bungieNetUserInfo"`

	DestinyUserInfo GroupUserInfoCard `json:"destinyUserInfo"`

	GroupID Int64 `json:"groupId"`

	JoinDate Timestamp `json:"joinDate"`

	PotentialStatus GroupPotentialMemberStatus `json:"potentialStatus"`
}

GroupsV2.GroupPotentialMember

type GroupPotentialMemberStatus

type GroupPotentialMemberStatus int32

GroupsV2.GroupPotentialMemberStatus

func (GroupPotentialMemberStatus) Enum

type GroupPotentialMembership

type GroupPotentialMembership struct {
	Group GroupV2 `json:"group"`

	Member GroupPotentialMember `json:"member"`
}

GroupsV2.GroupPotentialMembership

type GroupPotentialMembershipSearchResponse

type GroupPotentialMembershipSearchResponse struct {
	HasMore bool `json:"hasMore"`

	Query PagedQuery `json:"query"`

	ReplacementContinuationToken string `json:"replacementContinuationToken"`

	Results []GroupPotentialMembership `json:"results"`

	TotalResults int32 `json:"totalResults"`

	// If useTotalResults is true, then totalResults represents an accurate count.
	// If False, it does not, and may be estimated/only the size of the current page.
	// Either way, you should probably always only trust hasMore.
	// This is a long-held historical throwback to when we used to do paging with known total results.
	// Those queries toasted our database, and we were left to hastily alter our endpoints and create
	// backward- compatible shims, of which useTotalResults is one.
	UseTotalResults bool `json:"useTotalResults"`
}

GroupsV2.GroupPotentialMembershipSearchResponse

type GroupQuery

type GroupQuery struct {
	CreationDate GroupDateRange `json:"creationDate"`

	CurrentPage int32 `json:"currentPage"`

	GroupMemberCountFilter Nullable[int32] `json:"groupMemberCountFilter,omitempty"`

	GroupType GroupType `json:"groupType"`

	ItemsPerPage int32 `json:"itemsPerPage"`

	LocaleFilter string `json:"localeFilter"`

	Name string `json:"name"`

	RequestContinuationToken string `json:"requestContinuationToken"`

	SortBy GroupSortBy `json:"sortBy"`

	TagText string `json:"tagText"`
}

GroupsV2.GroupQuery

NOTE: GroupQuery, as of Destiny 2, has essentially two totally different and incompatible "modes". If you are querying for a group, you can pass any of the properties below. If you are querying for a Clan, you MUST NOT pass any of the following properties (they must be null or undefined in your request, not just empty string/default values): - groupMemberCountFilter - localeFilter - tagText If you pass these, you will get a useless InvalidParameters error.

type GroupResponse

type GroupResponse struct {
	AllianceStatus GroupAllianceStatus `json:"allianceStatus"`

	AlliedIds []Int64 `json:"alliedIds"`

	// This property will be populated if the authenticated user is a member of the group. Note that
	// because of account linking, a user can sometimes be part of a clan more than once. As such, this
	// returns the highest member type available.
	CurrentUserMemberMap map[string]GroupMember `json:"currentUserMemberMap"`

	// A convenience property that indicates if every membership you (the current user) have that is a part
	// of this group are part of an account that is considered inactive - for example, overridden accounts
	// in Cross Save.
	CurrentUserMembershipsInactiveForDestiny bool `json:"currentUserMembershipsInactiveForDestiny"`

	// This property will be populated if the authenticated user is an applicant or has an outstanding
	// invitation to join. Note that because of account linking, a user can sometimes be part of a clan
	// more than once.
	CurrentUserPotentialMemberMap map[string]GroupPotentialMember `json:"currentUserPotentialMemberMap"`

	Detail GroupV2 `json:"detail"`

	Founder GroupMember `json:"founder"`

	GroupJoinInviteCount int32 `json:"groupJoinInviteCount"`

	ParentGroup GroupV2 `json:"parentGroup"`
}

GroupsV2.GroupResponse

type GroupSearchResponse

type GroupSearchResponse struct {
	HasMore bool `json:"hasMore"`

	Query PagedQuery `json:"query"`

	ReplacementContinuationToken string `json:"replacementContinuationToken"`

	Results []GroupV2Card `json:"results"`

	TotalResults int32 `json:"totalResults"`

	// If useTotalResults is true, then totalResults represents an accurate count.
	// If False, it does not, and may be estimated/only the size of the current page.
	// Either way, you should probably always only trust hasMore.
	// This is a long-held historical throwback to when we used to do paging with known total results.
	// Those queries toasted our database, and we were left to hastily alter our endpoints and create
	// backward- compatible shims, of which useTotalResults is one.
	UseTotalResults bool `json:"useTotalResults"`
}

GroupsV2.GroupSearchResponse

type GroupSortBy

type GroupSortBy int32

GroupsV2.GroupSortBy

func (GroupSortBy) Enum

func (e GroupSortBy) Enum() string

type GroupTheme

type GroupTheme struct {
	Description string `json:"description"`

	Folder string `json:"folder"`

	Name string `json:"name"`
}
{
  "type": "object"
}

Config.GroupTheme

type GroupType

type GroupType int32

GroupsV2.GroupType

func (GroupType) Enum

func (e GroupType) Enum() string

type GroupUserBase

type GroupUserBase struct {
	BungieNetUserInfo UserInfoCard `json:"bungieNetUserInfo"`

	DestinyUserInfo GroupUserInfoCard `json:"destinyUserInfo"`

	GroupID Int64 `json:"groupId"`

	JoinDate Timestamp `json:"joinDate"`
}

GroupsV2.GroupUserBase

type GroupUserInfoCard

type GroupUserInfoCard struct {

	// This will be the display name the clan server last saw the user as. If the account is an active
	// cross save override, this will be the display name to use. Otherwise, this will match the
	// displayName property.
	LastSeenDisplayName string `json:"LastSeenDisplayName"`

	// The platform of the LastSeenDisplayName
	LastSeenDisplayNameType BungieMembershipType `json:"LastSeenDisplayNameType"`

	// 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
	ApplicableMembershipTypes []BungieMembershipType `json:"applicableMembershipTypes"`

	// The bungie global display name, if set.
	BungieGlobalDisplayName string `json:"bungieGlobalDisplayName"`

	// The bungie global display name code, if set.
	BungieGlobalDisplayNameCode Nullable[int16] `json:"bungieGlobalDisplayNameCode,omitempty"`

	// If there is a cross save override in effect, this value will tell you the type that is overridding
	// this one.
	CrossSaveOverride BungieMembershipType `json:"crossSaveOverride"`

	// 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.
	DisplayName string `json:"displayName"`

	// URL the Icon if available.
	IconPath string `json:"iconPath"`

	// If True, this is a public user membership.
	IsPublic bool `json:"isPublic"`

	// Membership ID as they user is known in the Accounts service
	MembershipID Int64 `json:"membershipId"`

	// Type of the membership. Not necessarily the native type.
	MembershipType BungieMembershipType `json:"membershipType"`

	// A platform specific additional display name - ex: psn Real Name, bnet Unique Name, etc.
	SupplementalDisplayName string `json:"supplementalDisplayName"`
}

GroupsV2.GroupUserInfoCard

type GroupV2

type GroupV2 struct {
	About string `json:"about"`

	AllowChat bool `json:"allowChat"`

	AvatarImageIndex int32 `json:"avatarImageIndex"`

	AvatarPath string `json:"avatarPath"`

	BanExpireDate Nullable[Timestamp] `json:"banExpireDate,omitempty"`

	BannerPath string `json:"bannerPath"`

	ChatSecurity ChatSecuritySetting `json:"chatSecurity"`

	ClanInfo GroupV2ClanInfoAndInvestment `json:"clanInfo"`

	ConversationID Int64 `json:"conversationId"`

	CreationDate Timestamp `json:"creationDate"`

	DefaultPublicity GroupPostPublicity `json:"defaultPublicity"`

	EnableInvitationMessagingForAdmins bool `json:"enableInvitationMessagingForAdmins"`

	Features GroupFeatures `json:"features"`

	GroupID Int64 `json:"groupId"`

	GroupType GroupType `json:"groupType"`

	Homepage GroupHomepage `json:"homepage"`

	IsDefaultPostPublic bool `json:"isDefaultPostPublic"`

	IsPublic bool `json:"isPublic"`

	IsPublicTopicAdminOnly bool `json:"isPublicTopicAdminOnly"`

	Locale string `json:"locale"`

	MemberCount int32 `json:"memberCount"`

	MembershipIdCreated Int64 `json:"membershipIdCreated"`

	MembershipOption MembershipOption `json:"membershipOption"`

	ModificationDate Timestamp `json:"modificationDate"`

	Motto string `json:"motto"`

	Name string `json:"name"`

	Tags []string `json:"tags"`

	Theme string `json:"theme"`
}

GroupsV2.GroupV2

type GroupV2AbdicateFoundershipRequest

type GroupV2AbdicateFoundershipRequest struct {

	// The new founder for this group. Must already be a group admin.
	// Required.
	FounderIdNew Int64

	// The target group id.
	// Required.
	GroupID Int64

	// Membership type of the provided founderIdNew.
	// Required.
	MembershipType BungieMembershipType
}

GroupV2AbdicateFoundershipRequest are the request parameters for operation GroupV2.AbdicateFoundership

type GroupV2AddOptionalConversationRequest

type GroupV2AddOptionalConversationRequest struct {

	// Group ID of the group to edit.
	// Required.
	GroupID Int64

	// Required.
	Body GroupOptionalConversationAddRequest
}

GroupV2AddOptionalConversationRequest are the request parameters for operation GroupV2.AddOptionalConversation

type GroupV2ApproveAllPendingRequest

type GroupV2ApproveAllPendingRequest struct {

	// ID of the group.
	// Required.
	GroupID Int64

	// Required.
	Body GroupApplicationRequest
}

GroupV2ApproveAllPendingRequest are the request parameters for operation GroupV2.ApproveAllPending

type GroupV2ApprovePendingForListRequest

type GroupV2ApprovePendingForListRequest struct {

	// ID of the group.
	// Required.
	GroupID Int64

	// Required.
	Body GroupApplicationListRequest
}

GroupV2ApprovePendingForListRequest are the request parameters for operation GroupV2.ApprovePendingForList

type GroupV2ApprovePendingRequest

type GroupV2ApprovePendingRequest struct {

	// ID of the group.
	// Required.
	GroupID Int64

	// The membership id being approved.
	// Required.
	MembershipID Int64

	// Membership type of the supplied membership ID.
	// Required.
	MembershipType BungieMembershipType

	// Required.
	Body GroupApplicationRequest
}

GroupV2ApprovePendingRequest are the request parameters for operation GroupV2.ApprovePending

type GroupV2BanMemberRequest

type GroupV2BanMemberRequest struct {

	// Group ID that has the member to ban.
	// Required.
	GroupID Int64

	// Membership ID of the member to ban from the group.
	// Required.
	MembershipID Int64

	// Membership type of the provided membership ID.
	// Required.
	MembershipType BungieMembershipType

	// Required.
	Body GroupBanRequest
}

GroupV2BanMemberRequest are the request parameters for operation GroupV2.BanMember

type GroupV2Card

type GroupV2Card struct {
	About string `json:"about"`

	AvatarPath string `json:"avatarPath"`

	Capabilities BitmaskSet[Capabilities] `json:"capabilities"`

	ClanInfo GroupV2ClanInfo `json:"clanInfo"`

	CreationDate Timestamp `json:"creationDate"`

	GroupID Int64 `json:"groupId"`

	GroupType GroupType `json:"groupType"`

	Locale string `json:"locale"`

	MemberCount int32 `json:"memberCount"`

	MembershipOption MembershipOption `json:"membershipOption"`

	Motto string `json:"motto"`

	Name string `json:"name"`

	Theme string `json:"theme"`
}

GroupsV2.GroupV2Card

A small infocard of group information, usually used for when a list of groups are returned

type GroupV2ClanInfo

type GroupV2ClanInfo struct {
	ClanBannerData ClanBanner `json:"clanBannerData"`

	ClanCallsign string `json:"clanCallsign"`
}

GroupsV2.GroupV2ClanInfo

This contract contains clan-specific group information. It does not include any investment data.

type GroupV2ClanInfoAndInvestment

type GroupV2ClanInfoAndInvestment struct {
	ClanBannerData ClanBanner `json:"clanBannerData"`

	ClanCallsign string `json:"clanCallsign"`

	D2ClanProgressions map[uint32]Progression `json:"d2ClanProgressions"`
}

GroupsV2.GroupV2ClanInfoAndInvestment

The same as GroupV2ClanInfo, but includes any investment data.

type GroupV2DenyAllPendingRequest

type GroupV2DenyAllPendingRequest struct {

	// ID of the group.
	// Required.
	GroupID Int64

	// Required.
	Body GroupApplicationRequest
}

GroupV2DenyAllPendingRequest are the request parameters for operation GroupV2.DenyAllPending

type GroupV2DenyPendingForListRequest

type GroupV2DenyPendingForListRequest struct {

	// ID of the group.
	// Required.
	GroupID Int64

	// Required.
	Body GroupApplicationListRequest
}

GroupV2DenyPendingForListRequest are the request parameters for operation GroupV2.DenyPendingForList

type GroupV2EditClanBannerRequest

type GroupV2EditClanBannerRequest struct {

	// Group ID of the group to edit.
	// Required.
	GroupID Int64

	// Required.
	Body ClanBanner
}

GroupV2EditClanBannerRequest are the request parameters for operation GroupV2.EditClanBanner

type GroupV2EditFounderOptionsRequest

type GroupV2EditFounderOptionsRequest struct {

	// Group ID of the group to edit.
	// Required.
	GroupID Int64

	// Required.
	Body GroupOptionsEditAction
}

GroupV2EditFounderOptionsRequest are the request parameters for operation GroupV2.EditFounderOptions

type GroupV2EditGroupMembershipRequest

type GroupV2EditGroupMembershipRequest struct {

	// ID of the group to which the member belongs.
	// Required.
	GroupID Int64

	// Membership ID to modify.
	// Required.
	MembershipID Int64

	// Membership type of the provide membership ID.
	// Required.
	MembershipType BungieMembershipType

	// New membertype for the specified member.
	// Required.
	MemberType RuntimeGroupMemberType
}

GroupV2EditGroupMembershipRequest are the request parameters for operation GroupV2.EditGroupMembership

type GroupV2EditGroupRequest

type GroupV2EditGroupRequest struct {

	// Group ID of the group to edit.
	// Required.
	GroupID Int64

	// Required.
	Body GroupEditAction
}

GroupV2EditGroupRequest are the request parameters for operation GroupV2.EditGroup

type GroupV2EditOptionalConversationRequest

type GroupV2EditOptionalConversationRequest struct {

	// Conversation Id of the channel being edited.
	// Required.
	ConversationID Int64

	// Group ID of the group to edit.
	// Required.
	GroupID Int64

	// Required.
	Body GroupOptionalConversationEditRequest
}

GroupV2EditOptionalConversationRequest are the request parameters for operation GroupV2.EditOptionalConversation

type GroupV2GetAdminsAndFounderOfGroupRequest

type GroupV2GetAdminsAndFounderOfGroupRequest struct {

	// Page number (starting with 1). Each page has a fixed size of 50 items per page.
	// Required.
	Currentpage int32

	// The ID of the group.
	// Required.
	GroupID Int64
}

GroupV2GetAdminsAndFounderOfGroupRequest are the request parameters for operation GroupV2.GetAdminsAndFounderOfGroup

type GroupV2GetAvailableAvatarsRequest

type GroupV2GetAvailableAvatarsRequest struct {
}

GroupV2GetAvailableAvatarsRequest are the request parameters for operation GroupV2.GetAvailableAvatars

type GroupV2GetAvailableThemesRequest

type GroupV2GetAvailableThemesRequest struct {
}

GroupV2GetAvailableThemesRequest are the request parameters for operation GroupV2.GetAvailableThemes

type GroupV2GetBannedMembersOfGroupRequest

type GroupV2GetBannedMembersOfGroupRequest struct {

	// Page number (starting with 1). Each page has a fixed size of 50 entries.
	// Required.
	Currentpage int32

	// Group ID whose banned members you are fetching
	// Required.
	GroupID Int64
}

GroupV2GetBannedMembersOfGroupRequest are the request parameters for operation GroupV2.GetBannedMembersOfGroup

type GroupV2GetGroupByNameRequest

type GroupV2GetGroupByNameRequest struct {

	// Exact name of the group to find.
	// Required.
	GroupName string

	// Type of group to find.
	// Required.
	GroupType GroupType
}

GroupV2GetGroupByNameRequest are the request parameters for operation GroupV2.GetGroupByName

type GroupV2GetGroupByNameV2Request

type GroupV2GetGroupByNameV2Request struct {

	// Required.
	Body GroupNameSearchRequest
}

GroupV2GetGroupByNameV2Request are the request parameters for operation GroupV2.GetGroupByNameV2

type GroupV2GetGroupOptionalConversationsRequest

type GroupV2GetGroupOptionalConversationsRequest struct {

	// Requested group's id.
	// Required.
	GroupID Int64
}

GroupV2GetGroupOptionalConversationsRequest are the request parameters for operation GroupV2.GetGroupOptionalConversations

type GroupV2GetGroupRequest

type GroupV2GetGroupRequest struct {

	// Requested group's id.
	// Required.
	GroupID Int64
}

GroupV2GetGroupRequest are the request parameters for operation GroupV2.GetGroup

type GroupV2GetGroupsForMemberRequest

type GroupV2GetGroupsForMemberRequest struct {

	// Filter apply to list of joined groups.
	// Required.
	Filter GroupsForMemberFilter

	// Type of group the supplied member founded.
	// Required.
	GroupType GroupType

	// Membership ID to for which to find founded groups.
	// Required.
	MembershipID Int64

	// Membership type of the supplied membership ID.
	// Required.
	MembershipType BungieMembershipType
}

GroupV2GetGroupsForMemberRequest are the request parameters for operation GroupV2.GetGroupsForMember

type GroupV2GetInvitedIndividualsRequest

type GroupV2GetInvitedIndividualsRequest struct {

	// Page number (starting with 1). Each page has a fixed size of 50 items per page.
	// Required.
	Currentpage int32

	// ID of the group.
	// Required.
	GroupID Int64
}

GroupV2GetInvitedIndividualsRequest are the request parameters for operation GroupV2.GetInvitedIndividuals

type GroupV2GetMembersOfGroupRequest

type GroupV2GetMembersOfGroupRequest struct {

	// Page number (starting with 1). Each page has a fixed size of 50 items per page.
	// Required.
	Currentpage int32

	// The ID of the group.
	// Required.
	GroupID Int64

	// Filter out other member types. Use None for all members.
	MemberType RuntimeGroupMemberType

	// The name fragment upon which a search should be executed for members with matching display or unique
	// names.
	NameSearch string
}

GroupV2GetMembersOfGroupRequest are the request parameters for operation GroupV2.GetMembersOfGroup

type GroupV2GetPendingMembershipsRequest

type GroupV2GetPendingMembershipsRequest struct {

	// Page number (starting with 1). Each page has a fixed size of 50 items per page.
	// Required.
	Currentpage int32

	// ID of the group.
	// Required.
	GroupID Int64
}

GroupV2GetPendingMembershipsRequest are the request parameters for operation GroupV2.GetPendingMemberships

type GroupV2GetPotentialGroupsForMemberRequest

type GroupV2GetPotentialGroupsForMemberRequest struct {

	// Filter apply to list of potential joined groups.
	// Required.
	Filter GroupPotentialMemberStatus

	// Type of group the supplied member applied.
	// Required.
	GroupType GroupType

	// Membership ID to for which to find applied groups.
	// Required.
	MembershipID Int64

	// Membership type of the supplied membership ID.
	// Required.
	MembershipType BungieMembershipType
}

GroupV2GetPotentialGroupsForMemberRequest are the request parameters for operation GroupV2.GetPotentialGroupsForMember

type GroupV2GetRecommendedGroupsRequest

type GroupV2GetRecommendedGroupsRequest struct {

	// Requested range in which to pull recommended groups
	// Required.
	CreateDateRange GroupDateRange

	// Type of groups requested
	// Required.
	GroupType GroupType
}

GroupV2GetRecommendedGroupsRequest are the request parameters for operation GroupV2.GetRecommendedGroups

type GroupV2GetUserClanInviteSettingRequest

type GroupV2GetUserClanInviteSettingRequest struct {

	// The Destiny membership type of the account we wish to access settings.
	// Required.
	MType BungieMembershipType
}

GroupV2GetUserClanInviteSettingRequest are the request parameters for operation GroupV2.GetUserClanInviteSetting

type GroupV2GroupSearchRequest

type GroupV2GroupSearchRequest struct {

	// Required.
	Body GroupQuery
}

GroupV2GroupSearchRequest are the request parameters for operation GroupV2.GroupSearch

type GroupV2IndividualGroupInviteCancelRequest

type GroupV2IndividualGroupInviteCancelRequest struct {

	// ID of the group you would like to join.
	// Required.
	GroupID Int64

	// Membership id of the account being cancelled.
	// Required.
	MembershipID Int64

	// MembershipType of the account being cancelled.
	// Required.
	MembershipType BungieMembershipType
}

GroupV2IndividualGroupInviteCancelRequest are the request parameters for operation GroupV2.IndividualGroupInviteCancel

type GroupV2IndividualGroupInviteRequest

type GroupV2IndividualGroupInviteRequest struct {

	// ID of the group you would like to join.
	// Required.
	GroupID Int64

	// Membership id of the account being invited.
	// Required.
	MembershipID Int64

	// MembershipType of the account being invited.
	// Required.
	MembershipType BungieMembershipType

	// Required.
	Body GroupApplicationRequest
}

GroupV2IndividualGroupInviteRequest are the request parameters for operation GroupV2.IndividualGroupInvite

type GroupV2KickMemberRequest

type GroupV2KickMemberRequest struct {

	// Group ID to kick the user from.
	// Required.
	GroupID Int64

	// Membership ID to kick.
	// Required.
	MembershipID Int64

	// Membership type of the provided membership ID.
	// Required.
	MembershipType BungieMembershipType
}

GroupV2KickMemberRequest are the request parameters for operation GroupV2.KickMember

type GroupV2RecoverGroupForFounderRequest

type GroupV2RecoverGroupForFounderRequest struct {

	// Type of group the supplied member founded.
	// Required.
	GroupType GroupType

	// Membership ID to for which to find founded groups.
	// Required.
	MembershipID Int64

	// Membership type of the supplied membership ID.
	// Required.
	MembershipType BungieMembershipType
}

GroupV2RecoverGroupForFounderRequest are the request parameters for operation GroupV2.RecoverGroupForFounder

type GroupV2UnbanMemberRequest

type GroupV2UnbanMemberRequest struct {

	// Required.
	GroupID Int64

	// Membership ID of the member to unban from the group
	// Required.
	MembershipID Int64

	// Membership type of the provided membership ID.
	// Required.
	MembershipType BungieMembershipType
}

GroupV2UnbanMemberRequest are the request parameters for operation GroupV2.UnbanMember

type GroupsForMemberFilter

type GroupsForMemberFilter int32

GroupsV2.GroupsForMemberFilter

func (GroupsForMemberFilter) Enum

func (e GroupsForMemberFilter) Enum() string

type GuardianRankConstantsDefinition

type GuardianRankConstantsDefinition struct {
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	IconBackgrounds GuardianRankIconBackgroundsDefinition `json:"iconBackgrounds"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	RankCount int32 `json:"rankCount"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	RootNodeHash Hash[PresentationNodeDefinition] `json:"rootNodeHash"`
}

Destiny.Definitions.GuardianRanks.DestinyGuardianRankConstantsDefinition

func (GuardianRankConstantsDefinition) DefinitionTable

func (d GuardianRankConstantsDefinition) DefinitionTable() string

type GuardianRankDefinition

type GuardianRankDefinition struct {
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	ForegroundImagePath string `json:"foregroundImagePath"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	OverlayImagePath string `json:"overlayImagePath"`

	OverlayMaskImagePath string `json:"overlayMaskImagePath"`

	PresentationNodeHash Hash[PresentationNodeDefinition] `json:"presentationNodeHash"`

	RankNumber int32 `json:"rankNumber"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.GuardianRanks.DestinyGuardianRankDefinition

func (GuardianRankDefinition) DefinitionTable

func (d GuardianRankDefinition) DefinitionTable() string

type GuardianRankIconBackgroundsDefinition

type GuardianRankIconBackgroundsDefinition struct {
	BackgroundEmptyBlueGradientBorderedImagePath string `json:"backgroundEmptyBlueGradientBorderedImagePath"`

	BackgroundEmptyBorderedImagePath string `json:"backgroundEmptyBorderedImagePath"`

	BackgroundFilledBlueBorderedImagePath string `json:"backgroundFilledBlueBorderedImagePath"`

	BackgroundFilledBlueGradientBorderedImagePath string `json:"backgroundFilledBlueGradientBorderedImagePath"`

	BackgroundFilledBlueLowAlphaImagePath string `json:"backgroundFilledBlueLowAlphaImagePath"`

	BackgroundFilledBlueMediumAlphaImagePath string `json:"backgroundFilledBlueMediumAlphaImagePath"`

	BackgroundFilledGrayHeavyAlphaBorderedImagePath string `json:"backgroundFilledGrayHeavyAlphaBorderedImagePath"`

	BackgroundFilledGrayMediumAlphaBorderedImagePath string `json:"backgroundFilledGrayMediumAlphaBorderedImagePath"`

	BackgroundFilledWhiteImagePath string `json:"backgroundFilledWhiteImagePath"`

	BackgroundFilledWhiteMediumAlphaImagePath string `json:"backgroundFilledWhiteMediumAlphaImagePath"`

	BackgroundPlateBlackAlphaImagePath string `json:"backgroundPlateBlackAlphaImagePath"`

	BackgroundPlateBlackImagePath string `json:"backgroundPlateBlackImagePath"`

	BackgroundPlateWhiteImagePath string `json:"backgroundPlateWhiteImagePath"`
}

Destiny.Definitions.GuardianRanks.DestinyGuardianRankIconBackgroundsDefinition

func (GuardianRankIconBackgroundsDefinition) DefinitionTable

func (d GuardianRankIconBackgroundsDefinition) DefinitionTable() string

type HardLinkedUserMembership

type HardLinkedUserMembership struct {
	CrossSaveOverriddenMembershipID Nullable[Int64] `json:"CrossSaveOverriddenMembershipId,omitempty"`

	CrossSaveOverriddenType BungieMembershipType `json:"CrossSaveOverriddenType"`

	MembershipID Int64 `json:"membershipId"`

	MembershipType BungieMembershipType `json:"membershipType"`
}

User.HardLinkedUserMembership

type Hash

type Hash[T defTable] uint32

func (Hash[T]) Fetch

func (h Hash[T]) Fetch(api *API) (*T, error)

func (Hash[T]) Get

func (h Hash[T]) Get(fetcher func(Hash[T]) (*T, error)) (*T, error)

type HistoricalStatsAccountResult

type HistoricalStatsAccountResult struct {
	Characters []HistoricalStatsPerCharacter `json:"characters"`

	MergedAllCharacters HistoricalStatsWithMerged `json:"mergedAllCharacters"`

	MergedDeletedCharacters HistoricalStatsWithMerged `json:"mergedDeletedCharacters"`
}

Destiny.HistoricalStats.DestinyHistoricalStatsAccountResult

type HistoricalStatsActivity

type HistoricalStatsActivity struct {

	// The unique hash identifier of the DestinyActivityDefinition that was played.
	DirectorActivityHash Hash[ActivityDefinition] `json:"directorActivityHash"`

	// The unique identifier for this *specific* match that was played.
	// This value can be used to get additional data about this activity such as who else was playing via
	// the GetPostGameCarnageReport endpoint.
	InstanceID Int64 `json:"instanceId"`

	// Whether or not the match was a private match.
	IsPrivate bool `json:"isPrivate"`

	// The Membership Type indicating the platform on which this match was played.
	MembershipType BungieMembershipType `json:"membershipType"`

	// Indicates the most specific game mode of the activity that we could find.
	Mode ActivityModeType `json:"mode"`

	// The list of all Activity Modes to which this activity applies, including aggregates. This will let
	// you see, for example, whether the activity was both Clash and part of the Trials of the Nine event.
	Modes []ActivityModeType `json:"modes"`

	// The unique hash identifier of the DestinyActivityDefinition that was played. If I had this to do
	// over, it'd be named activityHash. Too late now.
	ReferenceID Hash[ActivityDefinition] `json:"referenceId"`
}

Destiny.HistoricalStats.DestinyHistoricalStatsActivity

Summary information about the activity that was played.

type HistoricalStatsByPeriod

type HistoricalStatsByPeriod struct {
	AllTime map[string]HistoricalStatsValue `json:"allTime"`

	AllTimeTier1 map[string]HistoricalStatsValue `json:"allTimeTier1"`

	AllTimeTier2 map[string]HistoricalStatsValue `json:"allTimeTier2"`

	AllTimeTier3 map[string]HistoricalStatsValue `json:"allTimeTier3"`

	Daily []HistoricalStatsPeriodGroup `json:"daily"`

	Monthly []HistoricalStatsPeriodGroup `json:"monthly"`
}

Destiny.HistoricalStats.DestinyHistoricalStatsByPeriod

type HistoricalStatsDefinition

type HistoricalStatsDefinition struct {

	// Category for the stat.
	Category StatsCategoryType `json:"category"`

	// Statistic group
	Group StatsGroupType `json:"group"`

	// Optional URI to an icon for the statistic
	IconImage string `json:"iconImage"`

	// The tier associated with this medal - be it implicitly or explicitly.
	MedalTierHash Nullable[Hash[MedalTierDefinition]] `json:"medalTierHash,omitempty"`

	// Optional icon for the statistic
	MergeMethod Nullable[int32] `json:"mergeMethod,omitempty"`

	// Game modes where this statistic can be reported.
	Modes []ActivityModeType `json:"modes"`

	// Time periods the statistic covers
	PeriodTypes []PeriodType `json:"periodTypes"`

	// Description of a stat if applicable.
	StatDescription string `json:"statDescription"`

	// Unique programmer friendly ID for this stat
	StatID string `json:"statId"`

	// Display name
	StatName string `json:"statName"`

	// Display name abbreviated
	StatNameAbbr string `json:"statNameAbbr"`

	// Localized Unit Name for the stat.
	UnitLabel string `json:"unitLabel"`

	// Unit, if any, for the statistic
	UnitType UnitType `json:"unitType"`

	// Weight assigned to this stat indicating its relative impressiveness.
	Weight int32 `json:"weight"`
}

Destiny.HistoricalStats.Definitions.DestinyHistoricalStatsDefinition

type HistoricalStatsPerCharacter

type HistoricalStatsPerCharacter struct {
	CharacterID Int64 `json:"characterId"`

	Deleted bool `json:"deleted"`

	Merged HistoricalStatsByPeriod `json:"merged"`

	Results map[string]HistoricalStatsByPeriod `json:"results"`
}

Destiny.HistoricalStats.DestinyHistoricalStatsPerCharacter

type HistoricalStatsPeriodGroup

type HistoricalStatsPeriodGroup struct {

	// If the period group is for a specific activity, this property will be set.
	ActivityDetails HistoricalStatsActivity `json:"activityDetails"`

	// Period for the group. If the stat periodType is day, then this will have a specific day. If the type
	// is monthly, then this value will be the first day of the applicable month. This value is not set
	// when the periodType is 'all time'.
	Period Timestamp `json:"period"`

	// Collection of stats for the period.
	Values map[string]HistoricalStatsValue `json:"values"`
}

Destiny.HistoricalStats.DestinyHistoricalStatsPeriodGroup

type HistoricalStatsResults

type HistoricalStatsResults map[string]any

Destiny.HistoricalStats.DestinyHistoricalStatsResults

type HistoricalStatsValue

type HistoricalStatsValue struct {

	// When a stat represents the best, most, longest, fastest or some other personal best, the actual
	// activity ID where that personal best was established is available on this property.
	ActivityID Nullable[Int64] `json:"activityId,omitempty"`

	// Basic stat value.
	Basic HistoricalStatsValuePair `json:"basic"`

	// Per game average for the statistic, if applicable
	Pga HistoricalStatsValuePair `json:"pga"`

	// Unique ID for this stat
	StatID string `json:"statId"`

	// Weighted value of the stat if a weight greater than 1 has been assigned.
	Weighted HistoricalStatsValuePair `json:"weighted"`
}
{
  "additionalProperties": {
    "$ref": "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsByPeriod"
  },
  "type": "object",
  "x-dictionary-key": {
    "type": "string"
  }
}

Destiny.HistoricalStats.DestinyHistoricalStatsValue

type HistoricalStatsValuePair

type HistoricalStatsValuePair struct {

	// Localized formated version of the value.
	DisplayValue string `json:"displayValue"`

	// Raw value of the statistic
	Value float64 `json:"value"`
}

Destiny.HistoricalStats.DestinyHistoricalStatsValuePair

type HistoricalStatsWithMerged

type HistoricalStatsWithMerged struct {
	Merged HistoricalStatsByPeriod `json:"merged"`

	Results map[string]HistoricalStatsByPeriod `json:"results"`
}

Destiny.HistoricalStats.DestinyHistoricalStatsWithMerged

type HistoricalWeaponStats

type HistoricalWeaponStats struct {

	// The hash ID of the item definition that describes the weapon.
	ReferenceID Hash[InventoryItemDefinition] `json:"referenceId"`

	// Collection of stats for the period.
	Values map[string]HistoricalStatsValue `json:"values"`
}

Destiny.HistoricalStats.DestinyHistoricalWeaponStats

type HistoricalWeaponStatsData

type HistoricalWeaponStatsData struct {

	// List of weapons and their perspective values.
	Weapons []HistoricalWeaponStats `json:"weapons"`
}

Destiny.HistoricalStats.DestinyHistoricalWeaponStatsData

type HostGuidedGamesPermissionLevel

type HostGuidedGamesPermissionLevel int32

GroupsV2.HostGuidedGamesPermissionLevel

Used for setting the guided game permission level override (admins and founders can always host guided games).

func (HostGuidedGamesPermissionLevel) Enum

type HyperlinkReference

type HyperlinkReference struct {
	Title string `json:"title"`

	Url string `json:"url"`
}

Links.HyperlinkReference

type IconSequenceDefinition

type IconSequenceDefinition struct {
	Frames []string `json:"frames"`
}

Destiny.Definitions.Common.DestinyIconSequenceDefinition

func (IconSequenceDefinition) DefinitionTable

func (d IconSequenceDefinition) DefinitionTable() string

type IgnoreLength

type IgnoreLength int32

Ignores.IgnoreLength

func (IgnoreLength) Enum

func (e IgnoreLength) Enum() string

type IgnoreResponse

type IgnoreResponse struct {
	IgnoreFlags BitmaskSet[IgnoreStatus] `json:"ignoreFlags"`

	IsIgnored bool `json:"isIgnored"`
}

Ignores.IgnoreResponse

type IgnoreStatus

type IgnoreStatus int32

Ignores.IgnoreStatus

func (IgnoreStatus) Enum

func (e IgnoreStatus) Enum() string

type ImagePyramidEntry

type ImagePyramidEntry struct {

	// The factor by which the original image size has been reduced.
	Factor float64 `json:"factor"`

	// The name of the subfolder where these images are located.
	Name string `json:"name"`
}

Destiny.Config.ImagePyramidEntry

type InsertPlugActionDefinition

type InsertPlugActionDefinition struct {

	// How long it takes for the Plugging of the item to be completed once it is initiated, if you care.
	ActionExecuteSeconds int32 `json:"actionExecuteSeconds"`

	// The type of action being performed when you act on this Socket Type. The most common value is
	// "insert plug", but there are others as well (for instance, a "Masterwork" socket may allow for
	// Re-initialization, and an Infusion socket allows for items to be consumed to upgrade the item)
	ActionType SocketTypeActionType `json:"actionType"`
}

Destiny.Definitions.Sockets.DestinyInsertPlugActionDefinition

Data related to what happens while a plug is being inserted, mostly for UI purposes.

func (InsertPlugActionDefinition) DefinitionTable

func (d InsertPlugActionDefinition) DefinitionTable() string

type InsertPlugsActionRequest

type InsertPlugsActionRequest struct {

	// Action token provided by the AwaGetActionToken API call.
	ActionToken string `json:"actionToken"`

	CharacterID Int64 `json:"characterId"`

	// The instance ID of the item having a plug inserted. Only instanced items can have sockets.
	ItemInstanceID Int64 `json:"itemInstanceId"`

	MembershipType BungieMembershipType `json:"membershipType"`

	// The plugs being inserted.
	Plug InsertPlugsRequestEntry `json:"plug"`
}

Destiny.Requests.Actions.DestinyInsertPlugsActionRequest

type InsertPlugsFreeActionRequest

type InsertPlugsFreeActionRequest struct {
	CharacterID Int64 `json:"characterId"`

	// The instance ID of the item for this action request.
	ItemID Int64 `json:"itemId"`

	MembershipType BungieMembershipType `json:"membershipType"`

	// The plugs being inserted.
	Plug InsertPlugsRequestEntry `json:"plug"`
}

Destiny.Requests.Actions.DestinyInsertPlugsFreeActionRequest

type InsertPlugsRequestEntry

type InsertPlugsRequestEntry struct {

	// Plugs are never instanced (except in infusion). So with the hash alone, we should be able to: 1)
	// Infer whether the player actually needs to have the item, or if it's a reusable plug 2) Perform any
	// operation needed to use the Plug, including removing the plug item and running reward sheets.
	PlugItemHash uint32 `json:"plugItemHash"`

	// This property, combined with the socketIndex, tells us which socket we are referring to (since
	// operations can be performed on both Intrinsic and "default" sockets, and they occupy different
	// arrays in the Inventory Item Definition). I know, I know. Don't give me that look.
	SocketArrayType SocketArrayType `json:"socketArrayType"`

	// The index into the socket array, which identifies the specific socket being operated on. We also
	// need to know the socketArrayType in order to uniquely identify the socket.
	// Don't point to or try to insert a plug into an infusion socket. It won't work.
	SocketIndex int32 `json:"socketIndex"`
}

Destiny.Requests.Actions.DestinyInsertPlugsRequestEntry

Represents all of the data related to a single plug to be inserted. Note that, while you *can* point to a socket that represents infusion, you will receive an error if you attempt to do so. Come on guys, let's play nice.

type Int64

type Int64 int64

func (Int64) MarshalJSON

func (n Int64) MarshalJSON() ([]byte, error)

func (*Int64) UnmarshalJSON

func (n *Int64) UnmarshalJSON(raw []byte) error

type InterpolationPoint

type InterpolationPoint struct {
	Value int32 `json:"value"`

	Weight int32 `json:"weight"`
}

Interpolation.InterpolationPoint

type InterpolationPointFloat

type InterpolationPointFloat struct {
	Value float64 `json:"value"`

	Weight float64 `json:"weight"`
}

Interpolation.InterpolationPointFloat

type InventoryBucketDefinition

type InventoryBucketDefinition struct {

	// Use this property to provide a quick-and-dirty recommended ordering for buckets in the UI. Most UIs
	// will likely want to forsake this for something more custom and manual.
	BucketOrder int32 `json:"bucketOrder"`

	// An enum value for what items can be found in the bucket. See the BucketCategory enum for more
	// details.
	Category BucketCategory `json:"category"`

	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// If True, this bucket is enabled. Disabled buckets may include buckets that were included for test
	// purposes, or that were going to be used but then were abandoned but never removed from content
	// *cough*.
	Enabled bool `json:"enabled"`

	// if a FIFO bucket fills up, it will delete the oldest item from said bucket when a new item tries to
	// be added to it. If this is FALSE, the bucket will not allow new items to be placed in it until room
	// is made by the user manually deleting items from it. You can see an example of this with the
	// Postmaster's bucket.
	Fifo bool `json:"fifo"`

	// If TRUE, there is at least one Vendor that can transfer items to/from this bucket. See the
	// DestinyVendorDefinition's acceptedItems property for more information on how transferring works.
	HasTransferDestination bool `json:"hasTransferDestination"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// The maximum # of item "slots" in a bucket. A slot is a given combination of item + quantity.
	// For instance, a Weapon will always take up a single slot, and always have a quantity of 1. But a
	// material could take up only a single slot with hundreds of quantity.
	ItemCount int32 `json:"itemCount"`

	// Sometimes, inventory buckets represent conceptual "locations" in the game that might not be
	// expected. This value indicates the conceptual location of the bucket, regardless of where it is
	// actually contained on the character/account.
	// See ItemLocation for details.
	// Note that location includes the Vault and the Postmaster (both of whom being just inventory buckets
	// with additional actions that can be performed on them through a Vendor)
	Location ItemLocation `json:"location"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	// Where the bucket is found. 0 = Character, 1 = Account
	Scope BucketScope `json:"scope"`
}

Destiny.Definitions.DestinyInventoryBucketDefinition

An Inventory (be it Character or Profile level) is comprised of many Buckets. An example of a bucket is "Primary Weapons", where all of the primary weapons on a character are gathered together into a single visual element in the UI: a subset of the inventory that has a limited number of slots, and in this case also has an associated Equipment Slot for equipping an item in the bucket. Item definitions declare what their "default" bucket is (DestinyInventoryItemDefinition.inventory.bucketTypeHash), and Item instances will tell you which bucket they are currently residing in (DestinyItemComponent.bucketHash). You can use this information along with the DestinyInventoryBucketDefinition to show these items grouped by bucket. You cannot transfer an item to a bucket that is not its Default without going through a Vendor's "accepted items" (DestinyVendorDefinition.acceptedItems). This is how transfer functionality like the Vault is implemented, as a feature of a Vendor. See the vendor's acceptedItems property for more details.

func (InventoryBucketDefinition) DefinitionTable

func (d InventoryBucketDefinition) DefinitionTable() string

type InventoryChangedResponse

type InventoryChangedResponse struct {

	// Items that appeared in the inventory possibly as a result of an action.
	AddedInventoryItems []ItemComponent `json:"addedInventoryItems"`

	// Items that disappeared from the inventory possibly as a result of an action.
	RemovedInventoryItems []ItemComponent `json:"removedInventoryItems"`
}

Destiny.Responses.InventoryChangedResponse

A response containing all of the components for all requested vendors.

type InventoryComponent

type InventoryComponent struct {

	// The items in this inventory. If you care to bucket them, use the item's bucketHash property to group
	// them.
	Items []ItemComponent `json:"items"`
}

Destiny.Entities.Inventory.DestinyInventoryComponent

A list of minimal information for items in an inventory: be it a character's inventory, or a Profile's inventory. (Note that the Vault is a collection of inventory buckets in the Profile's inventory) Inventory Items returned here are in a flat list, but importantly they have a bucketHash property that indicates the specific inventory bucket that is holding them. These buckets constitute things like the separate sections of the Vault, the user's inventory slots, etc. See DestinyInventoryBucketDefinition for more info.

type InventoryItemDefinition

type InventoryItemDefinition struct {

	// If the item can be "used", this block will be non-null, and will have data related to the action
	// performed when using the item. (Guess what? 99% of the time, this action is "dismantle". Shocker)
	Action ItemActionBlockDefinition `json:"action"`

	// BNet may forbid the execution of actions on this item via the API. If that is occurring,
	// allowActions will be set to false.
	AllowActions bool `json:"allowActions"`

	// If any animations were extracted from game content for this item, these will be the definitions of
	// those animations.
	Animations []AnimationReference `json:"animations"`

	// Sometimes, an item will have a background color. Most notably this occurs with Emblems, who use the
	// Background Color for small character nameplates such as the "friends" view you see in-game. There
	// are almost certainly other items that have background color as well, though I have not bothered to
	// investigate what items have it nor what purposes they serve: use it as you will.
	BackgroundColor Color `json:"backgroundColor"`

	// Some weapons and plugs can have a "Breaker Type": a special ability that works sort of like damage
	// type vulnerabilities. This is (almost?) always set on items by plugs.
	BreakerType BreakerType `json:"breakerType"`

	// Since we also have a breaker type definition, this is the hash for that breaker type for your
	// convenience. Whether you use the enum or hash and look up the definition depends on what's cleanest
	// for your code.
	BreakerTypeHash Nullable[Hash[BreakerTypeDefinition]] `json:"breakerTypeHash,omitempty"`

	// We run a similarly weak-sauce algorithm to try and determine whether an item is restricted to a
	// specific class. If we find it to be restricted in such a way, we set this classType property to
	// match the class' enumeration value so that users can easily identify class restricted items.
	// If you see a mis-classed item, please inform the developers in the Bungie API forum.
	ClassType Class `json:"classType"`

	// If this item has a collectible related to it, this is the hash identifier of that collectible entry.
	CollectibleHash Nullable[Hash[CollectibleDefinition]] `json:"collectibleHash,omitempty"`

	// Recipe items will have relevant crafting information available here.
	Crafting ItemCraftingBlockDefinition `json:"crafting"`

	// Theoretically, an item can have many possible damage types. In *practice*, this is not true, but
	// just in case weapons start being made that have multiple (for instance, an item where a socket has
	// reusable plugs for every possible damage type that you can choose from freely), this field will
	// return all of the possible damage types that are available to the weapon by default.
	DamageTypeHashes []uint32 `json:"damageTypeHashes"`

	// This is the list of all damage types that we know ahead of time the item can take on. Unfortunately,
	// this does not preclude the possibility of something funky happening to give the item a damage type
	// that cannot be predicted beforehand: for example, if some designer decides to create arbitrary
	// non-reusable plugs that cause damage type to change.
	// This damage type prediction will only use the following to determine potential damage types:
	// - Intrinsic perks
	// - Talent Node perks
	// - Known, reusable plugs for sockets
	DamageTypes []DamageType `json:"damageTypes"`

	// If the item has a damage type that could be considered to be default, it will be populated here.
	// For various upsetting reasons, it's surprisingly cumbersome to figure this out. I hope you're happy.
	DefaultDamageType DamageType `json:"defaultDamageType"`

	// Similar to defaultDamageType, but represented as the hash identifier for a
	// DestinyDamageTypeDefinition.
	// I will likely regret leaving in the enumeration versions of these properties, but for now they're
	// very convenient.
	DefaultDamageTypeHash Nullable[Hash[DamageTypeDefinition]] `json:"defaultDamageTypeHash,omitempty"`

	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// In theory, it is a localized string telling you about how you can find the item. I really wish this
	// was more consistent. Many times, it has nothing. Sometimes, it's instead a more narrative-forward
	// description of the item. Which is cool, and I wish all properties had that data, but it should
	// really be its own property.
	DisplaySource string `json:"displaySource"`

	// The boolean will indicate to us (and you!) whether something *could* happen when you transfer this
	// item from the Postmaster that might be considered a "destructive" action.
	// It is not feasible currently to tell you (or ourelves!) in a consistent way whether this *will*
	// actually cause a destructive action, so we are playing it safe: if it has the potential to do so, we
	// will not allow it to be transferred from the Postmaster by default. You will need to check for this
	// flag before transferring an item from the Postmaster, or else you'll end up receiving an error.
	DoesPostmasterPullHaveSideEffects bool `json:"doesPostmasterPullHaveSideEffects"`

	// If the item is an emblem that has a special Objective attached to it - for instance, if the emblem
	// tracks PVP Kills, or what-have-you. This is a bit different from, for example, the Vanguard Kill
	// Tracker mod, which pipes data into the "art channel". When I get some time, I would like to
	// standardize these so you can get at the values they expose without having to care about what they're
	// being used for and how they are wired up, but for now here's the raw data.
	EmblemObjectiveHash Nullable[uint32] `json:"emblemObjectiveHash,omitempty"`

	// If true, then you will be allowed to equip the item if you pass its other requirements.
	// This being false means that you cannot equip the item under any circumstances.
	Equippable bool `json:"equippable"`

	// If this item can be equipped, this block will be non-null and will be populated with the conditions
	// under which it can be equipped.
	EquippingBlock EquippingBlockDefinition `json:"equippingBlock"`

	FlavorText string `json:"flavorText"`

	// If this item has related items in a "Gear Set", this will be non-null and the relationships defined
	// herein.
	Gearset ItemGearsetBlockDefinition `json:"gearset"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// If available, this is the original 'active' release watermark overlay for the icon. If the item has
	// different versions, this can be overridden by the 'display version watermark icon' from the
	// 'quality' block. Alternatively, if there is no watermark for the version, and the item version has a
	// power cap below the current season power cap, this can be overridden by the iconWatermarkShelved
	// property.
	IconWatermark string `json:"iconWatermark"`

	// If available, this is the 'shelved' release watermark overlay for the icon. If the item version has
	// a power cap below the current season power cap, it can be treated as 'shelved', and should be shown
	// with this 'shelved' watermark overlay.
	IconWatermarkShelved string `json:"iconWatermarkShelved"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If this item can exist in an inventory, this block will be non-null. In practice, every item that
	// currently exists has one of these blocks. But note that it is not necessarily guaranteed.
	Inventory ItemInventoryBlockDefinition `json:"inventory"`

	// If the item has stats, this block will be defined. It has the "raw" investment stats for the item.
	// These investment stats don't take into account the ways that the items can spawn, nor do they take
	// into account any Stat Group transformations. I have retained them for debugging purposes, but I do
	// not know how useful people will find them.
	InvestmentStats []ItemInvestmentStatDefinition `json:"investmentStats"`

	// If true, this is a dummy vendor-wrapped item template. Items purchased from Eververse will be
	// "wrapped" by one of these items so that we can safely provide refund capabilities before the item is
	// "unwrapped".
	IsWrapper bool `json:"isWrapper"`

	// BNet attempts to make a more formal definition of item "Categories", as defined by
	// DestinyItemCategoryDefinition. This is a list of all Categories that we were able to algorithmically
	// determine that this item is a member of. (for instance, that it's a "Weapon", that it's an "Auto
	// Rifle", etc...)
	// The algorithm for these is, unfortunately, volatile. If you believe you see a miscategorized item,
	// please let us know on the Bungie API forums.
	ItemCategoryHashes []uint32 `json:"itemCategoryHashes"`

	// A value indicating the "sub-type" of the item. For instance, where an item might have an itemType
	// value "Weapon", this will be something more specific like "Auto Rifle".
	// itemCategoryHashes are the preferred way of identifying types, we have retained this enum for its
	// convenience.
	ItemSubType ItemSubType `json:"itemSubType"`

	// A value indicating the "base" the of the item. This enum is a useful but dramatic oversimplification
	// of what it means for an item to have a "Type". Still, it's handy in many situations.
	// itemCategoryHashes are the preferred way of identifying types, we have retained this enum for its
	// convenience.
	ItemType ItemType `json:"itemType"`

	// It became a common enough pattern in our UI to show Item Type and Tier combined into a single
	// localized string that I'm just going to go ahead and start pre-creating these for items.
	ItemTypeAndTierDisplayName string `json:"itemTypeAndTierDisplayName"`

	// The localized title/name of the item's type. This can be whatever the designers want, and has no
	// guarantee of consistency between items.
	ItemTypeDisplayName string `json:"itemTypeDisplayName"`

	// If we added any help or informational URLs about this item, these will be those links.
	Links []HyperlinkReference `json:"links"`

	// If the item has any related Lore (DestinyLoreDefinition), this will be the hash identifier you can
	// use to look up the lore definition.
	LoreHash Nullable[Hash[LoreDefinition]] `json:"loreHash,omitempty"`

	// If this item has available metrics to be shown, this block will be non-null have the appropriate
	// hashes defined.
	Metrics ItemMetricBlockDefinition `json:"metrics"`

	// The intrinsic transferability of an item.
	// I hate that this boolean is negative - but there's a reason.
	// Just because an item is intrinsically transferrable doesn't mean that it can be transferred, and we
	// don't want to imply that this is the only source of that transferability.
	NonTransferrable bool `json:"nonTransferrable"`

	// If this item has Objectives (extra tasks that can be accomplished related to the item... most
	// frequently when the item is a Quest Step and the Objectives need to be completed to move on to the
	// next Quest Step), this block will be non-null and the objectives defined herein.
	Objectives ItemObjectiveBlockDefinition `json:"objectives"`

	// If the item has any *intrinsic* Perks (Perks that it will provide regardless of Sockets, Talent
	// Grid, and other transitory state), they will be defined here.
	Perks []ItemPerkEntryDefinition `json:"perks"`

	// If this item *is* a Plug, this will be non-null and the info defined herein. See
	// DestinyItemPlugDefinition for more information.
	Plug ItemPlugDefinition `json:"plug"`

	// If this item can be Used or Acquired to gain other items (for instance, how Eververse Boxes can be
	// consumed to get items from the box), this block will be non-null and will give summary information
	// for the items that can be acquired.
	Preview ItemPreviewBlockDefinition `json:"preview"`

	// If this item can have a level or stats, this block will be non-null and will be populated with
	// default quality (item level, "quality", and infusion) data. See the block for more details, there's
	// often less upfront information in D2 so you'll want to be aware of how you use quality and item
	// level on the definition level now.
	Quality ItemQualityBlockDefinition `json:"quality"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	// If this item is a "reward sack" that can be opened to provide other items, this will be non-null and
	// the properties of the sack contained herein.
	Sack ItemSackBlockDefinition `json:"sack"`

	// If we were able to acquire an in-game screenshot for the item, the path to that screenshot will be
	// returned here. Note that not all items have screenshots: particularly not any non-equippable items.
	Screenshot string `json:"screenshot"`

	// If this item is related directly to a Season of Destiny, this is the hash identifier for that
	// season.
	SeasonHash Nullable[Hash[SeasonDefinition]] `json:"seasonHash,omitempty"`

	// A secondary icon associated with the item. Currently this is used in very context specific
	// applications, such as Emblem Nameplates.
	SecondaryIcon string `json:"secondaryIcon"`

	// Pulled from the secondary icon, this is the "secondary background" of the secondary icon. Confusing?
	// Sure, that's why I call it "overlay" here: because as far as it's been used thus far, it has been
	// for an optional overlay image. We'll see if that holds up, but at least for now it explains what
	// this image is a bit better.
	SecondaryOverlay string `json:"secondaryOverlay"`

	// Pulled from the Secondary Icon, this is the "special" background for the item. For Emblems, this is
	// the background image used on the Details view: but it need not be limited to that for other types of
	// items.
	SecondarySpecial string `json:"secondarySpecial"`

	// If this item is a quest, this block will be non-null. In practice, I wish I had called this the
	// Quest block, but at the time it wasn't clear to me whether it would end up being used for purposes
	// other than quests. It will contain data about the steps in the quest, and mechanics we can use for
	// displaying and tracking the quest.
	SetData ItemSetBlockDefinition `json:"setData"`

	// If this item has any Sockets, this will be non-null and the individual sockets on the item will be
	// defined herein.
	Sockets ItemSocketBlockDefinition `json:"sockets"`

	// If this item has a known source, this block will be non-null and populated with source information.
	// Unfortunately, at this time we are not generating sources: that is some aggressively manual work
	// which we didn't have time for, and I'm hoping to get back to at some point in the future.
	SourceData ItemSourceBlockDefinition `json:"sourceData"`

	// In Destiny 1, we identified some items as having particular categories that we'd like to know about
	// for various internal logic purposes. These are defined in SpecialItemType, and while these days the
	// itemCategoryHashes are the preferred way of identifying types, we have retained this enum for its
	// convenience.
	SpecialItemType SpecialItemType `json:"specialItemType"`

	// If this item can have stats (such as a weapon, armor, or vehicle), this block will be non-null and
	// populated with the stats found on the item.
	Stats ItemStatBlockDefinition `json:"stats"`

	// Summary data about the item.
	Summary ItemSummaryBlockDefinition `json:"summary"`

	// There are times when the game will show you a "summary/vague" version of an item - such as a
	// description of its type represented as a DestinyInventoryItemDefinition - rather than display the
	// item itself.
	// This happens sometimes when summarizing possible rewards in a tooltip. This is the item displayed
	// instead, if it exists.
	SummaryItemHash Nullable[Hash[InventoryItemDefinition]] `json:"summaryItemHash,omitempty"`

	// If the item has a Talent Grid, this will be non-null and the properties of the grid defined herein.
	// Note that, while many items still have talent grids, the only ones with meaningful Nodes still on
	// them will be Subclass/"Build" items.
	TalentGrid ItemTalentGridBlockDefinition `json:"talentGrid"`

	// Tooltips that only come up conditionally for the item. Check the live data
	// DestinyItemComponent.tooltipNotificationIndexes property for which of these should be shown at
	// runtime.
	TooltipNotifications []ItemTooltipNotification `json:"tooltipNotifications"`

	// An identifier that the game UI uses to determine what type of tooltip to show for the item. These
	// have no corresponding definitions that BNet can link to: so it'll be up to you to interpret and
	// display your UI differently according to these styles (or ignore it).
	TooltipStyle string `json:"tooltipStyle"`

	// These are the corresponding trait definition hashes for the entries in traitIds.
	TraitHashes []uint32 `json:"traitHashes"`

	// Traits are metadata tags applied to this item. For example: armor slot, weapon type, foundry,
	// faction, etc. These IDs come from the game and don't map to any content, but should still be useful.
	TraitIds []string `json:"traitIds"`

	// If this item can be rendered, this block will be non-null and will be populated with rendering
	// information.
	TranslationBlock ItemTranslationBlockDefinition `json:"translationBlock"`

	// A string identifier that the game's UI uses to determine how the item should be rendered in
	// inventory screens and the like. This could really be anything - at the moment, we don't have the
	// time to really breakdown and maintain all the possible strings this could be, partly because new
	// ones could be added ad hoc. But if you want to use it to dictate your own UI, or look for items with
	// a certain display style, go for it!
	UiItemDisplayStyle string `json:"uiItemDisplayStyle"`

	// The conceptual "Value" of an item, if any was defined. See the DestinyItemValueBlockDefinition for
	// more details.
	Value ItemValueBlockDefinition `json:"value"`
}

Destiny.Definitions.DestinyInventoryItemDefinition

So much of what you see in Destiny is actually an Item used in a new and creative way. This is the definition for Items in Destiny, which started off as just entities that could exist in your Inventory but ended up being the backing data for so much more: quests, reward previews, slots, and subclasses. In practice, you will want to associate this data with "live" item data from a Bungie.Net Platform call: these definitions describe the item in generic, non-instanced terms: but an actual instance of an item can vary widely from these generic definitions.

func (InventoryItemDefinition) DefinitionTable

func (d InventoryItemDefinition) DefinitionTable() string

type InventoryItemStatDefinition

type InventoryItemStatDefinition struct {

	// The maximum possible value for the stat as shown in the UI, if it is being shown somewhere that
	// reveals maximum in the UI (such as a bar chart-style view).
	// This is pulled directly from the item's DestinyStatGroupDefinition, and placed here for convenience.
	// If not returned, there is no maximum to use (and thus the stat should not be shown in a way that
	// assumes there is a limit to the stat)
	DisplayMaximum Nullable[int32] `json:"displayMaximum,omitempty"`

	// The maximum possible value for this stat that we think the item can roll.
	// WARNING: In Destiny 1, this field was calculated using the potential stat rolls on the item's talent
	// grid. In Destiny 2, items no longer have meaningful talent grids and instead have sockets: but the
	// calculation of this field was never altered to adapt to this change. As such, this field should be
	// considered deprecated until we can address this oversight.
	Maximum int32 `json:"maximum"`

	// The minimum possible value for this stat that we think the item can roll.
	Minimum int32 `json:"minimum"`

	// The hash for the DestinyStatDefinition representing this stat.
	StatHash Hash[StatDefinition] `json:"statHash"`

	// This value represents the stat value assuming the minimum possible roll but accounting for any
	// mandatory bonuses that should be applied to the stat on item creation.
	// In Destiny 1, this was different from the "minimum" value because there were certain conditions
	// where an item could be theoretically lower level/value than the initial roll.
	// In Destiny 2, this is not possible unless Talent Grids begin to be used again for these purposes or
	// some other system change occurs... thus in practice, value and minimum should be the same in Destiny
	// 2. Good riddance.
	Value int32 `json:"value"`
}

Destiny.Definitions.DestinyInventoryItemStatDefinition

Defines a specific stat value on an item, and the minimum/maximum range that we could compute for the item based on our heuristics for how the item might be generated. Not guaranteed to match real-world instances of the item, but should hopefully at least be close. If it's not close, let us know on the Bungie API forums.

func (InventoryItemStatDefinition) DefinitionTable

func (d InventoryItemStatDefinition) DefinitionTable() string

type ItemActionBlockDefinition

type ItemActionBlockDefinition struct {

	// The internal identifier for the action.
	ActionTypeLabel string `json:"actionTypeLabel"`

	// If true, the entire stack is deleted when the action completes.
	ConsumeEntireStack bool `json:"consumeEntireStack"`

	// If true, the item is deleted when the action completes.
	DeleteOnAction bool `json:"deleteOnAction"`

	// The content has this property, however it's not entirely clear how it is used.
	IsPositive bool `json:"isPositive"`

	// The icon associated with the overlay screen for the action, if any.
	OverlayIcon string `json:"overlayIcon"`

	// If the action has an overlay screen associated with it, this is the name of that screen.
	// Unfortunately, we cannot return the screen's data itself.
	OverlayScreenName string `json:"overlayScreenName"`

	// If performing this action earns you Progression, this is the list of progressions and values granted
	// for those progressions by performing this action.
	ProgressionRewards []ProgressionRewardDefinition `json:"progressionRewards"`

	// The identifier hash for the Cooldown associated with this action. We have not pulled this data yet
	// for you to have more data to use for cooldowns.
	RequiredCooldownHash uint32 `json:"requiredCooldownHash"`

	// The number of seconds to delay before allowing this action to be performed again.
	RequiredCooldownSeconds int32 `json:"requiredCooldownSeconds"`

	// If the action requires other items to exist or be destroyed, this is the list of those items and
	// requirements.
	RequiredItems []ItemActionRequiredItemDefinition `json:"requiredItems"`

	// Theoretically, an item could have a localized string for a hint about the location in which the
	// action should be performed. In practice, no items yet have this property.
	RequiredLocation string `json:"requiredLocation"`

	// If true, this action will be performed as soon as you earn this item. Some rewards work this way,
	// providing you a single item to pick up from a reward-granting vendor in-game and then immediately
	// consuming itself to provide you multiple items.
	UseOnAcquire bool `json:"useOnAcquire"`

	// Localized text describing the action being performed.
	VerbDescription string `json:"verbDescription"`

	// Localized text for the verb of the action being performed.
	VerbName string `json:"verbName"`
}

Destiny.Definitions.DestinyItemActionBlockDefinition

If an item can have an action performed on it (like "Dismantle"), it will be defined here if you care.

func (ItemActionBlockDefinition) DefinitionTable

func (d ItemActionBlockDefinition) DefinitionTable() string

type ItemActionRequest

type ItemActionRequest struct {
	CharacterID Int64 `json:"characterId"`

	// The instance ID of the item for this action request.
	ItemID Int64 `json:"itemId"`

	MembershipType BungieMembershipType `json:"membershipType"`
}

Destiny.Requests.Actions.DestinyItemActionRequest

type ItemActionRequiredItemDefinition

type ItemActionRequiredItemDefinition struct {

	// The minimum quantity of the item you have to have.
	Count int32 `json:"count"`

	// If true, the item/quantity will be deleted from your inventory when the action is performed.
	// Otherwise, you'll retain these required items after the action is complete.
	DeleteOnAction bool `json:"deleteOnAction"`

	// The hash identifier of the item you need to have. Use it to look up the
	// DestinyInventoryItemDefinition for more info.
	ItemHash Hash[InventoryItemDefinition] `json:"itemHash"`
}

Destiny.Definitions.DestinyItemActionRequiredItemDefinition

The definition of an item and quantity required in a character's inventory in order to perform an action.

func (ItemActionRequiredItemDefinition) DefinitionTable

func (d ItemActionRequiredItemDefinition) DefinitionTable() string

type ItemBindStatus

type ItemBindStatus int32

Destiny.ItemBindStatus

func (ItemBindStatus) Enum

func (e ItemBindStatus) Enum() string

type ItemCategoryDefinition

type ItemCategoryDefinition struct {

	// If True, this category has been deprecated: it may have no items left, or there may be only legacy
	// items that remain in it which are no longer relevant to the game.
	Deprecated bool `json:"deprecated"`

	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// If the item in question has this category, it also should have this breaker type.
	GrantDestinyBreakerType BreakerType `json:"grantDestinyBreakerType"`

	// If an item belongs to this category, it will also get this class restriction enum value.
	// See the other "grant"-prefixed properties on this definition for my color commentary.
	GrantDestinyClass Class `json:"grantDestinyClass"`

	// If an item belongs to this category, it will also receive this item type. This is now how
	// DestinyItemType is populated for items: it used to be an even jankier process, but that's a story
	// that requires more alcohol.
	GrantDestinyItemType ItemType `json:"grantDestinyItemType"`

	// If an item belongs to this category, it will also receive this subtype enum value.
	// I know what you're thinking - what if it belongs to multiple categories that provide sub-types?
	// The last one processed wins, as is the case with all of these "grant" enums. Now you can see one
	// reason why we moved away from these enums... but they're so convenient when they work, aren't they?
	GrantDestinySubType ItemSubType `json:"grantDestinySubType"`

	// If true, this category is only used for grouping, and should not be evaluated with its own checks.
	// Rather, the item only has this category if it has one of its child categories.
	GroupCategoryOnly bool `json:"groupCategoryOnly"`

	// If this category is a "parent" category of other categories, those children will have their hashes
	// listed in rendering order here, and can be looked up using these hashes against
	// DestinyItemCategoryDefinition.
	// In this way, you can build up a visual hierarchy of item categories. That's what we did, and you can
	// do it too. I believe in you. Yes, you, Carl.
	// (I hope someone named Carl reads this someday)
	GroupedCategoryHashes []uint32 `json:"groupedCategoryHashes"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// The janky regular expression we used against the item type to try and discern whether the item
	// belongs to this category.
	ItemTypeRegex string `json:"itemTypeRegex"`

	// If the item type matches this janky regex, it does *not* belong to this category.
	ItemTypeRegexNot string `json:"itemTypeRegexNot"`

	// If the item belongs to this bucket, it does belong to this category.
	OriginBucketIdentifier string `json:"originBucketIdentifier"`

	// All item category hashes of "parent" categories: categories that contain this as a child through the
	// hierarchy of groupedCategoryHashes. It's a bit redundant, but having this child-centric list speeds
	// up some calculations.
	ParentCategoryHashes []uint32 `json:"parentCategoryHashes"`

	// If the item is a plug, this is the identifier we expect to find associated with it if it is in this
	// category.
	PlugCategoryIdentifier string `json:"plugCategoryIdentifier"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	// A shortened version of the title. The reason why we have this is because the Armory in German had
	// titles that were too long to display in our UI, so these were localized abbreviated versions of
	// those categories. The property still exists today, even though the Armory doesn't exist for D2...
	// yet.
	ShortTitle string `json:"shortTitle"`

	// The traitId that can be found on items that belong to this category.
	TraitID string `json:"traitId"`

	// If True, this category should be visible in UI. Sometimes we make categories that we don't think are
	// interesting externally. It's up to you if you want to skip on showing them.
	Visible bool `json:"visible"`
}

Destiny.Definitions.DestinyItemCategoryDefinition

In an attempt to categorize items by type, usage, and other interesting properties, we created DestinyItemCategoryDefinition: information about types that is assembled using a set of heuristics that examine the properties of an item such as what inventory bucket it's in, its item type name, and whether it has or is missing certain blocks of data. This heuristic is imperfect, however. If you find an item miscategorized, let us know on the Bungie API forums! We then populate all of the categories that we think an item belongs to in its DestinyInventoryItemDefinition.itemCategoryHashes property. You can use that to provide your own custom item filtering, sorting, aggregating... go nuts on it! And let us know if you see more categories that you wish would be added!

func (ItemCategoryDefinition) DefinitionTable

func (d ItemCategoryDefinition) DefinitionTable() string

type ItemChangeResponse

type ItemChangeResponse struct {

	// Items that appeared in the inventory possibly as a result of an action.
	AddedInventoryItems []ItemComponent `json:"addedInventoryItems"`

	Item ItemResponse `json:"item"`

	// Items that disappeared from the inventory possibly as a result of an action.
	RemovedInventoryItems []ItemComponent `json:"removedInventoryItems"`
}

Destiny.Responses.DestinyItemChangeResponse

type ItemComponent

type ItemComponent struct {

	// If the item is bound to a location, it will be specified in this enum.
	BindStatus ItemBindStatus `json:"bindStatus"`

	// The hash identifier for the specific inventory bucket in which the item is located.
	BucketHash Hash[InventoryBucketDefinition] `json:"bucketHash"`

	// If the item can expire, this is the date at which it will/did expire.
	ExpirationDate Nullable[Timestamp] `json:"expirationDate,omitempty"`

	// If this is true, the object is actually a "wrapper" of the object it's representing. This means that
	// it's not the actual item itself, but rather an item that must be "opened" in game before you have
	// and can use the item.
	//
	//	Wrappers are an evolution of "bundles", which give an easy way to let you preview the contents of
	//
	// what you purchased while still letting you get a refund before you "open" it.
	IsWrapper bool `json:"isWrapper"`

	// The identifier for the item's definition, which is where most of the useful static information for
	// the item can be found.
	ItemHash Hash[InventoryItemDefinition] `json:"itemHash"`

	// If the item is instanced, it will have an instance ID. Lack of an instance ID implies that the item
	// has no distinct local qualities aside from stack size.
	ItemInstanceID Nullable[Int64] `json:"itemInstanceId,omitempty"`

	// If available, a list that describes which item values (rewards) should be shown (true) or hidden
	// (false).
	ItemValueVisibility []bool `json:"itemValueVisibility"`

	// An easy reference for where the item is located. Redundant if you got the item from an Inventory,
	// but useful when making detail calls on specific items.
	Location ItemLocation `json:"location"`

	// If the item can be locked, this will indicate that state.
	Lockable bool `json:"lockable"`

	// The identifier for the currently-selected metric definition, to be displayed on the emblem
	// nameplate.
	MetricHash Nullable[Hash[MetricDefinition]] `json:"metricHash,omitempty"`

	// The objective progress for the currently-selected metric definition, to be displayed on the emblem
	// nameplate.
	MetricObjective ObjectiveProgress `json:"metricObjective"`

	// If populated, this is the hash of the item whose icon (and other secondary styles, but *not* the
	// human readable strings) should override whatever icons/styles are on the item being sold.
	// If you don't do this, certain items whose styles are being overridden by socketed items - such as
	// the "Recycle Shader" item - would show whatever their default icon/style is, and it wouldn't be
	// pretty or look accurate.
	OverrideStyleItemHash Nullable[Hash[InventoryItemDefinition]] `json:"overrideStyleItemHash,omitempty"`

	// The quantity of the item in this stack. Note that Instanced items cannot stack. If an instanced
	// item, this value will always be 1 (as the stack has exactly one item in it)
	Quantity int32 `json:"quantity"`

	// A flags enumeration indicating the transient/custom states of the item that affect how it is
	// rendered: whether it's tracked or locked for example, or whether it has a masterwork plug inserted.
	State BitmaskSet[ItemState] `json:"state"`

	// If this is populated, it is a list of indexes into
	// DestinyInventoryItemDefinition.tooltipNotifications for any special tooltip messages that need to be
	// shown for this item.
	TooltipNotificationIndexes []int32 `json:"tooltipNotificationIndexes"`

	// If there is a known error state that would cause this item to not be transferable, this Flags enum
	// will indicate all of those error states. Otherwise, it will be 0 (CanTransfer).
	TransferStatus BitmaskSet[TransferStatuses] `json:"transferStatus"`

	// The version of this item, used to index into the versions list in the item definition quality block.
	VersionNumber Nullable[int32] `json:"versionNumber,omitempty"`
}

Destiny.Entities.Items.DestinyItemComponent

The base item component, filled with properties that are generally useful to know in any item request or that don't feel worthwhile to put in their own component.

type ItemComponentSet

type ItemComponentSet[T comparable] struct {
	Sockets        ComponentResponse[map[T]ItemSocketsComponent]        `json:"sockets"`
	PlugObjectives ComponentResponse[map[T]ItemPlugObjectivesComponent] `json:"plugObjectives"`
	PlugStates     ComponentResponse[map[T]ItemPlugComponent]           `json:"plugStates"`
	Perks          ComponentResponse[map[T]ItemPerksComponent]          `json:"perks"`
	RenderData     ComponentResponse[map[T]ItemRenderComponent]         `json:"renderData"`
	Stats          ComponentResponse[map[T]ItemStatsComponent]          `json:"stats"`
	Objectives     ComponentResponse[map[T]ItemObjectivesComponent]     `json:"objectives"`
	Instances      ComponentResponse[map[T]ItemInstanceComponent]       `json:"instances"`
	ReusablePlugs  ComponentResponse[map[T]ItemReusablePlugsComponent]  `json:"reusablePlugs"`
	TalentGrids    ComponentResponse[map[T]ItemTalentGridComponent]     `json:"talentGrids"`
}

type ItemCraftingBlockBonusPlugDefinition

type ItemCraftingBlockBonusPlugDefinition struct {
	PlugItemHash Hash[InventoryItemDefinition] `json:"plugItemHash"`

	SocketTypeHash Hash[SocketTypeDefinition] `json:"socketTypeHash"`
}

Destiny.Definitions.DestinyItemCraftingBlockBonusPlugDefinition

func (ItemCraftingBlockBonusPlugDefinition) DefinitionTable

func (d ItemCraftingBlockBonusPlugDefinition) DefinitionTable() string

type ItemCraftingBlockDefinition

type ItemCraftingBlockDefinition struct {

	// A reference to the base material requirements for crafting with this recipe.
	BaseMaterialRequirements Nullable[Hash[MaterialRequirementSetDefinition]] `json:"baseMaterialRequirements,omitempty"`

	// A list of 'bonus' socket plugs that may be available if certain requirements are met.
	BonusPlugs []ItemCraftingBlockBonusPlugDefinition `json:"bonusPlugs"`

	FailedRequirementStrings []string `json:"failedRequirementStrings"`

	// A reference to the item definition that is created when crafting with this 'recipe' item.
	OutputItemHash Hash[InventoryItemDefinition] `json:"outputItemHash"`

	// A list of socket type hashes that describes which sockets are required for crafting with this
	// recipe.
	RequiredSocketTypeHashes []uint32 `json:"requiredSocketTypeHashes"`
}

Destiny.Definitions.DestinyItemCraftingBlockDefinition

If an item can have an action performed on it (like "Dismantle"), it will be defined here if you care.

func (ItemCraftingBlockDefinition) DefinitionTable

func (d ItemCraftingBlockDefinition) DefinitionTable() string

type ItemCreationEntryLevelDefinition

type ItemCreationEntryLevelDefinition struct {
	Level int32 `json:"level"`
}

Destiny.Definitions.DestinyItemCreationEntryLevelDefinition

An overly complicated wrapper for the item level at which the item should spawn.

func (ItemCreationEntryLevelDefinition) DefinitionTable

func (d ItemCreationEntryLevelDefinition) DefinitionTable() string

type ItemGearsetBlockDefinition

type ItemGearsetBlockDefinition struct {

	// The list of hashes for items in the gearset. Use them to look up DestinyInventoryItemDefinition
	// entries for the items in the set.
	ItemList []uint32 `json:"itemList"`

	// The maximum possible number of items that can be collected.
	TrackingValueMax int32 `json:"trackingValueMax"`
}

Destiny.Definitions.DestinyItemGearsetBlockDefinition

If an item has a related gearset, this is the list of items in that set, and an unlock expression that evaluates to a number representing the progress toward gearset completion (a very rare use for unlock expressions!)

func (ItemGearsetBlockDefinition) DefinitionTable

func (d ItemGearsetBlockDefinition) DefinitionTable() string

type ItemInstanceComponent

type ItemInstanceComponent struct {

	// If populated, this item has a breaker type corresponding to the given value. See
	// DestinyBreakerTypeDefinition for more details.
	BreakerType Nullable[int32] `json:"breakerType,omitempty"`

	// If populated, this is the hash identifier for the item's breaker type. See
	// DestinyBreakerTypeDefinition for more details.
	BreakerTypeHash Nullable[Hash[BreakerTypeDefinition]] `json:"breakerTypeHash,omitempty"`

	// If this is an equippable item, you can check it here. There are permanent as well as transitory
	// reasons why an item might not be able to be equipped: check cannotEquipReason for details.
	CanEquip bool `json:"canEquip"`

	// If you cannot equip the item, this is a flags enum that enumerates all of the reasons why you
	// couldn't equip the item. You may need to refine your UI further by using unlockHashesRequiredToEquip
	// and equipRequiredLevel.
	CannotEquipReason BitmaskSet[EquipFailureReason] `json:"cannotEquipReason"`

	// If the item has a damage type, this is the item's current damage type.
	DamageType DamageType `json:"damageType"`

	// The current damage type's hash, so you can look up localized info and icons for it.
	DamageTypeHash Nullable[Hash[DamageTypeDefinition]] `json:"damageTypeHash,omitempty"`

	// IF populated, this item supports Energy mechanics (i.e. Armor 2.0), and these are the current
	// details of its energy type and available capacity to spend energy points.
	Energy ItemInstanceEnergy `json:"energy"`

	// If the item cannot be equipped until you reach a certain level, that level will be reflected here.
	EquipRequiredLevel int32 `json:"equipRequiredLevel"`

	// Is the item currently equipped on the given character?
	IsEquipped bool `json:"isEquipped"`

	// The Item's "Level" has the most significant bearing on its stats, such as Light and Power.
	ItemLevel int32 `json:"itemLevel"`

	// The item stat that we consider to be "primary" for the item. For instance, this would be "Attack"
	// for Weapons or "Defense" for armor.
	PrimaryStat Stat `json:"primaryStat"`

	// The "Quality" of the item has a lesser - but still impactful - bearing on stats like Light and
	// Power.
	Quality int32 `json:"quality"`

	// Sometimes, there are limitations to equipping that are represented by character-level flags called
	// "unlocks".
	// This is a list of flags that they need in order to equip the item that the character has not met.
	// Use these to look up the descriptions to show in your UI by looking up the relevant
	// DestinyUnlockDefinitions for the hashes.
	UnlockHashesRequiredToEquip []uint32 `json:"unlockHashesRequiredToEquip"`
}

Destiny.Entities.Items.DestinyItemInstanceComponent

If an item is "instanced", this will contain information about the item's instance that doesn't fit easily into other components. One might say this is the "essential" instance data for the item. Items are instanced if they require information or state that can vary. For instance, weapons are Instanced: they are given a unique identifier, uniquely generated stats, and can have their properties altered. Non-instanced items have none of these things: for instance, Glimmer has no unique properties aside from how much of it you own. You can tell from an item's definition whether it will be instanced or not by looking at the DestinyInventoryItemDefinition's definition.inventory.isInstanceItem property.

type ItemInstanceEnergy

type ItemInstanceEnergy struct {

	// The total capacity of Energy that the item currently has, regardless of if it is currently being
	// used.
	EnergyCapacity int32 `json:"energyCapacity"`

	// This is the enum version of the Energy Type value, for convenience.
	EnergyType EnergyType `json:"energyType"`

	// The type of energy for this item. Plugs that require Energy can only be inserted if they have the
	// "Any" Energy Type or the matching energy type of this item. This is a reference to the
	// DestinyEnergyTypeDefinition for the energy type, where you can find extended info about it.
	EnergyTypeHash Hash[EnergyTypeDefinition] `json:"energyTypeHash"`

	// The amount of energy still available for inserting new plugs.
	EnergyUnused int32 `json:"energyUnused"`

	// The amount of Energy currently in use by inserted plugs.
	EnergyUsed int32 `json:"energyUsed"`
}

Destiny.Entities.Items.DestinyItemInstanceEnergy

type ItemIntrinsicSocketEntryDefinition

type ItemIntrinsicSocketEntryDefinition struct {

	// If true, then this socket is visible in the item's "default" state. If you have an instance, you
	// should always check the runtime state, as that can override this visibility setting: but if you're
	// looking at the item on a conceptual level, this property can be useful for hiding data such as
	// legacy sockets - which remain defined on items for infrastructure purposes, but can be confusing for
	// users to see.
	DefaultVisible bool `json:"defaultVisible"`

	// Indicates the plug that is intrinsically inserted into this socket.
	PlugItemHash Hash[InventoryItemDefinition] `json:"plugItemHash"`

	// Indicates the type of this intrinsic socket.
	SocketTypeHash Hash[SocketTypeDefinition] `json:"socketTypeHash"`
}

Destiny.Definitions.DestinyItemIntrinsicSocketEntryDefinition

Represents a socket that has a plug associated with it intrinsically. This is useful for situations where the weapon needs to have a visual plug/Mod on it, but that plug/Mod should never change.

func (ItemIntrinsicSocketEntryDefinition) DefinitionTable

func (d ItemIntrinsicSocketEntryDefinition) DefinitionTable() string

type ItemInventoryBlockDefinition

type ItemInventoryBlockDefinition struct {

	// The hash identifier for the DestinyInventoryBucketDefinition to which this item belongs. I should
	// have named this "bucketHash", but too many things refer to it now. Sigh.
	BucketTypeHash Hash[InventoryBucketDefinition] `json:"bucketTypeHash"`

	// The tooltip message to show, if any, when the item expires.
	ExpirationTooltip string `json:"expirationTooltip"`

	// If the item expires while playing in an activity, we show a different message.
	ExpiredInActivityMessage string `json:"expiredInActivityMessage"`

	// If the item expires in orbit, we show a... more different message. ("Consummate V's, consummate!")
	ExpiredInOrbitMessage string `json:"expiredInOrbitMessage"`

	// If TRUE, this item is instanced. Otherwise, it is a generic item that merely has a quantity in a
	// stack (like Glimmer).
	IsInstanceItem bool `json:"isInstanceItem"`

	// The maximum quantity of this item that can exist in a stack.
	MaxStackSize int32 `json:"maxStackSize"`

	// A reference to the associated crafting 'recipe' item definition, if this item can be crafted.
	RecipeItemHash Nullable[Hash[InventoryItemDefinition]] `json:"recipeItemHash,omitempty"`

	// If the item is picked up by the lost loot queue, this is the hash identifier for the
	// DestinyInventoryBucketDefinition into which it will be placed. Again, I should have named this
	// recoveryBucketHash instead.
	RecoveryBucketTypeHash Hash[InventoryBucketDefinition] `json:"recoveryBucketTypeHash"`

	// If this string is populated, you can't have more than one stack with this label in a given
	// inventory. Note that this is different from the equipping block's unique label, which is used for
	// equipping uniqueness.
	StackUniqueLabel string `json:"stackUniqueLabel"`

	SuppressExpirationWhenObjectivesComplete bool `json:"suppressExpirationWhenObjectivesComplete"`

	// The enumeration matching the tier type of the item to known values, again for convenience sake.
	TierType TierType `json:"tierType"`

	// The hash identifier for the Tier Type of the item, use to look up its DestinyItemTierTypeDefinition
	// if you need to show localized data for the item's tier.
	TierTypeHash Hash[ItemTierTypeDefinition] `json:"tierTypeHash"`

	// The localized name of the tier type, which is a useful shortcut so you don't have to look up the
	// definition every time. However, it's mostly a holdover from days before we had a
	// DestinyItemTierTypeDefinition to refer to.
	TierTypeName string `json:"tierTypeName"`
}

Destiny.Definitions.DestinyItemInventoryBlockDefinition

If the item can exist in an inventory - the overwhelming majority of them can and do - then this is the basic properties regarding the item's relationship with the inventory.

func (ItemInventoryBlockDefinition) DefinitionTable

func (d ItemInventoryBlockDefinition) DefinitionTable() string

type ItemInvestmentStatDefinition

type ItemInvestmentStatDefinition struct {

	// If this is true, the stat will only be applied on the item in certain game state conditions, and we
	// can't know statically whether or not this stat will be applied. Check the "live" API data instead
	// for whether this value is being applied on a specific instance of the item in question, and you can
	// use this to decide whether you want to show the stat on the generic view of the item, or whether you
	// want to show some kind of caveat or warning about the stat value being conditional on game state.
	IsConditionallyActive bool `json:"isConditionallyActive"`

	// The hash identifier for the DestinyStatDefinition defining this stat.
	StatTypeHash Hash[StatDefinition] `json:"statTypeHash"`

	// The raw "Investment" value for the stat, before transformations are performed to turn this raw stat
	// into stats that are displayed in the game UI.
	Value int32 `json:"value"`
}

Destiny.Definitions.DestinyItemInvestmentStatDefinition

Represents a "raw" investment stat, before calculated stats are calculated and before any DestinyStatGroupDefinition is applied to transform the stat into something closer to what you see in-game. Because these won't match what you see in-game, consider carefully whether you really want to use these stats. I have left them in case someone can do something useful or interesting with the pre-processed statistics.

func (ItemInvestmentStatDefinition) DefinitionTable

func (d ItemInvestmentStatDefinition) DefinitionTable() string

type ItemLocation

type ItemLocation int32

Destiny.ItemLocation

func (ItemLocation) Enum

func (e ItemLocation) Enum() string

type ItemMetricBlockDefinition

type ItemMetricBlockDefinition struct {

	// Hash identifiers for any DestinyPresentationNodeDefinition entry that can be used to list available
	// metrics. Any metric listed directly below these nodes, or in any of these nodes' children will be
	// made available for selection.
	AvailableMetricCategoryNodeHashes []uint32 `json:"availableMetricCategoryNodeHashes"`
}

Destiny.Definitions.DestinyItemMetricBlockDefinition

The metrics available for display and selection on an item.

func (ItemMetricBlockDefinition) DefinitionTable

func (d ItemMetricBlockDefinition) DefinitionTable() string

type ItemObjectiveBlockDefinition

type ItemObjectiveBlockDefinition struct {

	// For every entry in objectiveHashes, there is a corresponding entry in this array at the same index.
	// If the objective is meant to be associated with a specific DestinyActivityDefinition, there will be
	// a valid hash at that index. Otherwise, it will be invalid (0).
	// Rendered somewhat obsolete by perObjectiveDisplayProperties, which currently has much the same
	// information but may end up with more info in the future.
	DisplayActivityHashes []uint32 `json:"displayActivityHashes"`

	DisplayAsStatTracker bool `json:"displayAsStatTracker"`

	// The localized string for narrative text related to this quest step, if any.
	Narrative string `json:"narrative"`

	// The hashes to Objectives (DestinyObjectiveDefinition) that are part of this Quest Step, in the order
	// that they should be rendered.
	ObjectiveHashes []uint32 `json:"objectiveHashes"`

	// The localized string describing an action to be performed associated with the objectives, if any.
	ObjectiveVerbName string `json:"objectiveVerbName"`

	// One entry per Objective on the item, it will have related display information.
	PerObjectiveDisplayProperties []ObjectiveDisplayProperties `json:"perObjectiveDisplayProperties"`

	// A hashed value for the questTypeIdentifier, because apparently I like to be redundant.
	QuestTypeHash uint32 `json:"questTypeHash"`

	// The identifier for the type of quest being performed, if any. Not associated with any fixed
	// definition, yet.
	QuestTypeIdentifier string `json:"questTypeIdentifier"`

	// The hash for the DestinyInventoryItemDefinition representing the Quest to which this Quest Step
	// belongs.
	QuestlineItemHash Hash[InventoryItemDefinition] `json:"questlineItemHash"`

	// If True, all objectives must be completed for the step to be completed. If False, any one objective
	// can be completed for the step to be completed.
	RequireFullObjectiveCompletion bool `json:"requireFullObjectiveCompletion"`
}

Destiny.Definitions.DestinyItemObjectiveBlockDefinition

An item can have objectives on it. In practice, these are the exclusive purview of "Quest Step" items: DestinyInventoryItemDefinitions that represent a specific step in a Quest. Quest steps have 1:M objectives that we end up processing and returning in live data as DestinyQuestStatus data, and other useful information.

func (ItemObjectiveBlockDefinition) DefinitionTable

func (d ItemObjectiveBlockDefinition) DefinitionTable() string

type ItemObjectivesComponent

type ItemObjectivesComponent struct {

	// If we have any information on when these objectives were completed, this will be the date of that
	// completion. This won't be on many items, but could be interesting for some items that do store this
	// information.
	DateCompleted Nullable[Timestamp] `json:"dateCompleted,omitempty"`

	// I may regret naming it this way - but this represents when an item has an objective that doesn't
	// serve a beneficial purpose, but rather is used for "flavor" or additional information. For instance,
	// when Emblems track specific stats, those stats are represented as Objectives on the item.
	FlavorObjective ObjectiveProgress `json:"flavorObjective"`

	// If the item has a hard association with objectives, your progress on them will be defined here.
	// Objectives are our standard way to describe a series of tasks that have to be completed for a
	// reward.
	Objectives []ObjectiveProgress `json:"objectives"`
}

Destiny.Entities.Items.DestinyItemObjectivesComponent

Items can have objectives and progression. When you request this block, you will obtain information about any Objectives and progression tied to this item.

type ItemPeerView

type ItemPeerView struct {

	// The list of dyes that have been applied to this item.
	Dyes []DyeReference `json:"dyes"`

	// The hash identifier of the item in question. Use it to look up the DestinyInventoryItemDefinition of
	// the item for static rendering data.
	ItemHash Hash[InventoryItemDefinition] `json:"itemHash"`
}

Destiny.Character.DestinyItemPeerView

Bare minimum summary information for an item, for the sake of 3D rendering the item.

type ItemPerkEntryDefinition

type ItemPerkEntryDefinition struct {

	// A hash identifier for the DestinySandboxPerkDefinition being provided on the item.
	PerkHash Hash[SandboxPerkDefinition] `json:"perkHash"`

	// Indicates whether this perk should be shown, or if it should be shown disabled.
	PerkVisibility ItemPerkVisibility `json:"perkVisibility"`

	// If this perk is not active, this is the string to show for why it's not providing its benefits.
	RequirementDisplayString string `json:"requirementDisplayString"`
}

Destiny.Definitions.DestinyItemPerkEntryDefinition

An intrinsic perk on an item, and the requirements for it to be activated.

func (ItemPerkEntryDefinition) DefinitionTable

func (d ItemPerkEntryDefinition) DefinitionTable() string

type ItemPerkVisibility

type ItemPerkVisibility int32

Destiny.ItemPerkVisibility

Indicates how a perk should be shown, or if it should be, in the game UI. Maybe useful for those of you trying to filter out internal-use-only perks (or for those of you trying to figure out what they do!)

func (ItemPerkVisibility) Enum

func (e ItemPerkVisibility) Enum() string

type ItemPerksComponent

type ItemPerksComponent struct {

	// The list of perks to display in an item tooltip - and whether or not they have been activated.
	Perks []PerkReference `json:"perks"`
}

Destiny.Entities.Items.DestinyItemPerksComponent

Instanced items can have perks: benefits that the item bestows. These are related to DestinySandboxPerkDefinition, and sometimes - but not always - have human readable info. When they do, they are the icons and text that you see in an item's tooltip. Talent Grids, Sockets, and the item itself can apply Perks, which are then summarized here for your convenience.

type ItemPlug

type ItemPlug struct {

	// If true, this plug has met all of its insertion requirements. Big if true.
	CanInsert bool `json:"canInsert"`

	// If a plug is not enabled, this will be populated with indexes into the plug item definition's
	// plug.enabledRules property, so that you can show the reasons why it is not enabled.
	// This list will be empty if the plug is enabled.
	EnableFailIndexes []int32 `json:"enableFailIndexes"`

	// If true, this plug will provide its benefits while inserted.
	Enabled bool `json:"enabled"`

	// If the plug cannot be inserted for some reason, this will have the indexes into the plug item
	// definition's plug.insertionRules property, so you can show the reasons why it can't be inserted.
	// This list will be empty if the plug can be inserted.
	InsertFailIndexes []int32 `json:"insertFailIndexes"`

	// The hash identifier of the DestinyInventoryItemDefinition that represents this plug.
	PlugItemHash Hash[InventoryItemDefinition] `json:"plugItemHash"`

	// Sometimes, Plugs may have objectives: these are often used for flavor and display purposes, but they
	// can be used for any arbitrary purpose (both fortunately and unfortunately). Recently (with Season 2)
	// they were expanded in use to be used as the "gating" for whether the plug can be inserted at all.
	// For instance, a Plug might be tracking the number of PVP kills you have made. It will use the parent
	// item's data about that tracking status to determine what to show, and will generally show it using
	// the DestinyObjectiveDefinition's progressDescription property. Refer to the plug's itemHash and
	// objective property for more information if you would like to display even more data.
	PlugObjectives []ObjectiveProgress `json:"plugObjectives"`
}

Destiny.Sockets.DestinyItemPlug

type ItemPlugBase

type ItemPlugBase struct {

	// If true, this plug has met all of its insertion requirements. Big if true.
	CanInsert bool `json:"canInsert"`

	// If a plug is not enabled, this will be populated with indexes into the plug item definition's
	// plug.enabledRules property, so that you can show the reasons why it is not enabled.
	// This list will be empty if the plug is enabled.
	EnableFailIndexes []int32 `json:"enableFailIndexes"`

	// If true, this plug will provide its benefits while inserted.
	Enabled bool `json:"enabled"`

	// If the plug cannot be inserted for some reason, this will have the indexes into the plug item
	// definition's plug.insertionRules property, so you can show the reasons why it can't be inserted.
	// This list will be empty if the plug can be inserted.
	InsertFailIndexes []int32 `json:"insertFailIndexes"`

	// The hash identifier of the DestinyInventoryItemDefinition that represents this plug.
	PlugItemHash Hash[InventoryItemDefinition] `json:"plugItemHash"`
}

Destiny.Sockets.DestinyItemPlugBase

type ItemPlugComponent

type ItemPlugComponent struct {

	// If true, this plug has met all of its insertion requirements. Big if true.
	CanInsert bool `json:"canInsert"`

	// If a plug is not enabled, this will be populated with indexes into the plug item definition's
	// plug.enabledRules property, so that you can show the reasons why it is not enabled.
	// This list will be empty if the plug is enabled.
	EnableFailIndexes []int32 `json:"enableFailIndexes"`

	// If true, this plug will provide its benefits while inserted.
	Enabled bool `json:"enabled"`

	// If the plug cannot be inserted for some reason, this will have the indexes into the plug item
	// definition's plug.insertionRules property, so you can show the reasons why it can't be inserted.
	// This list will be empty if the plug can be inserted.
	InsertFailIndexes []int32 `json:"insertFailIndexes"`

	// The hash identifier of the DestinyInventoryItemDefinition that represents this plug.
	PlugItemHash Hash[InventoryItemDefinition] `json:"plugItemHash"`

	// Sometimes, Plugs may have objectives: these are often used for flavor and display purposes, but they
	// can be used for any arbitrary purpose (both fortunately and unfortunately). Recently (with Season 2)
	// they were expanded in use to be used as the "gating" for whether the plug can be inserted at all.
	// For instance, a Plug might be tracking the number of PVP kills you have made. It will use the parent
	// item's data about that tracking status to determine what to show, and will generally show it using
	// the DestinyObjectiveDefinition's progressDescription property. Refer to the plug's itemHash and
	// objective property for more information if you would like to display even more data.
	PlugObjectives []ObjectiveProgress `json:"plugObjectives"`
}

Destiny.Components.Items.DestinyItemPlugComponent

Plugs are non-instanced items that can provide Stat and Perk benefits when socketed into an instanced item. Items have Sockets, and Plugs are inserted into Sockets. This component finds all items that are considered "Plugs" in your inventory, and return information about the plug aside from any specific Socket into which it could be inserted.

type ItemPlugDefinition

type ItemPlugDefinition struct {

	// The alternate plug of the plug: only applies when the item is in states that only the server can
	// know about and control, unfortunately. See AlternateUiPlugLabel for the related label info.
	AlternatePlugStyle BitmaskSet[PlugUiStyles] `json:"alternatePlugStyle"`

	// If the plug meets certain state requirements, it may have an alternative label applied to it. This
	// is the alternative label that will be applied in such a situation.
	AlternateUiPlugLabel string `json:"alternateUiPlugLabel"`

	// It's not enough for the plug to be inserted. It has to be enabled as well. For it to be enabled, it
	// may require materials. This is the hash identifier for the DestinyMaterialRequirementSetDefinition
	// for those requirements, if there is one.
	EnabledMaterialRequirementHash Hash[MaterialRequirementSetDefinition] `json:"enabledMaterialRequirementHash"`

	// The rules around whether the plug, once inserted, is enabled and providing its benefits.
	// The live data DestinyItemPlugComponent.enableFailIndexes will be an index into this array, so you
	// can pull out the failure strings appropriate for the user.
	EnabledRules []PlugRuleDefinition `json:"enabledRules"`

	// IF not null, this plug provides Energy capacity to the item in which it is socketed. In Armor 2.0
	// for example, is implemented in a similar way to Masterworks, where visually it's a single area of
	// the UI being clicked on to "Upgrade" to higher energy levels, but it's actually socketing new plugs.
	EnergyCapacity EnergyCapacityEntry `json:"energyCapacity"`

	// IF not null, this plug has an energy cost. This contains the details of that cost.
	EnergyCost EnergyCostEntry `json:"energyCost"`

	// If inserting this plug requires materials, this is the hash identifier for looking up the
	// DestinyMaterialRequirementSetDefinition for those requirements.
	InsertionMaterialRequirementHash Hash[MaterialRequirementSetDefinition] `json:"insertionMaterialRequirementHash"`

	// The rules around when this plug can be inserted into a socket, aside from the socket's individual
	// restrictions.
	// The live data DestinyItemPlugComponent.insertFailIndexes will be an index into this array, so you
	// can pull out the failure strings appropriate for the user.
	InsertionRules []PlugRuleDefinition `json:"insertionRules"`

	// If TRUE, this plug is used for UI display purposes only, and doesn't have any interesting effects of
	// its own.
	IsDummyPlug bool `json:"isDummyPlug"`

	// If you successfully socket the item, this will determine whether or not you get "refunded" on the
	// plug.
	OnActionRecreateSelf bool `json:"onActionRecreateSelf"`

	// Do you ever get the feeling that a system has become so overburdened by edge cases that it probably
	// should have become some other system entirely? So do I!
	// In totally unrelated news, Plugs can now override properties of their parent items. This is some of
	// the relevant definition data for those overrides.
	// If this is populated, it will have the override data to be applied when this plug is applied to an
	// item.
	ParentItemOverride ParentItemOverride `json:"parentItemOverride"`

	// Indicates the rules about when this plug can be used. See the PlugAvailabilityMode enumeration for
	// more information!
	PlugAvailability PlugAvailabilityMode `json:"plugAvailability"`

	// The hash for the plugCategoryIdentifier. You can use this instead if you wish: I put both in the
	// definition for debugging purposes.
	PlugCategoryHash uint32 `json:"plugCategoryHash"`

	// The string identifier for the plug's category. Use the socket's
	// DestinySocketTypeDefinition.plugWhitelist to determine whether this plug can be inserted into the
	// socket.
	PlugCategoryIdentifier string `json:"plugCategoryIdentifier"`

	PlugStyle BitmaskSet[PlugUiStyles] `json:"plugStyle"`

	// In the game, if you're inspecting a plug item directly, this will be the item shown with the plug
	// attached. Look up the DestinyInventoryItemDefinition for this hash for the item.
	PreviewItemOverrideHash Hash[InventoryItemDefinition] `json:"previewItemOverrideHash"`

	// Plugs can have arbitrary, UI-defined identifiers that the UI designers use to determine the style
	// applied to plugs. Unfortunately, we have neither a definitive list of these labels nor advance
	// warning of when new labels might be applied or how that relates to how they get rendered. If you
	// want to, you can refer to known labels to change your own styles: but know that new ones can be
	// created arbitrarily, and we have no way of associating the labels with any specific UI style
	// guidance... you'll have to piece that together on your end. Or do what we do, and just show plugs
	// more generically, without specialized styles.
	UiPlugLabel string `json:"uiPlugLabel"`
}

Destiny.Definitions.Items.DestinyItemPlugDefinition

If an item is a Plug, its DestinyInventoryItemDefinition.plug property will be populated with an instance of one of these bad boys. This gives information about when it can be inserted, what the plug's category is (and thus whether it is compatible with a socket... see DestinySocketTypeDefinition for information about Plug Categories and socket compatibility), whether it is enabled and other Plug info.

func (ItemPlugDefinition) DefinitionTable

func (d ItemPlugDefinition) DefinitionTable() string

type ItemPlugObjectivesComponent

type ItemPlugObjectivesComponent struct {

	// This set of data is keyed by the Item Hash (DestinyInventoryItemDefinition) of the plug whose
	// objectives are being returned, with the value being the list of those objectives.
	//
	//	What if two plugs with the same hash are returned for an item, you ask?
	//	Good question! They share the same item-scoped state, and as such would have identical objective
	//
	// state as a result. How's that for convenient.
	//
	//	Sometimes, Plugs may have objectives: generally, these are used for flavor and display purposes.
	//
	// For instance, a Plug might be tracking the number of PVP kills you have made. It will use the parent
	// item's data about that tracking status to determine what to show, and will generally show it using
	// the DestinyObjectiveDefinition's progressDescription property. Refer to the plug's itemHash and
	// objective property for more information if you would like to display even more data.
	ObjectivesPerPlug map[Hash[InventoryItemDefinition]][]ObjectiveProgress `json:"objectivesPerPlug"`
}

Destiny.Components.Items.DestinyItemPlugObjectivesComponent

type ItemPreviewBlockDefinition

type ItemPreviewBlockDefinition struct {

	// If this item should show you Artifact information when you preview it, this is the hash identifier
	// of the DestinyArtifactDefinition for the artifact whose data should be shown.
	ArtifactHash Nullable[Hash[ArtifactDefinition]] `json:"artifactHash,omitempty"`

	// This is a list of the items being previewed, categorized in the same way as they are in the preview
	// UI.
	DerivedItemCategories []DerivedItemCategoryDefinition `json:"derivedItemCategories"`

	// If the preview has an associated action (like "Open"), this will be the localized string for that
	// action.
	PreviewActionString string `json:"previewActionString"`

	// If the preview data is derived from a fake "Preview" Vendor, this will be the hash identifier for
	// the DestinyVendorDefinition of that fake vendor.
	PreviewVendorHash Hash[VendorDefinition] `json:"previewVendorHash"`

	// A string that the game UI uses as a hint for which detail screen to show for the item. You, too, can
	// leverage this for your own custom screen detail views. Note, however, that these are arbitrarily
	// defined by designers: there's no guarantees of a fixed, known number of these - so fall back to
	// something reasonable if you don't recognize it.
	ScreenStyle string `json:"screenStyle"`
}

Destiny.Definitions.DestinyItemPreviewBlockDefinition

Items like Sacks or Boxes can have items that it shows in-game when you view details that represent the items you can obtain if you use or acquire the item. This defines those categories, and gives some insights into that data's source.

func (ItemPreviewBlockDefinition) DefinitionTable

func (d ItemPreviewBlockDefinition) DefinitionTable() string

type ItemQualityBlockDefinition

type ItemQualityBlockDefinition struct {

	// The latest version available for this item.
	CurrentVersion uint32 `json:"currentVersion"`

	// Icon overlays to denote the item version and power cap status.
	DisplayVersionWatermarkIcons []string `json:"displayVersionWatermarkIcons"`

	// The hash identifier for the infusion. It does not map to a Definition entity.
	// DEPRECATED: Items can now have multiple infusion categories. Please use infusionCategoryHashes
	// instead.
	InfusionCategoryHash uint32 `json:"infusionCategoryHash"`

	// If any one of these hashes matches any value in another item's infusionCategoryHashes, the two can
	// infuse with each other.
	InfusionCategoryHashes []uint32 `json:"infusionCategoryHashes"`

	// The string identifier for this item's "infusability", if any.
	// Items that match the same infusionCategoryName are allowed to infuse with each other.
	// DEPRECATED: Items can now have multiple infusion categories. Please use infusionCategoryHashes
	// instead.
	InfusionCategoryName string `json:"infusionCategoryName"`

	// The "base" defined level of an item. This is a list because, in theory, each Expansion could define
	// its own base level for an item.
	// In practice, not only was that never done in Destiny 1, but now this isn't even populated at all.
	// When it's not populated, the level at which it spawns has to be inferred by Reward information, of
	// which BNet receives an imperfect view and will only be reliable on instanced data as a result.
	ItemLevels []int32 `json:"itemLevels"`

	// An item can refer to pre-set level requirements. They are defined in
	// DestinyProgressionLevelRequirementDefinition, and you can use this hash to find the appropriate
	// definition.
	ProgressionLevelRequirementHash Hash[ProgressionLevelRequirementDefinition] `json:"progressionLevelRequirementHash"`

	// qualityLevel is used in combination with the item's level to calculate stats like Attack and
	// Defense. It plays a role in that calculation, but not nearly as large as itemLevel does.
	QualityLevel int32 `json:"qualityLevel"`

	// The list of versions available for this item.
	Versions []ItemVersionDefinition `json:"versions"`
}

Destiny.Definitions.DestinyItemQualityBlockDefinition

An item's "Quality" determines its calculated stats. The Level at which the item spawns is combined with its "qualityLevel" along with some additional calculations to determine the value of those stats. In Destiny 2, most items don't have default item levels and quality, making this property less useful: these apparently are almost always determined by the complex mechanisms of the Reward system rather than statically. They are still provided here in case they are still useful for people. This also contains some information about Infusion.

func (ItemQualityBlockDefinition) DefinitionTable

func (d ItemQualityBlockDefinition) DefinitionTable() string

type ItemQuantity

type ItemQuantity struct {

	// Indicates that this item quantity may be conditionally shown or hidden, based on various sources of
	// state. For example: server flags, account state, or character progress.
	HasConditionalVisibility bool `json:"hasConditionalVisibility"`

	// The hash identifier for the item in question. Use it to look up the item's
	// DestinyInventoryItemDefinition.
	ItemHash Hash[InventoryItemDefinition] `json:"itemHash"`

	// If this quantity is referring to a specific instance of an item, this will have the item's instance
	// ID. Normally, this will be null.
	ItemInstanceID Nullable[Int64] `json:"itemInstanceId,omitempty"`

	// The amount of the item needed/available depending on the context of where DestinyItemQuantity is
	// being used.
	Quantity int32 `json:"quantity"`
}

Destiny.DestinyItemQuantity

Used in a number of Destiny contracts to return data about an item stack and its quantity. Can optionally return an itemInstanceId if the item is instanced - in which case, the quantity returned will be 1. If it's not... uh, let me know okay? Thanks.

type ItemRenderComponent

type ItemRenderComponent struct {

	// A dictionary for rendering gear components, with:
	// key = Art Arrangement Region Index
	// value = The chosen Arrangement Index for the Region, based on the value of a stat on the item used
	// for making the choice.
	ArtRegions map[int32]int32 `json:"artRegions"`

	// If you should use custom dyes on this item, it will be indicated here.
	UseCustomDyes bool `json:"useCustomDyes"`
}

Destiny.Entities.Items.DestinyItemRenderComponent

Many items can be rendered in 3D. When you request this block, you will obtain the custom data needed to render this specific instance of the item.

type ItemResponse

type ItemResponse struct {

	// If the item is on a character, this will return the ID of the character that is holding the item.
	CharacterID Nullable[Int64] `json:"characterId,omitempty"`

	// Basic instance data for the item.
	// COMPONENT TYPE: ItemInstances
	Instance ComponentResponse[ItemInstanceComponent] `json:"instance"`

	// Common data for the item relevant to its non-instanced properties.
	// COMPONENT TYPE: ItemCommonData
	Item ComponentResponse[ItemComponent] `json:"item"`

	// Information specifically about the item's objectives.
	// COMPONENT TYPE: ItemObjectives
	Objectives ComponentResponse[ItemObjectivesComponent] `json:"objectives"`

	// Information specifically about the perks currently active on the item.
	// COMPONENT TYPE: ItemPerks
	Perks ComponentResponse[ItemPerksComponent] `json:"perks"`

	// Information about objectives on Plugs for a given item. See the component's documentation for more
	// info.
	// COMPONENT TYPE: ItemPlugObjectives
	PlugObjectives ComponentResponse[ItemPlugObjectivesComponent] `json:"plugObjectives"`

	// Information about how to render the item in 3D.
	// COMPONENT TYPE: ItemRenderData
	RenderData ComponentResponse[ItemRenderComponent] `json:"renderData"`

	// Information about the Reusable Plugs for sockets on an item. These are plugs that you can insert
	// into the given socket regardless of if you actually own an instance of that plug: they are
	// logic-driven plugs rather than inventory-driven.
	//
	//	These may need to be combined with Plug Set component data to get a full picture of available plugs
	//
	// on a given socket.
	//
	//	COMPONENT TYPE: ItemReusablePlugs
	ReusablePlugs ComponentResponse[ItemReusablePlugsComponent] `json:"reusablePlugs"`

	// Information about the sockets of the item: which are currently active, what potential sockets you
	// could have and the stats/abilities/perks you can gain from them.
	// COMPONENT TYPE: ItemSockets
	Sockets ComponentResponse[ItemSocketsComponent] `json:"sockets"`

	// Information about the computed stats of the item: power, defense, etc...
	// COMPONENT TYPE: ItemStats
	Stats ComponentResponse[ItemStatsComponent] `json:"stats"`

	// Information about the talent grid attached to the item. Talent nodes can provide a variety of
	// benefits and abilities, and in Destiny 2 are used almost exclusively for the character's "Builds".
	// COMPONENT TYPE: ItemTalentGrids
	TalentGrid ComponentResponse[ItemTalentGridComponent] `json:"talentGrid"`
}

Destiny.Responses.DestinyItemResponse

The response object for retrieving an individual instanced item. None of these components are relevant for an item that doesn't have an "itemInstanceId": for those, get your information from the DestinyInventoryDefinition.

type ItemReusablePlugsComponent

type ItemReusablePlugsComponent struct {

	// If the item supports reusable plugs, this is the list of plugs that are allowed to be used for the
	// socket, and any relevant information about whether they are "enabled", whether they are allowed to
	// be inserted, and any other information such as objectives.
	//
	//	A Reusable Plug is a plug that you can always insert into this socket as long as its insertion
	//
	// rules are passed, regardless of whether or not you have the plug in your inventory. An example of it
	// failing an insertion rule would be if it has an Objective that needs to be completed before it can
	// be inserted, and that objective hasn't been completed yet.
	//
	//	In practice, a socket will *either* have reusable plugs *or* it will allow for plugs in your
	//
	// inventory to be inserted. See DestinyInventoryItemDefinition.socket for more info.
	//
	//	KEY = The INDEX into the item's list of sockets. VALUE = The set of plugs for that socket.
	//	If a socket doesn't have any reusable plugs defined at the item scope, there will be no entry for
	//
	// that socket.
	Plugs map[int32][]ItemPlugBase `json:"plugs"`
}

Destiny.Components.Items.DestinyItemReusablePlugsComponent

type ItemSackBlockDefinition

type ItemSackBlockDefinition struct {

	// A description of what will happen when you open the sack. As far as I can tell, this is blank
	// currently. Unknown whether it will eventually be populated with useful info.
	DetailAction string `json:"detailAction"`

	// The localized name of the action being performed when you open the sack.
	OpenAction string `json:"openAction"`

	OpenOnAcquire bool `json:"openOnAcquire"`

	SelectItemCount int32 `json:"selectItemCount"`

	VendorSackType string `json:"vendorSackType"`
}

Destiny.Definitions.DestinyItemSackBlockDefinition

Some items are "sacks" - they can be "opened" to produce other items. This is information related to its sack status, mostly UI strings. Engrams are an example of items that are considered to be "Sacks".

func (ItemSackBlockDefinition) DefinitionTable

func (d ItemSackBlockDefinition) DefinitionTable() string

type ItemSetActionRequest

type ItemSetActionRequest struct {
	CharacterID Int64 `json:"characterId"`

	ItemIds []Int64 `json:"itemIds"`

	MembershipType BungieMembershipType `json:"membershipType"`
}

Destiny.Requests.Actions.DestinyItemSetActionRequest

type ItemSetBlockDefinition

type ItemSetBlockDefinition struct {

	// A collection of hashes of set items, for items such as Quest Metadata items that possess this data.
	ItemList []ItemSetBlockEntryDefinition `json:"itemList"`

	// The description of the quest line that this quest step is a part of.
	QuestLineDescription string `json:"questLineDescription"`

	// The name of the quest line that this quest step is a part of.
	QuestLineName string `json:"questLineName"`

	// An additional summary of this step in the quest line.
	QuestStepSummary string `json:"questStepSummary"`

	// If true, items in the set can only be added in increasing order, and adding an item will remove any
	// previous item. For Quests, this is by necessity true. Only one quest step is present at a time, and
	// previous steps are removed as you advance in the quest.
	RequireOrderedSetItemAdd bool `json:"requireOrderedSetItemAdd"`

	// If true, the UI should treat this quest as "featured"
	SetIsFeatured bool `json:"setIsFeatured"`

	// A string identifier we can use to attempt to identify the category of the Quest.
	SetType string `json:"setType"`
}

Destiny.Definitions.DestinyItemSetBlockDefinition

Primarily for Quests, this is the definition of properties related to the item if it is a quest and its various quest steps.

func (ItemSetBlockDefinition) DefinitionTable

func (d ItemSetBlockDefinition) DefinitionTable() string

type ItemSetBlockEntryDefinition

type ItemSetBlockEntryDefinition struct {

	// This is the hash identifier for a DestinyInventoryItemDefinition representing this quest step.
	ItemHash Hash[InventoryItemDefinition] `json:"itemHash"`

	// Used for tracking which step a user reached. These values will be populated in the user's internal
	// state, which we expose externally as a more usable DestinyQuestStatus object. If this item has been
	// obtained, this value will be set in trackingUnlockValueHash.
	TrackingValue int32 `json:"trackingValue"`
}

Destiny.Definitions.DestinyItemSetBlockEntryDefinition

Defines a particular entry in an ItemSet (AKA a particular Quest Step in a Quest)

func (ItemSetBlockEntryDefinition) DefinitionTable

func (d ItemSetBlockEntryDefinition) DefinitionTable() string

type ItemSocketBlockDefinition

type ItemSocketBlockDefinition struct {

	// This was supposed to be a string that would give per-item details about sockets. In practice, it
	// turns out that all this ever has is the localized word "details". ... that's lame, but perhaps it
	// will become something cool in the future.
	Detail string `json:"detail"`

	// Each intrinsic (or immutable/permanent) socket on an item is defined here, along with the plug that
	// is permanently affixed to the socket.
	IntrinsicSockets []ItemIntrinsicSocketEntryDefinition `json:"intrinsicSockets"`

	// A convenience property, that refers to the sockets in the "sockets" property, pre-grouped by
	// category and ordered in the manner that they should be grouped in the UI. You could form this
	// yourself with the existing data, but why would you want to? Enjoy life man.
	SocketCategories []ItemSocketCategoryDefinition `json:"socketCategories"`

	// Each non-intrinsic (or mutable) socket on an item is defined here. Check inside for more info.
	SocketEntries []ItemSocketEntryDefinition `json:"socketEntries"`
}

Destiny.Definitions.DestinyItemSocketBlockDefinition

If defined, the item has at least one socket.

func (ItemSocketBlockDefinition) DefinitionTable

func (d ItemSocketBlockDefinition) DefinitionTable() string

type ItemSocketCategoryDefinition

type ItemSocketCategoryDefinition struct {

	// The hash for the Socket Category: a quick way to go get the header display information for the
	// category. Use it to look up DestinySocketCategoryDefinition info.
	SocketCategoryHash Hash[SocketCategoryDefinition] `json:"socketCategoryHash"`

	// Use these indexes to look up the sockets in the "sockets.socketEntries" property on the item
	// definition. These are the indexes under the category, in game-rendered order.
	SocketIndexes []int32 `json:"socketIndexes"`
}

Destiny.Definitions.DestinyItemSocketCategoryDefinition

Sockets are grouped into categories in the UI. These define which category and which sockets are under that category.

func (ItemSocketCategoryDefinition) DefinitionTable

func (d ItemSocketCategoryDefinition) DefinitionTable() string

type ItemSocketEntryDefinition

type ItemSocketEntryDefinition struct {

	// If true, then this socket is visible in the item's "default" state. If you have an instance, you
	// should always check the runtime state, as that can override this visibility setting: but if you're
	// looking at the item on a conceptual level, this property can be useful for hiding data such as
	// legacy sockets - which remain defined on items for infrastructure purposes, but can be confusing for
	// users to see.
	DefaultVisible bool `json:"defaultVisible"`

	// If this is true, the perks provided by this socket shouldn't be shown in the item's tooltip. This
	// might be useful if it's providing a hidden bonus, or if the bonus is less important than other
	// benefits on the item.
	HidePerksInItemTooltip bool `json:"hidePerksInItemTooltip"`

	// Indicates where you should go to get plugs for this socket. This will affect how you populate your
	// UI, as well as what plugs are valid for this socket. It's an alternative to having to check for the
	// existence of certain properties (reusablePlugItems for example) to infer where plugs should come
	// from.
	PlugSources BitmaskSet[SocketPlugSources] `json:"plugSources"`

	// If this is true, then the socket will not be initialized with a plug if the item is purchased from a
	// Vendor.
	// Remember that Vendors are much more than conceptual vendors: they include "Collection Kiosks" and
	// other entities. See DestinyVendorDefinition for more information.
	PreventInitializationOnVendorPurchase bool `json:"preventInitializationOnVendorPurchase"`

	// This field replaces "randomizedPlugItems" as of Shadowkeep launch. If a socket has randomized plugs,
	// this is a pointer to the set of plugs that could be used, as defined in DestinyPlugSetDefinition.
	//
	//	If null, the item has no randomized plugs.
	RandomizedPlugSetHash Nullable[Hash[PlugSetDefinition]] `json:"randomizedPlugSetHash,omitempty"`

	// This is a list of pre-determined plugs that can *always* be plugged into this socket, without the
	// character having the plug in their inventory.
	// If this list is populated, you will not be allowed to plug an arbitrary item in the socket: you will
	// only be able to choose from one of these reusable plugs.
	ReusablePlugItems []ItemSocketEntryPlugItemDefinition `json:"reusablePlugItems"`

	// If this socket's plugs come from a reusable DestinyPlugSetDefinition, this is the identifier for
	// that set. We added this concept to reduce some major duplication that's going to come from sockets
	// as replacements for what was once implemented as large sets of items and kiosks (like Emotes).
	//
	//	As of Shadowkeep, these will come up much more frequently and be driven by game content rather than
	//
	// custom curation.
	ReusablePlugSetHash Nullable[Hash[PlugSetDefinition]] `json:"reusablePlugSetHash,omitempty"`

	// If a valid hash, this is the hash identifier for the DestinyInventoryItemDefinition representing the
	// Plug that will be initially inserted into the item on item creation. Otherwise, this Socket will
	// either start without a plug inserted, or will have one randomly inserted.
	SingleInitialItemHash Hash[InventoryItemDefinition] `json:"singleInitialItemHash"`

	// All sockets have a type, and this is the hash identifier for this particular type. Use it to look up
	// the DestinySocketTypeDefinition: read there for more information on how socket types affect the
	// behavior of the socket.
	SocketTypeHash Hash[SocketTypeDefinition] `json:"socketTypeHash"`
}

Destiny.Definitions.DestinyItemSocketEntryDefinition

The definition information for a specific socket on an item. This will determine how the socket behaves in-game.

func (ItemSocketEntryDefinition) DefinitionTable

func (d ItemSocketEntryDefinition) DefinitionTable() string

type ItemSocketEntryPlugItemDefinition

type ItemSocketEntryPlugItemDefinition struct {

	// The hash identifier of a DestinyInventoryItemDefinition representing the plug that can be inserted.
	PlugItemHash Hash[InventoryItemDefinition] `json:"plugItemHash"`
}

Destiny.Definitions.DestinyItemSocketEntryPlugItemDefinition

The definition of a known, reusable plug that can be applied to a socket.

func (ItemSocketEntryPlugItemDefinition) DefinitionTable

func (d ItemSocketEntryPlugItemDefinition) DefinitionTable() string

type ItemSocketEntryPlugItemRandomizedDefinition

type ItemSocketEntryPlugItemRandomizedDefinition struct {
	CraftingRequirements PlugItemCraftingRequirements `json:"craftingRequirements"`

	// Indicates if the plug can be rolled on the current version of the item. For example, older versions
	// of weapons may have plug rolls that are no longer possible on the current versions.
	CurrentlyCanRoll bool `json:"currentlyCanRoll"`

	// The hash identifier of a DestinyInventoryItemDefinition representing the plug that can be inserted.
	PlugItemHash Hash[InventoryItemDefinition] `json:"plugItemHash"`
}

Destiny.Definitions.DestinyItemSocketEntryPlugItemRandomizedDefinition

func (ItemSocketEntryPlugItemRandomizedDefinition) DefinitionTable

type ItemSocketState

type ItemSocketState struct {

	// If a plug is inserted but not enabled, this will be populated with indexes into the plug item
	// definition's plug.enabledRules property, so that you can show the reasons why it is not enabled.
	EnableFailIndexes []int32 `json:"enableFailIndexes"`

	// Even if a plug is inserted, it doesn't mean it's enabled.
	// This flag indicates whether the plug is active and providing its benefits.
	IsEnabled bool `json:"isEnabled"`

	// A plug may theoretically provide benefits but not be visible - for instance, some older items use a
	// plug's damage type perk to modify their own damage type. These, though they are not visible, still
	// affect the item. This field indicates that state.
	// An invisible plug, while it provides benefits if it is Enabled, cannot be directly modified by the
	// user.
	IsVisible bool `json:"isVisible"`

	// The currently active plug, if any.
	// Note that, because all plugs are statically defined, its effect on stats and perks can be statically
	// determined using the plug item's definition. The stats and perks can be taken at face value on the
	// plug item as the stats and perks it will provide to the user/item.
	PlugHash Nullable[Hash[InventoryItemDefinition]] `json:"plugHash,omitempty"`
}

Destiny.Entities.Items.DestinyItemSocketState

The status of a given item's socket. (which plug is inserted, if any: whether it is enabled, what "reusable" plugs can be inserted, etc...) If I had it to do over, this would probably have a DestinyItemPlug representing the inserted item instead of most of these properties. :shrug:

type ItemSocketsComponent

type ItemSocketsComponent struct {

	// The list of all sockets on the item, and their status information.
	Sockets []ItemSocketState `json:"sockets"`
}

Destiny.Entities.Items.DestinyItemSocketsComponent

Instanced items can have sockets, which are slots on the item where plugs can be inserted. Sockets are a bit complex: be sure to examine the documentation on the DestinyInventoryItemDefinition's "socket" block and elsewhere on these objects for more details.

type ItemSortType

type ItemSortType int32

Destiny.DestinyItemSortType

Determines how items are sorted in an inventory bucket.

func (ItemSortType) Enum

func (e ItemSortType) Enum() string

type ItemSourceBlockDefinition

type ItemSourceBlockDefinition struct {

	// If we found that this item is exclusive to a specific platform, this will be set to the
	// BungieMembershipType enumeration that matches that platform.
	Exclusive BungieMembershipType `json:"exclusive"`

	// The list of hash identifiers for Reward Sources that hint where the item can be found
	// (DestinyRewardSourceDefinition).
	SourceHashes []uint32 `json:"sourceHashes"`

	// A collection of details about the stats that were computed for the ways we found that the item could
	// be spawned.
	Sources []ItemSourceDefinition `json:"sources"`

	// A denormalized reference back to vendors that potentially sell this item.
	VendorSources []ItemVendorSourceReference `json:"vendorSources"`
}

Destiny.Definitions.DestinyItemSourceBlockDefinition

Data about an item's "sources": ways that the item can be obtained.

func (ItemSourceBlockDefinition) DefinitionTable

func (d ItemSourceBlockDefinition) DefinitionTable() string

type ItemSourceDefinition

type ItemSourceDefinition struct {

	// The stats computed for this level/quality range.
	ComputedStats map[uint32]InventoryItemStatDefinition `json:"computedStats"`

	// The level at which the item spawns. Essentially the Primary Key for this source data: there will be
	// multiple of these source entries per item that has source data, grouped by the level at which the
	// item spawns.
	Level int32 `json:"level"`

	// The maximum Character Level required for equipping the item when the item spawns at the item level
	// defined on this DestinyItemSourceDefinition, as far as we saw in our processing.
	MaxLevelRequired int32 `json:"maxLevelRequired"`

	// The maximum quality at which the item spawns for this level.
	MaxQuality int32 `json:"maxQuality"`

	// The minimum Character Level required for equipping the item when the item spawns at the item level
	// defined on this DestinyItemSourceDefinition, as far as we saw in our processing.
	MinLevelRequired int32 `json:"minLevelRequired"`

	// The minimum Quality at which the item spawns for this level. Examine DestinyInventoryItemDefinition
	// for more information about what Quality means. Just don't ask Phaedrus about it, he'll never stop
	// talking and you'll have to write a book about it.
	MinQuality int32 `json:"minQuality"`

	// The DestinyRewardSourceDefinitions found that can spawn the item at this level.
	SourceHashes []uint32 `json:"sourceHashes"`
}

Destiny.Definitions.Sources.DestinyItemSourceDefinition

Properties of a DestinyInventoryItemDefinition that store all of the information we were able to discern about how the item spawns, and where you can find the item. Items will have many of these sources, one per level at which it spawns, to try and give more granular data about where items spawn for specific level ranges.

func (ItemSourceDefinition) DefinitionTable

func (d ItemSourceDefinition) DefinitionTable() string

type ItemStatBlockDefinition

type ItemStatBlockDefinition struct {

	// If true, the game won't show the "primary" stat on this item when you inspect it.
	// NOTE: This is being manually mapped, because I happen to want it in a block that isn't going to
	// directly create this derivative block.
	DisablePrimaryStatDisplay bool `json:"disablePrimaryStatDisplay"`

	// A quick and lazy way to determine whether any stat other than the "primary" stat is actually visible
	// on the item. Items often have stats that we return in case people find them useful, but they're not
	// part of the "Stat Group" and thus we wouldn't display them in our UI. If this is False, then we're
	// not going to display any of these stats other than the primary one.
	HasDisplayableStats bool `json:"hasDisplayableStats"`

	// This stat is determined to be the "primary" stat, and can be looked up in the stats or any other
	// stat collection related to the item.
	// Use this hash to look up the stat's value using DestinyInventoryItemDefinition.stats.stats, and the
	// renderable data for the primary stat in the related DestinyStatDefinition.
	PrimaryBaseStatHash Hash[StatDefinition] `json:"primaryBaseStatHash"`

	// If the item's stats are meant to be modified by a DestinyStatGroupDefinition, this will be the
	// identifier for that definition.
	// If you are using live data or precomputed stats data on the
	// DestinyInventoryItemDefinition.stats.stats property, you don't have to worry about statGroupHash and
	// how it alters stats: the already altered stats are provided to you. But if you want to see how the
	// sausage gets made, or perform computations yourself, this is valuable information.
	StatGroupHash Nullable[Hash[StatGroupDefinition]] `json:"statGroupHash,omitempty"`

	// If you are looking for precomputed values for the stats on a weapon, this is where they are stored.
	// Technically these are the "Display" stat values. Please see DestinyStatsDefinition for what Display
	// Stat Values means, it's a very long story... but essentially these are the closest values BNet can
	// get to the item stats that you see in-game.
	// These stats are keyed by the DestinyStatDefinition's hash identifier for the stat that's found on
	// the item.
	Stats map[Hash[StatDefinition]]InventoryItemStatDefinition `json:"stats"`
}

Destiny.Definitions.DestinyItemStatBlockDefinition

Information about the item's calculated stats, with as much data as we can find for the stats without having an actual instance of the item. Note that this means the entire concept of providing these stats is fundamentally insufficient: we cannot predict with 100% accuracy the conditions under which an item can spawn, so we use various heuristics to attempt to simulate the conditions as accurately as possible. Actual stats for items in-game can and will vary, but these should at least be useful base points for comparison and display. It is also worth noting that some stats, like Magazine size, have further calculations performed on them by scripts in-game and on the game servers that BNet does not have access to. We cannot know how those stats are further transformed, and thus some stats will be inaccurate even on instances of items in BNet vs. how they appear in-game. This is a known limitation of our item statistics, without any planned fix.

func (ItemStatBlockDefinition) DefinitionTable

func (d ItemStatBlockDefinition) DefinitionTable() string

type ItemState

type ItemState int32

Destiny.ItemState

A flags enumeration/bitmask where each bit represents a different possible state that the item can be in that may effect how the item is displayed to the user and what actions can be performed against it.

func (ItemState) Enum

func (e ItemState) Enum() string

type ItemStateRequest

type ItemStateRequest struct {
	CharacterID Int64 `json:"characterId"`

	// The instance ID of the item for this action request.
	ItemID Int64 `json:"itemId"`

	MembershipType BungieMembershipType `json:"membershipType"`

	State bool `json:"state"`
}

Destiny.Requests.Actions.DestinyItemStateRequest

type ItemStatsComponent

type ItemStatsComponent struct {

	// If the item has stats that it provides (damage, defense, etc...), it will be given here.
	Stats map[Hash[StatDefinition]]Stat `json:"stats"`
}

Destiny.Entities.Items.DestinyItemStatsComponent

If you want the stats on an item's instanced data, get this component. These are stats like Attack, Defense etc... and *not* historical stats. Note that some stats have additional computation in-game at runtime - for instance, Magazine Size - and thus these stats might not be 100% accurate compared to what you see in-game for some stats. I know, it sucks. I hate it too.

type ItemSubType

type ItemSubType int32

Destiny.DestinyItemSubType

This Enumeration further classifies items by more specific categorizations than DestinyItemType. The "Sub-Type" is where we classify and categorize items one step further in specificity: "Auto Rifle" instead of just "Weapon" for example, or "Vanguard Bounty" instead of merely "Bounty". These sub-types are provided for historical compatibility with Destiny 1, but an ideal alternative is to use DestinyItemCategoryDefinitions and the DestinyItemDefinition.itemCategories property instead. Item Categories allow for arbitrary hierarchies of specificity, and for items to belong to multiple categories across multiple hierarchies simultaneously. For this enum, we pick a single type as a "best guess" fit. NOTE: This is not all of the item types available, and some of these are holdovers from Destiny 1 that may or may not still exist.

func (ItemSubType) Enum

func (e ItemSubType) Enum() string

type ItemSummaryBlockDefinition

type ItemSummaryBlockDefinition struct {

	// Apparently when rendering an item in a reward, this should be used as a sort priority. We're not
	// doing it presently.
	SortPriority int32 `json:"sortPriority"`
}

Destiny.Definitions.DestinyItemSummaryBlockDefinition

This appears to be information used when rendering rewards. We don't currently use it on BNet.

func (ItemSummaryBlockDefinition) DefinitionTable

func (d ItemSummaryBlockDefinition) DefinitionTable() string

type ItemTalentGridBlockDefinition

type ItemTalentGridBlockDefinition struct {

	// A shortcut string identifier for the "build" in question, if this talent grid has an associated
	// build. Doesn't map to anything we can expose at the moment.
	BuildName string `json:"buildName"`

	// If the talent grid implies a damage type, this is the enum value for that damage type.
	HudDamageType DamageType `json:"hudDamageType"`

	// If the talent grid has a special icon that's shown in the game UI (like builds, funny that), this is
	// the identifier for that icon. Sadly, we don't actually get that icon right now. I'll be looking to
	// replace this with a path to the actual icon itself.
	HudIcon string `json:"hudIcon"`

	// This is meant to be a subtitle for looking at the talent grid. In practice, somewhat frustratingly,
	// this always merely says the localized word for "Details". Great. Maybe it'll have more if talent
	// grids ever get used for more than builds and subclasses again.
	ItemDetailString string `json:"itemDetailString"`

	// The hash identifier of the DestinyTalentGridDefinition attached to this item.
	TalentGridHash Hash[TalentGridDefinition] `json:"talentGridHash"`
}

Destiny.Definitions.DestinyItemTalentGridBlockDefinition

This defines information that can only come from a talent grid on an item. Items mostly have negligible talent grid data these days, but instanced items still retain grids as a source for some of this common information. Builds/Subclasses are the only items left that still have talent grids with meaningful Nodes.

func (ItemTalentGridBlockDefinition) DefinitionTable

func (d ItemTalentGridBlockDefinition) DefinitionTable() string

type ItemTalentGridComponent

type ItemTalentGridComponent struct {

	// If the item has a progression, it will be detailed here. A progression means that the item can gain
	// experience. Thresholds of experience are what determines whether and when a talent node can be
	// activated.
	GridProgression Progression `json:"gridProgression"`

	// Indicates whether the talent grid on this item is completed, and thus whether it should have a gold
	// border around it.
	// Only will be true if the item actually *has* a talent grid, and only then if it is completed (i.e.
	// every exclusive set has an activated node, and every non-exclusive set node has been activated)
	IsGridComplete bool `json:"isGridComplete"`

	// Detailed information about the individual nodes in the talent grid.
	// A node represents a single visual "pip" in the talent grid or Build detail view, though each node
	// may have multiple "steps" which indicate the actual bonuses and visual representation of that node.
	Nodes []TalentNode `json:"nodes"`

	// Most items don't have useful talent grids anymore, but Builds in particular still do.
	// You can use this hash to lookup the DestinyTalentGridDefinition attached to this item, which will be
	// crucial for understanding the node values on the item.
	TalentGridHash Hash[TalentGridDefinition] `json:"talentGridHash"`
}

Destiny.Entities.Items.DestinyItemTalentGridComponent

Well, we're here in Destiny 2, and Talent Grids are unfortunately still around. The good news is that they're pretty much only being used for certain base information on items and for Builds/Subclasses. The bad news is that they still suck. If you really want this information, grab this component. An important note is that talent grids are defined as such: A Grid has 1:M Nodes, which has 1:M Steps. Any given node can only have a single step active at one time, which represents the actual visual contents and effects of the Node (for instance, if you see a "Super Cool Bonus" node, the actual icon and text for the node is coming from the current Step of that node). Nodes can be grouped into exclusivity sets *and* as of D2, exclusivity groups (which are collections of exclusivity sets that affect each other). See DestinyTalentGridDefinition for more information. Brace yourself, the water's cold out there in the deep end.

type ItemTierTypeDefinition

type ItemTierTypeDefinition struct {
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If this tier defines infusion properties, they will be contained here.
	InfusionProcess ItemTierTypeInfusionBlock `json:"infusionProcess"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.Items.DestinyItemTierTypeDefinition

Defines the tier type of an item. Mostly this provides human readable properties for types like Common, Rare, etc... It also provides some base data for infusion that could be useful.

func (ItemTierTypeDefinition) DefinitionTable

func (d ItemTierTypeDefinition) DefinitionTable() string

type ItemTierTypeInfusionBlock

type ItemTierTypeInfusionBlock struct {

	// The default portion of quality that will transfer from the infuser to the infusee item.
	// (InfuserQuality - InfuseeQuality) * baseQualityTransferRatio = base quality transferred.
	BaseQualityTransferRatio float64 `json:"baseQualityTransferRatio"`

	// As long as InfuserQuality > InfuseeQuality, the amount of quality bestowed is guaranteed to be at
	// least this value, even if the transferRatio would dictate that it should be less. The total amount
	// of quality that ends up in the Infusee cannot exceed the Infuser's quality however (for instance, if
	// you infuse a 300 item with a 301 item and the minimum quality increment is 10, the infused item will
	// not end up with 310 quality)
	MinimumQualityIncrement int32 `json:"minimumQualityIncrement"`
}

Destiny.Definitions.Items.DestinyItemTierTypeInfusionBlock

func (ItemTierTypeInfusionBlock) DefinitionTable

func (d ItemTierTypeInfusionBlock) DefinitionTable() string

type ItemTooltipNotification

type ItemTooltipNotification struct {
	DisplayString string `json:"displayString"`

	DisplayStyle string `json:"displayStyle"`
}

Destiny.Definitions.DestinyItemTooltipNotification

func (ItemTooltipNotification) DefinitionTable

func (d ItemTooltipNotification) DefinitionTable() string

type ItemTransferRequest

type ItemTransferRequest struct {
	CharacterID Int64 `json:"characterId"`

	// The instance ID of the item for this action request.
	ItemID Int64 `json:"itemId"`

	ItemReferenceHash Hash[InventoryItemDefinition] `json:"itemReferenceHash"`

	MembershipType BungieMembershipType `json:"membershipType"`

	StackSize int32 `json:"stackSize"`

	TransferToVault bool `json:"transferToVault"`
}

Destiny.Requests.DestinyItemTransferRequest

type ItemTranslationBlockDefinition

type ItemTranslationBlockDefinition struct {
	Arrangements []GearArtArrangementReference `json:"arrangements"`

	CustomDyes []DyeReference `json:"customDyes"`

	DefaultDyes []DyeReference `json:"defaultDyes"`

	HasGeometry bool `json:"hasGeometry"`

	LockedDyes []DyeReference `json:"lockedDyes"`

	WeaponPatternHash Hash[SandboxPatternDefinition] `json:"weaponPatternHash"`

	WeaponPatternIdentifier string `json:"weaponPatternIdentifier"`
}

Destiny.Definitions.DestinyItemTranslationBlockDefinition

This Block defines the rendering data associated with the item, if any.

func (ItemTranslationBlockDefinition) DefinitionTable

func (d ItemTranslationBlockDefinition) DefinitionTable() string

type ItemType

type ItemType int32

Destiny.DestinyItemType

An enumeration that indicates the high-level "type" of the item, attempting to iron out the context specific differences for specific instances of an entity. For instance, though a weapon may be of various weapon "Types", in DestinyItemType they are all classified as "Weapon". This allows for better filtering on a higher level of abstraction for the concept of types.

This enum is provided for historical compatibility with Destiny 1, but an ideal alternative is to

use DestinyItemCategoryDefinitions and the DestinyItemDefinition.itemCategories property instead. Item Categories allow for arbitrary hierarchies of specificity, and for items to belong to multiple categories across multiple hierarchies simultaneously. For this enum, we pick a single type as a "best guess" fit.

NOTE: This is not all of the item types available, and some of these are holdovers from Destiny 1

that may or may not still exist.

I keep updating these because they're so damn convenient. I guess I shouldn't fight it.

func (ItemType) Enum

func (e ItemType) Enum() string

type ItemValueBlockDefinition

type ItemValueBlockDefinition struct {

	// References to the items that make up this item's "value", and the quantity.
	ItemValue []ItemQuantity `json:"itemValue"`

	// If there's a localized text description of the value provided, this will be said description.
	ValueDescription string `json:"valueDescription"`
}

Destiny.Definitions.DestinyItemValueBlockDefinition

This defines an item's "Value". Unfortunately, this appears to be used in different ways depending on the way that the item itself is used. For items being sold at a Vendor, this is the default "sale price" of the item. These days, the vendor itself almost always sets the price, but it still possible for the price to fall back to this value. For quests, it is a preview of rewards you can gain by completing the quest. For dummy items, if the itemValue refers to an Emblem, it is the emblem that should be shown as the reward. (jeez louise) It will likely be used in a number of other ways in the future, it appears to be a bucket where they put arbitrary items and quantities into the item.

func (ItemValueBlockDefinition) DefinitionTable

func (d ItemValueBlockDefinition) DefinitionTable() string

type ItemVendorSourceReference

type ItemVendorSourceReference struct {

	// The identifier for the vendor that may sell this item.
	VendorHash Hash[VendorDefinition] `json:"vendorHash"`

	// The Vendor sale item indexes that represent the sale information for this item. The same vendor may
	// sell an item in multiple "ways", hence why this is a list. (for instance, a weapon may be "sold" as
	// a reward in a quest, for Glimmer, and for Masterwork Cores: each of those ways would be represented
	// by a different vendor sale item with a different index)
	VendorItemIndexes []int32 `json:"vendorItemIndexes"`
}

Destiny.Definitions.DestinyItemVendorSourceReference

Represents that a vendor could sell this item, and provides a quick link to that vendor and sale item.

Note that we do not and cannot make a guarantee that the vendor will ever *actually* sell this

item, only that the Vendor has a definition that indicates it *could* be sold.

Note also that a vendor may sell the same item in multiple "ways", which means there may be

multiple vendorItemIndexes for a single Vendor hash.

func (ItemVendorSourceReference) DefinitionTable

func (d ItemVendorSourceReference) DefinitionTable() string

type ItemVersionDefinition

type ItemVersionDefinition struct {

	// A reference to the power cap for this item version.
	PowerCapHash Hash[PowerCapDefinition] `json:"powerCapHash"`
}

Destiny.Definitions.DestinyItemVersionDefinition

The version definition currently just holds a reference to the power cap.

func (ItemVersionDefinition) DefinitionTable

func (d ItemVersionDefinition) DefinitionTable() string

type JoinClosedReasons

type JoinClosedReasons int32

Destiny.DestinyJoinClosedReasons

A Flags enumeration representing the reasons why a person can't join this user's fireteam.

func (JoinClosedReasons) Enum

func (e JoinClosedReasons) Enum() string

type KioskItem

type KioskItem struct {

	// If true, the user can not only see the item, but they can acquire it. It is possible that a user can
	// see a kiosk item and not be able to acquire it.
	CanAcquire bool `json:"canAcquire"`

	// Indexes into failureStrings for the Vendor, indicating the reasons why it failed if any.
	FailureIndexes []int32 `json:"failureIndexes"`

	// I may regret naming it this way - but this represents when an item has an objective that doesn't
	// serve a beneficial purpose, but rather is used for "flavor" or additional information. For instance,
	// when Emblems track specific stats, those stats are represented as Objectives on the item.
	FlavorObjective ObjectiveProgress `json:"flavorObjective"`

	// The index of the item in the related DestinyVendorDefintion's itemList property, representing the
	// sale.
	Index int32 `json:"index"`
}

Destiny.Components.Kiosks.DestinyKioskItem

type KiosksComponent

type KiosksComponent struct {

	// A dictionary keyed by the Kiosk Vendor's hash identifier (use it to look up the
	// DestinyVendorDefinition for the relevant kiosk vendor), and whose value is a list of all the items
	// that the user can "see" in the Kiosk, and any other interesting metadata.
	KioskItems map[Hash[VendorDefinition]][]KioskItem `json:"kioskItems"`
}

Destiny.Components.Kiosks.DestinyKiosksComponent

A Kiosk is a Vendor (DestinyVendorDefinition) that sells items based on whether you have already acquired that item before. This component returns information about what Kiosk items are available to you on a *Profile* level. It is theoretically possible for Kiosks to have items gated by specific Character as well. If you ever have those, you will find them on the individual character's DestinyCharacterKiosksComponent. Note that, because this component returns vendorItemIndexes (that is to say, indexes into the Kiosk Vendor's itemList property), these results are necessarily content version dependent. Make sure that you have the latest version of the content manifest databases before using this data.

type Leaderboard

type Leaderboard struct {
	Entries []LeaderboardEntry `json:"entries"`

	StatID string `json:"statId"`
}

Destiny.HistoricalStats.DestinyLeaderboard

type LeaderboardEntry

type LeaderboardEntry struct {

	// ID of the player's best character for the reported stat.
	CharacterID Int64 `json:"characterId"`

	// Identity details of the player
	Player Player `json:"player"`

	// Where this player ranks on the leaderboard. A value of 1 is the top rank.
	Rank int32 `json:"rank"`

	// Value of the stat for this player
	Value HistoricalStatsValue `json:"value"`
}

Destiny.HistoricalStats.DestinyLeaderboardEntry

type LeaderboardResults

type LeaderboardResults struct {

	// Indicate the character ID of the character that is the focal point of the provided leaderboards. May
	// be null, in which case any character from the focus membership can appear in the provided
	// leaderboards.
	FocusCharacterID Nullable[Int64] `json:"focusCharacterId,omitempty"`

	// Indicate the membership ID of the account that is the focal point of the provided leaderboards.
	FocusMembershipID Nullable[Int64] `json:"focusMembershipId,omitempty"`
}

Destiny.HistoricalStats.DestinyLeaderboardResults

type LinkedGraphDefinition

type LinkedGraphDefinition struct {
	Description string `json:"description"`

	LinkedGraphID uint32 `json:"linkedGraphId"`

	LinkedGraphs []LinkedGraphEntryDefinition `json:"linkedGraphs"`

	Name string `json:"name"`

	Overview string `json:"overview"`

	UnlockExpression UnlockExpressionDefinition `json:"unlockExpression"`
}

Destiny.Definitions.Director.DestinyLinkedGraphDefinition

This describes links between the current graph and others, as well as when that link is relevant.

func (LinkedGraphDefinition) DefinitionTable

func (d LinkedGraphDefinition) DefinitionTable() string

type LinkedGraphEntryDefinition

type LinkedGraphEntryDefinition struct {
	ActivityGraphHash uint32 `json:"activityGraphHash"`
}

Destiny.Definitions.Director.DestinyLinkedGraphEntryDefinition

func (LinkedGraphEntryDefinition) DefinitionTable

func (d LinkedGraphEntryDefinition) DefinitionTable() string

type LinkedProfilesResponse

type LinkedProfilesResponse struct {

	// If the requested membership had a linked Bungie.Net membership ID, this is the basic information
	// about that BNet account.
	// I know, Tetron; I know this is mixing UserServices concerns with DestinyServices concerns. But it's
	// so damn convenient! https://www.youtube.com/watch?v=X5R-bB-gKVI
	BnetMembership UserInfoCard `json:"bnetMembership"`

	// Any Destiny account for whom we could successfully pull characters will be returned here, as the
	// Platform-level summary of user data. (no character data, no Destiny account data other than the
	// Membership ID and Type so you can make further queries)
	Profiles []ProfileUserInfoCard `json:"profiles"`

	// This is brief summary info for profiles that we believe have valid Destiny info, but who failed to
	// return data for some other reason and thus we know that subsequent calls for their info will also
	// fail.
	ProfilesWithErrors []ErrorProfile `json:"profilesWithErrors"`
}

Destiny.Responses.DestinyLinkedProfilesResponse

I know what you seek. You seek linked accounts. Found them, you have. This contract returns a minimal amount of data about Destiny Accounts that are linked through your Bungie.Net account. We will not return accounts in this response whose

type LoadoutActionRequest

type LoadoutActionRequest struct {
	CharacterID Int64 `json:"characterId"`

	// The index of the loadout for this action request.
	LoadoutIndex int32 `json:"loadoutIndex"`

	MembershipType BungieMembershipType `json:"membershipType"`
}

Destiny.Requests.Actions.DestinyLoadoutActionRequest

type LoadoutColorDefinition

type LoadoutColorDefinition struct {
	ColorImagePath string `json:"colorImagePath"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.Loadouts.DestinyLoadoutColorDefinition

func (LoadoutColorDefinition) DefinitionTable

func (d LoadoutColorDefinition) DefinitionTable() string

type LoadoutComponent

type LoadoutComponent struct {
	ColorHash Hash[LoadoutColorDefinition] `json:"colorHash"`

	IconHash Hash[LoadoutIconDefinition] `json:"iconHash"`

	Items []LoadoutItemComponent `json:"items"`

	NameHash Hash[LoadoutNameDefinition] `json:"nameHash"`
}

Destiny.Components.Loadouts.DestinyLoadoutComponent

type LoadoutConstantsDefinition

type LoadoutConstantsDefinition struct {

	// This is a color-inverted version of the whiteIconImagePath.
	BlackIconImagePath string `json:"blackIconImagePath"`

	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// A list of the loadout color hashes in index order, for convenience.
	LoadoutColorHashes []uint32 `json:"loadoutColorHashes"`

	// The maximum number of loadouts available to each character. The loadouts component API response can
	// return fewer loadouts than this, as more loadouts are unlocked by reaching higher Guardian Ranks.
	LoadoutCountPerCharacter int32 `json:"loadoutCountPerCharacter"`

	// A list of the loadout icon hashes in index order, for convenience.
	LoadoutIconHashes []uint32 `json:"loadoutIconHashes"`

	// A list of the loadout name hashes in index order, for convenience.
	LoadoutNameHashes []uint32 `json:"loadoutNameHashes"`

	// A list of the socket category hashes to be filtered out of loadout item preview displays.
	LoadoutPreviewFilterOutSocketCategoryHashes []uint32 `json:"loadoutPreviewFilterOutSocketCategoryHashes"`

	// A list of the socket type hashes to be filtered out of loadout item preview displays.
	LoadoutPreviewFilterOutSocketTypeHashes []uint32 `json:"loadoutPreviewFilterOutSocketTypeHashes"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	// This is the same icon as the one in the display properties, offered here as well with a more
	// descriptive name.
	WhiteIconImagePath string `json:"whiteIconImagePath"`
}

Destiny.Definitions.Loadouts.DestinyLoadoutConstantsDefinition

func (LoadoutConstantsDefinition) DefinitionTable

func (d LoadoutConstantsDefinition) DefinitionTable() string

type LoadoutIconDefinition

type LoadoutIconDefinition struct {

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	IconImagePath string `json:"iconImagePath"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.Loadouts.DestinyLoadoutIconDefinition

func (LoadoutIconDefinition) DefinitionTable

func (d LoadoutIconDefinition) DefinitionTable() string

type LoadoutItemComponent

type LoadoutItemComponent struct {
	ItemInstanceID Int64 `json:"itemInstanceId"`

	PlugItemHashes []uint32 `json:"plugItemHashes"`
}

Destiny.Components.Loadouts.DestinyLoadoutItemComponent

type LoadoutNameDefinition

type LoadoutNameDefinition struct {

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	Name string `json:"name"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.Loadouts.DestinyLoadoutNameDefinition

func (LoadoutNameDefinition) DefinitionTable

func (d LoadoutNameDefinition) DefinitionTable() string

type LoadoutUpdateActionRequest

type LoadoutUpdateActionRequest struct {
	CharacterID Int64 `json:"characterId"`

	ColorHash Nullable[uint32] `json:"colorHash,omitempty"`

	IconHash Nullable[uint32] `json:"iconHash,omitempty"`

	// The index of the loadout for this action request.
	LoadoutIndex int32 `json:"loadoutIndex"`

	MembershipType BungieMembershipType `json:"membershipType"`

	NameHash Nullable[uint32] `json:"nameHash,omitempty"`
}

Destiny.Requests.Actions.DestinyLoadoutUpdateActionRequest

type LoadoutsComponent

type LoadoutsComponent struct {
	Loadouts []LoadoutComponent `json:"loadouts"`
}

Destiny.Components.Loadouts.DestinyLoadoutsComponent

type LocationDefinition

type LocationDefinition struct {

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// A Location may refer to different specific spots in the world based on the world's current state.
	// This is a list of those potential spots, and the data we can use at runtime to determine which one
	// of the spots is the currently valid one.
	LocationReleases []LocationReleaseDefinition `json:"locationReleases"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	// If the location has a Vendor on it, this is the hash identifier for that Vendor. Look them up with
	// DestinyVendorDefinition.
	VendorHash Hash[VendorDefinition] `json:"vendorHash"`
}

Destiny.Definitions.DestinyLocationDefinition

A "Location" is a sort of shortcut for referring to a specific combination of Activity, Destination, Place, and even Bubble or NavPoint within a space. Most of this data isn't intrinsically useful to us, but Objectives refer to locations, and through that we can at least infer the Activity, Destination, and Place being referred to by the Objective.

func (LocationDefinition) DefinitionTable

func (d LocationDefinition) DefinitionTable() string

type LocationReleaseDefinition

type LocationReleaseDefinition struct {

	// The Activity Bubble within the Destination. Look this up in the DestinyDestinationDefinition's
	// bubbles and bubbleSettings properties.
	ActivityBubbleName uint32 `json:"activityBubbleName"`

	// The Activity Graph being pointed to by this location.
	ActivityGraphHash uint32 `json:"activityGraphHash"`

	// The Activity Graph Node being pointed to by this location. (Remember that Activity Graph Node hashes
	// are only unique within an Activity Graph: so use the combination to find the node being spoken of)
	ActivityGraphNodeHash uint32 `json:"activityGraphNodeHash"`

	// The Activity being pointed to by this location.
	ActivityHash Hash[ActivityDefinition] `json:"activityHash"`

	// If we had map information, this would tell us something cool about the path this location wants you
	// to take. I wish we had map information.
	ActivityPathBundle uint32 `json:"activityPathBundle"`

	// If we had map information, this would tell us about path information related to destination on the
	// map. Sad. Maybe you can do something cool with it. Go to town man.
	ActivityPathDestination uint32 `json:"activityPathDestination"`

	// The Destination being pointed to by this location.
	DestinationHash Hash[DestinationDefinition] `json:"destinationHash"`

	// Sadly, these don't appear to be populated anymore (ever?)
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	LargeTransparentIcon string `json:"largeTransparentIcon"`

	MapIcon string `json:"mapIcon"`

	// The type of Nav Point that this represents. See the enumeration for more info.
	NavPointType ActivityNavPointType `json:"navPointType"`

	SmallTransparentIcon string `json:"smallTransparentIcon"`

	// If we had map information, this spawnPoint would be interesting. But sadly, we don't have that info.
	SpawnPoint uint32 `json:"spawnPoint"`

	// Looks like it should be the position on the map, but sadly it does not look populated... yet?
	WorldPosition []int32 `json:"worldPosition"`
}

Destiny.Definitions.DestinyLocationReleaseDefinition

A specific "spot" referred to by a location. Only one of these can be active at a time for a given Location.

func (LocationReleaseDefinition) DefinitionTable

func (d LocationReleaseDefinition) DefinitionTable() string

type LoreDefinition

type LoreDefinition struct {
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	Subtitle string `json:"subtitle"`
}

Destiny.Definitions.Lore.DestinyLoreDefinition

These are definitions for in-game "Lore," meant to be narrative enhancements of the game experience. DestinyInventoryItemDefinitions for interesting items point to these definitions, but nothing's stopping you from scraping all of these and doing something cool with them. If they end up having cool data.

func (LoreDefinition) DefinitionTable

func (d LoreDefinition) DefinitionTable() string

type Manifest

type Manifest struct {

	// Information about the "Image Pyramid" for Destiny icons. Where possible, we create smaller versions
	// of Destiny icons. These are found as subfolders under the location of the "original/full size"
	// Destiny images, with the same file name and extension as the original image itself. (this lets us
	// avoid sending largely redundant path info with every entity, at the expense of the smaller versions
	// of the image being less discoverable)
	IconImagePyramidInfo []ImagePyramidEntry `json:"iconImagePyramidInfo"`

	// This points to the generated JSON that contains all the Definitions. Each key is a locale. The value
	// is a dictionary, where the key is a definition type by name, and the value is the path to the file
	// for that definition. WARNING: This is unsafe and subject to change - do not depend on data in these
	// files staying around long-term.
	JsonWorldComponentContentPaths map[string]map[string]string `json:"jsonWorldComponentContentPaths"`

	// This points to the generated JSON that contains all the Definitions. Each key is a locale. The value
	// is a path to the aggregated world definitions (warning: large file!)
	JsonWorldContentPaths map[string]string `json:"jsonWorldContentPaths"`

	MobileAssetContentPath string `json:"mobileAssetContentPath"`

	MobileClanBannerDatabasePath string `json:"mobileClanBannerDatabasePath"`

	MobileGearAssetDataBases []GearAssetDataBaseDefinition `json:"mobileGearAssetDataBases"`

	MobileGearCDN map[string]string `json:"mobileGearCDN"`

	MobileWorldContentPaths map[string]string `json:"mobileWorldContentPaths"`

	Version string `json:"version"`
}

Destiny.Config.DestinyManifest

DestinyManifest is the external-facing contract for just the properties needed by those calling the Destiny Platform.

type MaterialRequirement

type MaterialRequirement struct {

	// The amount of the material required.
	Count int32 `json:"count"`

	// If true, the material requirement count value is constant. Since The Witch Queen expansion, some
	// material requirement counts can be dynamic and will need to be returned with an API call.
	CountIsConstant bool `json:"countIsConstant"`

	// If True, the material will be removed from the character's inventory when the action is performed.
	DeleteOnAction bool `json:"deleteOnAction"`

	// The hash identifier of the material required. Use it to look up the material's
	// DestinyInventoryItemDefinition.
	ItemHash Hash[InventoryItemDefinition] `json:"itemHash"`

	// If True, this requirement is "silent": don't bother showing it in a material requirements display. I
	// mean, I'm not your mom: I'm not going to tell you you *can't* show it. But we won't show it in our
	// UI.
	OmitFromRequirements bool `json:"omitFromRequirements"`
}

Destiny.Definitions.DestinyMaterialRequirement

Many actions relating to items require you to expend materials: - Activating a talent node - Inserting a plug into a socket The items will refer to material requirements by a materialRequirementsHash in these cases, and this is the definition for those requirements in terms of the item required, how much of it is required and other interesting info. This is one of the rare/strange times where a single contract class is used both in definitions *and* in live data response contracts. I'm not sure yet whether I regret that.

func (MaterialRequirement) DefinitionTable

func (d MaterialRequirement) DefinitionTable() string

type MaterialRequirementSetDefinition

type MaterialRequirementSetDefinition struct {

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// The list of all materials that are required.
	Materials []MaterialRequirement `json:"materials"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.DestinyMaterialRequirementSetDefinition

Represent a set of material requirements: Items that either need to be owned or need to be consumed in order to perform an action. A variety of other entities refer to these as gatekeepers and payments for actions that can be performed in game.

func (MaterialRequirementSetDefinition) DefinitionTable

func (d MaterialRequirementSetDefinition) DefinitionTable() string

type MedalTierDefinition

type MedalTierDefinition struct {

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If you're rendering medals by tier, render them in this order (ascending)
	Order int32 `json:"order"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	// The name of the tier.
	TierName string `json:"tierName"`
}

Destiny.Definitions.DestinyMedalTierDefinition

An artificial construct of our own creation, to try and put some order on top of Medals and keep them from being one giant, unmanageable and unsorted blob of stats. Unfortunately, we haven't had time to do this evaluation yet in Destiny 2, so we're short on Medal Tiers. This will hopefully be updated over time, if Medals continue to exist.

func (MedalTierDefinition) DefinitionTable

func (d MedalTierDefinition) DefinitionTable() string

type MembershipOption

type MembershipOption int32

GroupsV2.MembershipOption

func (MembershipOption) Enum

func (e MembershipOption) Enum() string

type MetricComponent

type MetricComponent struct {
	Invisible bool `json:"invisible"`

	ObjectiveProgress ObjectiveProgress `json:"objectiveProgress"`
}

Destiny.Components.Metrics.DestinyMetricComponent

type MetricDefinition

type MetricDefinition struct {
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	LowerValueIsBetter bool `json:"lowerValueIsBetter"`

	// A quick reference to presentation nodes that have this node as a child. Presentation nodes can be
	// parented under multiple parents.
	ParentNodeHashes []uint32 `json:"parentNodeHashes"`

	PresentationNodeType PresentationNodeType `json:"presentationNodeType"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	TrackingObjectiveHash Hash[ObjectiveDefinition] `json:"trackingObjectiveHash"`

	TraitHashes []uint32 `json:"traitHashes"`

	TraitIds []string `json:"traitIds"`
}

Destiny.Definitions.Metrics.DestinyMetricDefinition

func (MetricDefinition) DefinitionTable

func (d MetricDefinition) DefinitionTable() string

type MetricsComponent

type MetricsComponent struct {
	Metrics map[uint32]MetricComponent `json:"metrics"`

	MetricsRootNodeHash Hash[PresentationNodeDefinition] `json:"metricsRootNodeHash"`
}

Destiny.Components.Metrics.DestinyMetricsComponent

type Milestone

type Milestone struct {

	// The currently active Activities in this milestone, when the Milestone is driven by Challenges.
	// Not all Milestones have Challenges, but when they do this will indicate the Activities and
	// Challenges under those Activities related to this Milestone.
	Activities []MilestoneChallengeActivity `json:"activities"`

	// Indicates what quests are available for this Milestone. Usually this will be only a single Quest,
	// but some quests have multiple available that you can choose from at any given time. All possible
	// quests for a milestone can be found in the DestinyMilestoneDefinition, but they must be combined
	// with this Live data to determine which one(s) are actually active right now. It is possible for
	// Milestones to not have any quests.
	AvailableQuests []MilestoneQuest `json:"availableQuests"`

	// If known, this is the date when the event will next end or repeat. It will only be populated for
	// events with fixed and repeating start and end dates.
	EndDate Nullable[Timestamp] `json:"endDate,omitempty"`

	// The unique identifier for the Milestone. Use it to look up the DestinyMilestoneDefinition, so you
	// can combine the other data in this contract with static definition data.
	MilestoneHash Hash[MilestoneDefinition] `json:"milestoneHash"`

	// Used for ordering milestones in a display to match how we order them in BNet. May pull from static
	// data, or possibly in the future from dynamic information.
	Order int32 `json:"order"`

	// If the entity to which this component is attached has known active Rewards for the player, this will
	// detail information about those rewards, keyed by the RewardEntry Hash. (See
	// DestinyMilestoneDefinition for more information about Reward Entries) Note that these rewards are
	// not for the Quests related to the Milestone. Think of these as "overview/checklist" rewards that may
	// be provided for Milestones that may provide rewards for performing a variety of tasks that aren't
	// under a specific Quest.
	Rewards []MilestoneRewardCategory `json:"rewards"`

	// If known, this is the date when the event last began or refreshed. It will only be populated for
	// events with fixed and repeating start and end dates.
	StartDate Nullable[Timestamp] `json:"startDate,omitempty"`

	// Milestones may have arbitrary key/value pairs associated with them, for data that users will want to
	// know about but that doesn't fit neatly into any of the common components such as Quests. A good
	// example of this would be - if this existed in Destiny 1 - the number of wins you currently have on
	// your Trials of Osiris ticket. Looking in the DestinyMilestoneDefinition, you can use the string
	// identifier of this dictionary to look up more info about the value, including localized string
	// content for displaying the value. The value in the dictionary is the floating point number. The
	// definition will tell you how to format this number.
	Values map[string]float64 `json:"values"`

	// A milestone may have one or more active vendors that are "related" to it (that provide rewards, or
	// that are the initiators of the Milestone). I already regret this, even as I'm typing it. [I told you
	// I'd regret this] You see, sometimes a milestone may be directly correlated with a set of vendors
	// that provide varying tiers of rewards. The player may not be able to interact with one or more of
	// those vendors. This will return the hashes of the Vendors that the player *can* interact with,
	// allowing you to show their current inventory as rewards or related items to the Milestone or its
	// activities.
	// Before we even use it, it's already deprecated! How much of a bummer is that? We need more data.
	VendorHashes []uint32 `json:"vendorHashes"`

	// Replaces vendorHashes, which I knew was going to be trouble the day it walked in the door. This will
	// return not only what Vendors are active and relevant to the activity (in an implied order that you
	// can choose to ignore), but also other data - for example, if the Vendor is featuring a specific item
	// relevant to this event that you should show with them.
	Vendors []MilestoneVendor `json:"vendors"`
}

Destiny.Milestones.DestinyMilestone

Represents a runtime instance of a user's milestone status. Live Milestone data should be combined with DestinyMilestoneDefinition data to show the user a picture of what is available for them to do in the game, and their status in regards to said "things to do." Consider it a big, wonky to-do list, or Advisors 3.0 for those who remember the Destiny 1 API.

type MilestoneActivity

type MilestoneActivity struct {

	// The hash of an arbitrarily chosen variant of this activity. We'll go ahead and call that the
	// "canonical" activity, because if you're using this value you should only use it for properties that
	// are common across the variants: things like the name of the activity, it's location, etc... Use this
	// hash to look up the DestinyActivityDefinition of this activity for rendering data.
	ActivityHash Hash[ActivityDefinition] `json:"activityHash"`

	// The hash identifier of the most specific Activity Mode under which this activity is played. This is
	// useful for situations where the activity in question is - for instance - a PVP map, but it's not
	// clear what mode the PVP map is being played under. If it's a playlist, this will be less specific:
	// but hopefully useful in some way.
	ActivityModeHash Nullable[Hash[ActivityModeDefinition]] `json:"activityModeHash,omitempty"`

	// The enumeration equivalent of the most specific Activity Mode under which this activity is played.
	ActivityModeType Nullable[int32] `json:"activityModeType,omitempty"`

	// If the activity has modifiers, this will be the list of modifiers that all variants have in common.
	// Perform lookups against DestinyActivityModifierDefinition which defines the modifier being applied
	// to get at the modifier data. Note that, in the DestiyActivityDefinition, you will see many more
	// modifiers than this being referred to: those are all *possible* modifiers for the activity, not the
	// active ones. Use only the active ones to match what's really live.
	ModifierHashes []uint32 `json:"modifierHashes"`

	// If you want more than just name/location/etc... you're going to have to dig into and show the
	// variants of the conceptual activity. These will differ in seemingly arbitrary ways, like difficulty
	// level and modifiers applied. Show it in whatever way tickles your fancy.
	Variants []MilestoneActivityVariant `json:"variants"`
}

Destiny.Milestones.DestinyMilestoneActivity

Sometimes, we know the specific activity that the Milestone wants you to play. This entity provides additional information about that Activity and all of its variants. (sometimes there's only one variant, but I think you get the point)

type MilestoneActivityCompletionStatus

type MilestoneActivityCompletionStatus struct {

	// If the activity has been "completed", that information will be returned here.
	Completed bool `json:"completed"`

	// If the Activity has discrete "phases" that we can track, that info will be here. Otherwise, this
	// value will be NULL. Note that this is a list and not a dictionary: the order implies the ascending
	// order of phases or progression in this activity.
	Phases []MilestoneActivityPhase `json:"phases"`
}

Destiny.Milestones.DestinyMilestoneActivityCompletionStatus

Represents this player's personal completion status for the Activity under a Milestone, if the activity has trackable completion and progress information. (most activities won't, or the concept won't apply. For instance, it makes sense to talk about a tier of a raid as being Completed or having progress, but it doesn't make sense to talk about a Crucible Playlist in those terms.

type MilestoneActivityDefinition

type MilestoneActivityDefinition struct {

	// The "Conceptual" activity hash. Basically, we picked the lowest level activity and are treating it
	// as the canonical definition of the activity for rendering purposes.
	// If you care about the specific difficulty modes and variations, use the activities under "Variants".
	ConceptualActivityHash Hash[ActivityDefinition] `json:"conceptualActivityHash"`

	// A milestone-referenced activity can have many variants, such as Tiers or alternative modes of play.
	// Even if there is only a single variant, the details for these are represented within as a variant
	// definition.
	// It is assumed that, if this DestinyMilestoneActivityDefinition is active, then all variants should
	// be active.
	// If a Milestone could ever split the variants' active status conditionally, they should all have
	// their own DestinyMilestoneActivityDefinition instead! The potential duplication will be worth it for
	// the obviousness of processing and use.
	Variants map[Hash[ActivityDefinition]]MilestoneActivityVariantDefinition `json:"variants"`
}

Destiny.Definitions.Milestones.DestinyMilestoneActivityDefinition

Milestones can have associated activities which provide additional information about the context, challenges, modifiers, state etc... related to this Milestone. Information we need to be able to return that data is defined here, along with Tier data to establish a relationship between a conceptual Activity and its difficulty levels and variants.

func (MilestoneActivityDefinition) DefinitionTable

func (d MilestoneActivityDefinition) DefinitionTable() string

type MilestoneActivityPhase

type MilestoneActivityPhase struct {

	// Indicates if the phase has been completed.
	Complete bool `json:"complete"`

	// In DestinyActivityDefinition, if the activity has phases, there will be a set of phases defined in
	// the "insertionPoints" property. This is the hash that maps to that phase.
	PhaseHash uint32 `json:"phaseHash"`
}

Destiny.Milestones.DestinyMilestoneActivityPhase

Represents whatever information we can return about an explicit phase in an activity. In the future, I hope we'll have more than just "guh, you done gone and did something," but for the forseeable future that's all we've got. I'm making it more than just a list of booleans out of that overly-optimistic hope.

type MilestoneActivityVariant

type MilestoneActivityVariant struct {

	// The hash for the specific variant of the activity related to this milestone. You can pull more
	// detailed static info from the DestinyActivityDefinition, such as difficulty level.
	ActivityHash Hash[ActivityDefinition] `json:"activityHash"`

	// The hash identifier of the most specific Activity Mode under which this activity is played. This is
	// useful for situations where the activity in question is - for instance - a PVP map, but it's not
	// clear what mode the PVP map is being played under. If it's a playlist, this will be less specific:
	// but hopefully useful in some way.
	ActivityModeHash Nullable[Hash[ActivityModeDefinition]] `json:"activityModeHash,omitempty"`

	// The enumeration equivalent of the most specific Activity Mode under which this activity is played.
	ActivityModeType Nullable[int32] `json:"activityModeType,omitempty"`

	// An OPTIONAL component: if it makes sense to talk about this activity variant in terms of whether or
	// not it has been completed or what progress you have made in it, this will be returned. Otherwise,
	// this will be NULL.
	CompletionStatus MilestoneActivityCompletionStatus `json:"completionStatus"`
}

Destiny.Milestones.DestinyMilestoneActivityVariant

Represents custom data that we know about an individual variant of an activity.

type MilestoneActivityVariantDefinition

type MilestoneActivityVariantDefinition struct {

	// The hash to use for looking up the variant Activity's definition (DestinyActivityDefinition), where
	// you can find its distinguishing characteristics such as difficulty level and recommended light
	// level.
	// Frequently, that will be the only distinguishing characteristics in practice, which is somewhat of a
	// bummer.
	ActivityHash Hash[ActivityDefinition] `json:"activityHash"`

	// If you care to do so, render the variants in the order prescribed by this value.
	// When you combine live Milestone data with the definition, the order becomes more useful because
	// you'll be cross-referencing between the definition and live data.
	Order int32 `json:"order"`
}

Destiny.Definitions.Milestones.DestinyMilestoneActivityVariantDefinition

Represents a variant on an activity for a Milestone: a specific difficulty tier, or a specific activity variant for example. These will often have more specific details, such as an associated Guided Game, progression steps, tier-specific rewards, and custom values.

func (MilestoneActivityVariantDefinition) DefinitionTable

func (d MilestoneActivityVariantDefinition) DefinitionTable() string

type MilestoneChallengeActivity

type MilestoneChallengeActivity struct {
	ActivityHash Hash[ActivityDefinition] `json:"activityHash"`

	// The set of activity options for this activity, keyed by an identifier that's unique for this
	// activity (not guaranteed to be unique between or across all activities, though should be unique for
	// every *variant* of a given *conceptual* activity: for instance, the original D2 Raid has many
	// variant DestinyActivityDefinitions. While other activities could potentially have the same option
	// hashes, for any given D2 base Raid variant the hash will be unique).
	// As a concrete example of this data, the hashes you get for Raids will correspond to the currently
	// active "Challenge Mode".
	// We don't have any human readable information for these, but saavy 3rd party app users could manually
	// associate the key (a hash identifier for the "option" that is enabled/disabled) and the value
	// (whether it's enabled or disabled presently)
	// On our side, we don't necessarily even know what these are used for (the game designers know, but we
	// don't), and we have no human readable data for them. In order to use them, you will have to do some
	// experimentation.
	BooleanActivityOptions map[uint32]bool `json:"booleanActivityOptions"`

	Challenges []ChallengeStatus `json:"challenges"`

	// If returned, this is the index into the DestinyActivityDefinition's "loadouts" property, indicating
	// the currently active loadout requirements.
	LoadoutRequirementIndex Nullable[int32] `json:"loadoutRequirementIndex,omitempty"`

	// If the activity has modifiers, this will be the list of modifiers that all variants have in common.
	// Perform lookups against DestinyActivityModifierDefinition which defines the modifier being applied
	// to get at the modifier data.
	// Note that, in the DestiyActivityDefinition, you will see many more modifiers than this being
	// referred to: those are all *possible* modifiers for the activity, not the active ones. Use only the
	// active ones to match what's really live.
	ModifierHashes []uint32 `json:"modifierHashes"`

	// If the Activity has discrete "phases" that we can track, that info will be here. Otherwise, this
	// value will be NULL. Note that this is a list and not a dictionary: the order implies the ascending
	// order of phases or progression in this activity.
	Phases []MilestoneActivityPhase `json:"phases"`
}

Destiny.Milestones.DestinyMilestoneChallengeActivity

type MilestoneChallengeActivityDefinition

type MilestoneChallengeActivityDefinition struct {

	// If the activity and its challenge is visible on any of these nodes, it will be returned.
	ActivityGraphNodes []MilestoneChallengeActivityGraphNodeEntry `json:"activityGraphNodes"`

	// The activity for which this challenge is active.
	ActivityHash Hash[ActivityDefinition] `json:"activityHash"`

	Challenges []MilestoneChallengeDefinition `json:"challenges"`

	// Phases related to this activity, if there are any.
	// These will be listed in the order in which they will appear in the actual activity.
	Phases []MilestoneChallengeActivityPhase `json:"phases"`
}

Destiny.Definitions.Milestones.DestinyMilestoneChallengeActivityDefinition

func (MilestoneChallengeActivityDefinition) DefinitionTable

func (d MilestoneChallengeActivityDefinition) DefinitionTable() string

type MilestoneChallengeActivityGraphNodeEntry

type MilestoneChallengeActivityGraphNodeEntry struct {
	ActivityGraphHash uint32 `json:"activityGraphHash"`

	ActivityGraphNodeHash uint32 `json:"activityGraphNodeHash"`
}

Destiny.Definitions.Milestones.DestinyMilestoneChallengeActivityGraphNodeEntry

func (MilestoneChallengeActivityGraphNodeEntry) DefinitionTable

type MilestoneChallengeActivityPhase

type MilestoneChallengeActivityPhase struct {

	// The hash identifier of the activity's phase.
	PhaseHash uint32 `json:"phaseHash"`
}

Destiny.Definitions.Milestones.DestinyMilestoneChallengeActivityPhase

func (MilestoneChallengeActivityPhase) DefinitionTable

func (d MilestoneChallengeActivityPhase) DefinitionTable() string

type MilestoneChallengeDefinition

type MilestoneChallengeDefinition struct {

	// The challenge related to this milestone.
	ChallengeObjectiveHash Hash[ObjectiveDefinition] `json:"challengeObjectiveHash"`
}

Destiny.Definitions.Milestones.DestinyMilestoneChallengeDefinition

func (MilestoneChallengeDefinition) DefinitionTable

func (d MilestoneChallengeDefinition) DefinitionTable() string

type MilestoneContent

type MilestoneContent struct {

	// The "About this Milestone" text from the Firehose.
	About string `json:"about"`

	// If DPS has defined items related to this Milestone, they can categorize those items in the Firehose.
	// That data will then be returned as item categories here.
	ItemCategories []MilestoneContentItemCategory `json:"itemCategories"`

	// The Current Status of the Milestone, as driven by the Firehose.
	Status string `json:"status"`

	// A list of tips, provided by the Firehose.
	Tips []string `json:"tips"`
}

Destiny.Milestones.DestinyMilestoneContent

Represents localized, extended content related to Milestones. This is intentionally returned by a separate endpoint and not with Character-level Milestone data because we do not put localized data into standard Destiny responses, both for brevity of response and for caching purposes. If you really need this data, hit the Milestone Content endpoint.

type MilestoneContentItemCategory

type MilestoneContentItemCategory struct {
	ItemHashes []uint32 `json:"itemHashes"`

	Title string `json:"title"`
}

Destiny.Milestones.DestinyMilestoneContentItemCategory

Part of our dynamic, localized Milestone content is arbitrary categories of items. These are built in our content management system, and thus aren't the same as programmatically generated rewards.

type MilestoneDefinition

type MilestoneDefinition struct {

	// A Milestone can now be represented by one or more activities directly (without a backing Quest), and
	// that activity can have many challenges, modifiers, and related to it.
	Activities []MilestoneChallengeActivityDefinition `json:"activities"`

	DefaultOrder int32 `json:"defaultOrder"`

	// A hint to the UI to indicate what to show as the display properties for this Milestone when showing
	// "Live" milestone data. Feel free to show more than this if desired: this hint is meant to simplify
	// our own UI, but it may prove useful to you as well.
	DisplayPreference MilestoneDisplayPreference `json:"displayPreference"`

	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// If TRUE, "Explore Destiny" (the front page of BNet and the companion app) prioritize using the
	// activity image over any overriding Quest or Milestone image provided. This unfortunate hack is
	// brought to you by Trials of The Nine.
	ExplorePrioritizesActivityImage bool `json:"explorePrioritizesActivityImage"`

	// If the milestone has a friendly identifier for association with other features - such as Recruiting
	// - that identifier can be found here. This is "friendly" in that it looks better in a URL than
	// whatever the identifier for the Milestone actually is.
	FriendlyName string `json:"friendlyName"`

	// A shortcut for clients - and the server - to understand whether we can predict the start and end
	// dates for this event. In practice, there are multiple ways that an event could have predictable date
	// ranges, but not all events will be able to be predicted via any mechanism (for instance, events that
	// are manually triggered on and off)
	HasPredictableDates bool `json:"hasPredictableDates"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// A custom image someone made just for the milestone. Isn't that special?
	Image string `json:"image"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// Some milestones are explicit objectives that you can see and interact with in the game. Some
	// milestones are more conceptual, built by BNet to help advise you on activities and events that
	// happen in-game but that aren't explicitly shown in game as Milestones. If this is TRUE, you can see
	// this as a milestone in the game. If this is FALSE, it's an event or activity you can participate in,
	// but you won't see it as a Milestone in the game's UI.
	IsInGameMilestone bool `json:"isInGameMilestone"`

	// An enumeration listing one of the possible types of milestones. Check out the DestinyMilestoneType
	// enum for more info!
	MilestoneType MilestoneType `json:"milestoneType"`

	// The full set of possible Quests that give the overview of the Milestone event/activity in question.
	// Only one of these can be active at a time for a given Conceptual Milestone, but many of them may be
	// "available" for the user to choose from. (for instance, with Milestones you can choose from the
	// three available Quests, but only one can be active at a time) Keyed by the quest item.
	// As of Forsaken (~September 2018), Quest-style Milestones are being removed for many types of
	// activities. There will likely be further revisions to the Milestone concept in the future.
	Quests map[uint32]MilestoneQuestDefinition `json:"quests"`

	// If True, then the Milestone has been integrated with BNet's recruiting feature.
	Recruitable bool `json:"recruitable"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	// If this milestone can provide rewards, this will define the categories into which the individual
	// reward entries are placed.
	// This is keyed by the Category's hash, which is only guaranteed to be unique within a given
	// Milestone.
	Rewards map[uint32]MilestoneRewardCategoryDefinition `json:"rewards"`

	// If TRUE, this entry should be returned in the list of milestones for the "Explore Destiny" (i.e. new
	// BNet homepage) features of Bungie.net (as long as the underlying event is active) Note that this is
	// a property specifically used by BNet and the companion app for the "Live Events" feature of the
	// front page/welcome view: it's not a reflection of what you see in-game.
	ShowInExplorer bool `json:"showInExplorer"`

	// Determines whether we'll show this Milestone in the user's personal Milestones list.
	ShowInMilestones bool `json:"showInMilestones"`

	// Sometimes, milestones will have arbitrary values associated with them that are of interest to us or
	// to third party developers. This is the collection of those values' definitions, keyed by the
	// identifier of the value and providing useful definition information such as localizable names and
	// descriptions for the value.
	Values map[string]MilestoneValueDefinition `json:"values"`

	// Sometimes, milestones will have rewards provided by Vendors. This definition gives the information
	// needed to understand which vendors are relevant, the order in which they should be returned if order
	// matters, and the conditions under which the Vendor is relevant to the user.
	Vendors []MilestoneVendorDefinition `json:"vendors"`

	// If you're going to show Vendors for the Milestone, you can use this as a localized "header" for the
	// section where you show that vendor data. It'll provide a more context-relevant clue about what the
	// vendor's role is in the Milestone.
	VendorsDisplayTitle string `json:"vendorsDisplayTitle"`
}

Destiny.Definitions.Milestones.DestinyMilestoneDefinition

Milestones are an in-game concept where they're attempting to tell you what you can do next in-game. If that sounds a lot like Advisors in Destiny 1, it is! So we threw out Advisors in the Destiny 2 API and tacked all of the data we would have put on Advisors onto Milestones instead. Each Milestone represents something going on in the game right now: - A "ritual activity" you can perform, like nightfall - A "special event" that may have activities related to it, like Taco Tuesday (there's no Taco Tuesday in Destiny 2) - A checklist you can fulfill, like helping your Clan complete all of its weekly objectives - A tutorial quest you can play through, like the introduction to the Crucible. Most of these milestones appear in game as well. Some of them are BNet only, because we're so extra. You're welcome. There are some important caveats to understand about how we currently render Milestones and their deficiencies. The game currently doesn't have any content that actually tells you oughtright *what* the Milestone is: that is to say, what you'll be doing. The best we get is either a description of the overall Milestone, or of the Quest that the Milestone is having you partake in: which is usually something that assumes you already know what it's talking about, like "Complete 5 Challenges". 5 Challenges for what? What's a challenge? These are not questions that the Milestone data will answer for you unfortunately. This isn't great, and in the future I'd like to add some custom text to give you more contextual information to pass on to your users. But for now, you can do what we do to render what little display info we do have: Start by looking at the currently active quest (ideally, you've fetched DestinyMilestone or DestinyPublicMilestone data from the API, so you know the currently active quest for the Milestone in question). Look up the Quests property in the Milestone Definition, and check if it has display properties. If it does, show that as the description of the Milestone. If it doesn't, fall back on the Milestone's description. This approach will let you avoid, whenever possible, the even less useful (and sometimes nonexistant) milestone-level names and descriptions.

func (MilestoneDefinition) DefinitionTable

func (d MilestoneDefinition) DefinitionTable() string

type MilestoneDisplayPreference

type MilestoneDisplayPreference int32

Destiny.Definitions.Milestones.DestinyMilestoneDisplayPreference

A hint for the UI as to what display information ought to be shown. Defaults to showing the static MilestoneDefinition's display properties.

If for some reason the indicated property is not populated, fall back to the

MilestoneDefinition.displayProperties.

func (MilestoneDisplayPreference) Enum

type MilestoneQuest

type MilestoneQuest struct {

	// *IF* the Milestone has an active Activity that can give you greater details about what you need to
	// do, it will be returned here. Remember to associate this with the DestinyMilestoneDefinition's
	// activities to get details about the activity, including what specific quest it is related to if you
	// have multiple quests to choose from.
	Activity MilestoneActivity `json:"activity"`

	// The activities referred to by this quest can have many associated challenges. They are all contained
	// here, with activityHashes so that you can associate them with the specific activity variants in
	// which they can be found. In retrospect, I probably should have put these under the specific Activity
	// Variants, but it's too late to change it now. Theoretically, a quest without Activities can still
	// have Challenges, which is why this is on a higher level than activity/variants, but it probably
	// should have been in both places. That may come as a later revision.
	Challenges []ChallengeStatus `json:"challenges"`

	// Quests are defined as Items in content. As such, this is the hash identifier of the
	// DestinyInventoryItemDefinition that represents this quest. It will have pointers to all of the steps
	// in the quest, and display information for the quest (title, description, icon etc) Individual steps
	// will be referred to in the Quest item's DestinyInventoryItemDefinition.setData property, and
	// themselves are Items with their own renderable data.
	QuestItemHash Hash[InventoryItemDefinition] `json:"questItemHash"`

	// The current status of the quest for the character making the request.
	Status QuestStatus `json:"status"`
}

Destiny.Milestones.DestinyMilestoneQuest

If a Milestone has one or more Quests, this will contain the live information for the character's status with one of those quests.

type MilestoneQuestDefinition

type MilestoneQuestDefinition struct {

	// The full set of all possible "conceptual activities" that are related to this Milestone. Tiers or
	// alternative modes of play within these conceptual activities will be defined as sub-entities. Keyed
	// by the Conceptual Activity Hash. Use the key to look up DestinyActivityDefinition.
	Activities map[Hash[ActivityDefinition]]MilestoneActivityDefinition `json:"activities"`

	// Sometimes, a Milestone's quest is related to an entire Destination rather than a specific activity.
	// In that situation, this will be the hash of that Destination. Hotspots are currently the only
	// Milestones that expose this data, but that does not preclude this data from being returned for other
	// Milestones in the future.
	DestinationHash Nullable[Hash[DestinationDefinition]] `json:"destinationHash,omitempty"`

	// The individual quests may have different definitions from the overall milestone: if there's a
	// specific active quest, use these displayProperties instead of that of the overall
	// DestinyMilestoneDefinition.
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// If populated, this image can be shown instead of the generic milestone's image when this quest is
	// live, or it can be used to show a background image for the quest itself that differs from that of
	// the Activity or the Milestone.
	OverrideImage string `json:"overrideImage"`

	// The item representing this Milestone quest. Use this hash to look up the
	// DestinyInventoryItemDefinition for the quest to find its steps and human readable data.
	QuestItemHash Hash[InventoryItemDefinition] `json:"questItemHash"`

	// The rewards you will get for completing this quest, as best as we could extract them from our data.
	// Sometimes, it'll be a decent amount of data. Sometimes, it's going to be sucky. Sorry.
	QuestRewards MilestoneQuestRewardsDefinition `json:"questRewards"`
}

Destiny.Definitions.Milestones.DestinyMilestoneQuestDefinition

Any data we need to figure out whether this Quest Item is the currently active one for the conceptual Milestone. Even just typing this description, I already regret it.

func (MilestoneQuestDefinition) DefinitionTable

func (d MilestoneQuestDefinition) DefinitionTable() string

type MilestoneQuestRewardItem

type MilestoneQuestRewardItem struct {

	// Indicates that this item quantity may be conditionally shown or hidden, based on various sources of
	// state. For example: server flags, account state, or character progress.
	HasConditionalVisibility bool `json:"hasConditionalVisibility"`

	// The hash identifier for the item in question. Use it to look up the item's
	// DestinyInventoryItemDefinition.
	ItemHash Hash[InventoryItemDefinition] `json:"itemHash"`

	// If this quantity is referring to a specific instance of an item, this will have the item's instance
	// ID. Normally, this will be null.
	ItemInstanceID Nullable[Int64] `json:"itemInstanceId,omitempty"`

	// The amount of the item needed/available depending on the context of where DestinyItemQuantity is
	// being used.
	Quantity int32 `json:"quantity"`

	// The quest reward item *may* be associated with a vendor. If so, this is that vendor. Use this hash
	// to look up the DestinyVendorDefinition.
	VendorHash Nullable[Hash[VendorDefinition]] `json:"vendorHash,omitempty"`

	// The quest reward item *may* be associated with a vendor. If so, this is the index of the item being
	// sold, which we can use at runtime to find instanced item information for the reward item.
	VendorItemIndex Nullable[int32] `json:"vendorItemIndex,omitempty"`
}

Destiny.Definitions.Milestones.DestinyMilestoneQuestRewardItem

A subclass of DestinyItemQuantity, that provides not just the item and its quantity but also information that BNet can - at some point - use internally to provide more robust runtime information about the item's qualities. If you want it, please ask! We're just out of time to wire it up right now. Or a clever person just may do it with our existing endpoints.

func (MilestoneQuestRewardItem) DefinitionTable

func (d MilestoneQuestRewardItem) DefinitionTable() string

type MilestoneQuestRewardsDefinition

type MilestoneQuestRewardsDefinition struct {

	// The items that represent your reward for completing the quest.
	// Be warned, these could be "dummy" items: items that are only used to render a good-looking in-game
	// tooltip, but aren't the actual items themselves.
	// For instance, when experience is given there's often a dummy item representing "experience", with
	// quantity being the amount of experience you got. We don't have a programmatic association between
	// those and whatever Progression is actually getting that experience... yet.
	Items []MilestoneQuestRewardItem `json:"items"`
}

Destiny.Definitions.Milestones.DestinyMilestoneQuestRewardsDefinition

If rewards are given in a quest - as opposed to overall in the entire Milestone - there's way less to track. We're going to simplify this contract as a result. However, this also gives us the opportunity to potentially put more than just item information into the reward data if we're able to mine it out in the future. Remember this if you come back and ask "why are quest reward items nested inside of their own class?"

func (MilestoneQuestRewardsDefinition) DefinitionTable

func (d MilestoneQuestRewardsDefinition) DefinitionTable() string

type MilestoneRewardCategory

type MilestoneRewardCategory struct {

	// The individual reward entries for this category, and their status.
	Entries []MilestoneRewardEntry `json:"entries"`

	// Look up the relevant DestinyMilestoneDefinition, and then use rewardCategoryHash to look up the
	// category info in DestinyMilestoneDefinition.rewards.
	RewardCategoryHash uint32 `json:"rewardCategoryHash"`
}

Destiny.Milestones.DestinyMilestoneRewardCategory

Represents a category of "summary" rewards that can be earned for the Milestone regardless of specific quest rewards that can be earned.

type MilestoneRewardCategoryDefinition

type MilestoneRewardCategoryDefinition struct {

	// Identifies the reward category. Only guaranteed unique within this specific component!
	CategoryHash uint32 `json:"categoryHash"`

	// The string identifier for the category, if you want to use it for some end. Guaranteed unique within
	// the specific component.
	CategoryIdentifier string `json:"categoryIdentifier"`

	// Hopefully this is obvious by now.
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// If you want to use BNet's recommended order for rendering categories programmatically, use this
	// value and compare it to other categories to determine the order in which they should be rendered. I
	// don't feel great about putting this here, I won't lie.
	Order int32 `json:"order"`

	// If this milestone can provide rewards, this will define the sets of rewards that can be earned, the
	// conditions under which they can be acquired, internal data that we'll use at runtime to determine
	// whether you've already earned or redeemed this set of rewards, and the category that this reward
	// should be placed under.
	RewardEntries map[uint32]MilestoneRewardEntryDefinition `json:"rewardEntries"`
}

Destiny.Definitions.Milestones.DestinyMilestoneRewardCategoryDefinition

The definition of a category of rewards, that contains many individual rewards.

func (MilestoneRewardCategoryDefinition) DefinitionTable

func (d MilestoneRewardCategoryDefinition) DefinitionTable() string

type MilestoneRewardEntry

type MilestoneRewardEntry struct {

	// If TRUE, the player has earned this reward.
	Earned bool `json:"earned"`

	// If TRUE, the player has redeemed/picked up/obtained this reward. Feel free to alias this to
	// "gotTheShinyBauble" in your own codebase.
	Redeemed bool `json:"redeemed"`

	// The identifier for the reward entry in question. It is important to look up the related
	// DestinyMilestoneRewardEntryDefinition to get the static details about the reward, which you can do
	// by looking up the milestone's DestinyMilestoneDefinition and examining the
	// DestinyMilestoneDefinition.rewards[rewardCategoryHash].rewardEntries[rewardEntryHash] data.
	RewardEntryHash uint32 `json:"rewardEntryHash"`
}

Destiny.Milestones.DestinyMilestoneRewardEntry

The character-specific data for a milestone's reward entry. See DestinyMilestoneDefinition for more information about Reward Entries.

type MilestoneRewardEntryDefinition

type MilestoneRewardEntryDefinition struct {

	// For us to bother returning this info, we should be able to return some kind of information about why
	// these rewards are grouped together. This is ideally that information. Look at how confident I am
	// that this will always remain true.
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The items you will get as rewards, and how much of it you'll get.
	Items []ItemQuantity `json:"items"`

	// If you want to follow BNet's ordering of these rewards, use this number within a given category to
	// order the rewards. Yeah, I know. I feel dirty too.
	Order int32 `json:"order"`

	// The identifier for this reward entry. Runtime data will refer to reward entries by this hash. Only
	// guaranteed unique within the specific Milestone.
	RewardEntryHash uint32 `json:"rewardEntryHash"`

	// The string identifier, if you care about it. Only guaranteed unique within the specific Milestone.
	RewardEntryIdentifier string `json:"rewardEntryIdentifier"`

	// If this reward is redeemed at a Vendor, this is the hash of the Vendor to go to in order to redeem
	// the reward. Use this hash to look up the DestinyVendorDefinition.
	VendorHash Nullable[Hash[VendorDefinition]] `json:"vendorHash,omitempty"`
}

Destiny.Definitions.Milestones.DestinyMilestoneRewardEntryDefinition

The definition of a specific reward, which may be contained in a category of rewards and that has optional information about how it is obtained.

func (MilestoneRewardEntryDefinition) DefinitionTable

func (d MilestoneRewardEntryDefinition) DefinitionTable() string

type MilestoneType

type MilestoneType int32

Destiny.Definitions.Milestones.DestinyMilestoneType

The type of milestone. Milestones can be Tutorials, one-time/triggered/non-repeating but not necessarily tutorials, or Repeating Milestones.

func (MilestoneType) Enum

func (e MilestoneType) Enum() string

type MilestoneValueDefinition

type MilestoneValueDefinition struct {
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	Key string `json:"key"`
}

Destiny.Definitions.Milestones.DestinyMilestoneValueDefinition

The definition for information related to a key/value pair that is relevant for a particular Milestone or component within the Milestone. This lets us more flexibly pass up information that's useful to someone, even if it's not necessarily us.

func (MilestoneValueDefinition) DefinitionTable

func (d MilestoneValueDefinition) DefinitionTable() string

type MilestoneVendor

type MilestoneVendor struct {

	// If this vendor is featuring a specific item for this event, this will be the hash identifier of that
	// item. I'm taking bets now on how long we go before this needs to be a list or some other, more
	// complex representation instead and I deprecate this too. I'm going to go with 5 months. Calling it
	// now, 2017-09-14 at 9:46pm PST.
	PreviewItemHash Nullable[Hash[InventoryItemDefinition]] `json:"previewItemHash,omitempty"`

	// The hash identifier of the Vendor related to this Milestone. You can show useful things from this,
	// such as thier Faction icon or whatever you might care about.
	VendorHash Hash[VendorDefinition] `json:"vendorHash"`
}

Destiny.Milestones.DestinyMilestoneVendor

If a Milestone has one or more Vendors that are relevant to it, this will contain information about that vendor that you can choose to show.

type MilestoneVendorDefinition

type MilestoneVendorDefinition struct {

	// The hash of the vendor whose wares should be shown as associated with the Milestone.
	VendorHash Hash[VendorDefinition] `json:"vendorHash"`
}

Destiny.Definitions.Milestones.DestinyMilestoneVendorDefinition

If the Milestone or a component has vendors whose inventories could/should be displayed that are relevant to it, this will return the vendor in question. It also contains information we need to determine whether that vendor is actually relevant at the moment, given the user's current state.

func (MilestoneVendorDefinition) DefinitionTable

func (d MilestoneVendorDefinition) DefinitionTable() string

type NewsArticleRssItem

type NewsArticleRssItem struct {
	Description string `json:"Description"`

	HtmlContent string `json:"HtmlContent"`

	ImagePath string `json:"ImagePath"`

	Link string `json:"Link"`

	OptionalMobileImagePath string `json:"OptionalMobileImagePath"`

	PubDate Timestamp `json:"PubDate"`

	Title string `json:"Title"`

	UniqueIdentifier string `json:"UniqueIdentifier"`
}

Content.NewsArticleRssItem

type NewsArticleRssResponse

type NewsArticleRssResponse struct {
	CategoryFilter string `json:"CategoryFilter"`

	CurrentPaginationToken int32 `json:"CurrentPaginationToken"`

	NewsArticles []NewsArticleRssItem `json:"NewsArticles"`

	NextPaginationToken Nullable[int32] `json:"NextPaginationToken,omitempty"`

	ResultCountThisPage int32 `json:"ResultCountThisPage"`
}

Content.NewsArticleRssResponse

type NodeActivationRequirement

type NodeActivationRequirement struct {

	// The Progression level on the Talent Grid required to activate this node.
	// See DestinyTalentGridDefinition.progressionHash for the related Progression, and read
	// DestinyProgressionDefinition's documentation to learn more about Progressions.
	GridLevel int32 `json:"gridLevel"`

	// The list of hash identifiers for material requirement sets: materials that are required for the node
	// to be activated. See DestinyMaterialRequirementSetDefinition for more information about material
	// requirements.
	// In this case, only a single DestinyMaterialRequirementSetDefinition will be chosen from this list,
	// and we won't know which one will be chosen until an instance of the item is created.
	MaterialRequirementHashes []uint32 `json:"materialRequirementHashes"`
}

Destiny.Definitions.DestinyNodeActivationRequirement

Talent nodes have requirements that must be met before they can be activated. This describes the material costs, the Level of the Talent Grid's progression required, and other conditional information that limits whether a talent node can be activated.

func (NodeActivationRequirement) DefinitionTable

func (d NodeActivationRequirement) DefinitionTable() string

type NodeSocketReplaceResponse

type NodeSocketReplaceResponse struct {

	// The hash identifier of the plug item that will be inserted into the socket found.
	PlugItemHash Hash[InventoryItemDefinition] `json:"plugItemHash"`

	// The hash identifier of the socket type to find amidst the item's sockets (the item to which this
	// talent grid is attached). See DestinyInventoryItemDefinition.sockets.socketEntries to find the
	// socket type of sockets on the item in question.
	SocketTypeHash Hash[SocketTypeDefinition] `json:"socketTypeHash"`
}

Destiny.Definitions.DestinyNodeSocketReplaceResponse

This is a bit of an odd duck. Apparently, if talent nodes steps have this data, the game will go through on step activation and alter the first Socket it finds on the item that has a type matching the given socket type, inserting the indicated plug item.

func (NodeSocketReplaceResponse) DefinitionTable

func (d NodeSocketReplaceResponse) DefinitionTable() string

type NodeStepDefinition

type NodeStepDefinition struct {

	// If the step has requirements for activation (they almost always do, if nothing else than for the
	// Talent Grid's Progression to have reached a certain level), they will be defined here.
	ActivationRequirement NodeActivationRequirement `json:"activationRequirement"`

	// If true, this step can affect the level of the item. See DestinyInventoryItemDefintion for more
	// information about item levels and their effect on stats.
	AffectsLevel bool `json:"affectsLevel"`

	// If this is true, the step affects the item's Quality in some way. See DestinyInventoryItemDefinition
	// for more information about the meaning of Quality. I already made a joke about Zen and the Art of
	// Motorcycle Maintenance elsewhere in the documentation, so I will avoid doing it again. Oops too late
	AffectsQuality bool `json:"affectsQuality"`

	// There was a time when talent nodes could be activated multiple times, and the effects of subsequent
	// Steps would be compounded on each other, essentially "upgrading" the node. We have moved away from
	// this, but theoretically the capability still exists.
	// I continue to return this in case it is used in the future: if true and this step is the current
	// step in the node, you are allowed to activate the node a second time to receive the benefits of the
	// next step in the node, which will then become the active step.
	CanActivateNextStep bool `json:"canActivateNextStep"`

	// An enum representing a damage type granted by activating this step, if any.
	DamageType DamageType `json:"damageType"`

	// If the step provides a damage type, this will be the hash identifier used to look up the damage
	// type's DestinyDamageTypeDefinition.
	DamageTypeHash Nullable[Hash[DamageTypeDefinition]] `json:"damageTypeHash,omitempty"`

	// These are the display properties actually used to render the Talent Node. The currently active
	// step's displayProperties are shown.
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// If you can interact with this node in some way, this is the localized description of that
	// interaction.
	InteractionDescription string `json:"interactionDescription"`

	// If true, the next step to be chosen is random, and if you're allowed to activate the next step. (if
	// canActivateNextStep = true)
	IsNextStepRandom bool `json:"isNextStepRandom"`

	// The stepIndex of the next step in the talent node, or -1 if this is the last step or if the next
	// step to be chosen is random.
	// This doesn't really matter anymore unless canActivateNextStep begins to be used again.
	NextStepIndex int32 `json:"nextStepIndex"`

	// The hash of this node step. Unfortunately, while it can be used to uniquely identify the step within
	// a node, it is also content version dependent and should not be relied on without ensuring you have
	// the latest vesion of content.
	NodeStepHash uint32 `json:"nodeStepHash"`

	// The list of hash identifiers for Perks (DestinySandboxPerkDefinition) that are applied when this
	// step is active. Perks provide a variety of benefits and modifications - examine
	// DestinySandboxPerkDefinition to learn more.
	PerkHashes []uint32 `json:"perkHashes"`

	// If this step is activated, this will be a list of information used to replace socket items with new
	// Plugs. See DestinyInventoryItemDefinition for more information about sockets and plugs.
	SocketReplacements []NodeSocketReplaceResponse `json:"socketReplacements"`

	// When the Talent Grid's progression reaches this value, the circular "progress bar" that surrounds
	// the talent node should be shown.
	// This also indicates the lower bound of said progress bar, with the upper bound being the progress
	// required to reach activationRequirement.gridLevel. (at some point I should precalculate the upper
	// bound and put it in the definition to save people time)
	StartProgressionBarAtProgress int32 `json:"startProgressionBarAtProgress"`

	// When the step provides stat benefits on the item or character, this is the list of hash identifiers
	// for stats (DestinyStatDefinition) that are provided.
	StatHashes []uint32 `json:"statHashes"`

	// In Destiny 1, the Armory's Perk Filtering was driven by a concept of TalentNodeStepGroups:
	// categorizations of talent nodes based on their functionality. While the Armory isn't a BNet-facing
	// thing for now, and the new Armory will need to account for Sockets rather than Talent Nodes, this
	// categorization capability feels useful enough to still keep around.
	StepGroups TalentNodeStepGroups `json:"stepGroups"`

	// The index of this step in the list of Steps on the Talent Node.
	// Unfortunately, this is the closest thing we have to an identifier for the Step: steps are not
	// provided a content version agnostic identifier. This means that, when you are dealing with talent
	// nodes, you will need to first ensure that you have the latest version of content.
	StepIndex int32 `json:"stepIndex"`
}

Destiny.Definitions.DestinyNodeStepDefinition

This defines the properties of a "Talent Node Step". When you see a talent node in game, the actual visible properties that you see (its icon, description, the perks and stats it provides) are not provided by the Node itself, but rather by the currently active Step on the node. When a Talent Node is activated, the currently active step's benefits are conferred upon the item and character. The currently active step on talent nodes are determined when an item is first instantiated. Sometimes it is random, sometimes it is more deterministic (particularly when a node has only a single step). Note that, when dealing with Talent Node Steps, you must ensure that you have the latest version of content. stepIndex and nodeStepHash - two ways of identifying the step within a node - are both content version dependent, and thus are subject to change between content updates.

func (NodeStepDefinition) DefinitionTable

func (d NodeStepDefinition) DefinitionTable() string

type Nullable

type Nullable[T any] struct {
	// contains filtered or unexported fields
}

func (Nullable[T]) IsNull

func (n Nullable[T]) IsNull() bool

func (Nullable[T]) MarshalJSON

func (n Nullable[T]) MarshalJSON() ([]byte, error)

func (Nullable[T]) Must

func (n Nullable[T]) Must() T

func (*Nullable[T]) UnmarshalJSON

func (n *Nullable[T]) UnmarshalJSON(raw []byte) error

func (Nullable[T]) Value

func (n Nullable[T]) Value() (v T, ok bool)

type ObjectiveDefinition

type ObjectiveDefinition struct {

	// If true, the value is allowed to go negative.
	AllowNegativeValue bool `json:"allowNegativeValue"`

	// If True, the progress will continue even beyond the point where the objective met its minimum
	// completion requirements. Your UI will have to accommodate it.
	AllowOvercompletion bool `json:"allowOvercompletion"`

	// If true, you can effectively "un-complete" this objective if you lose progress after crossing the
	// completion threshold.
	// If False, once you complete the task it will remain completed forever by locking the value.
	AllowValueChangeWhenCompleted bool `json:"allowValueChangeWhenCompleted"`

	// The style to use when the objective is completed.
	CompletedValueStyle UnlockValueUIStyle `json:"completedValueStyle"`

	// The value that the unlock value defined in unlockValueHash must reach in order for the objective to
	// be considered Completed. Used in calculating progress and completion status.
	CompletionValue int32 `json:"completionValue"`

	// Ideally, this should tell you what your task is. I'm not going to lie to you though. Sometimes this
	// doesn't have useful information at all. Which sucks, but there's nothing either of us can do about
	// it.
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The style to use when the objective is still in progress.
	InProgressValueStyle UnlockValueUIStyle `json:"inProgressValueStyle"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If true, completion means having an unlock value less than or equal to the completionValue.
	// If False, completion means having an unlock value greater than or equal to the completionValue.
	IsCountingDownward bool `json:"isCountingDownward"`

	// OPTIONAL: a hash identifier for the location at which this objective must be accomplished, if there
	// is a location defined. Look up the DestinyLocationDefinition for this hash for that additional
	// location info.
	LocationHash Hash[LocationDefinition] `json:"locationHash"`

	// If nonzero, this is the minimum value at which the objective's progression should be shown.
	// Otherwise, don't show it yet.
	MinimumVisibilityThreshold int32 `json:"minimumVisibilityThreshold"`

	// If this objective enables Perks intrinsically, the conditions for that enabling are defined here.
	Perks ObjectivePerkEntryDefinition `json:"perks"`

	// Text to describe the progress bar.
	ProgressDescription string `json:"progressDescription"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	// A shortcut for determining the most restrictive gating that this Objective is set to use. This
	// includes both the dynamic determination of progress and of completion values. See the
	// DestinyGatingScope enum's documentation for more details.
	Scope GatingScope `json:"scope"`

	// If True, you should continue showing the progression value in the UI after it's complete. I mean, we
	// already do that in BNet anyways, but if you want to be better behaved than us you could honor this
	// flag.
	ShowValueOnComplete bool `json:"showValueOnComplete"`

	// If this objective enables modifications on a player's stats intrinsically, the conditions are
	// defined here.
	Stats ObjectiveStatEntryDefinition `json:"stats"`

	// Objectives can have arbitrary UI-defined identifiers that define the style applied to objectives.
	// For convenience, known UI labels will be defined in the uiStyle enum value.
	UiLabel string `json:"uiLabel"`

	// If the objective has a known UI label value, this property will represent it.
	UiStyle ObjectiveUiStyle `json:"uiStyle"`

	// The UI style applied to the objective. It's an enum, take a look at DestinyUnlockValueUIStyle for
	// details of the possible styles. Use this info as you wish to customize your UI.
	// DEPRECATED: This is no longer populated by Destiny 2 game content. Please use inProgressValueStyle
	// and completedValueStyle instead.
	ValueStyle UnlockValueUIStyle `json:"valueStyle"`
}

Destiny.Definitions.DestinyObjectiveDefinition

Defines an "Objective". An objective is a specific task you should accomplish in the game. These are referred to by: - Quest Steps (which are DestinyInventoryItemDefinition entities with Objectives) - Challenges (which are Objectives defined on an DestinyActivityDefintion) - Milestones (which refer to Objectives that are defined on both Quest Steps and Activities) - Anything else that the designers decide to do later. Objectives have progress, a notion of having been Completed, human readable data describing the task to be accomplished, and a lot of optional tack-on data that can enhance the information provided about the task.

func (ObjectiveDefinition) DefinitionTable

func (d ObjectiveDefinition) DefinitionTable() string

type ObjectiveDisplayProperties

type ObjectiveDisplayProperties struct {

	// The activity associated with this objective in the context of this item, if any.
	ActivityHash Nullable[Hash[ActivityDefinition]] `json:"activityHash,omitempty"`

	// If true, the game shows this objective on item preview screens.
	DisplayOnItemPreviewScreen bool `json:"displayOnItemPreviewScreen"`
}

Destiny.Definitions.DestinyObjectiveDisplayProperties

func (ObjectiveDisplayProperties) DefinitionTable

func (d ObjectiveDisplayProperties) DefinitionTable() string

type ObjectiveGrantStyle

type ObjectiveGrantStyle int32

Destiny.DestinyObjectiveGrantStyle

Some Objectives provide perks, generally as part of providing some kind of interesting modifier for a Challenge or Quest. This indicates when the Perk is granted.

func (ObjectiveGrantStyle) Enum

func (e ObjectiveGrantStyle) Enum() string

type ObjectivePerkEntryDefinition

type ObjectivePerkEntryDefinition struct {

	// The hash identifier of the DestinySandboxPerkDefinition that will be applied to the character.
	PerkHash Hash[SandboxPerkDefinition] `json:"perkHash"`

	// An enumeration indicating whether it will be applied as long as the Objective is active, when it's
	// completed, or until it's completed.
	Style ObjectiveGrantStyle `json:"style"`
}

Destiny.Definitions.DestinyObjectivePerkEntryDefinition

Defines the conditions under which an intrinsic perk is applied while participating in an Objective. These perks will generally not be benefit-granting perks, but rather a perk that modifies gameplay in some interesting way.

func (ObjectivePerkEntryDefinition) DefinitionTable

func (d ObjectivePerkEntryDefinition) DefinitionTable() string

type ObjectiveProgress

type ObjectiveProgress struct {

	// If the Objective has an Activity associated with it, this is the unique identifier of the Activity
	// being referred to. Use to look up the DestinyActivityDefinition in static data. This will give
	// localized data about *what* you should be playing for the objective to be achieved.
	ActivityHash Nullable[Hash[ActivityDefinition]] `json:"activityHash,omitempty"`

	// Whether or not the Objective is completed.
	Complete bool `json:"complete"`

	// As of Forsaken, objectives' completion value is determined dynamically at runtime.
	// This value represents the threshold of progress you need to surpass in order for this objective to
	// be considered "complete".
	// If you were using objective data, switch from using the DestinyObjectiveDefinition's
	// "completionValue" to this value.
	CompletionValue int32 `json:"completionValue"`

	// If the Objective has a Destination associated with it, this is the unique identifier of the
	// Destination being referred to. Use to look up the DestinyDestinationDefinition in static data. This
	// will give localized data about *where* in the universe the objective should be achieved.
	DestinationHash Nullable[Hash[DestinationDefinition]] `json:"destinationHash,omitempty"`

	// The unique identifier of the Objective being referred to. Use to look up the
	// DestinyObjectiveDefinition in static data.
	ObjectiveHash Hash[ObjectiveDefinition] `json:"objectiveHash"`

	// If progress has been made, and the progress can be measured numerically, this will be the value of
	// that progress. You can compare it to the DestinyObjectiveDefinition.completionValue property for
	// current vs. upper bounds, and use DestinyObjectiveDefinition.inProgressValueStyle or
	// completedValueStyle to determine how this should be rendered. Note that progress, in Destiny 2, need
	// not be a literal numeric progression. It could be one of a number of possible values, even a
	// Timestamp. Always examine DestinyObjectiveDefinition.inProgressValueStyle or completedValueStyle
	// before rendering progress.
	Progress Nullable[int32] `json:"progress,omitempty"`

	// If this is true, the objective is visible in-game. Otherwise, it's not yet visible to the player. Up
	// to you if you want to honor this property.
	Visible bool `json:"visible"`
}

Destiny.Quests.DestinyObjectiveProgress

Returns data about a character's status with a given Objective. Combine with DestinyObjectiveDefinition static data for display purposes.

type ObjectiveStatEntryDefinition

type ObjectiveStatEntryDefinition struct {

	// The stat being modified, and the value used.
	Stat ItemInvestmentStatDefinition `json:"stat"`

	// Whether it will be applied as long as the objective is active, when it's completed, or until it's
	// completed.
	Style ObjectiveGrantStyle `json:"style"`
}

Destiny.Definitions.DestinyObjectiveStatEntryDefinition

Defines the conditions under which stat modifications will be applied to a Character while participating in an objective.

func (ObjectiveStatEntryDefinition) DefinitionTable

func (d ObjectiveStatEntryDefinition) DefinitionTable() string

type ObjectiveUiStyle

type ObjectiveUiStyle int32

Destiny.DestinyObjectiveUiStyle

If the objective has a known UI label, this enumeration will represent it.

func (ObjectiveUiStyle) Enum

func (e ObjectiveUiStyle) Enum() string

type OptInFlags

type OptInFlags Int64

User.OptInFlags

func (OptInFlags) Enum

func (e OptInFlags) Enum() string

type PagedQuery

type PagedQuery struct {
	CurrentPage int32 `json:"currentPage"`

	ItemsPerPage int32 `json:"itemsPerPage"`

	RequestContinuationToken string `json:"requestContinuationToken"`
}

Queries.PagedQuery

type ParentItemOverride

type ParentItemOverride struct {
	AdditionalEquipRequirementsDisplayStrings []string `json:"additionalEquipRequirementsDisplayStrings"`

	PipIcon string `json:"pipIcon"`
}

Destiny.Definitions.Items.DestinyParentItemOverride

func (ParentItemOverride) DefinitionTable

func (d ParentItemOverride) DefinitionTable() string

type PartnerOfferClaimRequest

type PartnerOfferClaimRequest struct {
	BungieNetMembershipID Int64 `json:"BungieNetMembershipId"`

	PartnerOfferID string `json:"PartnerOfferId"`

	TransactionID string `json:"TransactionId"`
}

Tokens.PartnerOfferClaimRequest

type PartnerOfferHistoryResponse

type PartnerOfferHistoryResponse struct {
	ApplyDate Nullable[Timestamp] `json:"ApplyDate,omitempty"`

	IsConsumable bool `json:"IsConsumable"`

	LocalizedDescription string `json:"LocalizedDescription"`

	LocalizedName string `json:"LocalizedName"`

	MembershipID Nullable[Int64] `json:"MembershipId,omitempty"`

	MembershipType Nullable[int32] `json:"MembershipType,omitempty"`

	PartnerOfferKey string `json:"PartnerOfferKey"`

	QuantityApplied int32 `json:"QuantityApplied"`
}

Tokens.PartnerOfferHistoryResponse

type PartnerOfferSkuHistoryResponse

type PartnerOfferSkuHistoryResponse struct {
	AllOffersApplied bool `json:"AllOffersApplied"`

	ClaimDate Timestamp `json:"ClaimDate"`

	LocalizedDescription string `json:"LocalizedDescription"`

	LocalizedName string `json:"LocalizedName"`

	SkuIdentifier string `json:"SkuIdentifier"`

	SkuOffers []PartnerOfferHistoryResponse `json:"SkuOffers"`

	TransactionID string `json:"TransactionId"`
}

Tokens.PartnerOfferSkuHistoryResponse

type PartnerRewardHistoryResponse

type PartnerRewardHistoryResponse struct {
	PartnerOffers []PartnerOfferSkuHistoryResponse `json:"PartnerOffers"`

	TwitchDrops []TwitchDropHistoryResponse `json:"TwitchDrops"`
}

Tokens.PartnerRewardHistoryResponse

type PartyMemberStates

type PartyMemberStates int32

Destiny.DestinyPartyMemberStates

A flags enumeration that represents a Fireteam Member's status.

func (PartyMemberStates) Enum

func (e PartyMemberStates) Enum() string

type PeriodType

type PeriodType int32

Destiny.HistoricalStats.Definitions.PeriodType

func (PeriodType) Enum

func (e PeriodType) Enum() string

type PerkReference

type PerkReference struct {

	// The icon for the perk.
	IconPath string `json:"iconPath"`

	// Whether this perk is currently active. (We may return perks that you have not actually activated
	// yet: these represent perks that you should show in the item's tooltip, but that the user has not yet
	// activated.)
	IsActive bool `json:"isActive"`

	// The hash identifier for the perk, which can be used to look up DestinySandboxPerkDefinition if it
	// exists. Be warned, perks frequently do not have user-viewable information. You should examine
	// whether you actually found a name/description in the perk's definition before you show it to the
	// user.
	PerkHash Hash[SandboxPerkDefinition] `json:"perkHash"`

	// Some perks provide benefits, but aren't visible in the UI. This value will let you know if this is
	// perk should be shown in your UI.
	Visible bool `json:"visible"`
}

Destiny.Perks.DestinyPerkReference

The list of perks to display in an item tooltip - and whether or not they have been activated. Perks apply a variety of effects to a character, and are generally either intrinsic to the item or provided in activated talent nodes or sockets.

type PersonalDestinyVendorSaleItemSetComponent

type PersonalDestinyVendorSaleItemSetComponent struct {
	SaleItems map[int32]VendorSaleItemComponent `json:"saleItems"`
}

Destiny.Responses.PersonalDestinyVendorSaleItemSetComponent

type PlaceDefinition

type PlaceDefinition struct {
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.DestinyPlaceDefinition

Okay, so Activities (DestinyActivityDefinition) take place in Destinations (DestinyDestinationDefinition). Destinations are part of larger locations known as Places (you're reading its documentation right now). Places are more on the planetary scale, like "Earth" and "Your Mom."

func (PlaceDefinition) DefinitionTable

func (d PlaceDefinition) DefinitionTable() string

type PlatformErrorCodes

type PlatformErrorCodes int32

Exceptions.PlatformErrorCodes

func (PlatformErrorCodes) Enum

func (e PlatformErrorCodes) Enum() string

type PlatformFriend

type PlatformFriend struct {
	BungieGlobalDisplayName string `json:"bungieGlobalDisplayName"`

	BungieGlobalDisplayNameCode Nullable[int16] `json:"bungieGlobalDisplayNameCode,omitempty"`

	BungieNetMembershipID Nullable[Int64] `json:"bungieNetMembershipId,omitempty"`

	DestinyMembershipID Nullable[Int64] `json:"destinyMembershipId,omitempty"`

	DestinyMembershipType Nullable[int32] `json:"destinyMembershipType,omitempty"`

	FriendPlatform PlatformFriendType `json:"friendPlatform"`

	PlatformDisplayName string `json:"platformDisplayName"`
}

Social.Friends.PlatformFriend

type PlatformFriendResponse

type PlatformFriendResponse struct {
	CurrentPage int32 `json:"currentPage"`

	HasMore bool `json:"hasMore"`

	ItemsPerPage int32 `json:"itemsPerPage"`

	PlatformFriends []PlatformFriend `json:"platformFriends"`
}

Social.Friends.PlatformFriendResponse

type PlatformFriendType

type PlatformFriendType int32

Social.Friends.PlatformFriendType

func (PlatformFriendType) Enum

func (e PlatformFriendType) Enum() string

type PlatformSilverComponent

type PlatformSilverComponent struct {

	// If a Profile is played on multiple platforms, this is the silver they have for each platform, keyed
	// by Membership Type.
	PlatformSilver map[string]ItemComponent `json:"platformSilver"`
}

Destiny.Components.Inventory.DestinyPlatformSilverComponent

type Player

type Player struct {

	// Details about the player as they are known on BungieNet. This will be undefined if the player has
	// marked their credential private, or does not have a BungieNet account.
	BungieNetUserInfo UserInfoCard `json:"bungieNetUserInfo"`

	// Class of the character if applicable and available.
	CharacterClass string `json:"characterClass"`

	// Level of the character if available. Zero if it is not available.
	CharacterLevel int32 `json:"characterLevel"`

	// Current clan name for the player. This value may be null or an empty string if the user does not
	// have a clan.
	ClanName string `json:"clanName"`

	// Current clan tag for the player. This value may be null or an empty string if the user does not have
	// a clan.
	ClanTag string `json:"clanTag"`

	ClassHash Hash[ClassDefinition] `json:"classHash"`

	// Details about the player as they are known in game (platform display name, Destiny emblem)
	DestinyUserInfo UserInfoCard `json:"destinyUserInfo"`

	// If we know the emblem's hash, this can be used to look up the player's emblem at the time of a match
	// when receiving PGCR data, or otherwise their currently equipped emblem (if we are able to obtain
	// it).
	EmblemHash Hash[InventoryItemDefinition] `json:"emblemHash"`

	GenderHash Hash[GenderDefinition] `json:"genderHash"`

	// Light Level of the character if available. Zero if it is not available.
	LightLevel int32 `json:"lightLevel"`

	RaceHash Hash[RaceDefinition] `json:"raceHash"`
}

Destiny.HistoricalStats.DestinyPlayer

type PlugAvailabilityMode

type PlugAvailabilityMode int32

Destiny.PlugAvailabilityMode

This enum determines whether the plug is available to be inserted. - Normal means that all existing rules for plug insertion apply. - UnavailableIfSocketContainsMatchingPlugCategory means that the plug is only available if the socket does NOT match the plug category. - AvailableIfSocketContainsMatchingPlugCategory means that the plug is only available if the socket DOES match the plug category. For category matching, use the plug's "plugCategoryIdentifier" property, comparing it to

func (PlugAvailabilityMode) Enum

func (e PlugAvailabilityMode) Enum() string

type PlugItemCraftingRequirements

type PlugItemCraftingRequirements struct {
	MaterialRequirementHashes []uint32 `json:"materialRequirementHashes"`

	// If the plug has a known level requirement, it'll be available here.
	RequiredLevel Nullable[int32] `json:"requiredLevel,omitempty"`

	UnlockRequirements []PlugItemCraftingUnlockRequirement `json:"unlockRequirements"`
}

Destiny.Definitions.DestinyPlugItemCraftingRequirements

func (PlugItemCraftingRequirements) DefinitionTable

func (d PlugItemCraftingRequirements) DefinitionTable() string

type PlugItemCraftingUnlockRequirement

type PlugItemCraftingUnlockRequirement struct {
	FailureDescription string `json:"failureDescription"`
}

Destiny.Definitions.DestinyPlugItemCraftingUnlockRequirement

func (PlugItemCraftingUnlockRequirement) DefinitionTable

func (d PlugItemCraftingUnlockRequirement) DefinitionTable() string

type PlugRuleDefinition

type PlugRuleDefinition struct {

	// The localized string to show if this rule fails.
	FailureMessage string `json:"failureMessage"`
}

Destiny.Definitions.Items.DestinyPlugRuleDefinition

Dictates a rule around whether the plug is enabled or insertable. In practice, the live Destiny data will refer to these entries by index. You can then look up that index in the appropriate property (enabledRules or insertionRules) to get the localized string for the failure message if it failed.

func (PlugRuleDefinition) DefinitionTable

func (d PlugRuleDefinition) DefinitionTable() string

type PlugSetDefinition

type PlugSetDefinition struct {

	// If you want to show these plugs in isolation, these are the display properties for them.
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// Mostly for our debugging or reporting bugs, BNet is making "fake" plug sets in a desperate effort to
	// reduce socket sizes.
	//
	//	If this is true, the plug set was generated by BNet: if it looks wrong, that's a good indicator
	//
	// that it's bungie.net that fucked this up.
	IsFakePlugSet bool `json:"isFakePlugSet"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	// This is a list of pre-determined plugs that can be plugged into this socket, without the character
	// having the plug in their inventory.
	// If this list is populated, you will not be allowed to plug an arbitrary item in the socket: you will
	// only be able to choose from one of these reusable plugs.
	ReusablePlugItems []ItemSocketEntryPlugItemRandomizedDefinition `json:"reusablePlugItems"`
}

Destiny.Definitions.Sockets.DestinyPlugSetDefinition

Sometimes, we have large sets of reusable plugs that are defined identically and thus can (and in some cases, are so large that they *must*) be shared across the places where they are used. These are the definitions for those reusable sets of plugs.

See DestinyItemSocketEntryDefinition.plugSource and reusablePlugSetHash for the relationship

between these reusable plug sets and the sockets that leverage them (for starters, Emotes).

As of the release of Shadowkeep (Late 2019), these will begin to be sourced from game content

directly - which means there will be many more of them, but it also means we may not get all data that we used to get for them.

DisplayProperties, in particular, will no longer be guaranteed to contain valid information. We

will make a best effort to guess what ought to be populated there where possible, but it will be invalid for many/most plug sets.

func (PlugSetDefinition) DefinitionTable

func (d PlugSetDefinition) DefinitionTable() string

type PlugSetsComponent

type PlugSetsComponent struct {

	// The shared list of plugs for each relevant PlugSet, keyed by the hash identifier of the PlugSet
	// (DestinyPlugSetDefinition).
	Plugs map[Hash[PlugSetDefinition]][]ItemPlug `json:"plugs"`
}

Destiny.Components.PlugSets.DestinyPlugSetsComponent

Sockets may refer to a "Plug Set": a set of reusable plugs that may be shared across multiple sockets (or even, in theory, multiple sockets over multiple items). This is the set of those plugs that we came across in the users' inventory, along with the values for plugs in the set. Any given set in this component may be represented in Character and Profile-level, as some plugs may be Profile-level restricted, and some character-level restricted. (note that the ones that are even more specific will remain on the actual socket component itself, as they cannot be reused)

type PlugUiStyles

type PlugUiStyles int32

Destiny.PlugUiStyles

If the plug has a specific custom style, this enumeration will represent that style/those styles.

func (PlugUiStyles) Enum

func (e PlugUiStyles) Enum() string

type PlugWhitelistEntryDefinition

type PlugWhitelistEntryDefinition struct {

	// The hash identifier of the Plug Category to compare against the plug item's plug.plugCategoryHash.
	// Note that this does NOT relate to any Definition in itself, it is only used for comparison purposes.
	CategoryHash uint32 `json:"categoryHash"`

	// The string identifier for the category, which is here mostly for debug purposes.
	CategoryIdentifier string `json:"categoryIdentifier"`

	// The list of all plug items (DestinyInventoryItemDefinition) that the socket may randomly be
	// populated with when reinitialized.
	// Which ones you should actually show are determined by the plug being inserted into the socket, and
	// the socket’s type.
	// When you inspect the plug that could go into a Masterwork Socket, look up the socket type of the
	// socket being inspected and find the DestinySocketTypeDefinition.
	// Then, look at the Plugs that can fit in that socket. Find the Whitelist in the
	// DestinySocketTypeDefinition that matches the plug item’s categoryhash.
	// That whitelist entry will potentially have a new “reinitializationPossiblePlugHashes” property.If it
	// does, that means we know what it will roll if you try to insert this plug into this socket.
	ReinitializationPossiblePlugHashes []uint32 `json:"reinitializationPossiblePlugHashes"`
}

Destiny.Definitions.Sockets.DestinyPlugWhitelistEntryDefinition

Defines a plug "Category" that is allowed to be plugged into a socket of this type. This should be compared against a given plug item's DestinyInventoryItemDefinition.plug.plugCategoryHash, which indicates the plug item's category.

func (PlugWhitelistEntryDefinition) DefinitionTable

func (d PlugWhitelistEntryDefinition) DefinitionTable() string

type PollResponse

type PollResponse struct {
	Results []PollResult `json:"results"`

	TopicID Int64 `json:"topicId"`

	TotalVotes int32 `json:"totalVotes"`
}

Forum.PollResponse

type PollResult

type PollResult struct {
	AnswerSlot int32 `json:"answerSlot"`

	AnswerText string `json:"answerText"`

	LastVoteDate Timestamp `json:"lastVoteDate"`

	RequestingUserVoted bool `json:"requestingUserVoted"`

	Votes int32 `json:"votes"`
}

Forum.PollResult

type PositionDefinition

type PositionDefinition struct {
	X int32 `json:"x"`

	Y int32 `json:"y"`

	Z int32 `json:"z"`
}

Destiny.Definitions.Common.DestinyPositionDefinition

func (PositionDefinition) DefinitionTable

func (d PositionDefinition) DefinitionTable() string

type PostGameCarnageReportData

type PostGameCarnageReportData struct {

	// Details about the activity.
	ActivityDetails HistoricalStatsActivity `json:"activityDetails"`

	// True if the activity was started from the beginning, if that information is available and the
	// activity was played post Witch Queen release.
	ActivityWasStartedFromBeginning Nullable[bool] `json:"activityWasStartedFromBeginning,omitempty"`

	// Collection of players and their data for this activity.
	Entries []PostGameCarnageReportEntry `json:"entries"`

	// Date and time for the activity.
	Period Timestamp `json:"period"`

	// If this activity has "phases", this is the phase at which the activity was started. This value is
	// only valid for activities before the Beyond Light expansion shipped. Subsequent activities will not
	// have a valid value here.
	StartingPhaseIndex Nullable[int32] `json:"startingPhaseIndex,omitempty"`

	// Collection of stats for the player in this activity.
	Teams []PostGameCarnageReportTeamEntry `json:"teams"`
}

Destiny.HistoricalStats.DestinyPostGameCarnageReportData

type PostGameCarnageReportEntry

type PostGameCarnageReportEntry struct {

	// ID of the player's character used in the activity.
	CharacterID Int64 `json:"characterId"`

	// Extended data extracted from the activity blob.
	Extended PostGameCarnageReportExtendedData `json:"extended"`

	// Identity details of the player
	Player Player `json:"player"`

	// Score of the player if available
	Score HistoricalStatsValue `json:"score"`

	// Standing of the player
	Standing int32 `json:"standing"`

	// Collection of stats for the player in this activity.
	Values map[string]HistoricalStatsValue `json:"values"`
}

Destiny.HistoricalStats.DestinyPostGameCarnageReportEntry

type PostGameCarnageReportExtendedData

type PostGameCarnageReportExtendedData struct {

	// Collection of stats for the player in this activity.
	Values map[string]HistoricalStatsValue `json:"values"`

	// List of weapons and their perspective values.
	Weapons []HistoricalWeaponStats `json:"weapons"`
}

Destiny.HistoricalStats.DestinyPostGameCarnageReportExtendedData

type PostGameCarnageReportTeamEntry

type PostGameCarnageReportTeamEntry struct {

	// Score earned by the team
	Score HistoricalStatsValue `json:"score"`

	// Team's standing relative to other teams.
	Standing HistoricalStatsValue `json:"standing"`

	// Integer ID for the team.
	TeamID int32 `json:"teamId"`

	// Alpha or Bravo
	TeamName string `json:"teamName"`
}

Destiny.HistoricalStats.DestinyPostGameCarnageReportTeamEntry

type PostResponse

type PostResponse struct {
	IsPinned bool `json:"IsPinned"`

	IgnoreStatus IgnoreResponse `json:"ignoreStatus"`

	IsActive bool `json:"isActive"`

	IsAnnouncement bool `json:"isAnnouncement"`

	LastReplyTimestamp Timestamp `json:"lastReplyTimestamp"`

	LatestReplyAuthorID Int64 `json:"latestReplyAuthorId"`

	LatestReplyPostID Int64 `json:"latestReplyPostId"`

	Locale string `json:"locale"`

	Popularity ForumPostPopularity `json:"popularity"`

	Thumbnail string `json:"thumbnail"`

	UrlMediaType ForumMediaType `json:"urlMediaType"`

	UserHasMutedPost bool `json:"userHasMutedPost"`

	UserHasRated bool `json:"userHasRated"`

	UserRating int32 `json:"userRating"`
}

Forum.PostResponse

type PostSearchResponse

type PostSearchResponse struct {
	Authors []GeneralUser `json:"authors"`

	AvailablePages Nullable[int32] `json:"availablePages,omitempty"`

	Groups []GroupResponse `json:"groups"`

	HasMore bool `json:"hasMore"`

	Polls []PollResponse `json:"polls"`

	Query PagedQuery `json:"query"`

	RecruitmentDetails []ForumRecruitmentDetail `json:"recruitmentDetails"`

	RelatedPosts []PostResponse `json:"relatedPosts"`

	ReplacementContinuationToken string `json:"replacementContinuationToken"`

	Results []PostResponse `json:"results"`

	SearchedTags []TagResponse `json:"searchedTags"`

	TotalResults int32 `json:"totalResults"`

	// If useTotalResults is true, then totalResults represents an accurate count.
	// If False, it does not, and may be estimated/only the size of the current page.
	// Either way, you should probably always only trust hasMore.
	// This is a long-held historical throwback to when we used to do paging with known total results.
	// Those queries toasted our database, and we were left to hastily alter our endpoints and create
	// backward- compatible shims, of which useTotalResults is one.
	UseTotalResults bool `json:"useTotalResults"`
}

Forum.PostSearchResponse

type PostmasterTransferRequest

type PostmasterTransferRequest struct {
	CharacterID Int64 `json:"characterId"`

	// The instance ID of the item for this action request.
	ItemID Int64 `json:"itemId"`

	ItemReferenceHash Hash[InventoryItemDefinition] `json:"itemReferenceHash"`

	MembershipType BungieMembershipType `json:"membershipType"`

	StackSize int32 `json:"stackSize"`
}

Destiny.Requests.Actions.DestinyPostmasterTransferRequest

type PowerCapDefinition

type PowerCapDefinition struct {

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// The raw value for a power cap.
	PowerCap int32 `json:"powerCap"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.PowerCaps.DestinyPowerCapDefinition

Defines a 'power cap' (limit) for gear items, based on the rarity tier and season of release.

func (PowerCapDefinition) DefinitionTable

func (d PowerCapDefinition) DefinitionTable() string

type PresenceOnlineStateFlags

type PresenceOnlineStateFlags int32

Social.Friends.PresenceOnlineStateFlags

func (PresenceOnlineStateFlags) Enum

type PresenceStatus

type PresenceStatus int32

Social.Friends.PresenceStatus

func (PresenceStatus) Enum

func (e PresenceStatus) Enum() string

type PresentationChildBlock

type PresentationChildBlock struct {
	DisplayStyle PresentationDisplayStyle `json:"displayStyle"`

	ParentPresentationNodeHashes []uint32 `json:"parentPresentationNodeHashes"`

	PresentationNodeType PresentationNodeType `json:"presentationNodeType"`
}

Destiny.Definitions.Presentation.DestinyPresentationChildBlock

func (PresentationChildBlock) DefinitionTable

func (d PresentationChildBlock) DefinitionTable() string

type PresentationDisplayStyle

type PresentationDisplayStyle int32

Destiny.DestinyPresentationDisplayStyle

A hint for how the presentation node should be displayed when shown in a list. How you use this is your UI is up to you.

func (PresentationDisplayStyle) Enum

type PresentationNodeBaseDefinition

type PresentationNodeBaseDefinition struct {

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// A quick reference to presentation nodes that have this node as a child. Presentation nodes can be
	// parented under multiple parents.
	ParentNodeHashes []uint32 `json:"parentNodeHashes"`

	PresentationNodeType PresentationNodeType `json:"presentationNodeType"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	TraitHashes []uint32 `json:"traitHashes"`

	TraitIds []string `json:"traitIds"`
}

Destiny.Definitions.Presentation.DestinyPresentationNodeBaseDefinition

This is the base class for all presentation system children. Presentation Nodes, Records, Collectibles, and Metrics.

func (PresentationNodeBaseDefinition) DefinitionTable

func (d PresentationNodeBaseDefinition) DefinitionTable() string

type PresentationNodeChildEntry

type PresentationNodeChildEntry struct {

	// Use this value to sort the presentation node children in ascending order.
	NodeDisplayPriority uint32 `json:"nodeDisplayPriority"`

	PresentationNodeHash Hash[PresentationNodeDefinition] `json:"presentationNodeHash"`
}

Destiny.Definitions.Presentation.DestinyPresentationNodeChildEntry

func (PresentationNodeChildEntry) DefinitionTable

func (d PresentationNodeChildEntry) DefinitionTable() string

type PresentationNodeChildEntryBase

type PresentationNodeChildEntryBase struct {

	// Use this value to sort the presentation node children in ascending order.
	NodeDisplayPriority uint32 `json:"nodeDisplayPriority"`
}

Destiny.Definitions.Presentation.DestinyPresentationNodeChildEntryBase

func (PresentationNodeChildEntryBase) DefinitionTable

func (d PresentationNodeChildEntryBase) DefinitionTable() string

type PresentationNodeChildrenBlock

type PresentationNodeChildrenBlock struct {
	Collectibles []PresentationNodeCollectibleChildEntry `json:"collectibles"`

	Craftables []PresentationNodeCraftableChildEntry `json:"craftables"`

	Metrics []PresentationNodeMetricChildEntry `json:"metrics"`

	PresentationNodes []PresentationNodeChildEntry `json:"presentationNodes"`

	Records []PresentationNodeRecordChildEntry `json:"records"`
}

Destiny.Definitions.Presentation.DestinyPresentationNodeChildrenBlock

As/if presentation nodes begin to host more entities as children, these lists will be added to. One list property exists per type of entity that can be treated as a child of this presentation node, and each holds the identifier of the entity and any associated information needed to display the UI for that entity (if anything)

func (PresentationNodeChildrenBlock) DefinitionTable

func (d PresentationNodeChildrenBlock) DefinitionTable() string

type PresentationNodeCollectibleChildEntry

type PresentationNodeCollectibleChildEntry struct {
	CollectibleHash Hash[CollectibleDefinition] `json:"collectibleHash"`

	// Use this value to sort the presentation node children in ascending order.
	NodeDisplayPriority uint32 `json:"nodeDisplayPriority"`
}

Destiny.Definitions.Presentation.DestinyPresentationNodeCollectibleChildEntry

func (PresentationNodeCollectibleChildEntry) DefinitionTable

func (d PresentationNodeCollectibleChildEntry) DefinitionTable() string

type PresentationNodeComponent

type PresentationNodeComponent struct {

	// The value at which the presentation node is considered to be completed.
	CompletionValue int32 `json:"completionValue"`

	// An optional property: presentation nodes MAY have objectives, which can be used to infer more human
	// readable data about the progress. However, progressValue and completionValue ought to be considered
	// the canonical values for progress on Progression Nodes.
	Objective ObjectiveProgress `json:"objective"`

	// How much of the presentation node is considered to be completed so far by the given
	// character/profile.
	ProgressValue int32 `json:"progressValue"`

	// If available, this is the current score for the record category that this node represents.
	RecordCategoryScore Nullable[int32] `json:"recordCategoryScore,omitempty"`

	State BitmaskSet[PresentationNodeState] `json:"state"`
}

Destiny.Components.Presentation.DestinyPresentationNodeComponent

type PresentationNodeCraftableChildEntry

type PresentationNodeCraftableChildEntry struct {
	CraftableItemHash Hash[InventoryItemDefinition] `json:"craftableItemHash"`

	// Use this value to sort the presentation node children in ascending order.
	NodeDisplayPriority uint32 `json:"nodeDisplayPriority"`
}

Destiny.Definitions.Presentation.DestinyPresentationNodeCraftableChildEntry

func (PresentationNodeCraftableChildEntry) DefinitionTable

func (d PresentationNodeCraftableChildEntry) DefinitionTable() string

type PresentationNodeDefinition

type PresentationNodeDefinition struct {

	// The child entities contained by this presentation node.
	Children PresentationNodeChildrenBlock `json:"children"`

	// If this presentation node has an associated "Record" that you can accomplish for completing its
	// children, this is the identifier of that Record.
	CompletionRecordHash Nullable[Hash[RecordDefinition]] `json:"completionRecordHash,omitempty"`

	// If this presentation node has children, but the game doesn't let you inspect the details of those
	// children, that is indicated here.
	DisableChildSubscreenNavigation bool `json:"disableChildSubscreenNavigation"`

	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// A hint for how to display this presentation node when it's shown in a list.
	DisplayStyle PresentationDisplayStyle `json:"displayStyle"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	MaxCategoryRecordScore int32 `json:"maxCategoryRecordScore"`

	NodeType PresentationNodeType `json:"nodeType"`

	// If this presentation node shows a related objective (for instance, if it tracks the progress of its
	// children), the objective being tracked is indicated here.
	ObjectiveHash Nullable[Hash[ObjectiveDefinition]] `json:"objectiveHash,omitempty"`

	// The original icon for this presentation node, before we futzed with it.
	OriginalIcon string `json:"originalIcon"`

	// A quick reference to presentation nodes that have this node as a child. Presentation nodes can be
	// parented under multiple parents.
	ParentNodeHashes []uint32 `json:"parentNodeHashes"`

	PresentationNodeType PresentationNodeType `json:"presentationNodeType"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	// The requirements for being able to interact with this presentation node and its children.
	Requirements PresentationNodeRequirementsBlock `json:"requirements"`

	// Some presentation nodes are meant to be explicitly shown on the "root" or "entry" screens for the
	// feature to which they are related. You should use this icon when showing them on such a view, if you
	// have a similar "entry point" view in your UI. If you don't have a UI, then I guess it doesn't matter
	// either way does it?
	RootViewIcon string `json:"rootViewIcon"`

	// Indicates whether this presentation node's state is determined on a per-character or on an
	// account-wide basis.
	Scope Scope `json:"scope"`

	// A hint for how to display this presentation node when it's shown in its own detail screen.
	ScreenStyle PresentationScreenStyle `json:"screenStyle"`

	TraitHashes []uint32 `json:"traitHashes"`

	TraitIds []string `json:"traitIds"`
}

Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition

A PresentationNode is an entity that represents a logical grouping of other entities visually/organizationally. For now, Presentation Nodes may contain the following... but it may be used for more in the future: - Collectibles - Records (Or, as the public will call them, "Triumphs." Don't ask me why we're overloading the term "Triumph", it still hurts me to think about it) - Metrics (aka Stat Trackers) - Other Presentation Nodes, allowing a tree of Presentation Nodes to be created Part of me wants to break these into conceptual definitions per entity being collected, but the possibility of these different types being mixed in the same UI and the possibility that it could actually be more useful to return the "bare metal" presentation node concept has resulted in me deciding against that for the time being. We'll see if I come to regret this as well.

func (PresentationNodeDefinition) DefinitionTable

func (d PresentationNodeDefinition) DefinitionTable() string

type PresentationNodeMetricChildEntry

type PresentationNodeMetricChildEntry struct {
	MetricHash Hash[MetricDefinition] `json:"metricHash"`

	// Use this value to sort the presentation node children in ascending order.
	NodeDisplayPriority uint32 `json:"nodeDisplayPriority"`
}

Destiny.Definitions.Presentation.DestinyPresentationNodeMetricChildEntry

func (PresentationNodeMetricChildEntry) DefinitionTable

func (d PresentationNodeMetricChildEntry) DefinitionTable() string

type PresentationNodeRecordChildEntry

type PresentationNodeRecordChildEntry struct {

	// Use this value to sort the presentation node children in ascending order.
	NodeDisplayPriority uint32 `json:"nodeDisplayPriority"`

	RecordHash Hash[RecordDefinition] `json:"recordHash"`
}

Destiny.Definitions.Presentation.DestinyPresentationNodeRecordChildEntry

func (PresentationNodeRecordChildEntry) DefinitionTable

func (d PresentationNodeRecordChildEntry) DefinitionTable() string

type PresentationNodeRequirementsBlock

type PresentationNodeRequirementsBlock struct {

	// If this node is not accessible due to Entitlements (for instance, you don't own the required game
	// expansion), this is the message to show.
	EntitlementUnavailableMessage string `json:"entitlementUnavailableMessage"`
}

Destiny.Definitions.Presentation.DestinyPresentationNodeRequirementsBlock

Presentation nodes can be restricted by various requirements. This defines the rules of those requirements, and the message(s) to be shown if these requirements aren't met.

func (PresentationNodeRequirementsBlock) DefinitionTable

func (d PresentationNodeRequirementsBlock) DefinitionTable() string

type PresentationNodeState

type PresentationNodeState int32

Destiny.DestinyPresentationNodeState

I know this doesn't look like a Flags Enumeration/bitmask right now, but I assure you it is. This is the possible states that a Presentation Node can be in, and it is almost certain that its potential states will increase in the future. So don't treat it like a straight up enumeration.

func (PresentationNodeState) Enum

func (e PresentationNodeState) Enum() string

type PresentationNodeType

type PresentationNodeType int32

Destiny.DestinyPresentationNodeType

func (PresentationNodeType) Enum

func (e PresentationNodeType) Enum() string

type PresentationNodesComponent

type PresentationNodesComponent struct {
	Nodes map[Hash[PresentationNodeDefinition]]PresentationNodeComponent `json:"nodes"`
}

Destiny.Components.Presentation.DestinyPresentationNodesComponent

type PresentationScreenStyle

type PresentationScreenStyle int32

Destiny.DestinyPresentationScreenStyle

A hint for what screen should be shown when this presentation node is clicked into. How you use this is your UI is up to you.

func (PresentationScreenStyle) Enum

type ProfileCollectiblesComponent

type ProfileCollectiblesComponent struct {
	Collectibles map[Hash[CollectibleDefinition]]CollectibleComponent `json:"collectibles"`

	// The hash for the root presentation node definition of Collection Badges.
	CollectionBadgesRootNodeHash Hash[PresentationNodeDefinition] `json:"collectionBadgesRootNodeHash"`

	// The hash for the root presentation node definition of Collection categories.
	CollectionCategoriesRootNodeHash Hash[PresentationNodeDefinition] `json:"collectionCategoriesRootNodeHash"`

	// The list of collectibles determined by the game as having been "recently" acquired.
	// The game client itself actually controls this data, so I personally question whether anyone will get
	// much use out of this: because we can't edit this value through the API. But in case anyone finds it
	// useful, here it is.
	NewnessFlaggedCollectibleHashes []uint32 `json:"newnessFlaggedCollectibleHashes"`

	// The list of collectibles determined by the game as having been "recently" acquired.
	RecentCollectibleHashes []uint32 `json:"recentCollectibleHashes"`
}

Destiny.Components.Collectibles.DestinyProfileCollectiblesComponent

type ProfileComponent

type ProfileComponent struct {

	// If populated, this is a reference to the event card that is currently active.
	ActiveEventCardHash Nullable[Hash[EventCardDefinition]] `json:"activeEventCardHash,omitempty"`

	// A list of the character IDs, for further querying on your part.
	CharacterIds []Int64 `json:"characterIds"`

	// The 'current' Guardian Rank value, which starts at rank 1.
	CurrentGuardianRank Hash[GuardianRankDefinition] `json:"currentGuardianRank"`

	// If populated, this is a reference to the season that is currently active.
	CurrentSeasonHash Nullable[Hash[SeasonDefinition]] `json:"currentSeasonHash,omitempty"`

	// If populated, this is the reward power cap for the current season.
	CurrentSeasonRewardPowerCap Nullable[int32] `json:"currentSeasonRewardPowerCap,omitempty"`

	// The last time the user played with any character on this Profile.
	DateLastPlayed Timestamp `json:"dateLastPlayed"`

	// A list of hashes for event cards that a profile owns. Unlike most values in versionsOwned, these
	// stay with the profile across all platforms.
	EventCardHashesOwned []uint32 `json:"eventCardHashesOwned"`

	// The 'lifetime highest' Guardian Rank value, which starts at rank 1.
	LifetimeHighestGuardianRank Hash[GuardianRankDefinition] `json:"lifetimeHighestGuardianRank"`

	// A list of seasons that this profile owns. Unlike versionsOwned, these stay with the profile across
	// Platforms, and thus will be valid.
	//
	//	It turns out that Stadia Pro subscriptions will give access to seasons but only while playing on
	//
	// Stadia and with an active subscription. So some users (users who have Stadia Pro but choose to play
	// on some other platform) won't see these as available: it will be whatever seasons are available for
	// the platform on which they last played.
	SeasonHashes []uint32 `json:"seasonHashes"`

	// If you need to render the Profile (their platform name, icon, etc...) somewhere, this property
	// contains that information.
	UserInfo UserInfoCard `json:"userInfo"`

	// If you want to know what expansions they own, this will contain that data.
	//
	//	IMPORTANT: This field may not return the data you're interested in for Cross-Saved users. It
	//
	// returns the last ownership data we saw for this account - which is to say, what they've purchased on
	// the platform on which they last played, which now could be a different platform.
	//
	//	If you don't care about per-platform ownership and only care about whatever platform it seems they
	//
	// are playing on most recently, then this should be "good enough." Otherwise, this should be
	// considered deprecated. We do not have a good alternative to provide at this time with platform
	// specific ownership data for DLC.
	VersionsOwned BitmaskSet[GameVersions] `json:"versionsOwned"`
}

Destiny.Entities.Profiles.DestinyProfileComponent

The most essential summary information about a Profile (in Destiny 1, we called these "Accounts").

type ProfileProgressionComponent

type ProfileProgressionComponent struct {

	// The set of checklists that can be examined on a profile-wide basis, keyed by the hash identifier of
	// the Checklist (DestinyChecklistDefinition)
	// For each checklist returned, its value is itself a Dictionary keyed by the checklist's hash
	// identifier with the value being a boolean indicating if it's been discovered yet.
	Checklists map[Hash[ChecklistDefinition]]map[uint32]bool `json:"checklists"`

	// Data related to your progress on the current season's artifact that is the same across characters.
	SeasonalArtifact ArtifactProfileScoped `json:"seasonalArtifact"`
}

Destiny.Components.Profiles.DestinyProfileProgressionComponent

The set of progression-related information that applies at a Profile-wide level for your Destiny experience. This differs from the Jimi Hendrix Experience because there's less guitars on fire. Yet. #spoileralert? This will include information such as Checklist info.

type ProfileRecordsComponent

type ProfileRecordsComponent struct {

	// Your 'active' Triumphs score.
	ActiveScore int32 `json:"activeScore"`

	// Your 'legacy' Triumphs score.
	LegacyScore int32 `json:"legacyScore"`

	// Your 'lifetime' Triumphs score.
	LifetimeScore int32 `json:"lifetimeScore"`

	// The hash for the root presentation node definition of Triumph categories.
	RecordCategoriesRootNodeHash Hash[PresentationNodeDefinition] `json:"recordCategoriesRootNodeHash"`

	// The hash for the root presentation node definition of Triumph Seals.
	RecordSealsRootNodeHash Hash[PresentationNodeDefinition] `json:"recordSealsRootNodeHash"`

	Records map[uint32]RecordComponent `json:"records"`

	// Your 'active' Triumphs score, maintained for backwards compatibility.
	Score int32 `json:"score"`

	// If this profile is tracking a record, this is the hash identifier of the record it is tracking.
	TrackedRecordHash Nullable[Hash[RecordDefinition]] `json:"trackedRecordHash,omitempty"`
}

Destiny.Components.Records.DestinyProfileRecordsComponent

type ProfileResponse

type ProfileResponse struct {

	// Character activity data - the activities available to this character and its status, keyed by the
	// Character's Id.
	// COMPONENT TYPE: CharacterActivities
	CharacterActivities ComponentResponse[map[Int64]CharacterActivitiesComponent] `json:"characterActivities"`

	// COMPONENT TYPE: Collectibles
	CharacterCollectibles ComponentResponse[map[Int64]CollectiblesComponent] `json:"characterCollectibles"`

	// COMPONENT TYPE: Craftables
	CharacterCraftables ComponentResponse[map[Int64]CraftablesComponent] `json:"characterCraftables"`

	// A "lookup" convenience component that can be used to quickly check if the character has access to
	// items that can be used for purchasing.
	// COMPONENT TYPE: CurrencyLookups
	CharacterCurrencyLookups ComponentResponse[map[Int64]CurrenciesComponent] `json:"characterCurrencyLookups"`

	// The character's equipped items, keyed by the Character's Id.
	// COMPONENT TYPE: CharacterEquipment
	CharacterEquipment ComponentResponse[map[Int64]InventoryComponent] `json:"characterEquipment"`

	// The character-level non-equipped inventory items, keyed by the Character's Id.
	// COMPONENT TYPE: CharacterInventories
	CharacterInventories ComponentResponse[map[Int64]InventoryComponent] `json:"characterInventories"`

	// Items available from Kiosks that are available to a specific character as opposed to the account as
	// a whole. It must be combined with data from the profileKiosks property to get a full picture of the
	// character's available items to check out of a kiosk.
	// This component returns information about what Kiosk items are available to you on a *Character*
	// level. Usually, kiosk items will be earned for the entire Profile (all characters) at once. To find
	// those, look in the profileKiosks property.
	// COMPONENT TYPE: Kiosks
	CharacterKiosks ComponentResponse[map[Int64]KiosksComponent] `json:"characterKiosks"`

	// The character loadouts, keyed by the Character's Id.
	// COMPONENT TYPE: CharacterLoadouts
	CharacterLoadouts ComponentResponse[map[Int64]LoadoutsComponent] `json:"characterLoadouts"`

	// When sockets refer to reusable Plug Sets (see DestinyPlugSetDefinition for more info), this is the
	// set of plugs and their states, per character, that are character-scoped.
	// This comes back with ItemSockets, as it is needed for a complete picture of the sockets on requested
	// items.
	// COMPONENT TYPE: ItemSockets
	CharacterPlugSets ComponentResponse[map[Int64]PlugSetsComponent] `json:"characterPlugSets"`

	// COMPONENT TYPE: PresentationNodes
	CharacterPresentationNodes ComponentResponse[map[Int64]PresentationNodesComponent] `json:"characterPresentationNodes"`

	// Character-level progression data, keyed by the Character's Id.
	// COMPONENT TYPE: CharacterProgressions
	CharacterProgressions ComponentResponse[map[Int64]CharacterProgressionComponent] `json:"characterProgressions"`

	// COMPONENT TYPE: Records
	CharacterRecords ComponentResponse[map[Int64]CharacterRecordsComponent] `json:"characterRecords"`

	// Character rendering data - a minimal set of info needed to render a character in 3D - keyed by the
	// Character's Id.
	// COMPONENT TYPE: CharacterRenderData
	CharacterRenderData ComponentResponse[map[Int64]CharacterRenderComponent] `json:"characterRenderData"`

	// COMPONENT TYPE: StringVariables
	CharacterStringVariables ComponentResponse[map[Int64]StringVariablesComponent] `json:"characterStringVariables"`

	// Do you ever get the feeling that a system was designed *too* flexibly? That it can be used in so
	// many different ways that you end up being unable to provide an easy to use abstraction for the mess
	// that's happening under the surface?
	// Let's talk about character-specific data that might be related to items without instances. These two
	// statements are totally unrelated, I promise.
	// At some point during D2, it was decided that items - such as Bounties - could be given to characters
	// and *not* have instance data, but that *could* display and even use relevant state information on
	// your account and character.
	// Up to now, any item that had meaningful dependencies on character or account state had to be
	// instanced, and thus "itemComponents" was all that you needed: it was keyed by item's instance IDs
	// and provided the stateful information you needed inside.
	// Unfortunately, we don't live in such a magical world anymore. This is information held on a
	// per-character basis about non-instanced items that the characters have in their inventory - or that
	// reference character-specific state information even if it's in Account-level inventory - and the
	// values related to that item's state in relation to the given character.
	// To give a concrete example, look at a Moments of Triumph bounty. They exist in a character's
	// inventory, and show/care about a character's progression toward completing the bounty. But the
	// bounty itself is a non-instanced item, like a mod or a currency. This returns that data for the
	// characters who have the bounty in their inventory.
	// I'm not crying, you're crying Okay we're both crying but it's going to be okay I promise Actually I
	// shouldn't promise that, I don't know if it's going to be okay
	CharacterUninstancedItemComponents map[Int64]BaseItemComponentSet[uint32] `json:"characterUninstancedItemComponents"`

	// Basic information about each character, keyed by the CharacterId.
	// COMPONENT TYPE: Characters
	Characters ComponentResponse[map[Int64]CharacterComponent] `json:"characters"`

	// Information about instanced items across all returned characters, keyed by the item's instance ID.
	// COMPONENT TYPE: [See inside the DestinyItemComponentSet contract for component types.]
	ItemComponents ItemComponentSet[int64] `json:"itemComponents"`

	// COMPONENT TYPE: Metrics
	Metrics ComponentResponse[MetricsComponent] `json:"metrics"`

	// Silver quantities for any platform on which this Profile plays destiny.
	//
	//	COMPONENT TYPE: PlatformSilver
	PlatformSilver ComponentResponse[PlatformSilverComponent] `json:"platformSilver"`

	// The basic information about the Destiny Profile (formerly "Account").
	// COMPONENT TYPE: Profiles
	Profile ComponentResponse[ProfileComponent] `json:"profile"`

	// COMPONENT TYPE: Collectibles
	ProfileCollectibles ComponentResponse[ProfileCollectiblesComponent] `json:"profileCollectibles"`

	// COMPONENT TYPE: SocialCommendations
	ProfileCommendations ComponentResponse[SocialCommendationsComponent] `json:"profileCommendations"`

	// The profile-level currencies owned by the Destiny Profile.
	// COMPONENT TYPE: ProfileCurrencies
	ProfileCurrencies ComponentResponse[InventoryComponent] `json:"profileCurrencies"`

	// The profile-level inventory of the Destiny Profile.
	// COMPONENT TYPE: ProfileInventories
	ProfileInventory ComponentResponse[InventoryComponent] `json:"profileInventory"`

	// Items available from Kiosks that are available Profile-wide (i.e. across all characters)
	// This component returns information about what Kiosk items are available to you on a *Profile* level.
	// It is theoretically possible for Kiosks to have items gated by specific Character as well. If you
	// ever have those, you will find them on the characterKiosks property.
	// COMPONENT TYPE: Kiosks
	ProfileKiosks ComponentResponse[KiosksComponent] `json:"profileKiosks"`

	// When sockets refer to reusable Plug Sets (see DestinyPlugSetDefinition for more info), this is the
	// set of plugs and their states that are profile-scoped.
	// This comes back with ItemSockets, as it is needed for a complete picture of the sockets on requested
	// items.
	// COMPONENT TYPE: ItemSockets
	ProfilePlugSets ComponentResponse[PlugSetsComponent] `json:"profilePlugSets"`

	// COMPONENT TYPE: PresentationNodes
	ProfilePresentationNodes ComponentResponse[PresentationNodesComponent] `json:"profilePresentationNodes"`

	// When we have progression information - such as Checklists - that may apply profile-wide, it will be
	// returned here rather than in the per-character progression data.
	// COMPONENT TYPE: ProfileProgression
	ProfileProgression ComponentResponse[ProfileProgressionComponent] `json:"profileProgression"`

	// COMPONENT TYPE: Records
	ProfileRecords ComponentResponse[ProfileRecordsComponent] `json:"profileRecords"`

	// COMPONENT TYPE: StringVariables
	ProfileStringVariables ComponentResponse[StringVariablesComponent] `json:"profileStringVariables"`

	// COMPONENT TYPE: Transitory
	ProfileTransitoryData ComponentResponse[ProfileTransitoryComponent] `json:"profileTransitoryData"`

	// Records the timestamp of when most components were last generated from the world server source.
	// Unless the component type is specified in the documentation for secondaryComponentsMintedTimestamp,
	// this value is sufficient to do data freshness.
	ResponseMintedTimestamp Timestamp `json:"responseMintedTimestamp"`

	// Some secondary components are not tracked in the primary response timestamp and have their timestamp
	// tracked here. If your component is any of the following, this field is where you will find your
	// timestamp value:
	//
	//	PresentationNodes, Records, Collectibles, Metrics, StringVariables, Craftables, Transitory
	//	All other component types may use the primary timestamp property.
	SecondaryComponentsMintedTimestamp Timestamp `json:"secondaryComponentsMintedTimestamp"`

	// Recent, refundable purchases you have made from vendors. When will you use it? Couldn't say...
	// COMPONENT TYPE: VendorReceipts
	VendorReceipts ComponentResponse[VendorReceiptsComponent] `json:"vendorReceipts"`
}

Destiny.Responses.DestinyProfileResponse

The response for GetDestinyProfile, with components for character and item-level data.

type ProfileTransitoryComponent

type ProfileTransitoryComponent struct {

	// If you are in an activity, this is some transitory info about the activity currently being played.
	CurrentActivity ProfileTransitoryCurrentActivity `json:"currentActivity"`

	// Information about whether and what might prevent you from joining this person on a fireteam.
	Joinability ProfileTransitoryJoinability `json:"joinability"`

	// The hash identifier for the DestinyDestinationDefinition of the last location you were orbiting when
	// in orbit.
	LastOrbitedDestinationHash Nullable[Hash[DestinationDefinition]] `json:"lastOrbitedDestinationHash,omitempty"`

	// If you have any members currently in your party, this is some (very) bare-bones information about
	// those members.
	PartyMembers []ProfileTransitoryPartyMember `json:"partyMembers"`

	// Information about tracked entities.
	Tracking []ProfileTransitoryTrackingEntry `json:"tracking"`
}

Destiny.Components.Profiles.DestinyProfileTransitoryComponent

This is an experimental set of data that Bungie considers to be "transitory" - information that may be useful for API users, but that is coming from a non-authoritative data source about information that could potentially change at a more frequent pace than Bungie.net will receive updates about it. This information is provided exclusively for convenience should any of it be useful to users: we provide no guarantees to the accuracy or timeliness of data that comes from this source. Know that this data can potentially be out-of-date or even wrong entirely if the user disconnected from the game or suddenly changed their status before we can receive refreshed data.

type ProfileTransitoryCurrentActivity

type ProfileTransitoryCurrentActivity struct {

	// If you're still in it but it "ended" (like when folks are dancing around the loot after they beat a
	// boss), this is when the activity ended.
	EndTime Nullable[Timestamp] `json:"endTime,omitempty"`

	// If you have human opponents, this is the highest opposing team's score.
	HighestOpposingFactionScore float64 `json:"highestOpposingFactionScore"`

	// This is how many human or poorly crafted aimbot opponents you have.
	NumberOfOpponents int32 `json:"numberOfOpponents"`

	// This is how many human or poorly crafted aimbots are on your team.
	NumberOfPlayers int32 `json:"numberOfPlayers"`

	// This is what our non-authoritative source thought the score was.
	Score float64 `json:"score"`

	// When the activity started.
	StartTime Nullable[Timestamp] `json:"startTime,omitempty"`
}

Destiny.Components.Profiles.DestinyProfileTransitoryCurrentActivity

If you are playing in an activity, this is some information about it. Note that we cannot guarantee any of this resembles what ends up in the PGCR in any way. They are sourced by two entirely separate systems with their own logic, and the one we source this data from should be considered non-authoritative in comparison.

type ProfileTransitoryJoinability

type ProfileTransitoryJoinability struct {

	// Reasons why a person can't join this person's fireteam.
	ClosedReasons BitmaskSet[JoinClosedReasons] `json:"closedReasons"`

	// The number of slots still available on this person's fireteam.
	OpenSlots int32 `json:"openSlots"`

	// Who the person is currently allowing invites from.
	PrivacySetting GamePrivacySetting `json:"privacySetting"`
}

Destiny.Components.Profiles.DestinyProfileTransitoryJoinability

Some basic information about whether you can be joined, how many slots are left etc. Note that this can change quickly, so it may not actually be useful. But perhaps it will be in some use cases?

type ProfileTransitoryPartyMember

type ProfileTransitoryPartyMember struct {

	// The player's last known display name.
	DisplayName string `json:"displayName"`

	// The identifier for the DestinyInventoryItemDefinition of the player's emblem.
	EmblemHash Hash[InventoryItemDefinition] `json:"emblemHash"`

	// The Membership ID that matches the party member.
	MembershipID Int64 `json:"membershipId"`

	// A Flags Enumeration value indicating the states that the player is in relevant to being on a
	// fireteam.
	Status BitmaskSet[PartyMemberStates] `json:"status"`
}

Destiny.Components.Profiles.DestinyProfileTransitoryPartyMember

This is some bare minimum information about a party member in a Fireteam. Unfortunately, without great computational expense on our side we can only get at the data contained here. I'd like to give you a character ID for example, but we don't have it. But we do have these three pieces of information. May they help you on your quest to show meaningful data about current Fireteams. Notably, we don't and can't feasibly return info on characters. If you can, try to use just the data below for your UI and purposes. Only hit us with further queries if you absolutely must know the character ID of the currently playing character. Pretty please with sugar on top.

type ProfileTransitoryTrackingEntry

type ProfileTransitoryTrackingEntry struct {

	// OPTIONAL - If this is tracking the status of a DestinyActivityDefinition, this is the identifier for
	// that activity.
	ActivityHash Nullable[Hash[ActivityDefinition]] `json:"activityHash,omitempty"`

	// OPTIONAL - If this is tracking the status of a DestinyInventoryItemDefinition, this is the
	// identifier for that item.
	ItemHash Nullable[Hash[InventoryItemDefinition]] `json:"itemHash,omitempty"`

	// OPTIONAL - If this is tracking a DestinyLocationDefinition, this is the identifier for that
	// location.
	LocationHash Nullable[Hash[LocationDefinition]] `json:"locationHash,omitempty"`

	// OPTIONAL - If this is tracking the status of a DestinyObjectiveDefinition, this is the identifier
	// for that objective.
	ObjectiveHash Nullable[Hash[ObjectiveDefinition]] `json:"objectiveHash,omitempty"`

	// OPTIONAL - If this is tracking the status of a quest, this is the identifier for the
	// DestinyInventoryItemDefinition that containst that questline data.
	QuestlineItemHash Nullable[Hash[InventoryItemDefinition]] `json:"questlineItemHash,omitempty"`

	// OPTIONAL - I've got to level with you, I don't really know what this is. Is it when you started
	// tracking it? Is it only populated for tracked items that have time limits?
	// I don't know, but we can get at it - when I get time to actually test what it is, I'll update this.
	// In the meantime, bask in the mysterious data.
	TrackedDate Nullable[Timestamp] `json:"trackedDate,omitempty"`
}

Destiny.Components.Profiles.DestinyProfileTransitoryTrackingEntry

This represents a single "thing" being tracked by the player. This can point to many types of entities, but only a subset of them will actually have a valid hash identifier for whatever it is being pointed to. It's up to you to interpret what it means when various combinations of these entries have values being tracked.

type ProfileUserInfoCard

type ProfileUserInfoCard struct {

	// 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
	ApplicableMembershipTypes []BungieMembershipType `json:"applicableMembershipTypes"`

	// The bungie global display name, if set.
	BungieGlobalDisplayName string `json:"bungieGlobalDisplayName"`

	// The bungie global display name code, if set.
	BungieGlobalDisplayNameCode Nullable[int16] `json:"bungieGlobalDisplayNameCode,omitempty"`

	// If there is a cross save override in effect, this value will tell you the type that is overridding
	// this one.
	CrossSaveOverride BungieMembershipType `json:"crossSaveOverride"`

	DateLastPlayed Timestamp `json:"dateLastPlayed"`

	// 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.
	DisplayName string `json:"displayName"`

	// URL the Icon if available.
	IconPath string `json:"iconPath"`

	// If true, this account is hooked up as the "Primary" cross save account for one or more platforms.
	IsCrossSavePrimary bool `json:"isCrossSavePrimary"`

	// If this profile is being overridden/obscured by Cross Save, this will be set to true. We will still
	// return the profile for display purposes where users need to know the info: it is up to any given
	// area of the app/site to determine if this profile should still be shown.
	IsOverridden bool `json:"isOverridden"`

	// If True, this is a public user membership.
	IsPublic bool `json:"isPublic"`

	// Membership ID as they user is known in the Accounts service
	MembershipID Int64 `json:"membershipId"`

	// Type of the membership. Not necessarily the native type.
	MembershipType BungieMembershipType `json:"membershipType"`

	// This is the silver available on this Profile across any platforms on which they have purchased
	// silver.
	//
	//	This is only available if you are requesting yourself.
	PlatformSilver PlatformSilverComponent `json:"platformSilver"`

	// A platform specific additional display name - ex: psn Real Name, bnet Unique Name, etc.
	SupplementalDisplayName string `json:"supplementalDisplayName"`

	// If this profile is not in a cross save pairing, this will return the game versions that we believe
	// this profile has access to.
	//
	//	For the time being, we will not return this information for any membership that is in a cross save
	//
	// pairing. The gist is that, once the pairing occurs, we do not currently have a consistent way to get
	// that information for the profile's original Platform, and thus gameVersions would be too
	// inconsistent (based on the last platform they happened to play on) for the info to be useful.
	//
	//	If we ever can get this data, this field will be deprecated and replaced with data on the
	//
	// DestinyLinkedProfileResponse itself, with game versions per linked Platform. But since we can't get
	// that, we have this as a stop-gap measure for getting the data in the only situation that we
	// currently need it.
	UnpairedGameVersions Nullable[int32] `json:"unpairedGameVersions,omitempty"`
}

Destiny.Responses.DestinyProfileUserInfoCard

type Progression

type Progression struct {

	// This is the total amount of progress obtained overall for this progression (for instance, the total
	// amount of Character Level experience earned)
	CurrentProgress int32 `json:"currentProgress"`

	// The number of resets of this progression you've executed this season, if applicable to this
	// progression.
	CurrentResetCount Nullable[int32] `json:"currentResetCount,omitempty"`

	// If this progression has a daily limit, this is that limit.
	DailyLimit int32 `json:"dailyLimit"`

	// The amount of progress earned today for this progression.
	DailyProgress int32 `json:"dailyProgress"`

	// This is the level of the progression (for instance, the Character Level).
	Level int32 `json:"level"`

	// This is the maximum possible level you can achieve for this progression (for example, the maximum
	// character level obtainable)
	LevelCap int32 `json:"levelCap"`

	// The total amount of progression (i.e. "Experience") needed in order to reach the next level.
	NextLevelAt int32 `json:"nextLevelAt"`

	// The amount of progression (i.e. "Experience") needed to reach the next level of this Progression.
	// Jeez, progression is such an overloaded word.
	ProgressToNextLevel int32 `json:"progressToNextLevel"`

	// The hash identifier of the Progression in question. Use it to look up the
	// DestinyProgressionDefinition in static data.
	ProgressionHash Hash[ProgressionDefinition] `json:"progressionHash"`

	// Information about historical rewards for this progression, if there is any data for it.
	RewardItemStates []BitmaskSet[ProgressionRewardItemState] `json:"rewardItemStates"`

	// Information about historical resets of this progression, if there is any data for it.
	SeasonResets []ProgressionResetEntry `json:"seasonResets"`

	// Progressions define their levels in "steps". Since the last step may be repeatable, the user may be
	// at a higher level than the actual Step achieved in the progression. Not necessarily useful, but
	// potentially interesting for those cruising the API. Relate this to the "steps" property of the
	// DestinyProgression to see which step the user is on, if you care about that. (Note that this is
	// Content Version dependent since it refers to indexes.)
	StepIndex int32 `json:"stepIndex"`

	// If this progression has a weekly limit, this is that limit.
	WeeklyLimit int32 `json:"weeklyLimit"`

	// The amount of progress earned toward this progression in the current week.
	WeeklyProgress int32 `json:"weeklyProgress"`
}

Destiny.DestinyProgression

Information about a current character's status with a Progression. A progression is a value that can increase with activity and has levels. Think Character Level and Reputation Levels. Combine this "live" data with the related DestinyProgressionDefinition for a full picture of the Progression.

type ProgressionDefinition

type ProgressionDefinition struct {

	// The #RGB string value for the color related to this progression, if there is one.
	Color Color `json:"color"`

	DisplayProperties ProgressionDisplayPropertiesDefinition `json:"displayProperties"`

	// If the value exists, this is the hash identifier for the Faction that owns this Progression.
	// This is purely for convenience, if you're looking at a progression and want to know if and who it's
	// related to in terms of Faction Reputation.
	FactionHash Nullable[Hash[FactionDefinition]] `json:"factionHash,omitempty"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// For progressions that have it, this is the rank icon we use in the Companion, displayed above the
	// progressions' rank value.
	RankIcon string `json:"rankIcon"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	// If this is True, then the progression doesn't have a maximum level.
	RepeatLastStep bool `json:"repeatLastStep"`

	RewardItems []ProgressionRewardItemQuantity `json:"rewardItems"`

	// The "Scope" of the progression indicates the source of the progression's live data.
	// See the DestinyProgressionScope enum for more info: but essentially, a Progression can either be
	// backed by a stored value, or it can be a calculated derivative of other values.
	Scope ProgressionScope `json:"scope"`

	// If there's a description of how to earn this progression in the local config, this will be that
	// localized description.
	Source string `json:"source"`

	// Progressions are divided into Steps, which roughly equate to "Levels" in the traditional sense of a
	// Progression. Notably, the last step can be repeated indefinitely if repeatLastStep is true, meaning
	// that the calculation for your level is not as simple as comparing your current progress to the max
	// progress of the steps.
	// These and more calculations are done for you if you grab live character progression data, such as in
	// the DestinyCharacterProgressionComponent.
	Steps []ProgressionStepDefinition `json:"steps"`

	// If true, the Progression is something worth showing to users.
	// If false, BNet isn't going to show it. But that doesn't mean you can't. We're all friends here.
	Visible bool `json:"visible"`
}

Destiny.Definitions.DestinyProgressionDefinition

A "Progression" in Destiny is best explained by an example. A Character's "Level" is a progression: it has Experience that can be earned, levels that can be gained, and is evaluated and displayed at various points in the game. A Character's "Faction Reputation" is also a progression for much the same reason. Progression is used by a variety of systems, and the definition of a Progression will generally only be useful if combining with live data (such as a character's DestinyCharacterProgressionComponent.progressions property, which holds that character's live Progression states). Fundamentally, a Progression measures your "Level" by evaluating the thresholds in its Steps (one step per level, except for the last step which can be repeated indefinitely for "Levels" that have no ceiling) against the total earned "progression points"/experience. (for simplicity purposes, we will henceforth refer to earned progression points as experience, though it need not be a mechanic that in any way resembles Experience in a traditional sense). Earned experience is calculated in a variety of ways, determined by the Progression's scope. These go from looking up a stored value to performing exceedingly obtuse calculations. This is why we provide live data in DestinyCharacterProgressionComponent.progressions, so you don't have to worry about those.

func (ProgressionDefinition) DefinitionTable

func (d ProgressionDefinition) DefinitionTable() string

type ProgressionDisplayPropertiesDefinition

type ProgressionDisplayPropertiesDefinition struct {
	Description string `json:"description"`

	// When progressions show your "experience" gained, that bar has units (i.e. "Experience", "Bad Dudes
	// Snuffed Out", whatever). This is the localized string for that unit of measurement.
	DisplayUnitsName string `json:"displayUnitsName"`

	HasIcon bool `json:"hasIcon"`

	// If this item has a high-res icon (at least for now, many things won't), then the path to that icon
	// will be here.
	HighResIcon string `json:"highResIcon"`

	// Note that "icon" is sometimes misleading, and should be interpreted in the context of the entity.
	// For instance, in Destiny 1 the DestinyRecordBookDefinition's icon was a big picture of a book.
	// But usually, it will be a small square image that you can use as... well, an icon.
	// They are currently represented as 96px x 96px images.
	Icon string `json:"icon"`

	IconSequences []IconSequenceDefinition `json:"iconSequences"`

	Name string `json:"name"`
}

Destiny.Definitions.DestinyProgressionDisplayPropertiesDefinition

func (ProgressionDisplayPropertiesDefinition) DefinitionTable

func (d ProgressionDisplayPropertiesDefinition) DefinitionTable() string

type ProgressionLevelRequirementDefinition

type ProgressionLevelRequirementDefinition struct {

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// The progression whose level should be used to determine the level requirement.
	// Look up the DestinyProgressionDefinition with this hash for more information about the progression
	// in question.
	ProgressionHash Hash[ProgressionDefinition] `json:"progressionHash"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	// A curve of level requirements, weighted by the related progressions' level.
	// Interpolate against this curve with the character's progression level to determine what the level
	// requirement of the generated item that is using this data will be.
	RequirementCurve []InterpolationPointFloat `json:"requirementCurve"`
}

Destiny.Definitions.Progression.DestinyProgressionLevelRequirementDefinition

These are pre-constructed collections of data that can be used to determine the Level Requirement for an item given a Progression to be tested (such as the Character's level). For instance, say a character receives a new Auto Rifle, and that Auto Rifle's DestinyInventoryItemDefinition.quality.progressionLevelRequirementHash property is pointing at one of these DestinyProgressionLevelRequirementDefinitions. Let's pretend also that the progressionHash it is pointing at is the Character Level progression. In that situation, the character's level will be used to interpolate a value in the requirementCurve property. The value picked up from that interpolation will be the required level for the item.

func (ProgressionLevelRequirementDefinition) DefinitionTable

func (d ProgressionLevelRequirementDefinition) DefinitionTable() string

type ProgressionMappingDefinition

type ProgressionMappingDefinition struct {

	// Infrequently defined in practice. Defer to the individual progressions' display properties.
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The localized unit of measurement for progression across the progressions defined in this mapping.
	// Unfortunately, this is very infrequently defined. Defer to the individual progressions' display
	// units.
	DisplayUnits string `json:"displayUnits"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.DestinyProgressionMappingDefinition

Aggregations of multiple progressions. These are used to apply rewards to multiple progressions at once. They can sometimes have human readable data as well, but only extremely sporadically.

func (ProgressionMappingDefinition) DefinitionTable

func (d ProgressionMappingDefinition) DefinitionTable() string

type ProgressionResetEntry

type ProgressionResetEntry struct {
	Resets int32 `json:"resets"`

	Season int32 `json:"season"`
}

Destiny.DestinyProgressionResetEntry

Represents a season and the number of resets you had in that season.

We do not necessarily - even for progressions with resets - track it over all seasons. So be

careful and check the season numbers being returned.

type ProgressionRewardDefinition

type ProgressionRewardDefinition struct {

	// The amount of experience to give to each of the mapped progressions.
	Amount int32 `json:"amount"`

	// If true, the game's internal mechanisms to throttle progression should be applied.
	ApplyThrottles bool `json:"applyThrottles"`

	// The hash identifier of the DestinyProgressionMappingDefinition that contains the progressions for
	// which experience should be applied.
	ProgressionMappingHash Hash[ProgressionMappingDefinition] `json:"progressionMappingHash"`
}

Destiny.Definitions.DestinyProgressionRewardDefinition

Inventory Items can reward progression when actions are performed on them. A common example of this in Destiny 1 was Bounties, which would reward Experience on your Character and the like when you completed the bounty. Note that this maps to a DestinyProgressionMappingDefinition, and *not* a DestinyProgressionDefinition directly. This is apparently so that multiple progressions can be granted progression points/experience at the same time.

func (ProgressionRewardDefinition) DefinitionTable

func (d ProgressionRewardDefinition) DefinitionTable() string

type ProgressionRewardItemAcquisitionBehavior

type ProgressionRewardItemAcquisitionBehavior int32

Destiny.DestinyProgressionRewardItemAcquisitionBehavior

Represents the different kinds of acquisition behavior for progression reward items.

func (ProgressionRewardItemAcquisitionBehavior) Enum

type ProgressionRewardItemQuantity

type ProgressionRewardItemQuantity struct {
	AcquisitionBehavior ProgressionRewardItemAcquisitionBehavior `json:"acquisitionBehavior"`

	ClaimUnlockDisplayStrings []string `json:"claimUnlockDisplayStrings"`

	// Indicates that this item quantity may be conditionally shown or hidden, based on various sources of
	// state. For example: server flags, account state, or character progress.
	HasConditionalVisibility bool `json:"hasConditionalVisibility"`

	// The hash identifier for the item in question. Use it to look up the item's
	// DestinyInventoryItemDefinition.
	ItemHash Hash[InventoryItemDefinition] `json:"itemHash"`

	// If this quantity is referring to a specific instance of an item, this will have the item's instance
	// ID. Normally, this will be null.
	ItemInstanceID Nullable[Int64] `json:"itemInstanceId,omitempty"`

	// The amount of the item needed/available depending on the context of where DestinyItemQuantity is
	// being used.
	Quantity int32 `json:"quantity"`

	RewardedAtProgressionLevel int32 `json:"rewardedAtProgressionLevel"`

	UiDisplayStyle string `json:"uiDisplayStyle"`
}

Destiny.Definitions.DestinyProgressionRewardItemQuantity

func (ProgressionRewardItemQuantity) DefinitionTable

func (d ProgressionRewardItemQuantity) DefinitionTable() string

type ProgressionRewardItemState

type ProgressionRewardItemState int32

Destiny.DestinyProgressionRewardItemState

Represents the different states a progression reward item can be in.

func (ProgressionRewardItemState) Enum

type ProgressionScope

type ProgressionScope int32

Destiny.DestinyProgressionScope

There are many Progressions in Destiny (think Character Level, or Reputation). These are the various "Scopes" of Progressions, which affect many things: * Where/if they are stored * How they are calculated * Where they can be used in other game logic

func (ProgressionScope) Enum

func (e ProgressionScope) Enum() string

type ProgressionStepDefinition

type ProgressionStepDefinition struct {

	// This appears to be, when you "level up", whether a visual effect will display and on what entity.
	// See DestinyProgressionStepDisplayEffect for slightly more info.
	DisplayEffectType ProgressionStepDisplayEffect `json:"displayEffectType"`

	// If this progression step has a specific icon related to it, this is the icon to show.
	Icon string `json:"icon"`

	// The total amount of progression points/"experience" you will need to initially reach this step. If
	// this is the last step and the progression is repeating indefinitely
	// (DestinyProgressionDefinition.repeatLastStep), this will also be the progress needed to level it up
	// further by repeating this step again.
	ProgressTotal int32 `json:"progressTotal"`

	// A listing of items rewarded as a result of reaching this level.
	RewardItems []ItemQuantity `json:"rewardItems"`

	// Very rarely, Progressions will have localized text describing the Level of the progression. This
	// will be that localized text, if it exists. Otherwise, the standard appears to be to simply show the
	// level numerically.
	StepName string `json:"stepName"`
}

Destiny.Definitions.DestinyProgressionStepDefinition

This defines a single Step in a progression (which roughly equates to a level. See DestinyProgressionDefinition for caveats).

func (ProgressionStepDefinition) DefinitionTable

func (d ProgressionStepDefinition) DefinitionTable() string

type ProgressionStepDisplayEffect

type ProgressionStepDisplayEffect int32

Destiny.DestinyProgressionStepDisplayEffect

If progression is earned, this determines whether the progression shows visual effects on the character or its item - or neither.

func (ProgressionStepDisplayEffect) Enum

type PublicActivityStatus

type PublicActivityStatus struct {

	// Active Challenges for the activity, if any - represented as hashes for DestinyObjectiveDefinitions.
	ChallengeObjectiveHashes []uint32 `json:"challengeObjectiveHashes"`

	// The active modifiers on this activity, if any - represented as hashes for
	// DestinyActivityModifierDefinitions.
	ModifierHashes []uint32 `json:"modifierHashes"`

	// If the activity itself provides any specific "mock" rewards, this will be the items and their
	// quantity.
	// Why "mock", you ask? Because these are the rewards as they are represented in the tooltip of the
	// Activity.
	// These are often pointers to fake items that look good in a tooltip, but represent an abstract
	// concept of what you will get for a reward rather than the specific items you may obtain.
	RewardTooltipItems []ItemQuantity `json:"rewardTooltipItems"`
}

Destiny.Activities.DestinyPublicActivityStatus

Represents the public-facing status of an activity: any data about what is currently active in the Activity, regardless of an individual character's progress in it.

type PublicDestinyVendorSaleItemSetComponent

type PublicDestinyVendorSaleItemSetComponent struct {
	SaleItems map[int32]PublicVendorSaleItemComponent `json:"saleItems"`
}

Destiny.Responses.PublicDestinyVendorSaleItemSetComponent

type PublicMilestone

type PublicMilestone struct {
	Activities []PublicMilestoneChallengeActivity `json:"activities"`

	// A milestone not need have even a single quest, but if there are active quests they will be returned
	// here.
	AvailableQuests []PublicMilestoneQuest `json:"availableQuests"`

	// If known, this is the date when the Milestone will expire/recycle/end.
	EndDate Nullable[Timestamp] `json:"endDate,omitempty"`

	// The hash identifier for the milestone. Use it to look up the DestinyMilestoneDefinition for static
	// data about the Milestone.
	MilestoneHash Hash[MilestoneDefinition] `json:"milestoneHash"`

	// Used for ordering milestones in a display to match how we order them in BNet. May pull from static
	// data, or possibly in the future from dynamic information.
	Order int32 `json:"order"`

	// If known, this is the date when the Milestone started/became active.
	StartDate Nullable[Timestamp] `json:"startDate,omitempty"`

	// Sometimes milestones - or activities active in milestones - will have relevant vendors. These are
	// the vendors that are currently relevant.
	// Deprecated, already, for the sake of the new "vendors" property that has more data. What was I
	// thinking.
	VendorHashes []uint32 `json:"vendorHashes"`

	// This is why we can't have nice things. This is the ordered list of vendors to be shown that relate
	// to this milestone, potentially along with other interesting data.
	Vendors []PublicMilestoneVendor `json:"vendors"`
}

Destiny.Milestones.DestinyPublicMilestone

Information about milestones, presented in a character state-agnostic manner. Combine this data with DestinyMilestoneDefinition to get a full picture of the milestone, which is basically a checklist of things to do in the game. Think of this as GetPublicAdvisors 3.0, for those who used the Destiny 1 API.

type PublicMilestoneActivity

type PublicMilestoneActivity struct {

	// The hash identifier of the activity that's been chosen to be considered the canonical "conceptual"
	// activity definition. This may have many variants, defined herein.
	ActivityHash Hash[ActivityDefinition] `json:"activityHash"`

	// The hash identifier of the most specific Activity Mode under which this activity is played. This is
	// useful for situations where the activity in question is - for instance - a PVP map, but it's not
	// clear what mode the PVP map is being played under. If it's a playlist, this will be less specific:
	// but hopefully useful in some way.
	ActivityModeHash Nullable[Hash[ActivityModeDefinition]] `json:"activityModeHash,omitempty"`

	// The enumeration equivalent of the most specific Activity Mode under which this activity is played.
	ActivityModeType Nullable[int32] `json:"activityModeType,omitempty"`

	// The activity may have 0-to-many modifiers: if it does, this will contain the hashes to the
	// DestinyActivityModifierDefinition that defines the modifier being applied.
	ModifierHashes []uint32 `json:"modifierHashes"`

	// Every relevant variation of this conceptual activity, including the conceptual activity itself, have
	// variants defined here.
	Variants []PublicMilestoneActivityVariant `json:"variants"`
}

Destiny.Milestones.DestinyPublicMilestoneActivity

A milestone may have one or more conceptual Activities associated with it, and each of those conceptual activities could have a variety of variants, modes, tiers, what-have-you. Our attempts to determine what qualifies as a conceptual activity are, unfortunately, janky. So if you see missing modes or modes that don't seem appropriate to you, let us know and I'll buy you a beer if we ever meet up in person.

type PublicMilestoneActivityVariant

type PublicMilestoneActivityVariant struct {

	// The hash identifier of this activity variant. Examine the activity's definition in the Manifest
	// database to determine what makes it a distinct variant. Usually it will be difficulty level or
	// whether or not it is a guided game variant of the activity, but theoretically it could be
	// distinguished in any arbitrary way.
	ActivityHash Hash[ActivityDefinition] `json:"activityHash"`

	// The hash identifier of the most specific Activity Mode under which this activity is played. This is
	// useful for situations where the activity in question is - for instance - a PVP map, but it's not
	// clear what mode the PVP map is being played under. If it's a playlist, this will be less specific:
	// but hopefully useful in some way.
	ActivityModeHash Nullable[Hash[ActivityModeDefinition]] `json:"activityModeHash,omitempty"`

	// The enumeration equivalent of the most specific Activity Mode under which this activity is played.
	ActivityModeType Nullable[int32] `json:"activityModeType,omitempty"`
}

Destiny.Milestones.DestinyPublicMilestoneActivityVariant

Represents a variant of an activity that's relevant to a milestone.

type PublicMilestoneChallenge

type PublicMilestoneChallenge struct {

	// IF the Objective is related to a specific Activity, this will be that activity's hash. Use it to
	// look up the DestinyActivityDefinition for additional data to show.
	ActivityHash Nullable[Hash[ActivityDefinition]] `json:"activityHash,omitempty"`

	// The objective for the Challenge, which should have human-readable data about what needs to be done
	// to accomplish the objective. Use this hash to look up the DestinyObjectiveDefinition.
	ObjectiveHash Hash[ObjectiveDefinition] `json:"objectiveHash"`
}

Destiny.Milestones.DestinyPublicMilestoneChallenge

A Milestone can have many Challenges. Challenges are just extra Objectives that provide a fun way to mix-up play and provide extra rewards.

type PublicMilestoneChallengeActivity

type PublicMilestoneChallengeActivity struct {
	ActivityHash Hash[ActivityDefinition] `json:"activityHash"`

	// The set of activity options for this activity, keyed by an identifier that's unique for this
	// activity (not guaranteed to be unique between or across all activities, though should be unique for
	// every *variant* of a given *conceptual* activity: for instance, the original D2 Raid has many
	// variant DestinyActivityDefinitions. While other activities could potentially have the same option
	// hashes, for any given D2 base Raid variant the hash will be unique).
	// As a concrete example of this data, the hashes you get for Raids will correspond to the currently
	// active "Challenge Mode".
	// We have no human readable information for this data, so it's up to you if you want to associate it
	// with such info to show it.
	BooleanActivityOptions map[uint32]bool `json:"booleanActivityOptions"`

	ChallengeObjectiveHashes []uint32 `json:"challengeObjectiveHashes"`

	// If returned, this is the index into the DestinyActivityDefinition's "loadouts" property, indicating
	// the currently active loadout requirements.
	LoadoutRequirementIndex Nullable[int32] `json:"loadoutRequirementIndex,omitempty"`

	// If the activity has modifiers, this will be the list of modifiers that all variants have in common.
	// Perform lookups against DestinyActivityModifierDefinition which defines the modifier being applied
	// to get at the modifier data.
	// Note that, in the DestiyActivityDefinition, you will see many more modifiers than this being
	// referred to: those are all *possible* modifiers for the activity, not the active ones. Use only the
	// active ones to match what's really live.
	ModifierHashes []uint32 `json:"modifierHashes"`

	// The ordered list of phases for this activity, if any. Note that we have no human readable info for
	// phases, nor any entities to relate them to: relating these hashes to something human readable is up
	// to you unfortunately.
	PhaseHashes []uint32 `json:"phaseHashes"`
}

Destiny.Milestones.DestinyPublicMilestoneChallengeActivity

type PublicMilestoneQuest

type PublicMilestoneQuest struct {

	// A milestone need not have an active activity, but if there is one it will be returned here, along
	// with any variant and additional information.
	Activity PublicMilestoneActivity `json:"activity"`

	// For the given quest there could be 0-to-Many challenges: mini quests that you can perform in the
	// course of doing this quest, that may grant you rewards and benefits.
	Challenges []PublicMilestoneChallenge `json:"challenges"`

	// Quests are defined as Items in content. As such, this is the hash identifier of the
	// DestinyInventoryItemDefinition that represents this quest. It will have pointers to all of the steps
	// in the quest, and display information for the quest (title, description, icon etc) Individual steps
	// will be referred to in the Quest item's DestinyInventoryItemDefinition.setData property, and
	// themselves are Items with their own renderable data.
	QuestItemHash Hash[MilestoneDefinition] `json:"questItemHash"`
}

Destiny.Milestones.DestinyPublicMilestoneQuest

type PublicMilestoneVendor

type PublicMilestoneVendor struct {

	// If this vendor is featuring a specific item for this event, this will be the hash identifier of that
	// item. I'm taking bets now on how long we go before this needs to be a list or some other, more
	// complex representation instead and I deprecate this too. I'm going to go with 5 months. Calling it
	// now, 2017-09-14 at 9:46pm PST.
	PreviewItemHash Nullable[Hash[InventoryItemDefinition]] `json:"previewItemHash,omitempty"`

	// The hash identifier of the Vendor related to this Milestone. You can show useful things from this,
	// such as thier Faction icon or whatever you might care about.
	VendorHash Hash[VendorDefinition] `json:"vendorHash"`
}

Destiny.Milestones.DestinyPublicMilestoneVendor

type PublicVendorComponent

type PublicVendorComponent struct {

	// If True, the Vendor is currently accessible.
	// If False, they may not actually be visible in the world at the moment.
	Enabled bool `json:"enabled"`

	// The date when this vendor's inventory will next rotate/refresh.
	// Note that this is distinct from the date ranges that the vendor is visible/available in-game: this
	// field indicates the specific time when the vendor's available items refresh and rotate, regardless
	// of whether the vendor is actually available at that time. Unfortunately, these two values may be
	// (and are, for the case of important vendors like Xur) different.
	// Issue https://github.com/Bungie-net/api/issues/353 is tracking a fix to start providing visibility
	// date ranges where possible in addition to this refresh date, so that all important dates for vendors
	// are available for use.
	NextRefreshDate Timestamp `json:"nextRefreshDate"`

	// The unique identifier for the vendor. Use it to look up their DestinyVendorDefinition.
	VendorHash Hash[VendorDefinition] `json:"vendorHash"`
}

Destiny.Components.Vendors.DestinyPublicVendorComponent

This component contains essential/summary information about the vendor from the perspective of a character-agnostic view.

type PublicVendorSaleItemComponent

type PublicVendorSaleItemComponent struct {

	// If true, this item can be purchased through the Bungie.net API.
	ApiPurchasable Nullable[bool] `json:"apiPurchasable,omitempty"`

	// A summary of the current costs of the item.
	Costs []ItemQuantity `json:"costs"`

	// The hash of the item being sold, as a quick shortcut for looking up the
	// DestinyInventoryItemDefinition of the sale item.
	ItemHash Hash[InventoryItemDefinition] `json:"itemHash"`

	// If this item has its own custom date where it may be removed from the Vendor's rotation, this is
	// that date.
	// Note that there's not actually any guarantee that it will go away: it could be chosen again and end
	// up still being in the Vendor's sale items! But this is the next date where that test will occur, and
	// is also the date that the game shows for availability on things like Bounties being sold. So it's
	// the best we can give.
	OverrideNextRefreshDate Nullable[Timestamp] `json:"overrideNextRefreshDate,omitempty"`

	// If populated, this is the hash of the item whose icon (and other secondary styles, but *not* the
	// human readable strings) should override whatever icons/styles are on the item being sold.
	// If you don't do this, certain items whose styles are being overridden by socketed items - such as
	// the "Recycle Shader" item - would show whatever their default icon/style is, and it wouldn't be
	// pretty or look accurate.
	OverrideStyleItemHash Nullable[Hash[InventoryItemDefinition]] `json:"overrideStyleItemHash,omitempty"`

	// How much of the item you'll be getting.
	Quantity int32 `json:"quantity"`

	// The index into the DestinyVendorDefinition.itemList property. Note that this means Vendor data *is*
	// Content Version dependent: make sure you have the latest content before you use Vendor data, or
	// these indexes may mismatch.
	// Most systems avoid this problem, but Vendors is one area where we are unable to reasonably avoid
	// content dependency at the moment.
	VendorItemIndex int32 `json:"vendorItemIndex"`
}

Destiny.Components.Vendors.DestinyPublicVendorSaleItemComponent

Has character-agnostic information about an item being sold by a vendor. Note that if you want instance, stats, etc... data for the item, you'll have to request additional components such as ItemInstances, ItemPerks etc... and acquire them from the DestinyVendorResponse's "items" property. For most of these, however, you'll have to ask for it in context of a specific character.

type PublicVendorsResponse

type PublicVendorsResponse struct {

	// Categories that the vendor has available, and references to the sales therein. These are keyed by
	// the Vendor Hash, so you will get one Categories Component per vendor returned.
	// COMPONENT TYPE: VendorCategories
	Categories ComponentResponse[map[uint32]VendorCategoriesComponent] `json:"categories"`

	// Sales, keyed by the vendorItemIndex of the item being sold. These are keyed by the Vendor Hash, so
	// you will get one Sale Item Set Component per vendor returned.
	// Note that within the Sale Item Set component, the sales are themselves keyed by the vendorSaleIndex,
	// so you can relate it to the corrent sale item definition within the Vendor's definition.
	// COMPONENT TYPE: VendorSales
	Sales ComponentResponse[map[uint32]PublicDestinyVendorSaleItemSetComponent] `json:"sales"`

	// A set of string variable values by hash for a public vendors context.
	// COMPONENT TYPE: StringVariables
	StringVariables ComponentResponse[StringVariablesComponent] `json:"stringVariables"`

	// For Vendors being returned, this will give you the information you need to group them and order them
	// in the same way that the Bungie Companion app performs grouping. It will automatically be returned
	// if you request the Vendors component.
	// COMPONENT TYPE: Vendors
	VendorGroups ComponentResponse[VendorGroupComponent] `json:"vendorGroups"`

	// The base properties of the vendor. These are keyed by the Vendor Hash, so you will get one Vendor
	// Component per vendor returned.
	// COMPONENT TYPE: Vendors
	Vendors ComponentResponse[map[uint32]PublicVendorComponent] `json:"vendors"`
}

Destiny.Responses.DestinyPublicVendorsResponse

A response containing all valid components for the public Vendors endpoint.

It is a decisively smaller subset of data compared to what we can get when we know the specific

user making the request.

If you want any of the other data - item details, whether or not you can buy it, etc... you'll have

to call in the context of a character. I know, sad but true.

type QuestStatus

type QuestStatus struct {

	// Whether or not the whole quest has been completed, regardless of whether or not you have redeemed
	// the rewards for the quest.
	Completed bool `json:"completed"`

	// The current Quest Step will be an instanced item in the player's inventory. If you care about that,
	// this is the instance ID of that item.
	ItemInstanceID Int64 `json:"itemInstanceId"`

	// The hash identifier for the Quest Item. (Note: Quests are defined as Items, and thus you would use
	// this to look up the quest's DestinyInventoryItemDefinition). For information on all steps in the
	// quest, you can then examine its DestinyInventoryItemDefinition.setData property for Quest Steps
	// (which are *also* items). You can use the Item Definition to display human readable data about the
	// overall quest.
	QuestHash Hash[InventoryItemDefinition] `json:"questHash"`

	// Whether or not you have redeemed rewards for this quest.
	Redeemed bool `json:"redeemed"`

	// Whether or not you have started this quest.
	Started bool `json:"started"`

	// The hash identifier of the current Quest Step, which is also a DestinyInventoryItemDefinition. You
	// can use this to get human readable data about the current step and what to do in that step.
	StepHash Hash[InventoryItemDefinition] `json:"stepHash"`

	// A step can have multiple objectives. This will give you the progress for each objective in the
	// current step, in the order in which they are rendered in-game.
	StepObjectives []ObjectiveProgress `json:"stepObjectives"`

	// Whether or not the quest is tracked
	Tracked bool `json:"tracked"`

	// If the quest has a related Vendor that you should talk to in order to initiate the quest/earn
	// rewards/continue the quest, this will be the hash identifier of that Vendor. Look it up its
	// DestinyVendorDefinition.
	VendorHash Nullable[uint32] `json:"vendorHash,omitempty"`
}

Destiny.Quests.DestinyQuestStatus

Data regarding the progress of a Quest for a specific character. Quests are composed of multiple steps, each with potentially multiple objectives: this QuestStatus will return Objective data for the *currently active* step in this quest.

type Race

type Race int32

Destiny.DestinyRace

func (Race) Enum

func (e Race) Enum() string

type RaceDefinition

type RaceDefinition struct {
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// A localized string referring to the singular form of the Race's name when referred to in gendered
	// form. Keyed by the DestinyGender.
	GenderedRaceNames map[string]string `json:"genderedRaceNames"`

	GenderedRaceNamesByGenderHash map[Hash[GenderDefinition]]string `json:"genderedRaceNamesByGenderHash"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// An enumeration defining the existing, known Races/Species for player characters. This value will be
	// the enum value matching this definition.
	RaceType Race `json:"raceType"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.DestinyRaceDefinition

In Destiny, "Races" are really more like "Species". Sort of. I mean, are the Awoken a separate species from humans? I'm not sure. But either way, they're defined here. You'll see Exo, Awoken, and Human as examples of these Species. Players will choose one for their character.

func (RaceDefinition) DefinitionTable

func (d RaceDefinition) DefinitionTable() string

type RecordCompletionBlock

type RecordCompletionBlock struct {
	ScoreValue int32 `json:"ScoreValue"`

	// The number of objectives that must be completed before the objective is considered "complete"
	PartialCompletionObjectiveCountThreshold int32 `json:"partialCompletionObjectiveCountThreshold"`

	ShouldFireToast bool `json:"shouldFireToast"`

	ToastStyle RecordToastStyle `json:"toastStyle"`
}

Destiny.Definitions.Records.DestinyRecordCompletionBlock

func (RecordCompletionBlock) DefinitionTable

func (d RecordCompletionBlock) DefinitionTable() string

type RecordComponent

type RecordComponent struct {

	// If available, this is the number of times this record has been completed. For example, the number of
	// times a seal title has been gilded.
	CompletedCount Nullable[int32] `json:"completedCount,omitempty"`

	IntervalObjectives []ObjectiveProgress `json:"intervalObjectives"`

	IntervalsRedeemedCount int32 `json:"intervalsRedeemedCount"`

	Objectives []ObjectiveProgress `json:"objectives"`

	// If available, a list that describes which reward rewards should be shown (true) or hidden (false).
	// This property is for regular record rewards, and not for interval objective rewards.
	RewardVisibilty []bool `json:"rewardVisibilty"`

	State BitmaskSet[RecordState] `json:"state"`
}

Destiny.Components.Records.DestinyRecordComponent

type RecordDefinition

type RecordDefinition struct {
	CompletionInfo RecordCompletionBlock `json:"completionInfo"`

	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	ExpirationInfo RecordExpirationBlock `json:"expirationInfo"`

	ForTitleGilding bool `json:"forTitleGilding"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// Some records have multiple 'interval' objectives, and the record may be claimed at each completed
	// interval
	IntervalInfo RecordIntervalBlock `json:"intervalInfo"`

	LoreHash Nullable[Hash[LoreDefinition]] `json:"loreHash,omitempty"`

	ObjectiveHashes []uint32 `json:"objectiveHashes"`

	// A quick reference to presentation nodes that have this node as a child. Presentation nodes can be
	// parented under multiple parents.
	ParentNodeHashes []uint32 `json:"parentNodeHashes"`

	PresentationInfo PresentationChildBlock `json:"presentationInfo"`

	PresentationNodeType PresentationNodeType `json:"presentationNodeType"`

	RecordValueStyle RecordValueStyle `json:"recordValueStyle"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	Requirements PresentationNodeRequirementsBlock `json:"requirements"`

	// If there is any publicly available information about rewards earned for achieving this record, this
	// is the list of those items.
	//
	//	However, note that some records intentionally have "hidden" rewards. These will not be returned in
	//
	// this list.
	RewardItems []ItemQuantity `json:"rewardItems"`

	// Indicates whether this Record's state is determined on a per-character or on an account-wide basis.
	Scope Scope `json:"scope"`

	// A hint to show a large icon for a reward
	ShouldShowLargeIcons bool `json:"shouldShowLargeIcons"`

	StateInfo SchemaRecordStateBlock `json:"stateInfo"`

	TitleInfo RecordTitleBlock `json:"titleInfo"`

	TraitHashes []uint32 `json:"traitHashes"`

	TraitIds []string `json:"traitIds"`
}

Destiny.Definitions.Records.DestinyRecordDefinition

func (RecordDefinition) DefinitionTable

func (d RecordDefinition) DefinitionTable() string

type RecordExpirationBlock

type RecordExpirationBlock struct {
	Description string `json:"description"`

	HasExpiration bool `json:"hasExpiration"`

	Icon string `json:"icon"`
}

Destiny.Definitions.Records.DestinyRecordExpirationBlock

If this record has an expiration after which it cannot be earned, this is some information about that expiration.

func (RecordExpirationBlock) DefinitionTable

func (d RecordExpirationBlock) DefinitionTable() string

type RecordIntervalBlock

type RecordIntervalBlock struct {
	IntervalObjectives []RecordIntervalObjective `json:"intervalObjectives"`

	IntervalRewards []RecordIntervalRewards `json:"intervalRewards"`

	OriginalObjectiveArrayInsertionIndex int32 `json:"originalObjectiveArrayInsertionIndex"`
}

Destiny.Definitions.Records.DestinyRecordIntervalBlock

func (RecordIntervalBlock) DefinitionTable

func (d RecordIntervalBlock) DefinitionTable() string

type RecordIntervalObjective

type RecordIntervalObjective struct {
	IntervalObjectiveHash Hash[ObjectiveDefinition] `json:"intervalObjectiveHash"`

	IntervalScoreValue int32 `json:"intervalScoreValue"`
}

Destiny.Definitions.Records.DestinyRecordIntervalObjective

func (RecordIntervalObjective) DefinitionTable

func (d RecordIntervalObjective) DefinitionTable() string

type RecordIntervalRewards

type RecordIntervalRewards struct {
	IntervalRewardItems []ItemQuantity `json:"intervalRewardItems"`
}

Destiny.Definitions.Records.DestinyRecordIntervalRewards

func (RecordIntervalRewards) DefinitionTable

func (d RecordIntervalRewards) DefinitionTable() string

type RecordState

type RecordState int32

Destiny.DestinyRecordState

A Flags enumeration/bitmask where each bit represents a possible state that a Record/Triumph can be in.

func (RecordState) Enum

func (e RecordState) Enum() string

type RecordTitleBlock

type RecordTitleBlock struct {
	GildingTrackingRecordHash Nullable[Hash[RecordDefinition]] `json:"gildingTrackingRecordHash,omitempty"`

	HasTitle bool `json:"hasTitle"`

	TitlesByGender map[string]string `json:"titlesByGender"`

	// For those who prefer to use the definitions.
	TitlesByGenderHash map[Hash[GenderDefinition]]string `json:"titlesByGenderHash"`
}

Destiny.Definitions.Records.DestinyRecordTitleBlock

func (RecordTitleBlock) DefinitionTable

func (d RecordTitleBlock) DefinitionTable() string

type RecordToastStyle

type RecordToastStyle int32

Destiny.DestinyRecordToastStyle

func (RecordToastStyle) Enum

func (e RecordToastStyle) Enum() string

type RecordValueStyle

type RecordValueStyle int32

Destiny.DestinyRecordValueStyle

func (RecordValueStyle) Enum

func (e RecordValueStyle) Enum() string

type RecordsComponent

type RecordsComponent struct {

	// The hash for the root presentation node definition of Triumph categories.
	RecordCategoriesRootNodeHash Hash[PresentationNodeDefinition] `json:"recordCategoriesRootNodeHash"`

	// The hash for the root presentation node definition of Triumph Seals.
	RecordSealsRootNodeHash Hash[PresentationNodeDefinition] `json:"recordSealsRootNodeHash"`

	Records map[uint32]RecordComponent `json:"records"`
}

Destiny.Components.Records.DestinyRecordsComponent

type ReportOffensePgcrRequest

type ReportOffensePgcrRequest struct {

	// Within the PGCR provided when calling the Reporting endpoint, this should be the character ID of the
	// user that you thought was violating terms of use. They must exist in the PGCR provided.
	OffendingCharacterID Int64 `json:"offendingCharacterId"`

	// So you've decided to report someone instead of cursing them and their descendants. Well, okay then.
	// This is the category or categorie(s) of infractions for which you are reporting the user. These are
	// hash identifiers that map to DestinyReportReasonCategoryDefinition entries.
	ReasonCategoryHashes []uint32 `json:"reasonCategoryHashes"`

	// If applicable, provide a more specific reason(s) within the general category of problems provided by
	// the reasonHash. This is also an identifier for a reason. All reasonHashes provided must be children
	// of at least one the reasonCategoryHashes provided.
	ReasonHashes []uint32 `json:"reasonHashes"`
}

Destiny.Reporting.Requests.DestinyReportOffensePgcrRequest

If you want to report a player causing trouble in a game, this request will let you report that player and the specific PGCR in which the trouble was caused, along with why. Please don't do this just because you dislike the person! I mean, I know people will do it anyways, but can you like take a good walk, or put a curse on them or something? Do me a solid and reconsider. Note that this request object doesn't have the actual PGCR ID nor your Account/Character ID in it. We will infer that information from your authentication information and the PGCR ID that you pass into the URL of the reporting endpoint itself.

type ReportReasonCategoryDefinition

type ReportReasonCategoryDefinition struct {
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// The specific reasons for the report under this category.
	Reasons map[uint32]ReportReasonDefinition `json:"reasons"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.Reporting.DestinyReportReasonCategoryDefinition

If you're going to report someone for a Terms of Service violation, you need to choose a category and reason for the report. This definition holds both the categories and the reasons within those categories, for simplicity and my own laziness' sake. Note tha this means that, to refer to a Reason by reasonHash, you need a combination of the reasonHash *and* the associated ReasonCategory's hash: there are some reasons defined under multiple categories.

func (ReportReasonCategoryDefinition) DefinitionTable

func (d ReportReasonCategoryDefinition) DefinitionTable() string

type ReportReasonDefinition

type ReportReasonDefinition struct {
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The identifier for the reason: they are only guaranteed unique under the Category in which they are
	// found.
	ReasonHash uint32 `json:"reasonHash"`
}

Destiny.Definitions.Reporting.DestinyReportReasonDefinition

A specific reason for being banned. Only accessible under the related category (DestinyReportReasonCategoryDefinition) under which it is shown. Note that this means that report reasons' reasonHash are not globally unique: and indeed, entries like "Other" are defined under most categories for example.

func (ReportReasonDefinition) DefinitionTable

func (d ReportReasonDefinition) DefinitionTable() string

type RewardAvailabilityModel

type RewardAvailabilityModel struct {
	CollectibleDefinitions []CollectibleDefinitions `json:"CollectibleDefinitions"`

	DecryptedToken string `json:"DecryptedToken"`

	GameEarnByDate Timestamp `json:"GameEarnByDate"`

	HasExistingCode bool `json:"HasExistingCode"`

	HasOffer bool `json:"HasOffer"`

	IsLoyaltyReward bool `json:"IsLoyaltyReward"`

	IsOffer bool `json:"IsOffer"`

	OfferApplied bool `json:"OfferApplied"`

	RecordDefinitions []RecordDefinition `json:"RecordDefinitions"`

	RedemptionEndDate Timestamp `json:"RedemptionEndDate"`

	ShopifyEndDate Nullable[Timestamp] `json:"ShopifyEndDate,omitempty"`
}

Tokens.RewardAvailabilityModel

type RewardDisplayProperties

type RewardDisplayProperties struct {
	Description string `json:"Description"`

	ImagePath string `json:"ImagePath"`

	Name string `json:"Name"`
}

Tokens.RewardDisplayProperties

type RewardSourceCategory

type RewardSourceCategory int32

Destiny.Definitions.DestinyRewardSourceCategory

BNet's custom categorization of reward sources. We took a look at the existing ways that items could be spawned, and tried to make high-level categorizations of them. This needs to be re-evaluated for Destiny 2.

func (RewardSourceCategory) Enum

func (e RewardSourceCategory) Enum() string

type RewardSourceDefinition

type RewardSourceDefinition struct {

	// Sources are grouped into categories: common ways that items are provided. I hope to see this expand
	// in Destiny 2 once we have time to generate accurate reward source data.
	Category RewardSourceCategory `json:"category"`

	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.DestinyRewardSourceDefinition

Represents a heuristically-determined "item source" according to Bungie.net. These item sources are non-canonical: we apply a combination of special configuration and often-fragile heuristics to attempt to discern whether an item should be part of a given "source," but we have known cases of false positives and negatives due to our imperfect heuristics. Still, they provide a decent approximation for people trying to figure out how an item can be obtained. DestinyInventoryItemDefinition refers to sources in the sourceDatas.sourceHashes property for all sources we determined the item could spawn from. An example in Destiny 1 of a Source would be "Nightfall". If an item has the "Nightfall" source associated with it, it's extremely likely that you can earn that item while playing Nightfall, either during play or as an after-completion reward.

func (RewardSourceDefinition) DefinitionTable

func (d RewardSourceDefinition) DefinitionTable() string

type RuntimeGroupMemberType

type RuntimeGroupMemberType int32

GroupsV2.RuntimeGroupMemberType

The member levels used by all V2 Groups API. Individual group types use their own mappings in their native storage (general uses BnetDbGroupMemberType and D2 clans use ClanMemberLevel), but they are all translated to this in the runtime api. These runtime values should NEVER be stored anywhere, so the values can be changed as necessary.

func (RuntimeGroupMemberType) Enum

func (e RuntimeGroupMemberType) Enum() string

type SandboxPatternDefinition

type SandboxPatternDefinition struct {
	Filters []ArrangementRegionFilterDefinition `json:"filters"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	PatternGlobalTagIdHash uint32 `json:"patternGlobalTagIdHash"`

	PatternHash uint32 `json:"patternHash"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	WeaponContentGroupHash uint32 `json:"weaponContentGroupHash"`

	WeaponTranslationGroupHash uint32 `json:"weaponTranslationGroupHash"`

	WeaponType ItemSubType `json:"weaponType"`

	WeaponTypeHash Nullable[uint32] `json:"weaponTypeHash,omitempty"`
}

Destiny.Definitions.DestinySandboxPatternDefinition

func (SandboxPatternDefinition) DefinitionTable

func (d SandboxPatternDefinition) DefinitionTable() string

type SandboxPerkDefinition

type SandboxPerkDefinition struct {

	// If this perk grants a damage type to a weapon, the damage type will be defined here.
	// Unless you have a compelling reason to use this enum value, use the damageTypeHash instead to look
	// up the actual DestinyDamageTypeDefinition.
	DamageType DamageType `json:"damageType"`

	// The hash identifier for looking up the DestinyDamageTypeDefinition, if this perk has a damage type.
	// This is preferred over using the damageType enumeration value, which has been left purely because it
	// is occasionally convenient.
	DamageTypeHash Nullable[Hash[DamageTypeDefinition]] `json:"damageTypeHash,omitempty"`

	// These display properties are by no means guaranteed to be populated. Usually when it is, it's only
	// because we back-filled them with the displayProperties of some Talent Node or Plug item that
	// happened to be uniquely providing that perk.
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If true, you can actually show the perk in the UI. Otherwise, it doesn't have useful player-facing
	// information.
	IsDisplayable bool `json:"isDisplayable"`

	// An old holdover from the original Armory, this was an attempt to group perks by functionality.
	// It is as yet unpopulated, and there will be quite a bit of work needed to restore it to its former
	// working order.
	PerkGroups TalentNodeStepGroups `json:"perkGroups"`

	// The string identifier for the perk.
	PerkIdentifier string `json:"perkIdentifier"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.DestinySandboxPerkDefinition

Perks are modifiers to a character or item that can be applied situationally. - Perks determine a weapons' damage type. - Perks put the Mods in Modifiers (they are literally the entity that bestows the Sandbox benefit for whatever fluff text about the modifier in the Socket, Plug or Talent Node) - Perks are applied for unique alterations of state in Objectives Anyways, I'm sure you can see why perks are so interesting. What Perks often don't have is human readable information, so we attempt to reverse engineer that by pulling that data from places that uniquely refer to these perks: namely, Talent Nodes and Plugs. That only gives us a subset of perks that are human readable, but those perks are the ones people generally care about anyways. The others are left as a mystery, their true purpose mostly unknown and undocumented.

func (SandboxPerkDefinition) DefinitionTable

func (d SandboxPerkDefinition) DefinitionTable() string

type SchemaRecordStateBlock

type SchemaRecordStateBlock struct {
	FeaturedPriority int32 `json:"featuredPriority"`

	ObscuredString string `json:"obscuredString"`
}

Destiny.Definitions.Records.SchemaRecordStateBlock

func (SchemaRecordStateBlock) DefinitionTable

func (d SchemaRecordStateBlock) DefinitionTable() string

type Scope

type Scope int32

Destiny.DestinyScope

There's a lot of places where we need to know scope on more than just a profile or character level. For everything else, there's this more generic sense of scope.

func (Scope) Enum

func (e Scope) Enum() string

type ScoredPresentationNodeBaseDefinition

type ScoredPresentationNodeBaseDefinition struct {

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	MaxCategoryRecordScore int32 `json:"maxCategoryRecordScore"`

	// A quick reference to presentation nodes that have this node as a child. Presentation nodes can be
	// parented under multiple parents.
	ParentNodeHashes []uint32 `json:"parentNodeHashes"`

	PresentationNodeType PresentationNodeType `json:"presentationNodeType"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	TraitHashes []uint32 `json:"traitHashes"`

	TraitIds []string `json:"traitIds"`
}

Destiny.Definitions.Presentation.DestinyScoredPresentationNodeBaseDefinition

func (ScoredPresentationNodeBaseDefinition) DefinitionTable

func (d ScoredPresentationNodeBaseDefinition) DefinitionTable() string

type SearchResult

type SearchResult[T any] struct {
	Results []T `json:"results"`

	HasMore bool `json:"hasMore"`

	Query PagedQuery `json:"query"`

	ReplacementContinuationToken string `json:"replacementContinuationToken"`

	TotalResults int32 `json:"totalResults"`

	// If useTotalResults is true, then totalResults represents an accurate count.
	// If False, it does not, and may be estimated/only the size of the current page.
	// Either way, you should probably always only trust hasMore.
	// This is a long-held historical throwback to when we used to do paging with known total results.
	// Those queries toasted our database, and we were left to hastily alter our endpoints and create
	// backward- compatible shims, of which useTotalResults is one.
	UseTotalResults bool `json:"useTotalResults"`
}

Queries.SearchResult

type SeasonDefinition

type SeasonDefinition struct {
	ArtifactItemHash Nullable[Hash[InventoryItemDefinition]] `json:"artifactItemHash,omitempty"`

	BackgroundImagePath string `json:"backgroundImagePath"`

	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	EndDate Nullable[Timestamp] `json:"endDate,omitempty"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// Optional - Defines the promotional text, images, and links to preview this season.
	Preview SeasonPreviewDefinition `json:"preview"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	SealPresentationNodeHash Nullable[Hash[PresentationNodeDefinition]] `json:"sealPresentationNodeHash,omitempty"`

	SeasonNumber int32 `json:"seasonNumber"`

	SeasonPassHash Nullable[Hash[SeasonPassDefinition]] `json:"seasonPassHash,omitempty"`

	SeasonPassProgressionHash Nullable[Hash[ProgressionDefinition]] `json:"seasonPassProgressionHash,omitempty"`

	SeasonalChallengesPresentationNodeHash Nullable[Hash[PresentationNodeDefinition]] `json:"seasonalChallengesPresentationNodeHash,omitempty"`

	StartDate Nullable[Timestamp] `json:"startDate,omitempty"`
}

Destiny.Definitions.Seasons.DestinySeasonDefinition

Defines a canonical "Season" of Destiny: a range of a few months where the game highlights certain challenges, provides new loot, has new Clan-related rewards and celebrates various seasonal events.

func (SeasonDefinition) DefinitionTable

func (d SeasonDefinition) DefinitionTable() string

type SeasonPassDefinition

type SeasonPassDefinition struct {
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// I know what you're thinking, but I promise we're not going to duplicate and drown you. Instead,
	// we're giving you sweet, sweet power bonuses.
	//
	//	Prestige progression is further progression that you can make on the Season pass after you gain max
	//
	// ranks, that will ultimately increase your power/light level over the theoretical limit.
	PrestigeProgressionHash Hash[ProgressionDefinition] `json:"prestigeProgressionHash"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	// This is the progression definition related to the progression for the initial levels 1-100 that
	// provide item rewards for the Season pass. Further experience after you reach the limit is provided
	// in the "Prestige" progression referred to by prestigeProgressionHash.
	RewardProgressionHash Hash[ProgressionDefinition] `json:"rewardProgressionHash"`
}

Destiny.Definitions.Seasons.DestinySeasonPassDefinition

func (SeasonPassDefinition) DefinitionTable

func (d SeasonPassDefinition) DefinitionTable() string

type SeasonPreviewDefinition

type SeasonPreviewDefinition struct {

	// A localized description of the season.
	Description string `json:"description"`

	// A list of images to preview the seasonal content. Should have at least three to show.
	Images []SeasonPreviewImageDefinition `json:"images"`

	// A relative path to learn more about the season. Web browsers should be automatically redirected to
	// the user's Bungie.net locale. For example: "/SeasonOfTheChosen" will redirect to
	// "/7/en/Seasons/SeasonOfTheChosen" for English users.
	LinkPath string `json:"linkPath"`

	// An optional link to a localized video, probably YouTube.
	VideoLink string `json:"videoLink"`
}

Destiny.Definitions.Seasons.DestinySeasonPreviewDefinition

Defines the promotional text, images, and links to preview this season.

func (SeasonPreviewDefinition) DefinitionTable

func (d SeasonPreviewDefinition) DefinitionTable() string

type SeasonPreviewImageDefinition

type SeasonPreviewImageDefinition struct {

	// An optional path to a high-resolution image, probably 1920x1080.
	HighResImage string `json:"highResImage"`

	// A thumbnail icon path to preview seasonal content, probably 480x270.
	ThumbnailImage string `json:"thumbnailImage"`
}

Destiny.Definitions.Seasons.DestinySeasonPreviewImageDefinition

Defines the thumbnail icon, high-res image, and video link for promotional images

func (SeasonPreviewImageDefinition) DefinitionTable

func (d SeasonPreviewImageDefinition) DefinitionTable() string

type Series

type Series struct {

	// Collection of samples with time and value.
	Datapoints []Datapoint `json:"datapoints"`

	// Target to which to datapoints apply.
	Target string `json:"target"`
}

Applications.Series

type ServerResponse

type ServerResponse[T any] struct {
	Response           T
	ErrorCode          PlatformErrorCodes
	ThrottleSeconds    int32
	ErrorStatus        string
	Message            string
	MessageData        map[string]string
	DetailedErrorTrace string
	// contains filtered or unexported fields
}

func (ServerResponse[T]) Raw

func (r ServerResponse[T]) Raw() []byte

type SocialAcceptFriendRequestRequest

type SocialAcceptFriendRequestRequest struct {

	// The membership id of the user you wish to accept.
	// Required.
	MembershipID string
}

SocialAcceptFriendRequestRequest are the request parameters for operation Social.AcceptFriendRequest

type SocialCommendationDefinition

type SocialCommendationDefinition struct {
	ActivityGivingLimit int32 `json:"activityGivingLimit"`

	CardImagePath string `json:"cardImagePath"`

	Color Color `json:"color"`

	// The display properties for the the activities that this commendation is available in.
	DisplayActivities []DisplayPropertiesDefinition `json:"displayActivities"`

	DisplayPriority int32 `json:"displayPriority"`

	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	ParentCommendationNodeHash Hash[SocialCommendationNodeDefinition] `json:"parentCommendationNodeHash"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.Social.DestinySocialCommendationDefinition

func (SocialCommendationDefinition) DefinitionTable

func (d SocialCommendationDefinition) DefinitionTable() string

type SocialCommendationNodeDefinition

type SocialCommendationNodeDefinition struct {

	// A list of hashes that map to child commendations.
	ChildCommendationHashes []uint32 `json:"childCommendationHashes"`

	// A list of hashes that map to child commendation nodes. Only the root commendations node is expected
	// to have child nodes.
	ChildCommendationNodeHashes []uint32 `json:"childCommendationNodeHashes"`

	// The color associated with this group of commendations.
	Color Color `json:"color"`

	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	ParentCommendationNodeHash Hash[SocialCommendationNodeDefinition] `json:"parentCommendationNodeHash"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.Social.DestinySocialCommendationNodeDefinition

func (SocialCommendationNodeDefinition) DefinitionTable

func (d SocialCommendationNodeDefinition) DefinitionTable() string

type SocialCommendationsComponent

type SocialCommendationsComponent struct {
	CommendationNodeScoresByHash map[Hash[SocialCommendationNodeDefinition]]int32 `json:"commendationNodeScoresByHash"`

	CommendationScoresByHash map[Hash[SocialCommendationDefinition]]int32 `json:"commendationScoresByHash"`

	ScoreDetailValues []int32 `json:"scoreDetailValues"`

	TotalScore int32 `json:"totalScore"`
}

Destiny.Components.Social.DestinySocialCommendationsComponent

type SocialDeclineFriendRequestRequest

type SocialDeclineFriendRequestRequest struct {

	// The membership id of the user you wish to decline.
	// Required.
	MembershipID string
}

SocialDeclineFriendRequestRequest are the request parameters for operation Social.DeclineFriendRequest

type SocialGetFriendListRequest

type SocialGetFriendListRequest struct {
}

SocialGetFriendListRequest are the request parameters for operation Social.GetFriendList

type SocialGetFriendRequestListRequest

type SocialGetFriendRequestListRequest struct {
}

SocialGetFriendRequestListRequest are the request parameters for operation Social.GetFriendRequestList

type SocialGetPlatformFriendListRequest

type SocialGetPlatformFriendListRequest struct {

	// The platform friend type.
	// Required.
	FriendPlatform PlatformFriendType

	// The zero based page to return. Page size is 100.
	// Required.
	Page string
}

SocialGetPlatformFriendListRequest are the request parameters for operation Social.GetPlatformFriendList

type SocialIssueFriendRequestRequest

type SocialIssueFriendRequestRequest struct {

	// The membership id of the user you wish to add.
	// Required.
	MembershipID string
}

SocialIssueFriendRequestRequest are the request parameters for operation Social.IssueFriendRequest

type SocialRemoveFriendRequest

type SocialRemoveFriendRequest struct {

	// The membership id of the user you wish to remove.
	// Required.
	MembershipID string
}

SocialRemoveFriendRequest are the request parameters for operation Social.RemoveFriend

type SocialRemoveFriendRequestRequest

type SocialRemoveFriendRequestRequest struct {

	// The membership id of the user you wish to remove.
	// Required.
	MembershipID string
}

SocialRemoveFriendRequestRequest are the request parameters for operation Social.RemoveFriendRequest

type SocketArrayType

type SocketArrayType int32

Destiny.Requests.Actions.DestinySocketArrayType

If you look in the DestinyInventoryItemDefinition's "sockets" property, you'll see that there are two types of sockets: intrinsic, and "socketEntry." Unfortunately, because Intrinsic sockets are a whole separate array, it is no longer sufficient to know the index into that array to know which socket we're talking about. You have to know whether it's in the default "socketEntries" or if it's in the "intrinsic" list.

func (SocketArrayType) Enum

func (e SocketArrayType) Enum() string

type SocketCategoryDefinition

type SocketCategoryDefinition struct {

	// Same as uiCategoryStyle, but in a more usable enumeration form.
	CategoryStyle SocketCategoryStyle `json:"categoryStyle"`

	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	// A string hinting to the game's UI system about how the sockets in this category should be displayed.
	// BNet doesn't use it: it's up to you to find valid values and make your own special UI if you want to
	// honor this category style.
	UiCategoryStyle uint32 `json:"uiCategoryStyle"`
}

Destiny.Definitions.Sockets.DestinySocketCategoryDefinition

Sockets on an item are organized into Categories visually. You can find references to the socket category defined on an item's DestinyInventoryItemDefinition.sockets.socketCategories property. This has the display information for rendering the categories' header, and a hint for how the UI should handle showing this category. The shitty thing about this, however, is that the socket categories' UI style can be overridden by the item's UI style. For instance, the Socket Category used by Emote Sockets says it's "consumable," but that's a lie: they're all reusable, and overridden by the detail UI pages in ways that we can't easily account for in the API. As a result, I will try to compile these rules into the individual sockets on items, and provide the best hint possible there through the plugSources property. In the future, I may attempt to use this information in conjunction with the item to provide a more usable UI hint on the socket layer, but for now improving the consistency of plugSources is the best I have time to provide. (See https://github.com/Bungie-net/api/issues/522 for more info)

func (SocketCategoryDefinition) DefinitionTable

func (d SocketCategoryDefinition) DefinitionTable() string

type SocketCategoryStyle

type SocketCategoryStyle int32

Destiny.DestinySocketCategoryStyle

Represents the possible and known UI styles used by the game for rendering Socket Categories.

func (SocketCategoryStyle) Enum

func (e SocketCategoryStyle) Enum() string

type SocketPlugSources

type SocketPlugSources int32

Destiny.SocketPlugSources

Indicates how a socket is populated, and where you should look for valid plug data.

This is a flags enumeration/bitmask field, as you may have to look in multiple sources across

multiple components for valid plugs.

For instance, a socket could have plugs that are sourced from its own definition, as well as plugs

that are sourced from Character-scoped AND profile-scoped Plug Sets. Only by combining plug data for every indicated source will you be able to know all of the plugs available for a socket.

func (SocketPlugSources) Enum

func (e SocketPlugSources) Enum() string

type SocketTypeActionType

type SocketTypeActionType int32

Destiny.SocketTypeActionType

Indicates the type of actions that can be performed

func (SocketTypeActionType) Enum

func (e SocketTypeActionType) Enum() string

type SocketTypeDefinition

type SocketTypeDefinition struct {
	AlwaysRandomizeSockets bool `json:"alwaysRandomizeSockets"`

	AvoidDuplicatesOnInitialization bool `json:"avoidDuplicatesOnInitialization"`

	CurrencyScalars []SocketTypeScalarMaterialRequirementEntry `json:"currencyScalars"`

	// There are fields for this display data, but they appear to be unpopulated as of now. I am not sure
	// where in the UI these would show if they even were populated, but I will continue to return this
	// data in case it becomes useful.
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	HideDuplicateReusablePlugs bool `json:"hideDuplicateReusablePlugs"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// Defines what happens when a plug is inserted into sockets of this type.
	InsertAction InsertPlugActionDefinition `json:"insertAction"`

	IsPreviewEnabled bool `json:"isPreviewEnabled"`

	// This property indicates if the socket type determines whether Emblem icons and nameplates should be
	// overridden by the inserted plug item's icon and nameplate.
	OverridesUiAppearance bool `json:"overridesUiAppearance"`

	// A list of Plug "Categories" that are allowed to be plugged into sockets of this type.
	// These should be compared against a given plug item's
	// DestinyInventoryItemDefinition.plug.plugCategoryHash, which indicates the plug item's category.
	// If the plug's category matches any whitelisted plug, or if the whitelist is empty, it is allowed to
	// be inserted.
	PlugWhitelist []PlugWhitelistEntryDefinition `json:"plugWhitelist"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	SocketCategoryHash Hash[SocketCategoryDefinition] `json:"socketCategoryHash"`

	// Sometimes a socket isn't visible. These are some of the conditions under which sockets of this type
	// are not visible. Unfortunately, the truth of visibility is much, much more complex. Best to rely on
	// the live data for whether the socket is visible and enabled.
	Visibility SocketVisibility `json:"visibility"`
}

Destiny.Definitions.Sockets.DestinySocketTypeDefinition

All Sockets have a "Type": a set of common properties that determine when the socket allows Plugs to be inserted, what Categories of Plugs can be inserted, and whether the socket is even visible at all given the current game/character/account state. See DestinyInventoryItemDefinition for more information about Socketed items and Plugs.

func (SocketTypeDefinition) DefinitionTable

func (d SocketTypeDefinition) DefinitionTable() string

type SocketTypeScalarMaterialRequirementEntry

type SocketTypeScalarMaterialRequirementEntry struct {
	CurrencyItemHash Hash[InventoryItemDefinition] `json:"currencyItemHash"`

	ScalarValue int32 `json:"scalarValue"`
}

Destiny.Definitions.Sockets.DestinySocketTypeScalarMaterialRequirementEntry

func (SocketTypeScalarMaterialRequirementEntry) DefinitionTable

type SocketVisibility

type SocketVisibility int32

Destiny.DestinySocketVisibility

func (SocketVisibility) Enum

func (e SocketVisibility) Enum() string

type SpecialItemType

type SpecialItemType int32

Destiny.SpecialItemType

As you run into items that need to be classified for Milestone purposes in ways that we cannot infer via direct data, add a new classification here and use a string constant to represent it in the local item config file. NOTE: This is not all of the item types available, and some of these are holdovers from Destiny 1 that may or may not still exist.

func (SpecialItemType) Enum

func (e SpecialItemType) Enum() string

type Stat

type Stat struct {

	// The hash identifier for the Stat. Use it to look up the DestinyStatDefinition for static data about
	// the stat.
	StatHash Hash[StatDefinition] `json:"statHash"`

	// The current value of the Stat.
	Value int32 `json:"value"`
}

Destiny.DestinyStat

Represents a stat on an item *or* Character (NOT a Historical Stat, but a physical attribute stat like Attack, Defense etc...)

type StatAggregationType

type StatAggregationType int32

Destiny.DestinyStatAggregationType

When a Stat (DestinyStatDefinition) is aggregated, this is the rules used for determining the level and formula used for aggregation. * CharacterAverage = apply a weighted average using the related DestinyStatGroupDefinition on the DestinyInventoryItemDefinition across the character's equipped items. See both of those definitions for details. * Character = don't aggregate: the stat should be located and used directly on the character. * Item = don't aggregate: the stat should be located and used directly on the item.

func (StatAggregationType) Enum

func (e StatAggregationType) Enum() string

type StatCategory

type StatCategory int32

Destiny.DestinyStatCategory

At last, stats have categories. Use this for whatever purpose you might wish.

func (StatCategory) Enum

func (e StatCategory) Enum() string

type StatDefinition

type StatDefinition struct {

	// Stats can exist on a character or an item, and they may potentially be aggregated in different ways.
	// The DestinyStatAggregationType enum value indicates the way that this stat is being aggregated.
	AggregationType StatAggregationType `json:"aggregationType"`

	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// True if the stat is computed rather than being delivered as a raw value on items.
	// For instance, the Light stat in Destiny 1 was a computed stat.
	HasComputedBlock bool `json:"hasComputedBlock"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	// The category of the stat, according to the game.
	StatCategory StatCategory `json:"statCategory"`
}

Destiny.Definitions.DestinyStatDefinition

This represents a stat that's applied to a character or an item (such as a weapon, piece of armor, or a vehicle). An example of a stat might be Attack Power on a weapon. Stats go through a complex set of transformations before they end up being shown to the user as a number or a progress bar, and those transformations are fundamentally intertwined with the concept of a "Stat Group" (DestinyStatGroupDefinition). Items have both Stats and a reference to a Stat Group, and it is the Stat Group that takes the raw stat information and gives it both rendering metadata (such as whether to show it as a number or a progress bar) and the final transformation data (interpolation tables to turn the raw investment stat into a display stat). Please see DestinyStatGroupDefinition for more information on that transformational process. Stats are segregated from Stat Groups because different items and types of items can refer to the same stat, but have different "scales" for the stat while still having the same underlying value. For example, both a Shotgun and an Auto Rifle may have a "raw" impact stat of 50, but the Auto Rifle's Stat Group will scale that 50 down so that, when it is displayed, it is a smaller value relative to the shotgun. (this is a totally made up example, don't assume shotguns have naturally higher impact than auto rifles because of this) A final caveat is that some stats, even after this "final" transformation, go through yet another set of transformations directly in the game as a result of dynamic, stateful scripts that get run. BNet has no access to these scripts, nor any way to know which scripts get executed. As a result, the stats for an item that you see in-game - particularly for stats that are often impacted by Perks, like Magazine Size - can change dramatically from what we return on Bungie.Net. This is a known issue with no fix coming down the pipeline. Take these stats with a grain of salt. Stats actually go through four transformations, for those interested: 1) "Sandbox" stat, the "most raw" form. These are pretty much useless without transformations applied, and thus are not currently returned in the API. If you really want these, we can provide them. Maybe someone could do something cool with it? 2) "Investment" stat (the stat's value after DestinyStatDefinition's interpolation tables and aggregation logic is applied to the "Sandbox" stat value) 3) "Display" stat (the stat's base UI-visible value after DestinyStatGroupDefinition's interpolation tables are applied to the Investment Stat value. For most stats, this is what is displayed.) 4) Underlying in-game stat (the stat's actual value according to the game, after the game runs dynamic scripts based on the game and character's state. This is the final transformation that BNet does not have access to. For most stats, this is not actually displayed to the user, with the exception of Magazine Size which is then piped back to the UI for display in-game, but not to BNet.)

func (StatDefinition) DefinitionTable

func (d StatDefinition) DefinitionTable() string

type StatDisplayDefinition

type StatDisplayDefinition struct {

	// If this is true, the stat should be displayed as a number. Otherwise, display it as a progress bar.
	// Or, you know, do whatever you want. There's no displayAsNumeric police.
	DisplayAsNumeric bool `json:"displayAsNumeric"`

	// The interpolation table representing how the Investment Stat is transformed into a Display Stat.
	// See DestinyStatDefinition for a description of the stages of stat transformation.
	DisplayInterpolation []InterpolationPoint `json:"displayInterpolation"`

	// Regardless of the output of interpolation, this is the maximum possible value that the stat can be.
	// It should also be used as the upper bound for displaying the stat as a progress bar (the minimum
	// always being 0)
	MaximumValue int32 `json:"maximumValue"`

	// The hash identifier for the stat being transformed into a Display stat.
	// Use it to look up the DestinyStatDefinition, or key into a DestinyInventoryItemDefinition's stats
	// property.
	StatHash Hash[StatDefinition] `json:"statHash"`
}

Destiny.Definitions.DestinyStatDisplayDefinition

Describes the way that an Item Stat (see DestinyStatDefinition) is transformed using the DestinyStatGroupDefinition related to that item. See both of the aforementioned definitions for more information about the stages of stat transformation. This represents the transformation of a stat into a "Display" stat (the closest value that BNet can get to the in-game display value of the stat)

func (StatDisplayDefinition) DefinitionTable

func (d StatDisplayDefinition) DefinitionTable() string

type StatGroupDefinition

type StatGroupDefinition struct {

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// The maximum possible value that any stat in this group can be transformed into.
	// This is used by stats that *don't* have scaledStats entries below, but that still need to be
	// displayed as a progress bar, in which case this is used as the upper bound for said progress bar.
	// (the lower bound is always 0)
	MaximumValue int32 `json:"maximumValue"`

	// The game has the ability to override, based on the stat group, what the localized text is that is
	// displayed for Stats being shown on the item.
	// Mercifully, no Stat Groups use this feature currently. If they start using them, we'll all need to
	// start using them (and those of you who are more prudent than I am can go ahead and start
	// pre-checking for this.)
	Overrides map[uint32]StatOverrideDefinition `json:"overrides"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	// Any stat that requires scaling to be transformed from an "Investment" stat to a "Display" stat will
	// have an entry in this list. For more information on what those types of stats mean and the
	// transformation process, see DestinyStatDefinition.
	// In retrospect, I wouldn't mind if this was a dictionary keyed by the stat hash instead. But I'm
	// going to leave it be because [[After Apple Picking]].
	ScaledStats []StatDisplayDefinition `json:"scaledStats"`

	// This apparently indicates the position of the stats in the UI? I've returned it in case anyone can
	// use it, but it's not of any use to us on BNet. Something's being lost in translation with this
	// value.
	UiPosition int32 `json:"uiPosition"`
}

Destiny.Definitions.DestinyStatGroupDefinition

When an inventory item (DestinyInventoryItemDefinition) has Stats (such as Attack Power), the item will refer to a Stat Group. This definition enumerates the properties used to transform the item's "Investment" stats into "Display" stats. See DestinyStatDefinition's documentation for information about the transformation of Stats, and the meaning of an Investment vs. a Display stat. If you don't want to do these calculations on your own, fear not: pulling live data from the BNet endpoints will return display stat values pre-computed and ready for you to use. I highly recommend this approach, saves a lot of time and also accounts for certain stat modifiers that can't easily be accounted for without live data (such as stat modifiers on Talent Grids and Socket Plugs)

func (StatGroupDefinition) DefinitionTable

func (d StatGroupDefinition) DefinitionTable() string

type StatOverrideDefinition

type StatOverrideDefinition struct {

	// The display properties to show instead of the base DestinyStatDefinition display properties.
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The hash identifier of the stat whose display properties are being overridden.
	StatHash Hash[StatDefinition] `json:"statHash"`
}

Destiny.Definitions.DestinyStatOverrideDefinition

Stat Groups (DestinyStatGroupDefinition) has the ability to override the localized text associated with stats that are to be shown on the items with which they are associated. This defines a specific overridden stat. You could theoretically check these before rendering your stat UI, and for each stat that has an override show these displayProperties instead of those on the DestinyStatDefinition. Or you could be like us, and skip that for now because the game has yet to actually use this feature. But know that it's here, waiting for a resilliant young designer to take up the mantle and make us all look foolish by showing the wrong name for stats. Note that, if this gets used, the override will apply only to items using the overriding Stat Group. Other items will still show the default stat's name/description.

func (StatOverrideDefinition) DefinitionTable

func (d StatOverrideDefinition) DefinitionTable() string

type StatsCategoryType

type StatsCategoryType int32

Destiny.HistoricalStats.Definitions.DestinyStatsCategoryType

func (StatsCategoryType) Enum

func (e StatsCategoryType) Enum() string

type StatsGroupType

type StatsGroupType int32

Destiny.HistoricalStats.Definitions.DestinyStatsGroupType

If the enum value is > 100, it is a "special" group that cannot be queried for directly (special cases apply to when they are returned, and are not relevant in general cases)

func (StatsGroupType) Enum

func (e StatsGroupType) Enum() string

type StatsMergeMethod

type StatsMergeMethod int32

Destiny.HistoricalStats.Definitions.DestinyStatsMergeMethod

func (StatsMergeMethod) Enum

func (e StatsMergeMethod) Enum() string

type StreamInfo

type StreamInfo struct {
	ChannelName string `json:"ChannelName"`
}

StreamInfo

type StringVariablesComponent

type StringVariablesComponent struct {
	IntegerValuesByHash map[uint32]int32 `json:"integerValuesByHash"`
}

Destiny.Components.StringVariables.DestinyStringVariablesComponent

type TagMetadataDefinition

type TagMetadataDefinition struct {
	Datatype string `json:"datatype"`

	Description string `json:"description"`

	IsRequired bool `json:"isRequired"`

	Items []TagMetadataItem `json:"items"`

	Name string `json:"name"`

	Order int32 `json:"order"`
}

Content.Models.TagMetadataDefinition

type TagMetadataItem

type TagMetadataItem struct {
	Description string `json:"description"`

	Groups []string `json:"groups"`

	IsDefault bool `json:"isDefault"`

	Name string `json:"name"`

	TagText string `json:"tagText"`
}

Content.Models.TagMetadataItem

type TagResponse

type TagResponse struct {
	IgnoreStatus IgnoreResponse `json:"ignoreStatus"`

	TagText string `json:"tagText"`
}

Tags.Models.Contracts.TagResponse

type TalentExclusiveGroup

type TalentExclusiveGroup struct {

	// The identifier for this exclusive group. Only guaranteed unique within the talent grid, not
	// globally.
	GroupHash uint32 `json:"groupHash"`

	// If this group has an associated piece of lore to show next to it, this will be the identifier for
	// that DestinyLoreDefinition.
	LoreHash Nullable[Hash[LoreDefinition]] `json:"loreHash,omitempty"`

	// A quick reference of the talent nodes that are part of this group, by their Talent Node hashes. (See
	// DestinyTalentNodeDefinition.nodeHash)
	NodeHashes []uint32 `json:"nodeHashes"`

	// A quick reference of Groups whose nodes will be deactivated if any node in this group is activated.
	OpposingGroupHashes []uint32 `json:"opposingGroupHashes"`

	// A quick reference of Nodes that will be deactivated if any node in this group is activated, by their
	// Talent Node hashes. (See DestinyTalentNodeDefinition.nodeHash)
	OpposingNodeHashes []uint32 `json:"opposingNodeHashes"`
}

Destiny.Definitions.DestinyTalentExclusiveGroup

As of Destiny 2, nodes can exist as part of "Exclusive Groups". These differ from exclusive sets in that, within the group, many nodes can be activated. But the act of activating any node in the group will cause "opposing" nodes (nodes in groups that are not allowed to be activated at the same time as this group) to deactivate.

func (TalentExclusiveGroup) DefinitionTable

func (d TalentExclusiveGroup) DefinitionTable() string

type TalentGridDefinition

type TalentGridDefinition struct {

	// Talent Nodes can exist in "exclusive sets": these are sets of nodes in which only a single node in
	// the set can be activated at any given time. Activating a node in this set will automatically
	// deactivate the other nodes in the set (referred to as a "Swap").
	// If a node in the exclusive set has already been activated, the game will not charge you materials to
	// activate another node in the set, even if you have never activated it before, because you already
	// paid the cost to activate one node in the set.
	// Not to be confused with Exclusive Groups. (how the heck do we NOT get confused by that? Jeez) See
	// the groups property for information about that only-tangentially-related concept.
	ExclusiveSets []TalentNodeExclusiveSetDefinition `json:"exclusiveSets"`

	// The meaning of this has been lost in the sands of time: it still exists as a property, but appears
	// to be unused in the modern UI of talent grids. It used to imply that each visual "column" of talent
	// nodes required identical progression levels in order to be activated. Returning this value in case
	// it is still useful to someone? Perhaps it's just a bit of interesting history.
	GridLevelPerColumn int32 `json:"gridLevelPerColumn"`

	// Talent Nodes can have "Exclusive Groups". These are not to be confused with Exclusive Sets (see
	// exclusiveSets property).
	// Look at the definition of DestinyTalentExclusiveGroup for more information and how they work. These
	// groups are keyed by the "groupHash" from DestinyTalentExclusiveGroup.
	Groups map[uint32]TalentExclusiveGroup `json:"groups"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// This is a quick reference to the indexes of nodes that are not part of exclusive sets. Handy for
	// knowing which talent nodes can only be activated directly, rather than via swapping.
	IndependentNodeIndexes []int32 `json:"independentNodeIndexes"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// The maximum possible level of the Talent Grid: at this level, any nodes are allowed to be activated.
	MaxGridLevel int32 `json:"maxGridLevel"`

	// BNet wants to show talent nodes grouped by similar purpose with localized titles. This is the
	// ordered list of those categories: if you want to show nodes by category, you can iterate over this
	// list, render the displayProperties for the category as the title, and then iterate over the talent
	// nodes referenced by the category to show the related nodes.
	// Note that this is different from Exclusive Groups or Sets, because these categories also incorporate
	// "Independent" nodes that belong to neither sets nor groups. These are purely for visual grouping of
	// nodes rather than functional grouping.
	NodeCategories []TalentNodeCategory `json:"nodeCategories"`

	// The list of Talent Nodes on the Grid (recall that Nodes themselves are really just locations in the
	// UI to show whatever their current Step is. You will only know the current step for a node by
	// retrieving instanced data through platform calls to the API that return
	// DestinyItemTalentGridComponent).
	Nodes []TalentNodeDefinition `json:"nodes"`

	// The hash identifier of the Progression (DestinyProgressionDefinition) that drives whether and when
	// Talent Nodes can be activated on the Grid. Items will have instances of this Progression, and will
	// gain experience that will eventually cause the grid to increase in level. As the grid's level
	// increases, it will cross the threshold where nodes can be activated. See
	// DestinyTalentGridStepDefinition's activation requirements for more information.
	ProgressionHash Hash[ProgressionDefinition] `json:"progressionHash"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.DestinyTalentGridDefinition

The time has unfortunately come to talk about Talent Grids. Talent Grids are the most complex and unintuitive part of the Destiny Definition data. Grab a cup of coffee before we begin, I can wait. Talent Grids were the primary way that items could be customized in Destiny 1. In Destiny 2, for now, talent grids have become exclusively used by Subclass/Build items: but the system is still in place for it to be used by items should the direction change back toward talent grids. Talent Grids have Nodes: the visual circles on the talent grid detail screen that have icons and can be activated if you meet certain requirements and pay costs. The actual visual data and effects, however, are driven by the "Steps" on Talent Nodes. Any given node will have 1:M of these steps, and the specific step that will be considered the "current" step (and thus the dictator of all benefits, visual state, and activation requirements on the Node) will almost always not be determined until an instance of the item is created. This is how, in Destiny 1, items were able to have such a wide variety of what users saw as "Perks": they were actually Talent Grids with nodes that had a wide variety of Steps, randomly chosen at the time of item creation. Now that Talent Grids are used exclusively by subclasses and builds, all of the properties within still apply: but there are additional visual elements on the Subclass/Build screens that are superimposed on top of the talent nodes. Unfortunately, BNet doesn't have this data: if you want to build a subclass screen, you will have to provide your own "decorative" assets, such as the visual connectors between nodes and the fancy colored-fire-bathed character standing behind the nodes. DestinyInventoryItem.talentGrid.talentGridHash defines an item's linked Talent Grid, which brings you to this definition that contains enough satic data about talent grids to make your head spin. These *must* be combined with instanced data - found when live data returns DestinyItemTalentGridComponent - in order to derive meaning. The instanced data will reference nodes and steps within these definitions, which you will then have to look up in the definition and combine with the instanced data to give the user the visual representation of their item's talent grid.

func (TalentGridDefinition) DefinitionTable

func (d TalentGridDefinition) DefinitionTable() string

type TalentNode

type TalentNode struct {

	// The progression level required on the Talent Grid in order to be able to activate this talent node.
	// Talent Grids have their own Progression - similar to Character Level, but in this case it is
	// experience related to the item itself.
	ActivationGridLevel int32 `json:"activationGridLevel"`

	// Whether or not the talent node is actually visible in the game's UI. Whether you want to show it in
	// your own UI is up to you! I'm not gonna tell you who to sock it to.
	Hidden bool `json:"hidden"`

	// If true, the node is activated: it's current step then provides its benefits.
	IsActivated bool `json:"isActivated"`

	// If the node has material requirements to be activated, this is the list of those requirements.
	MaterialsToUpgrade []MaterialRequirement `json:"materialsToUpgrade"`

	// The hash of the Talent Node being referred to (in DestinyTalentGridDefinition.nodes). Deceptively
	// CONTENT VERSION DEPENDENT. We have no guarantee of the hash's immutability between content versions.
	NodeHash uint32 `json:"nodeHash"`

	// The index of the Talent Node being referred to (an index into DestinyTalentGridDefinition.nodes[]).
	// CONTENT VERSION DEPENDENT.
	NodeIndex int32 `json:"nodeIndex"`

	// This property has some history. A talent grid can provide stats on both the item it's related to and
	// the character equipping the item. This returns data about those stat bonuses.
	NodeStatsBlock TalentNodeStatBlock `json:"nodeStatsBlock"`

	// If you want to show a progress bar or circle for how close this talent node is to being
	// activate-able, this is the percentage to show. It follows the node's underlying rules about when the
	// progress bar should first show up, and when it should be filled.
	ProgressPercent float64 `json:"progressPercent"`

	// An DestinyTalentNodeState enum value indicating the node's state: whether it can be activated or
	// swapped, and why not if neither can be performed.
	State TalentNodeState `json:"state"`

	// The currently relevant Step for the node. It is this step that has rendering data for the node and
	// the benefits that are provided if the node is activated. (the actual rules for benefits provided are
	// extremely complicated in theory, but with how Talent Grids are being used in Destiny 2 you don't
	// have to worry about a lot of those old Destiny 1 rules.) This is an index into:
	// DestinyTalentGridDefinition.nodes[nodeIndex].steps[stepIndex]
	StepIndex int32 `json:"stepIndex"`
}

Destiny.DestinyTalentNode

I see you've come to find out more about Talent Nodes. I'm so sorry. Talent Nodes are the conceptual, visual nodes that appear on Talent Grids. Talent Grids, in Destiny 1, were found on almost every instanced item: they had Nodes that could be activated to change the properties of the item. In Destiny 2, Talent Grids only exist for Builds/Subclasses, and while the basic concept is the same (Nodes can be activated once you've gained sufficient Experience on the Item, and provide effects), there are some new concepts from Destiny 1. Examine DestinyTalentGridDefinition and its subordinates for more information. This is the "Live" information for the current status of a Talent Node on a specific item. Talent Nodes have many Steps, but only one can be active at any one time: and it is the Step that determines both the visual and the game state-changing properties that the Node provides. Examine this and DestinyTalentNodeStepDefinition carefully. *IMPORTANT NOTE* Talent Nodes are, unfortunately, Content Version DEPENDENT. Though they refer to hashes for Nodes and Steps, those hashes are not guaranteed to be immutable across content versions. This is a source of great exasperation for me, but as a result anyone using Talent Grid data must ensure that the content version of their static content matches that of the server responses before showing or making decisions based on talent grid data.

type TalentNodeCategory

type TalentNodeCategory struct {

	// Will contain at least the "name", which will be the title of the category. We will likely not have
	// description and an icon yet, but I'm going to keep my options open.
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// Mostly just for debug purposes, but if you find it useful you can have it. This is BNet's manually
	// created identifier for this category.
	Identifier string `json:"identifier"`

	// If true, we found the localized content in a related DestinyLoreDefinition instead of local BNet
	// localization files. This is mostly for ease of my own future investigations.
	IsLoreDriven bool `json:"isLoreDriven"`

	// The set of all hash identifiers for Talent Nodes (DestinyTalentNodeDefinition) in this Talent Grid
	// that are part of this Category.
	NodeHashes []uint32 `json:"nodeHashes"`
}

Destiny.Definitions.DestinyTalentNodeCategory

An artificial construct provided by Bungie.Net, where we attempt to group talent nodes by functionality. This is a single set of references to Talent Nodes that share a common trait or purpose.

func (TalentNodeCategory) DefinitionTable

func (d TalentNodeCategory) DefinitionTable() string

type TalentNodeDefinition

type TalentNodeDefinition struct {

	// If true, this node will automatically unlock when the Talent Grid's level reaches the required level
	// of the current step of this node.
	AutoUnlocks bool `json:"autoUnlocks"`

	// At one point, Talent Nodes supported the idea of "Binary Pairs": nodes that overlapped each other
	// visually, and where activating one deactivated the other. They ended up not being used, mostly
	// because Exclusive Sets are *almost* a superset of this concept, but the potential for it to be used
	// still exists in theory.
	// If this is ever used, this will be the index into the DestinyTalentGridDefinition.nodes property for
	// the node that is the binary pair match to this node. Activating one deactivates the other.
	BinaryPairNodeIndex int32 `json:"binaryPairNodeIndex"`

	// The visual "column" where the node should be shown in the UI. If negative, the node is hidden.
	Column int32 `json:"column"`

	// The nodeHash values for nodes that are in an Exclusive Set with this node.
	// See DestinyTalentGridDefinition.exclusiveSets for more info about exclusive sets.
	// Again, note that these are nodeHashes and *not* nodeIndexes.
	ExclusiveWithNodeHashes []uint32 `json:"exclusiveWithNodeHashes"`

	// As of Destiny 2, nodes can exist as part of "Exclusive Groups". These differ from exclusive sets in
	// that, within the group, many nodes can be activated. But the act of activating any node in the group
	// will cause "opposing" nodes (nodes in groups that are not allowed to be activated at the same time
	// as this group) to deactivate.
	// See DestinyTalentExclusiveGroup for more information on the details. This is an identifier for this
	// node's group, if it is part of one.
	GroupHash Nullable[uint32] `json:"groupHash,omitempty"`

	// Comes from the talent grid node style: if true, then this node should be ignored for determining
	// whether the grid is complete.
	IgnoreForCompletion bool `json:"ignoreForCompletion"`

	// If this is true, the node's step is determined randomly rather than the first step being chosen.
	IsRandom bool `json:"isRandom"`

	// If this is true, the node can be "re-rolled" to acquire a different random current step. This is not
	// used, but still exists for a theoretical future of talent grids.
	IsRandomRepurchasable bool `json:"isRandomRepurchasable"`

	// At one point, Nodes were going to be able to be activated multiple times, changing the current step
	// and potentially piling on multiple effects from the previously activated steps. This property would
	// indicate if the last step could be activated multiple times.
	// This is not currently used, but it isn't out of the question that this could end up being used again
	// in a theoretical future.
	LastStepRepeats bool `json:"lastStepRepeats"`

	// A string identifier for a custom visual layout to apply to this talent node. Unfortunately, we do
	// not have any data for rendering these custom layouts. It will be up to you to interpret these
	// strings and change your UI if you want to have custom UI matching these layouts.
	LayoutIdentifier string `json:"layoutIdentifier"`

	// Talent nodes can be associated with a piece of Lore, generally rendered in a tooltip. This is the
	// hash identifier of the lore element to show, if there is one to be show.
	LoreHash Nullable[Hash[LoreDefinition]] `json:"loreHash,omitempty"`

	// The hash identifier for the node, which unfortunately is also content version dependent but can be
	// (and ideally, should be) used instead of the nodeIndex to uniquely identify the node.
	// The two exist side-by-side for backcompat reasons due to the Great Talent Node Restructuring of
	// Destiny 1, and I ran out of time to remove one of them and standardize on the other. Sorry!
	NodeHash uint32 `json:"nodeHash"`

	// The index into the DestinyTalentGridDefinition's "nodes" property where this node is located. Used
	// to uniquely identify the node within the Talent Grid. Note that this is content version dependent:
	// make sure you have the latest version of content before trying to use these properties.
	NodeIndex int32 `json:"nodeIndex"`

	// Comes from the talent grid node style: this identifier should be used to determine how to render the
	// node in the UI.
	NodeStyleIdentifier string `json:"nodeStyleIdentifier"`

	// Indexes into the DestinyTalentGridDefinition.nodes property for any nodes that must be activated
	// before this one is allowed to be activated.
	// I would have liked to change this to hashes for Destiny 2, but we have run out of time.
	PrerequisiteNodeIndexes []int32 `json:"prerequisiteNodeIndexes"`

	// At one point, you were going to be able to repurchase talent nodes that had random steps, to
	// "re-roll" the current step of the node (and thus change the properties of your item). This was to be
	// the activation requirement for performing that re-roll.
	// The system still exists to do this, as far as I know, so it may yet come back around!
	RandomActivationRequirement NodeActivationRequirement `json:"randomActivationRequirement"`

	// If the node's step is randomly selected, this is the amount of the Talent Grid's progression
	// experience at which the progression bar for the node should be shown.
	RandomStartProgressionBarAtProgression int32 `json:"randomStartProgressionBarAtProgression"`

	// The visual "row" where the node should be shown in the UI. If negative, then the node is hidden.
	Row int32 `json:"row"`

	// At this point, "steps" have been obfuscated into conceptual entities, aggregating the underlying
	// notions of "properties" and "true steps".
	// If you need to know a step as it truly exists - such as when recreating Node logic when processing
	// Vendor data - you'll have to use the "realSteps" property below.
	Steps []NodeStepDefinition `json:"steps"`
}

Destiny.Definitions.DestinyTalentNodeDefinition

Talent Grids on items have Nodes. These nodes have positions in the talent grid's UI, and contain "Steps" (DestinyTalentNodeStepDefinition), one of whom will be the "Current" step. The Current Step determines the visual properties of the node, as well as what the node grants when it is activated. See DestinyTalentGridDefinition for a more complete overview of how Talent Grids work, and how they are used in Destiny 2 (and how they were used in Destiny 1).

func (TalentNodeDefinition) DefinitionTable

func (d TalentNodeDefinition) DefinitionTable() string

type TalentNodeExclusiveSetDefinition

type TalentNodeExclusiveSetDefinition struct {

	// The list of node indexes for the exclusive set. Historically, these were indexes. I would have liked
	// to replace this with nodeHashes for consistency, but it's way too late for that. (9:09 PM, he's
	// right!)
	NodeIndexes []int32 `json:"nodeIndexes"`
}

Destiny.Definitions.DestinyTalentNodeExclusiveSetDefinition

The list of indexes into the Talent Grid's "nodes" property for nodes in this exclusive set. (See DestinyTalentNodeDefinition.nodeIndex)

func (TalentNodeExclusiveSetDefinition) DefinitionTable

func (d TalentNodeExclusiveSetDefinition) DefinitionTable() string

type TalentNodeStatBlock

type TalentNodeStatBlock struct {

	// The stat benefits conferred when this talent node is activated for the current Step that is active
	// on the node.
	CurrentStepStats []Stat `json:"currentStepStats"`

	// This is a holdover from the old days of Destiny 1, when a node could be activated multiple times,
	// conferring multiple steps worth of benefits: you would use this property to show what activating the
	// "next" step on the node would provide vs. what the current step is providing. While Nodes are
	// currently not being used this way, the underlying system for this functionality still exists. I
	// hesitate to remove this property while the ability for designers to make such a talent grid still
	// exists. Whether you want to show it is up to you.
	NextStepStats []Stat `json:"nextStepStats"`
}

Destiny.DestinyTalentNodeStatBlock

This property has some history. A talent grid can provide stats on both the item it's related to and the character equipping the item. This returns data about those stat bonuses.

type TalentNodeState

type TalentNodeState int32

Destiny.DestinyTalentNodeState

func (TalentNodeState) Enum

func (e TalentNodeState) Enum() string

type TalentNodeStepDamageTypes

type TalentNodeStepDamageTypes int32

Destiny.Definitions.DestinyTalentNodeStepDamageTypes

func (TalentNodeStepDamageTypes) Enum

type TalentNodeStepGroups

type TalentNodeStepGroups struct {
	DamageTypes BitmaskSet[TalentNodeStepDamageTypes] `json:"damageTypes"`

	GuardianAttributes BitmaskSet[TalentNodeStepGuardianAttributes] `json:"guardianAttributes"`

	ImpactEffects BitmaskSet[TalentNodeStepImpactEffects] `json:"impactEffects"`

	LightAbilities BitmaskSet[TalentNodeStepLightAbilities] `json:"lightAbilities"`

	WeaponPerformance BitmaskSet[TalentNodeStepWeaponPerformances] `json:"weaponPerformance"`
}

Destiny.Definitions.DestinyTalentNodeStepGroups

These properties are an attempt to categorize talent node steps by certain common properties. See the related enumerations for the type of properties being categorized.

func (TalentNodeStepGroups) DefinitionTable

func (d TalentNodeStepGroups) DefinitionTable() string

type TalentNodeStepGuardianAttributes

type TalentNodeStepGuardianAttributes int32

Destiny.Definitions.DestinyTalentNodeStepGuardianAttributes

func (TalentNodeStepGuardianAttributes) Enum

type TalentNodeStepImpactEffects

type TalentNodeStepImpactEffects int32

Destiny.Definitions.DestinyTalentNodeStepImpactEffects

func (TalentNodeStepImpactEffects) Enum

type TalentNodeStepLightAbilities

type TalentNodeStepLightAbilities int32

Destiny.Definitions.DestinyTalentNodeStepLightAbilities

func (TalentNodeStepLightAbilities) Enum

type TalentNodeStepWeaponPerformances

type TalentNodeStepWeaponPerformances int32

Destiny.Definitions.DestinyTalentNodeStepWeaponPerformances

func (TalentNodeStepWeaponPerformances) Enum

type TierType

type TierType int32

Destiny.TierType

func (TierType) Enum

func (e TierType) Enum() string

type Timestamp

type Timestamp string

type TokensApplyMissingPartnerOffersWithoutClaimRequest

type TokensApplyMissingPartnerOffersWithoutClaimRequest struct {

	// The partner application identifier.
	// Required.
	PartnerApplicationID int32

	// The bungie.net user to apply missing offers to. If not self, elevated permissions are required.
	// Required.
	TargetBnetMembershipID Int64
}

TokensApplyMissingPartnerOffersWithoutClaimRequest are the request parameters for operation Tokens.ApplyMissingPartnerOffersWithoutClaim

type TokensClaimPartnerOfferRequest

type TokensClaimPartnerOfferRequest struct {

	// Required.
	Body PartnerOfferClaimRequest
}

TokensClaimPartnerOfferRequest are the request parameters for operation Tokens.ClaimPartnerOffer

type TokensForceDropsRepairRequest

type TokensForceDropsRepairRequest struct {
}

TokensForceDropsRepairRequest are the request parameters for operation Tokens.ForceDropsRepair

type TokensGetBungieRewardsForPlatformUserRequest

type TokensGetBungieRewardsForPlatformUserRequest struct {

	// users platform membershipId for requested user rewards. If not self, elevated permissions are
	// required.
	// Required.
	MembershipID Int64

	// The target Destiny 2 membership type.
	// Required.
	MembershipType BungieMembershipType
}

TokensGetBungieRewardsForPlatformUserRequest are the request parameters for operation Tokens.GetBungieRewardsForPlatformUser

type TokensGetBungieRewardsForUserRequest

type TokensGetBungieRewardsForUserRequest struct {

	// bungie.net user membershipId for requested user rewards. If not self, elevated permissions are
	// required.
	// Required.
	MembershipID Int64
}

TokensGetBungieRewardsForUserRequest are the request parameters for operation Tokens.GetBungieRewardsForUser

type TokensGetBungieRewardsListRequest

type TokensGetBungieRewardsListRequest struct {
}

TokensGetBungieRewardsListRequest are the request parameters for operation Tokens.GetBungieRewardsList

type TokensGetPartnerOfferSkuHistoryRequest

type TokensGetPartnerOfferSkuHistoryRequest struct {

	// The partner application identifier.
	// Required.
	PartnerApplicationID int32

	// The bungie.net user to apply missing offers to. If not self, elevated permissions are required.
	// Required.
	TargetBnetMembershipID Int64
}

TokensGetPartnerOfferSkuHistoryRequest are the request parameters for operation Tokens.GetPartnerOfferSkuHistory

type TokensGetPartnerRewardHistoryRequest

type TokensGetPartnerRewardHistoryRequest struct {

	// The partner application identifier.
	// Required.
	PartnerApplicationID int32

	// The bungie.net user to return reward history for.
	// Required.
	TargetBnetMembershipID Int64
}

TokensGetPartnerRewardHistoryRequest are the request parameters for operation Tokens.GetPartnerRewardHistory

type TraitDefinition

type TraitDefinition struct {

	// An identifier for how this trait can be displayed. For example: a 'keyword' hint to show an
	// explanation for certain related terms.
	DisplayHint string `json:"displayHint"`

	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.Traits.DestinyTraitDefinition

func (TraitDefinition) DefinitionTable

func (d TraitDefinition) DefinitionTable() string

type TransferStatuses

type TransferStatuses int32

Destiny.TransferStatuses

Whether you can transfer an item, and why not if you can't.

func (TransferStatuses) Enum

func (e TransferStatuses) Enum() string

type TrendingCategories

type TrendingCategories struct {
	Categories []TrendingCategory `json:"categories"`
}

Trending.TrendingCategories

type TrendingCategory

type TrendingCategory struct {
	CategoryID string `json:"categoryId"`

	CategoryName string `json:"categoryName"`

	Entries SearchResult[TrendingEntry] `json:"entries"`
}

Trending.TrendingCategory

type TrendingDetail

type TrendingDetail struct {
	Creation TrendingEntryCommunityCreation `json:"creation"`

	DestinyActivity TrendingEntryDestinyActivity `json:"destinyActivity"`

	DestinyItem TrendingEntryDestinyItem `json:"destinyItem"`

	DestinyRitual TrendingEntryDestinyRitual `json:"destinyRitual"`

	EntityType TrendingEntryType `json:"entityType"`

	Identifier string `json:"identifier"`

	News TrendingEntryNews `json:"news"`

	Support TrendingEntrySupportArticle `json:"support"`
}

Trending.TrendingDetail

type TrendingEntry

type TrendingEntry struct {

	// If the entry has a date at which it was created, this is that date.
	CreationDate Nullable[Timestamp] `json:"creationDate,omitempty"`

	// The localized "display name/article title/'primary localized identifier'" of the entity.
	DisplayName string `json:"displayName"`

	EndDate Nullable[Timestamp] `json:"endDate,omitempty"`

	// An enum - unfortunately - dictating all of the possible kinds of trending items that you might get
	// in your result set, in case you want to do custom rendering or call to get the details of the item.
	EntityType TrendingEntryType `json:"entityType"`

	// If isFeatured, this image will be populated with whatever the featured image is. Note that this will
	// likely be a very large image, so don't use it all the time.
	FeatureImage string `json:"featureImage"`

	// We don't know whether the identifier will be a string, a uint, or a long... so we're going to cast
	// it all to a string. But either way, we need any trending item created to have a single unique
	// identifier for its type.
	Identifier string `json:"identifier"`

	Image string `json:"image"`

	IsFeatured bool `json:"isFeatured"`

	// If the item is of entityType TrendingEntryType.Container, it may have items - also Trending Entries
	// - contained within it. This is the ordered list of those to display under the Container's header.
	Items []TrendingEntry `json:"items"`

	Link string `json:"link"`

	// If this is populated, the entry has a related MP4 video to show. I am 100% certain I am going to
	// regret putting this directly on TrendingEntry, but it will work so yolo
	Mp4Video string `json:"mp4Video"`

	StartDate Nullable[Timestamp] `json:"startDate,omitempty"`

	// If the entity has a localized tagline/subtitle/motto/whatever, that is found here.
	Tagline string `json:"tagline"`

	// If this is populated, the entry has a related WebM video to show. I am 100% certain I am going to
	// regret putting this directly on TrendingEntry, but it will work so yolo
	WebmVideo string `json:"webmVideo"`

	// The weighted score of this trending item.
	Weight float64 `json:"weight"`
}

Trending.TrendingEntry

The list entry view for trending items. Returns just enough to show the item on the trending page.

type TrendingEntryCommunityCreation

type TrendingEntryCommunityCreation struct {
	Author string `json:"author"`

	AuthorMembershipID Int64 `json:"authorMembershipId"`

	Body string `json:"body"`

	Media string `json:"media"`

	PostID Int64 `json:"postId"`

	Title string `json:"title"`

	Upvotes int32 `json:"upvotes"`
}

Trending.TrendingEntryCommunityCreation

type TrendingEntryDestinyActivity

type TrendingEntryDestinyActivity struct {
	ActivityHash uint32 `json:"activityHash"`

	Status PublicActivityStatus `json:"status"`
}

Trending.TrendingEntryDestinyActivity

type TrendingEntryDestinyItem

type TrendingEntryDestinyItem struct {
	ItemHash uint32 `json:"itemHash"`
}

Trending.TrendingEntryDestinyItem

type TrendingEntryDestinyRitual

type TrendingEntryDestinyRitual struct {
	DateEnd Nullable[Timestamp] `json:"dateEnd,omitempty"`

	DateStart Nullable[Timestamp] `json:"dateStart,omitempty"`

	// A destiny event will not necessarily have milestone "custom content", but if it does the details
	// will be here.
	EventContent MilestoneContent `json:"eventContent"`

	Icon string `json:"icon"`

	Image string `json:"image"`

	// A destiny event does not necessarily have a related Milestone, but if it does the details will be
	// returned here.
	MilestoneDetails PublicMilestone `json:"milestoneDetails"`

	Subtitle string `json:"subtitle"`

	Title string `json:"title"`
}

Trending.TrendingEntryDestinyRitual

type TrendingEntryNews

type TrendingEntryNews struct {
	Article ContentItemPublicContract `json:"article"`
}

Trending.TrendingEntryNews

type TrendingEntrySupportArticle

type TrendingEntrySupportArticle struct {
	Article ContentItemPublicContract `json:"article"`
}

Trending.TrendingEntrySupportArticle

type TrendingEntryType

type TrendingEntryType int32

Trending.TrendingEntryType

The known entity types that you can have returned from Trending.

func (TrendingEntryType) Enum

func (e TrendingEntryType) Enum() string

type TrendingGetTrendingCategoriesRequest

type TrendingGetTrendingCategoriesRequest struct {
}

TrendingGetTrendingCategoriesRequest are the request parameters for operation Trending.GetTrendingCategories

type TrendingGetTrendingCategoryRequest

type TrendingGetTrendingCategoryRequest struct {

	// The ID of the category for whom you want additional results.
	// Required.
	CategoryID string

	// The page # of results to return.
	// Required.
	PageNumber int32
}

TrendingGetTrendingCategoryRequest are the request parameters for operation Trending.GetTrendingCategory

type TrendingGetTrendingEntryDetailRequest

type TrendingGetTrendingEntryDetailRequest struct {

	// The identifier for the entity to be returned.
	// Required.
	Identifier string

	// The type of entity to be returned.
	// Required.
	TrendingEntryType TrendingEntryType
}

TrendingGetTrendingEntryDetailRequest are the request parameters for operation Trending.GetTrendingEntryDetail

type TwitchDropHistoryResponse

type TwitchDropHistoryResponse struct {
	ClaimState Nullable[int] `json:"ClaimState,omitempty"`

	CreatedAt Nullable[Timestamp] `json:"CreatedAt,omitempty"`

	Description string `json:"Description"`

	Title string `json:"Title"`
}

Tokens.TwitchDropHistoryResponse

type UnitType

type UnitType int32

Destiny.HistoricalStats.Definitions.UnitType

func (UnitType) Enum

func (e UnitType) Enum() string

type UnlockDefinition

type UnlockDefinition struct {

	// Sometimes, but not frequently, these unlock flags also have human readable information: usually when
	// they are being directly tested for some requirement, in which case the string is a localized
	// description of why the requirement check failed.
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.DestinyUnlockDefinition

Unlock Flags are small bits (literally, a bit, as in a boolean value) that the game server uses for an extremely wide range of state checks, progress storage, and other interesting tidbits of information.

func (UnlockDefinition) DefinitionTable

func (d UnlockDefinition) DefinitionTable() string

type UnlockExpressionDefinition

type UnlockExpressionDefinition struct {

	// A shortcut for determining the most restrictive gating that this expression performs. See the
	// DestinyGatingScope enum's documentation for more details.
	Scope GatingScope `json:"scope"`
}

Destiny.Definitions.DestinyUnlockExpressionDefinition

Where the sausage gets made. Unlock Expressions are the foundation of the game's gating mechanics and investment-related restrictions. They can test Unlock Flags and Unlock Values for certain states, using a sufficient amount of logical operators such that unlock expressions are effectively Turing complete. Use UnlockExpressionParser to evaluate expressions using an IUnlockContext parsed from Babel.

func (UnlockExpressionDefinition) DefinitionTable

func (d UnlockExpressionDefinition) DefinitionTable() string

type UnlockStatus

type UnlockStatus struct {

	// Whether the unlock flag is set.
	IsSet bool `json:"isSet"`

	// The hash identifier for the Unlock Flag. Use to lookup DestinyUnlockDefinition for static data. Not
	// all unlocks have human readable data - in fact, most don't. But when they do, it can be very useful
	// to show. Even if they don't have human readable data, you might be able to infer the meaning of an
	// unlock flag with a bit of experimentation...
	UnlockHash Hash[UnlockDefinition] `json:"unlockHash"`
}

Destiny.DestinyUnlockStatus

Indicates the status of an "Unlock Flag" on a Character or Profile. These are individual bits of state that can be either set or not set, and sometimes provide interesting human-readable information in their related DestinyUnlockDefinition.

type UnlockValueDefinition

type UnlockValueDefinition struct {

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.DestinyUnlockValueDefinition

An Unlock Value is an internal integer value, stored on the server and used in a variety of ways, most frequently for the gating/requirement checks that the game performs across all of its main features. They can also be used as the storage data for mapped Progressions, Objectives, and other features that require storage of variable numeric values.

func (UnlockValueDefinition) DefinitionTable

func (d UnlockValueDefinition) DefinitionTable() string

type UnlockValueUIStyle

type UnlockValueUIStyle int32

Destiny.DestinyUnlockValueUIStyle

If you're showing an unlock value in the UI, this is the format in which it should be shown. You'll have to build your own algorithms on the client side to determine how best to render these options.

func (UnlockValueUIStyle) Enum

func (e UnlockValueUIStyle) Enum() string

type UserGetAvailableThemesRequest

type UserGetAvailableThemesRequest struct {
}

UserGetAvailableThemesRequest are the request parameters for operation User.GetAvailableThemes

type UserGetBungieNetUserByIdRequest

type UserGetBungieNetUserByIdRequest struct {

	// The requested Bungie.net membership id.
	// Required.
	Id Int64
}

UserGetBungieNetUserByIdRequest are the request parameters for operation User.GetBungieNetUserById

type UserGetCredentialTypesForTargetAccountRequest

type UserGetCredentialTypesForTargetAccountRequest struct {

	// The user's membership id
	// Required.
	MembershipID Int64
}

UserGetCredentialTypesForTargetAccountRequest are the request parameters for operation User.GetCredentialTypesForTargetAccount

type UserGetMembershipDataByIdRequest

type UserGetMembershipDataByIdRequest struct {

	// The membership ID of the target user.
	// Required.
	MembershipID Int64

	// Type of the supplied membership ID.
	// Required.
	MembershipType BungieMembershipType
}

UserGetMembershipDataByIdRequest are the request parameters for operation User.GetMembershipDataById

type UserGetMembershipDataForCurrentUserRequest

type UserGetMembershipDataForCurrentUserRequest struct {
}

UserGetMembershipDataForCurrentUserRequest are the request parameters for operation User.GetMembershipDataForCurrentUser

type UserGetMembershipFromHardLinkedCredentialRequest

type UserGetMembershipFromHardLinkedCredentialRequest struct {

	// The credential to look up. Must be a valid SteamID64.
	// Required.
	Credential string

	// The credential type. 'SteamId' is the only valid value at present.
	// Required.
	CrType BungieCredentialType
}

UserGetMembershipFromHardLinkedCredentialRequest are the request parameters for operation User.GetMembershipFromHardLinkedCredential

type UserGetSanitizedPlatformDisplayNamesRequest

type UserGetSanitizedPlatformDisplayNamesRequest struct {

	// The requested membership id to load.
	// Required.
	MembershipID Int64
}

UserGetSanitizedPlatformDisplayNamesRequest are the request parameters for operation User.GetSanitizedPlatformDisplayNames

type UserInfoCard

type UserInfoCard struct {

	// 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
	ApplicableMembershipTypes []BungieMembershipType `json:"applicableMembershipTypes"`

	// The bungie global display name, if set.
	BungieGlobalDisplayName string `json:"bungieGlobalDisplayName"`

	// The bungie global display name code, if set.
	BungieGlobalDisplayNameCode Nullable[int16] `json:"bungieGlobalDisplayNameCode,omitempty"`

	// If there is a cross save override in effect, this value will tell you the type that is overridding
	// this one.
	CrossSaveOverride BungieMembershipType `json:"crossSaveOverride"`

	// 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.
	DisplayName string `json:"displayName"`

	// URL the Icon if available.
	IconPath string `json:"iconPath"`

	// If True, this is a public user membership.
	IsPublic bool `json:"isPublic"`

	// Membership ID as they user is known in the Accounts service
	MembershipID Int64 `json:"membershipId"`

	// Type of the membership. Not necessarily the native type.
	MembershipType BungieMembershipType `json:"membershipType"`

	// A platform specific additional display name - ex: psn Real Name, bnet Unique Name, etc.
	SupplementalDisplayName string `json:"supplementalDisplayName"`
}

User.UserInfoCard

This contract supplies basic information commonly used to display a minimal amount of information about a user. Take care to not add more properties here unless the property applies in all (or at least the majority) of the situations where UserInfoCard is used. Avoid adding game specific or platform specific details here. In cases where UserInfoCard is a subset of the data needed in a contract, use UserInfoCard as a property of other contracts.

type UserMembership

type UserMembership struct {

	// The bungie global display name, if set.
	BungieGlobalDisplayName string `json:"bungieGlobalDisplayName"`

	// The bungie global display name code, if set.
	BungieGlobalDisplayNameCode Nullable[int16] `json:"bungieGlobalDisplayNameCode,omitempty"`

	// 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.
	DisplayName string `json:"displayName"`

	// Membership ID as they user is known in the Accounts service
	MembershipID Int64 `json:"membershipId"`

	// Type of the membership. Not necessarily the native type.
	MembershipType BungieMembershipType `json:"membershipType"`
}

User.UserMembership

Very basic info about a user as returned by the Account server.

type UserMembershipData

type UserMembershipData struct {
	BungieNetUser GeneralUser `json:"bungieNetUser"`

	// this allows you to see destiny memberships that are visible and linked to this account (regardless
	// of whether or not they have characters on the world server)
	DestinyMemberships []GroupUserInfoCard `json:"destinyMemberships"`

	// If this property is populated, it will have the membership ID of the account considered to be
	// "primary" in this user's cross save relationship.
	//
	//	If null, this user has no cross save relationship, nor primary account.
	PrimaryMembershipID Nullable[Int64] `json:"primaryMembershipId,omitempty"`
}

User.UserMembershipData

type UserRewardAvailabilityModel

type UserRewardAvailabilityModel struct {
	AvailabilityModel RewardAvailabilityModel `json:"AvailabilityModel"`

	IsAvailableForUser bool `json:"IsAvailableForUser"`

	IsUnlockedForUser bool `json:"IsUnlockedForUser"`
}

Tokens.UserRewardAvailabilityModel

type UserSearchByGlobalNamePostRequest

type UserSearchByGlobalNamePostRequest struct {

	// The zero-based page of results you desire.
	// Required.
	Page int32

	// Required.
	Body UserSearchPrefixRequest
}

UserSearchByGlobalNamePostRequest are the request parameters for operation User.SearchByGlobalNamePost

type UserSearchByGlobalNamePrefixRequest

type UserSearchByGlobalNamePrefixRequest struct {

	// The display name prefix you're looking for.
	// Required.
	DisplayNamePrefix string

	// The zero-based page of results you desire.
	// Required.
	Page int32
}

UserSearchByGlobalNamePrefixRequest are the request parameters for operation User.SearchByGlobalNamePrefix

type UserSearchPrefixRequest

type UserSearchPrefixRequest struct {
	DisplayNamePrefix string `json:"displayNamePrefix"`
}

User.UserSearchPrefixRequest

type UserSearchResponse

type UserSearchResponse struct {
	HasMore bool `json:"hasMore"`

	Page int32 `json:"page"`

	SearchResults []UserSearchResponseDetail `json:"searchResults"`
}

User.UserSearchResponse

type UserSearchResponseDetail

type UserSearchResponseDetail struct {
	BungieGlobalDisplayName string `json:"bungieGlobalDisplayName"`

	BungieGlobalDisplayNameCode Nullable[int16] `json:"bungieGlobalDisplayNameCode,omitempty"`

	BungieNetMembershipID Nullable[Int64] `json:"bungieNetMembershipId,omitempty"`

	DestinyMemberships []UserInfoCard `json:"destinyMemberships"`
}

User.UserSearchResponseDetail

type UserTheme

type UserTheme struct {
	UserThemeDescription string `json:"userThemeDescription"`

	UserThemeID int32 `json:"userThemeId"`

	UserThemeName string `json:"userThemeName"`
}

Config.UserTheme

type UserToUserContext

type UserToUserContext struct {
	GlobalIgnoreEndDate Nullable[Timestamp] `json:"globalIgnoreEndDate,omitempty"`

	IgnoreStatus IgnoreResponse `json:"ignoreStatus"`

	IsFollowing bool `json:"isFollowing"`
}

User.UserToUserContext

type VendorAcceptedItemDefinition

type VendorAcceptedItemDefinition struct {

	// The "source" bucket for a transfer. When a user wants to transfer an item, the appropriate
	// DestinyVendorDefinition's acceptedItems property is evaluated, looking for an entry where
	// acceptedInventoryBucketHash matches the bucket that the item being transferred is currently located.
	// If it exists, the item will be transferred into whatever bucket is defined by
	// destinationInventoryBucketHash.
	AcceptedInventoryBucketHash Hash[InventoryBucketDefinition] `json:"acceptedInventoryBucketHash"`

	// This is the bucket where the item being transferred will be put, given that it was being transferred
	// *from* the bucket defined in acceptedInventoryBucketHash.
	DestinationInventoryBucketHash Hash[InventoryBucketDefinition] `json:"destinationInventoryBucketHash"`
}

Destiny.Definitions.DestinyVendorAcceptedItemDefinition

If you ever wondered how the Vault works, here it is. The Vault is merely a set of inventory buckets that exist on your Profile/Account level. When you transfer items in the Vault, the game is using the Vault Vendor's DestinyVendorAcceptedItemDefinitions to see where the appropriate destination bucket is for the source bucket from whence your item is moving. If it finds such an entry, it transfers the item to the other bucket. The mechanics for Postmaster works similarly, which is also a vendor. All driven by Accepted Items.

func (VendorAcceptedItemDefinition) DefinitionTable

func (d VendorAcceptedItemDefinition) DefinitionTable() string

type VendorActionDefinition

type VendorActionDefinition struct {
	ActionHash uint32 `json:"actionHash"`

	ActionID string `json:"actionId"`

	AutoPerformAction bool `json:"autoPerformAction"`

	Description string `json:"description"`

	ExecuteSeconds int32 `json:"executeSeconds"`

	Icon string `json:"icon"`

	IsPositive bool `json:"isPositive"`

	Name string `json:"name"`

	Verb string `json:"verb"`
}

Destiny.Definitions.DestinyVendorActionDefinition

If a vendor can ever end up performing actions, these are the properties that will be related to those actions. I'm not going to bother documenting this yet, as it is unused and unclear if it will ever be used... but in case it is ever populated and someone finds it useful, it is defined here.

func (VendorActionDefinition) DefinitionTable

func (d VendorActionDefinition) DefinitionTable() string

type VendorBaseComponent

type VendorBaseComponent struct {

	// If True, the Vendor is currently accessible.
	// If False, they may not actually be visible in the world at the moment.
	Enabled bool `json:"enabled"`

	// The date when this vendor's inventory will next rotate/refresh.
	// Note that this is distinct from the date ranges that the vendor is visible/available in-game: this
	// field indicates the specific time when the vendor's available items refresh and rotate, regardless
	// of whether the vendor is actually available at that time. Unfortunately, these two values may be
	// (and are, for the case of important vendors like Xur) different.
	// Issue https://github.com/Bungie-net/api/issues/353 is tracking a fix to start providing visibility
	// date ranges where possible in addition to this refresh date, so that all important dates for vendors
	// are available for use.
	NextRefreshDate Timestamp `json:"nextRefreshDate"`

	// The unique identifier for the vendor. Use it to look up their DestinyVendorDefinition.
	VendorHash Hash[VendorDefinition] `json:"vendorHash"`
}

Destiny.Components.Vendors.DestinyVendorBaseComponent

This component contains essential/summary information about the vendor.

type VendorCategoriesComponent

type VendorCategoriesComponent struct {

	// The list of categories for items that the vendor sells, in rendering order.
	// These categories each point to a "display category" in the displayCategories property of the
	// DestinyVendorDefinition, as opposed to the other categories.
	Categories []VendorCategory `json:"categories"`
}

Destiny.Entities.Vendors.DestinyVendorCategoriesComponent

A vendor can have many categories of items that they sell. This component will return the category information for available items, as well as the index into those items in the user's sale item list. Note that, since both the category and items are indexes, this data is Content Version dependent. Be sure to check that your content is up to date before using this data. This is an unfortunate, but permanent, limitation of Vendor data.

type VendorCategory

type VendorCategory struct {

	// An index into the DestinyVendorDefinition.displayCategories property, so you can grab the display
	// data for this category.
	DisplayCategoryIndex int32 `json:"displayCategoryIndex"`

	// An ordered list of indexes into items being sold in this category (DestinyVendorDefinition.itemList)
	// which will contain more information about the items being sold themselves. Can also be used to index
	// into DestinyVendorSaleItemComponent data, if you asked for that data to be returned.
	ItemIndexes []int32 `json:"itemIndexes"`
}

Destiny.Entities.Vendors.DestinyVendorCategory

Information about the category and items currently sold in that category.

type VendorCategoryEntryDefinition

type VendorCategoryEntryDefinition struct {

	// The localized string for making purchases from this category, if it is different from the vendor's
	// string for purchasing.
	BuyStringOverride string `json:"buyStringOverride"`

	// The hashed identifier for the category.
	CategoryHash uint32 `json:"categoryHash"`

	// The index of the category in the original category definitions for the vendor.
	CategoryIndex int32 `json:"categoryIndex"`

	// If the category is disabled, this is the localized description to show.
	DisabledDescription string `json:"disabledDescription"`

	// The localized title of the category.
	DisplayTitle string `json:"displayTitle"`

	// True if this category doesn't allow purchases.
	HideFromRegularPurchase bool `json:"hideFromRegularPurchase"`

	// If you don't have the currency required to buy items from this category, should the items be hidden?
	HideIfNoCurrency bool `json:"hideIfNoCurrency"`

	// If true, this category only displays items: you can't purchase anything in them.
	IsDisplayOnly bool `json:"isDisplayOnly"`

	// Sometimes a category isn't actually used to sell items, but rather to preview them. This implies
	// different UI (and manual placement of the category in the UI) in the game, and special treatment.
	IsPreview bool `json:"isPreview"`

	// If this category has an overlay prompt that should appear, this contains the details of that prompt.
	Overlay VendorCategoryOverlayDefinition `json:"overlay"`

	// The amount of items that will be available when this category is shown.
	QuantityAvailable int32 `json:"quantityAvailable"`

	ResetIntervalMinutesOverride int32 `json:"resetIntervalMinutesOverride"`

	ResetOffsetMinutesOverride int32 `json:"resetOffsetMinutesOverride"`

	// If items aren't up for sale in this category, should we still show them (greyed out)?
	ShowUnavailableItems bool `json:"showUnavailableItems"`

	// Used in sorting items in vendors... but there's a lot more to it. Just go with the order provided in
	// the itemIndexes property on the DestinyVendorCategoryComponent instead, it should be more reliable
	// than trying to recalculate it yourself.
	SortValue int32 `json:"sortValue"`

	// A shortcut for the vendor item indexes sold under this category. Saves us from some expensive
	// reorganization at runtime.
	VendorItemIndexes []int32 `json:"vendorItemIndexes"`
}

Destiny.Definitions.DestinyVendorCategoryEntryDefinition

This is the definition for a single Vendor Category, into which Sale Items are grouped.

func (VendorCategoryEntryDefinition) DefinitionTable

func (d VendorCategoryEntryDefinition) DefinitionTable() string

type VendorCategoryOverlayDefinition

type VendorCategoryOverlayDefinition struct {
	ChoiceDescription string `json:"choiceDescription"`

	// If this overlay has a currency item that it features, this is said featured item.
	CurrencyItemHash Nullable[Hash[InventoryItemDefinition]] `json:"currencyItemHash,omitempty"`

	Description string `json:"description"`

	Icon string `json:"icon"`

	Title string `json:"title"`
}

Destiny.Definitions.DestinyVendorCategoryOverlayDefinition

The details of an overlay prompt to show to a user. They are all fairly self-explanatory localized strings that can be shown.

func (VendorCategoryOverlayDefinition) DefinitionTable

func (d VendorCategoryOverlayDefinition) DefinitionTable() string

type VendorComponent

type VendorComponent struct {

	// If True, you can purchase from the Vendor.
	CanPurchase bool `json:"canPurchase"`

	// If True, the Vendor is currently accessible.
	// If False, they may not actually be visible in the world at the moment.
	Enabled bool `json:"enabled"`

	// The date when this vendor's inventory will next rotate/refresh.
	// Note that this is distinct from the date ranges that the vendor is visible/available in-game: this
	// field indicates the specific time when the vendor's available items refresh and rotate, regardless
	// of whether the vendor is actually available at that time. Unfortunately, these two values may be
	// (and are, for the case of important vendors like Xur) different.
	// Issue https://github.com/Bungie-net/api/issues/353 is tracking a fix to start providing visibility
	// date ranges where possible in addition to this refresh date, so that all important dates for vendors
	// are available for use.
	NextRefreshDate Timestamp `json:"nextRefreshDate"`

	// If the Vendor has a related Reputation, this is the Progression data that represents the character's
	// Reputation level with this Vendor.
	Progression Progression `json:"progression"`

	// If this vendor has a seasonal rank, this will be the calculated value of that rank. How nice is
	// that? I mean, that's pretty sweeet. It's a whole 32 bit integer.
	SeasonalRank Nullable[int32] `json:"seasonalRank,omitempty"`

	// The unique identifier for the vendor. Use it to look up their DestinyVendorDefinition.
	VendorHash Hash[VendorDefinition] `json:"vendorHash"`

	// An index into the vendor definition's "locations" property array, indicating which location they are
	// at currently. If -1, then the vendor has no known location (and you may choose not to show them in
	// your UI as a result. I mean, it's your bag honey)
	VendorLocationIndex int32 `json:"vendorLocationIndex"`
}

Destiny.Entities.Vendors.DestinyVendorComponent

This component contains essential/summary information about the vendor.

type VendorDefinition

type VendorDefinition struct {

	// If the Vendor is actually a vehicle for the transferring of items (like the Vault and Postmaster
	// vendors), this defines the list of source->destination buckets for transferring.
	AcceptedItems []VendorAcceptedItemDefinition `json:"acceptedItems"`

	// Describes "actions" that can be performed on a vendor. Currently, none of these exist. But
	// theoretically a Vendor could let you interact with it by performing actions. We'll see what these
	// end up looking like if they ever get used.
	Actions []VendorActionDefinition `json:"actions"`

	// If the vendor has a custom localized string describing the "buy" action, that is returned here.
	BuyString string `json:"buyString"`

	// These are the headers for sections of items that the vendor is selling. When you see items organized
	// by category in the header, it is these categories that it is showing.
	// Well, technically not *exactly* these. On BNet, it doesn't make sense to have categories be "paged"
	// as we do in Destiny, so we run some heuristics to attempt to aggregate pages of categories together.
	// These are the categories post-concatenation, if the vendor had concatenation applied. If you want
	// the pre-aggregated category data, use originalCategories.
	Categories []VendorCategoryEntryDefinition `json:"categories"`

	// If TRUE, consolidate categories that only differ by trivial properties (such as having minor
	// differences in name)
	ConsolidateCategories bool `json:"consolidateCategories"`

	// Display Categories are different from "categories" in that these are specifically for visual
	// grouping and display of categories in Vendor UI.
	// The "categories" structure is for validation of the contained items, and can be categorized entirely
	// separately from "Display Categories", there need be and often will be no meaningful relationship
	// between the two.
	DisplayCategories []DisplayCategoryDefinition `json:"displayCategories"`

	// If the vendor has an item that should be displayed as the "featured" item, this is the hash
	// identifier for that DestinyVendorItemDefinition.
	// Apparently this is usually a related currency, like a reputation token. But it need not be
	// restricted to that.
	DisplayItemHash Hash[InventoryItemDefinition] `json:"displayItemHash"`

	DisplayProperties VendorDisplayPropertiesDefinition `json:"displayProperties"`

	// If a vendor is not enabled, we won't even save the vendor's definition, and we won't return any
	// items or info about them. It's as if they don't exist.
	Enabled bool `json:"enabled"`

	// If the Vendor has a faction, this hash will be valid and point to a DestinyFactionDefinition.
	// The game UI and BNet often mine the faction definition for additional elements and details to place
	// on the screen, such as the faction's Progression status (aka "Reputation").
	FactionHash Hash[FactionDefinition] `json:"factionHash"`

	// If an item can't be purchased from the vendor, there may be many "custom"/game state specific
	// reasons why not.
	// This is a list of localized strings with messages for those custom failures. The live BNet data will
	// return a failureIndexes property for items that can't be purchased: using those values to index into
	// this array, you can show the user the appropriate failure message for the item that can't be bought.
	FailureStrings []string `json:"failureStrings"`

	// A vendor can be a part of 0 or 1 "groups" at a time: a group being a collection of Vendors related
	// by either location or function/purpose. It's used for our our Companion Vendor UI. Only one of these
	// can be active for a Vendor at a time.
	Groups []VendorGroupReference `json:"groups"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// Some items don't make sense to return in the API, for example because they represent an action to be
	// performed rather than an item being sold. I'd rather we not do this, but at least in the short term
	// this is a workable workaround.
	IgnoreSaleItemHashes []uint32 `json:"ignoreSaleItemHashes"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// If this is true, you aren't allowed to buy whatever the vendor is selling.
	InhibitBuying bool `json:"inhibitBuying"`

	// If this is true, you're not allowed to sell whatever the vendor is buying.
	InhibitSelling bool `json:"inhibitSelling"`

	// In addition to selling items, vendors can have "interactions": UI where you "talk" with the vendor
	// and they offer you a reward, some item, or merely acknowledge via dialog that you did something
	// cool.
	Interactions []VendorInteractionDefinition `json:"interactions"`

	// If the vendor shows you items from your own inventory - such as the Vault vendor does - this data
	// describes the UI around showing those inventory buckets and which ones get shown.
	InventoryFlyouts []VendorInventoryFlyoutDefinition `json:"inventoryFlyouts"`

	// If the vendor sells items (or merely has a list of items to show like the "Sack" vendors do), this
	// is the list of those items that the vendor can sell. From this list, only a subset will be available
	// from the vendor at any given time, selected randomly and reset on the vendor's refresh interval.
	// Note that a vendor can sell the same item multiple ways: for instance, nothing stops a vendor from
	// selling you some specific weapon but using two different currencies, or the same weapon at multiple
	// "item levels".
	ItemList []VendorItemDefinition `json:"itemList"`

	// A vendor can be at different places in the world depending on the game/character/account state. This
	// is the list of possible locations for the vendor, along with conditions we use to determine which
	// one is currently active.
	Locations []VendorLocationDefinition `json:"locations"`

	// See the categories property for a description of categories and why originalCategories exists.
	OriginalCategories []VendorCategoryEntryDefinition `json:"originalCategories"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`

	// A number used for calculating the frequency of a vendor's inventory resetting/refreshing.
	// Don't worry about calculating this - we do it on the server side and send you the next refresh date
	// with the live data.
	ResetIntervalMinutes int32 `json:"resetIntervalMinutes"`

	// Again, used for reset/refreshing of inventory. Don't worry too much about it. Unless you want to.
	ResetOffsetMinutes int32 `json:"resetOffsetMinutes"`

	// As many of you know, Vendor data has historically been pretty brutal on the BNet servers. In an
	// effort to reduce this workload, only Vendors with this flag set will be returned on Vendor requests.
	// This allows us to filter out Vendors that don't dynamic data that's particularly useful: things like
	// "Preview/Sack" vendors, for example, that you can usually suss out the details for using just the
	// definitions themselves.
	ReturnWithVendorRequest bool `json:"returnWithVendorRequest"`

	// Ditto for selling. Not that you can sell items to a vendor anymore. Will it come back? Who knows.
	// The string's still there.
	SellString string `json:"sellString"`

	// BNet doesn't use this data yet, but it appears to be an optional list of flavor text about services
	// that the Vendor can provide.
	Services []VendorServiceDefinition `json:"services"`

	// If we were able to predict the dates when this Vendor will be visible/available, this will be the
	// list of those date ranges. Sadly, we're not able to predict this very frequently, so this will often
	// be useless data.
	UnlockRanges []DateRange `json:"unlockRanges"`

	// If the vendor has a custom banner image, that can be found here.
	VendorBanner string `json:"vendorBanner"`

	// The internal identifier for the Vendor. A holdover from the old days of Vendors, but we don't have
	// time to refactor it away.
	VendorIdentifier string `json:"vendorIdentifier"`

	// A portrait of the Vendor's smiling mug. Or frothing tentacles.
	VendorPortrait string `json:"vendorPortrait"`

	// The type of reward progression that this vendor has. Default - The original rank progression from
	// token redemption. Ritual - Progression from ranks in ritual content. For example: Crucible (Shaxx),
	// Gambit (Drifter), and Battlegrounds (War Table).
	VendorProgressionType VendorProgressionType `json:"vendorProgressionType"`

	// The identifier of the VendorCategoryDefinition for this vendor's subcategory.
	VendorSubcategoryIdentifier string `json:"vendorSubcategoryIdentifier"`

	// If a vendor is not visible, we still have and will give vendor definition info, but we won't use
	// them for things like Advisors or UI.
	Visible bool `json:"visible"`
}

Destiny.Definitions.DestinyVendorDefinition

These are the definitions for Vendors. In Destiny, a Vendor can be a lot of things - some things that you wouldn't expect, and some things that you don't even see directly in the game. Vendors are the Dolly Levi of the Destiny universe. - Traditional Vendors as you see in game: people who you come up to and who give you quests, rewards, or who you can buy things from. - Kiosks/Collections, which are really just Vendors that don't charge currency (or charge some pittance of a currency) and whose gating for purchases revolves more around your character's state. - Previews for rewards or the contents of sacks. These are implemented as Vendors, where you can't actually purchase from them but the items that they have for sale and the categories of sale items reflect the rewards or contents of the sack. This is so that the game could reuse the existing Vendor display UI for rewards and save a bunch of wheel reinvention. - Item Transfer capabilities, like the Vault and Postmaster. Vendors can have "acceptedItem" buckets that determine the source and destination buckets for transfers. When you interact with such a vendor, these buckets are what gets shown in the UI instead of any items that the Vendor would have for sale. Yep, the Vault is a vendor. It is pretty much guaranteed that they'll be used for even more features in the future. They have come to be seen more as generic categorized containers for items than "vendors" in a traditional sense, for better or worse. Where possible and time allows, we'll attempt to split those out into their own more digestible derived "Definitions": but often time does not allow that, as you can see from the above ways that vendors are used which we never split off from Vendor Definitions externally. Since Vendors are so many things to so many parts of the game, the definition is understandably complex. You will want to combine this data with live Vendor information from the API when it is available.

func (VendorDefinition) DefinitionTable

func (d VendorDefinition) DefinitionTable() string

type VendorDisplayCategorySortOrder

type VendorDisplayCategorySortOrder int32

Destiny.VendorDisplayCategorySortOrder

Display categories can have custom sort orders. These are the possible options.

func (VendorDisplayCategorySortOrder) Enum

type VendorDisplayPropertiesDefinition

type VendorDisplayPropertiesDefinition struct {
	Description string `json:"description"`

	HasIcon bool `json:"hasIcon"`

	// If this item has a high-res icon (at least for now, many things won't), then the path to that icon
	// will be here.
	HighResIcon string `json:"highResIcon"`

	// Note that "icon" is sometimes misleading, and should be interpreted in the context of the entity.
	// For instance, in Destiny 1 the DestinyRecordBookDefinition's icon was a big picture of a book.
	// But usually, it will be a small square image that you can use as... well, an icon.
	// They are currently represented as 96px x 96px images.
	Icon string `json:"icon"`

	IconSequences []IconSequenceDefinition `json:"iconSequences"`

	// I regret calling this a "large icon". It's more like a medium-sized image with a picture of the
	// vendor's mug on it, trying their best to look cool. Not what one would call an icon.
	LargeIcon string `json:"largeIcon"`

	// This is apparently the "Watermark". I am not certain offhand where this is actually used in the Game
	// UI, but some people may find it useful.
	LargeTransparentIcon string `json:"largeTransparentIcon"`

	// This is the icon used in the map overview, when the vendor is located on the map.
	MapIcon string `json:"mapIcon"`

	Name string `json:"name"`

	// If we replaced the icon with something more glitzy, this is the original icon that the vendor had
	// according to the game's content. It may be more lame and/or have less razzle-dazzle. But who am I to
	// tell you which icon to use.
	OriginalIcon string `json:"originalIcon"`

	// Vendors, in addition to expected display property data, may also show some "common requirements" as
	// statically defined definition data. This might be when a vendor accepts a single type of currency,
	// or when the currency is unique to the vendor and the designers wanted to show that currency when you
	// interact with the vendor.
	RequirementsDisplay []VendorRequirementDisplayEntryDefinition `json:"requirementsDisplay"`

	// This is the icon used in parts of the game UI such as the vendor's waypoint.
	SmallTransparentIcon string `json:"smallTransparentIcon"`

	Subtitle string `json:"subtitle"`
}

Destiny.Definitions.DestinyVendorDisplayPropertiesDefinition

func (VendorDisplayPropertiesDefinition) DefinitionTable

func (d VendorDisplayPropertiesDefinition) DefinitionTable() string

type VendorFilter

type VendorFilter int32

Destiny.DestinyVendorFilter

Indicates the type of filter to apply to Vendor results.

func (VendorFilter) Enum

func (e VendorFilter) Enum() string

type VendorGroup

type VendorGroup struct {
	VendorGroupHash Hash[VendorGroupDefinition] `json:"vendorGroupHash"`

	// The ordered list of vendors within a particular group.
	VendorHashes []uint32 `json:"vendorHashes"`
}

Destiny.Components.Vendors.DestinyVendorGroup

Represents a specific group of vendors that can be rendered in the recommended order. How do we figure out this order? It's a long story, and will likely get more complicated over time.

type VendorGroupComponent

type VendorGroupComponent struct {

	// The ordered list of groups being returned.
	Groups []VendorGroup `json:"groups"`
}

Destiny.Components.Vendors.DestinyVendorGroupComponent

This component returns references to all of the Vendors in the response, grouped by categorizations that Bungie has deemed to be interesting, in the order in which both the groups and the vendors within that group should be rendered.

type VendorGroupDefinition

type VendorGroupDefinition struct {

	// For now, a group just has a name.
	CategoryName string `json:"categoryName"`

	// The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not
	// globally.
	// When entities refer to each other in Destiny content, it is this hash that they are referring to.
	Hash uint32 `json:"hash"`

	// The index of the entity as it was found in the investment tables.
	Index int32 `json:"index"`

	// The recommended order in which to render the groups, Ascending order.
	Order int32 `json:"order"`

	// If this is true, then there is an entity with this identifier/type combination, but BNet is not yet
	// allowed to show it. Sorry!
	Redacted bool `json:"redacted"`
}

Destiny.Definitions.DestinyVendorGroupDefinition

BNet attempts to group vendors into similar collections. These groups aren't technically game canonical, but they are helpful for filtering vendors or showing them organized into a clean view on a webpage or app. These definitions represent the groups we've built. Unlike in Destiny 1, a Vendors' group may change dynamically as the game state changes: thus, you will want to check DestinyVendorComponent responses to find a vendor's currently active Group (if you care). Using this will let you group your vendors in your UI in a similar manner to how we will do grouping in the Companion.

func (VendorGroupDefinition) DefinitionTable

func (d VendorGroupDefinition) DefinitionTable() string

type VendorGroupReference

type VendorGroupReference struct {

	// The DestinyVendorGroupDefinition to which this Vendor can belong.
	VendorGroupHash Hash[VendorGroupDefinition] `json:"vendorGroupHash"`
}

Destiny.Definitions.DestinyVendorGroupReference

func (VendorGroupReference) DefinitionTable

func (d VendorGroupReference) DefinitionTable() string

type VendorInteractionDefinition

type VendorInteractionDefinition struct {

	// If the vendor interaction has flavor text, this is some of it.
	FlavorLineOne string `json:"flavorLineOne"`

	// If the vendor interaction has flavor text, this is the rest of it.
	FlavorLineTwo string `json:"flavorLineTwo"`

	// The header for the interaction dialog.
	HeaderDisplayProperties DisplayPropertiesDefinition `json:"headerDisplayProperties"`

	// The localized text telling the player what to do when they see this dialog.
	Instructions string `json:"instructions"`

	// The position of this interaction in its parent array. Note that this is NOT content agnostic, and
	// should not be used as such.
	InteractionIndex int32 `json:"interactionIndex"`

	// The enumerated version of the possible UI hints for vendor interactions, which is a little easier to
	// grok than the hash found in uiInteractionType.
	InteractionType VendorInteractionType `json:"interactionType"`

	// If this interaction dialog is about a quest, this is the questline related to the interaction. You
	// can use this to show the quest overview, or even the character's status with the quest if you use it
	// to find the character's current Quest Step by checking their inventory against this
	// questlineItemHash's DestinyInventoryItemDefinition.setData.
	QuestlineItemHash Hash[InventoryItemDefinition] `json:"questlineItemHash"`

	// The potential replies that the user can make to the interaction.
	Replies []VendorInteractionReplyDefinition `json:"replies"`

	// If this interaction is displaying rewards, this is the text to use for the header of the
	// reward-displaying section of the interaction.
	RewardBlockLabel string `json:"rewardBlockLabel"`

	// If the vendor's reward list is sourced from one of his categories, this is the index into the
	// category array of items to show.
	RewardVendorCategoryIndex int32 `json:"rewardVendorCategoryIndex"`

	// If this interaction is meant to show you sacks, this is the list of types of sacks to be shown. If
	// empty, the interaction is not meant to show sacks.
	SackInteractionList []VendorInteractionSackEntryDefinition `json:"sackInteractionList"`

	// A UI hint for the behavior of the interaction screen. This is useful to determine what type of
	// interaction is occurring, such as a prompt to receive a rank up reward or a prompt to choose a
	// reward for completing a quest. The hash isn't as useful as the Enum in retrospect, well what can you
	// do. Try using interactionType instead.
	UiInteractionType uint32 `json:"uiInteractionType"`

	// If >= 0, this is the category of sale items to show along with this interaction dialog.
	VendorCategoryIndex int32 `json:"vendorCategoryIndex"`
}

Destiny.Definitions.DestinyVendorInteractionDefinition

A Vendor Interaction is a dialog shown by the vendor other than sale items or transfer screens. The vendor is showing you something, and asking you to reply to it by choosing an option or reward.

func (VendorInteractionDefinition) DefinitionTable

func (d VendorInteractionDefinition) DefinitionTable() string

type VendorInteractionReplyDefinition

type VendorInteractionReplyDefinition struct {

	// The rewards granted upon responding to the vendor.
	ItemRewardsSelection VendorInteractionRewardSelection `json:"itemRewardsSelection"`

	// The localized text for the reply.
	Reply string `json:"reply"`

	// An enum indicating the type of reply being made.
	ReplyType VendorReplyType `json:"replyType"`
}

Destiny.Definitions.DestinyVendorInteractionReplyDefinition

When the interaction is replied to, Reward sites will fire and items potentially selected based on whether the given unlock expression is TRUE. You can potentially choose one from multiple replies when replying to an interaction: this is how you get either/or rewards from vendors.

func (VendorInteractionReplyDefinition) DefinitionTable

func (d VendorInteractionReplyDefinition) DefinitionTable() string

type VendorInteractionRewardSelection

type VendorInteractionRewardSelection int32

Destiny.DestinyVendorInteractionRewardSelection

When a Vendor Interaction provides rewards, they'll either let you choose one or let you have all of them. This determines which it will be.

func (VendorInteractionRewardSelection) Enum

type VendorInteractionSackEntryDefinition

type VendorInteractionSackEntryDefinition struct {
	SackType uint32 `json:"sackType"`
}

Destiny.Definitions.DestinyVendorInteractionSackEntryDefinition

Compare this sackType to the sack identifier in the DestinyInventoryItemDefinition.vendorSackType property of items. If they match, show this sack with this interaction.

func (VendorInteractionSackEntryDefinition) DefinitionTable

func (d VendorInteractionSackEntryDefinition) DefinitionTable() string

type VendorInteractionType

type VendorInteractionType int32

Destiny.VendorInteractionType

An enumeration of the known UI interactions for Vendors.

func (VendorInteractionType) Enum

func (e VendorInteractionType) Enum() string

type VendorInventoryFlyoutBucketDefinition

type VendorInventoryFlyoutBucketDefinition struct {

	// If true, the inventory bucket should be able to be collapsed visually.
	Collapsible bool `json:"collapsible"`

	// The inventory bucket whose contents should be shown.
	InventoryBucketHash Hash[InventoryBucketDefinition] `json:"inventoryBucketHash"`

	// The methodology to use for sorting items from the flyout.
	SortItemsBy ItemSortType `json:"sortItemsBy"`
}

Destiny.Definitions.DestinyVendorInventoryFlyoutBucketDefinition

Information about a single inventory bucket in a vendor flyout UI and how it is shown.

func (VendorInventoryFlyoutBucketDefinition) DefinitionTable

func (d VendorInventoryFlyoutBucketDefinition) DefinitionTable() string

type VendorInventoryFlyoutDefinition

type VendorInventoryFlyoutDefinition struct {

	// A list of inventory buckets and other metadata to show on the screen.
	Buckets []VendorInventoryFlyoutBucketDefinition `json:"buckets"`

	// The title and other common properties of the flyout.
	DisplayProperties DisplayPropertiesDefinition `json:"displayProperties"`

	// If this flyout is meant to show you the contents of the player's equipment slot, this is the slot to
	// show.
	EquipmentSlotHash Nullable[uint32] `json:"equipmentSlotHash,omitempty"`

	// An identifier for the flyout, in case anything else needs to refer to them.
	FlyoutID uint32 `json:"flyoutId"`

	// If the flyout is locked, this is the reason why.
	LockedDescription string `json:"lockedDescription"`

	// If this is true, don't show any of the glistening "this is a new item" UI elements, like we show on
	// the inventory items themselves in in-game UI.
	SuppressNewness bool `json:"suppressNewness"`
}

Destiny.Definitions.DestinyVendorInventoryFlyoutDefinition

The definition for an "inventory flyout": a UI screen where we show you part of an otherwise hidden vendor inventory: like the Vault inventory buckets.

func (VendorInventoryFlyoutDefinition) DefinitionTable

func (d VendorInventoryFlyoutDefinition) DefinitionTable() string

type VendorItemDefinition

type VendorItemDefinition struct {

	// The action to be performed when purchasing the item, if it's not just "buy".
	Action VendorSaleItemActionBlockDefinition `json:"action"`

	// The index into the DestinyVendorDefinition.categories array, so you can find the category associated
	// with this item.
	CategoryIndex int32 `json:"categoryIndex"`

	// The Default level at which the item will spawn. Almost always driven by an adjusto these days.
	// Ideally should be singular. It's a long story how this ended up as a list, but there is always
	// either going to be 0:1 of these entities.
	CreationLevels []ItemCreationEntryLevelDefinition `json:"creationLevels"`

	// This is a pre-compiled aggregation of item value and priceOverrideList, so that we have one place to
	// check for what the purchaser must pay for the item. Use this instead of trying to piece together the
	// price separately.
	// The somewhat crappy part about this is that, now that item quantity overrides have dynamic
	// modifiers, this will not necessarily be statically true. If you were using this instead of live
	// data, switch to using live data.
	Currencies []VendorItemQuantity `json:"currencies"`

	// The string identifier for the category selling this item.
	DisplayCategory string `json:"displayCategory"`

	// This is an index specifically into the display category, as opposed to the server-side Categories
	// (which do not need to match or pair with each other in any way: server side categories are really
	// just structures for common validation. Display Category will let us more easily categorize items
	// visually)
	DisplayCategoryIndex int32 `json:"displayCategoryIndex"`

	// If this item can only be purchased by a given platform, this indicates the platform to which it is
	// restricted.
	Exclusivity BungieMembershipType `json:"exclusivity"`

	// If this item can expire, this is the tooltip message to show with its expiration info.
	ExpirationTooltip string `json:"expirationTooltip"`

	// An list of indexes into the DestinyVendorDefinition.failureStrings array, indicating the possible
	// failure strings that can be relevant for this item.
	FailureIndexes []int32 `json:"failureIndexes"`

	// The inventory bucket into which this item will be placed upon purchase.
	InventoryBucketHash Hash[InventoryBucketDefinition] `json:"inventoryBucketHash"`

	// If this sale can only be performed as the result of receiving a CRM offer, this is true.
	IsCrm Nullable[bool] `json:"isCrm,omitempty"`

	// If this sale can only be performed as the result of an offer check, this is true.
	IsOffer Nullable[bool] `json:"isOffer,omitempty"`

	// The hash identifier of the item being sold (DestinyInventoryItemDefinition).
	// Note that a vendor can sell the same item in multiple ways, so don't assume that itemHash is a
	// unique identifier for this entity.
	ItemHash Hash[InventoryItemDefinition] `json:"itemHash"`

	// The maximum character level at which this item is available for sale.
	MaximumLevel int32 `json:"maximumLevel"`

	// The minimum character level at which this item is available for sale.
	MinimumLevel int32 `json:"minimumLevel"`

	// Same as above, but for the original category indexes.
	OriginalCategoryIndex int32 `json:"originalCategoryIndex"`

	// Similar to visibilityScope, it represents the most restrictive scope that determines whether the
	// item can be purchased. It will at least be as restrictive as visibilityScope, but could be more
	// restrictive if the item has additional purchase requirements beyond whether it is merely visible or
	// not.
	// See DestinyGatingScope's documentation for more information.
	PurchasableScope GatingScope `json:"purchasableScope"`

	// The amount you will recieve of the item described in itemHash if you make the purchase.
	Quantity int32 `json:"quantity"`

	// If this is populated, the purchase of this item should redirect to purchasing these other items
	// instead.
	RedirectToSaleIndexes []int32 `json:"redirectToSaleIndexes"`

	// If this item can be refunded, this is the policy for what will be refundd, how, and in what time
	// period.
	RefundPolicy VendorItemRefundPolicy `json:"refundPolicy"`

	// The amount of time before refundability of the newly purchased item will expire.
	RefundTimeLimit int32 `json:"refundTimeLimit"`

	SocketOverrides []VendorItemSocketOverride `json:"socketOverrides"`

	// *if* the category this item is in supports non-default sorting, this value should represent the
	// sorting value to use, pre-processed and ready to go.
	SortValue int32 `json:"sortValue"`

	// If true, this item is some sort of dummy sale item that cannot actually be purchased. It may be a
	// display only item, or some fluff left by a content designer for testing purposes, or something that
	// got disabled because it was a terrible idea. You get the picture. We won't know *why* it can't be
	// purchased, only that it can't be. Sorry.
	// This is also only whether it's unpurchasable as a static property according to game content. There
	// are other reasons why an item may or may not be purchasable at runtime, so even if this isn't set to
	// True you should trust the runtime value for this sale item over the static definition if this is
	// unset.
	Unpurchasable Nullable[bool] `json:"unpurchasable,omitempty"`

	// The index into the DestinyVendorDefinition.saleList. This is what we use to refer to items being
	// sold throughout live and definition data.
	VendorItemIndex int32 `json:"vendorItemIndex"`

	// The most restrictive scope that determines whether the item is available in the Vendor's inventory.
	// See DestinyGatingScope's documentation for more information.
	// This can be determined by Unlock gating, or by whether or not the item has purchase level
	// requirements (minimumLevel and maximumLevel properties).
	VisibilityScope GatingScope `json:"visibilityScope"`
}

Destiny.Definitions.DestinyVendorItemDefinition

This represents an item being sold by the vendor.

func (VendorItemDefinition) DefinitionTable

func (d VendorItemDefinition) DefinitionTable() string

type VendorItemQuantity

type VendorItemQuantity struct {

	// Indicates that this item quantity may be conditionally shown or hidden, based on various sources of
	// state. For example: server flags, account state, or character progress.
	HasConditionalVisibility bool `json:"hasConditionalVisibility"`

	// The hash identifier for the item in question. Use it to look up the item's
	// DestinyInventoryItemDefinition.
	ItemHash Hash[InventoryItemDefinition] `json:"itemHash"`

	// If this quantity is referring to a specific instance of an item, this will have the item's instance
	// ID. Normally, this will be null.
	ItemInstanceID Nullable[Int64] `json:"itemInstanceId,omitempty"`

	// The amount of the item needed/available depending on the context of where DestinyItemQuantity is
	// being used.
	Quantity int32 `json:"quantity"`
}

Destiny.Definitions.DestinyVendorItemQuantity

In addition to item quantity information for vendor prices, this also has any optional information that may exist about how the item's quantity can be modified. (unfortunately not information that is able to be read outside of the BNet servers, but it's there)

func (VendorItemQuantity) DefinitionTable

func (d VendorItemQuantity) DefinitionTable() string

type VendorItemRefundPolicy

type VendorItemRefundPolicy int32

Destiny.DestinyVendorItemRefundPolicy

The action that happens when the user attempts to refund an item.

func (VendorItemRefundPolicy) Enum

func (e VendorItemRefundPolicy) Enum() string

type VendorItemSocketOverride

type VendorItemSocketOverride struct {

	// If this is greater than -1, the number of randomized plugs on this socket will be set to this
	// quantity instead of whatever it's set to by default.
	RandomizedOptionsCount int32 `json:"randomizedOptionsCount"`

	// If this is populated, the socket will be overridden with a specific plug.
	// If this isn't populated, it's being overridden by something more complicated that is only known by
	// the Game Server and God, which means we can't tell you in advance what it'll be.
	SingleItemHash Nullable[Hash[InventoryItemDefinition]] `json:"singleItemHash,omitempty"`

	// This appears to be used to select which socket ultimately gets the override defined here.
	SocketTypeHash Hash[SocketTypeDefinition] `json:"socketTypeHash"`
}

Destiny.Definitions.DestinyVendorItemSocketOverride

The information for how the vendor purchase should override a given socket with custom plug data.

func (VendorItemSocketOverride) DefinitionTable

func (d VendorItemSocketOverride) DefinitionTable() string

type VendorItemState

type VendorItemState int32

Destiny.DestinyVendorItemState

The possible states of Destiny Profile Records. IMPORTANT: Any given item can theoretically have many of these states simultaneously: as a result, this was altered to be a flags enumeration/bitmask for v3.2.0.

func (VendorItemState) Enum

func (e VendorItemState) Enum() string

type VendorItemStatus

type VendorItemStatus int32

Destiny.VendorItemStatus

func (VendorItemStatus) Enum

func (e VendorItemStatus) Enum() string

type VendorLocationDefinition

type VendorLocationDefinition struct {

	// The relative path to the background image representing this Vendor at this location, for use in a
	// banner.
	BackgroundImagePath string `json:"backgroundImagePath"`

	// The hash identifier for a Destination at which this vendor may be located. Each destination where a
	// Vendor may exist will only ever have a single entry.
	DestinationHash Hash[DestinationDefinition] `json:"destinationHash"`
}

Destiny.Definitions.Vendors.DestinyVendorLocationDefinition

These definitions represent vendors' locations and relevant display information at different times in the game.

func (VendorLocationDefinition) DefinitionTable

func (d VendorLocationDefinition) DefinitionTable() string

type VendorProgressionType

type VendorProgressionType int32

Destiny.DestinyVendorProgressionType

Describes the type of progression that a vendor has.

func (VendorProgressionType) Enum

func (e VendorProgressionType) Enum() string

type VendorReceipt

type VendorReceipt struct {

	// The amount paid for the item, in terms of items that were consumed in the purchase and their
	// quantity.
	CurrencyPaid []ItemQuantity `json:"currencyPaid"`

	// The date at which this receipt is rendered invalid.
	ExpiresOn Timestamp `json:"expiresOn"`

	// The item that was received, and its quantity.
	ItemReceived ItemQuantity `json:"itemReceived"`

	// The unlock flag used to determine whether you still have the purchased item.
	LicenseUnlockHash uint32 `json:"licenseUnlockHash"`

	// The ID of the character who made the purchase.
	PurchasedByCharacterID Int64 `json:"purchasedByCharacterId"`

	// Whether you can get a refund, and what happens in order for the refund to be received. See the
	// DestinyVendorItemRefundPolicy enum for details.
	RefundPolicy VendorItemRefundPolicy `json:"refundPolicy"`

	// The identifier of this receipt.
	SequenceNumber int32 `json:"sequenceNumber"`

	// The seconds since epoch at which this receipt is rendered invalid.
	TimeToExpiration Int64 `json:"timeToExpiration"`
}

Destiny.Vendors.DestinyVendorReceipt

If a character purchased an item that is refundable, a Vendor Receipt will be created on the user's Destiny Profile. These expire after a configurable period of time, but until then can be used to get refunds on items. BNet does not provide the ability to refund a purchase *yet*, but you know.

type VendorReceiptsComponent

type VendorReceiptsComponent struct {

	// The receipts for refundable purchases made at a vendor.
	Receipts []VendorReceipt `json:"receipts"`
}

Destiny.Entities.Profiles.DestinyVendorReceiptsComponent

For now, this isn't used for much: it's a record of the recent refundable purchases that the user has made. In the future, it could be used for providing refunds/buyback via the API. Wouldn't that be fun?

type VendorReplyType

type VendorReplyType int32

Destiny.DestinyVendorReplyType

This determines the type of reply that a Vendor will have during an Interaction.

func (VendorReplyType) Enum

func (e VendorReplyType) Enum() string

type VendorRequirementDisplayEntryDefinition

type VendorRequirementDisplayEntryDefinition struct {
	Icon string `json:"icon"`

	Name string `json:"name"`

	Source string `json:"source"`

	Type string `json:"type"`
}

Destiny.Definitions.DestinyVendorRequirementDisplayEntryDefinition

The localized properties of the requirementsDisplay, allowing information about the requirement or item being featured to be seen.

func (VendorRequirementDisplayEntryDefinition) DefinitionTable

func (d VendorRequirementDisplayEntryDefinition) DefinitionTable() string

type VendorResponse

type VendorResponse struct {

	// Categories that the vendor has available, and references to the sales therein.
	// COMPONENT TYPE: VendorCategories
	Categories ComponentResponse[VendorCategoriesComponent] `json:"categories"`

	// A "lookup" convenience component that can be used to quickly check if the character has access to
	// items that can be used for purchasing.
	// COMPONENT TYPE: CurrencyLookups
	CurrencyLookups ComponentResponse[CurrenciesComponent] `json:"currencyLookups"`

	// Item components, keyed by the vendorItemIndex of the active sale items.
	// COMPONENT TYPE: [See inside the DestinyItemComponentSet contract for component types.]
	ItemComponents ItemComponentSet[int32] `json:"itemComponents"`

	// Sales, keyed by the vendorItemIndex of the item being sold.
	// COMPONENT TYPE: VendorSales
	Sales ComponentResponse[map[int32]VendorSaleItemComponent] `json:"sales"`

	// A map of string variable values by hash for this character context.
	// COMPONENT TYPE: StringVariables
	StringVariables ComponentResponse[StringVariablesComponent] `json:"stringVariables"`

	// The base properties of the vendor.
	// COMPONENT TYPE: Vendors
	Vendor ComponentResponse[VendorComponent] `json:"vendor"`
}

Destiny.Responses.DestinyVendorResponse

A response containing all of the components for a vendor.

type VendorSaleItemActionBlockDefinition

type VendorSaleItemActionBlockDefinition struct {
	ExecuteSeconds float64 `json:"executeSeconds"`

	IsPositive bool `json:"isPositive"`
}

Destiny.Definitions.DestinyVendorSaleItemActionBlockDefinition

Not terribly useful, some basic cooldown interaction info.

func (VendorSaleItemActionBlockDefinition) DefinitionTable

func (d VendorSaleItemActionBlockDefinition) DefinitionTable() string

type VendorSaleItemBaseComponent

type VendorSaleItemBaseComponent struct {

	// If true, this item can be purchased through the Bungie.net API.
	ApiPurchasable Nullable[bool] `json:"apiPurchasable,omitempty"`

	// A summary of the current costs of the item.
	Costs []ItemQuantity `json:"costs"`

	// The hash of the item being sold, as a quick shortcut for looking up the
	// DestinyInventoryItemDefinition of the sale item.
	ItemHash Hash[InventoryItemDefinition] `json:"itemHash"`

	// If this item has its own custom date where it may be removed from the Vendor's rotation, this is
	// that date.
	// Note that there's not actually any guarantee that it will go away: it could be chosen again and end
	// up still being in the Vendor's sale items! But this is the next date where that test will occur, and
	// is also the date that the game shows for availability on things like Bounties being sold. So it's
	// the best we can give.
	OverrideNextRefreshDate Nullable[Timestamp] `json:"overrideNextRefreshDate,omitempty"`

	// If populated, this is the hash of the item whose icon (and other secondary styles, but *not* the
	// human readable strings) should override whatever icons/styles are on the item being sold.
	// If you don't do this, certain items whose styles are being overridden by socketed items - such as
	// the "Recycle Shader" item - would show whatever their default icon/style is, and it wouldn't be
	// pretty or look accurate.
	OverrideStyleItemHash Nullable[Hash[InventoryItemDefinition]] `json:"overrideStyleItemHash,omitempty"`

	// How much of the item you'll be getting.
	Quantity int32 `json:"quantity"`

	// The index into the DestinyVendorDefinition.itemList property. Note that this means Vendor data *is*
	// Content Version dependent: make sure you have the latest content before you use Vendor data, or
	// these indexes may mismatch.
	// Most systems avoid this problem, but Vendors is one area where we are unable to reasonably avoid
	// content dependency at the moment.
	VendorItemIndex int32 `json:"vendorItemIndex"`
}

Destiny.Components.Vendors.DestinyVendorSaleItemBaseComponent

The base class for Vendor Sale Item data. Has a bunch of character-agnostic state about the item being sold. Note that if you want instance, stats, etc... data for the item, you'll have to request additional components such as ItemInstances, ItemPerks etc... and acquire them from the DestinyVendorResponse's "items" property.

type VendorSaleItemComponent

type VendorSaleItemComponent struct {

	// If true, this item can be purchased through the Bungie.net API.
	ApiPurchasable Nullable[bool] `json:"apiPurchasable,omitempty"`

	// A flags enumeration value representing the current state of any "state modifiers" on the item being
	// sold. These are meant to correspond with some sort of visual indicator as to the augmentation: for
	// instance, if an item is on sale or if you already own the item in question.
	// Determining how you want to represent these in your own app (or if you even want to) is an exercise
	// left for the reader.
	Augments BitmaskSet[VendorItemState] `json:"augments"`

	// A summary of the current costs of the item.
	Costs []ItemQuantity `json:"costs"`

	// Indexes in to the "failureStrings" lookup table in DestinyVendorDefinition for the given Vendor.
	// Gives some more reliable failure information for why you can't purchase an item.
	// It is preferred to use these over requiredUnlocks and unlockStatuses: the latter are provided mostly
	// in case someone can do something interesting with it that I didn't anticipate.
	FailureIndexes []int32 `json:"failureIndexes"`

	// The hash of the item being sold, as a quick shortcut for looking up the
	// DestinyInventoryItemDefinition of the sale item.
	ItemHash Hash[InventoryItemDefinition] `json:"itemHash"`

	// If available, a list that describes which item values (rewards) should be shown (true) or hidden
	// (false).
	ItemValueVisibility []bool `json:"itemValueVisibility"`

	// If this item has its own custom date where it may be removed from the Vendor's rotation, this is
	// that date.
	// Note that there's not actually any guarantee that it will go away: it could be chosen again and end
	// up still being in the Vendor's sale items! But this is the next date where that test will occur, and
	// is also the date that the game shows for availability on things like Bounties being sold. So it's
	// the best we can give.
	OverrideNextRefreshDate Nullable[Timestamp] `json:"overrideNextRefreshDate,omitempty"`

	// If populated, this is the hash of the item whose icon (and other secondary styles, but *not* the
	// human readable strings) should override whatever icons/styles are on the item being sold.
	// If you don't do this, certain items whose styles are being overridden by socketed items - such as
	// the "Recycle Shader" item - would show whatever their default icon/style is, and it wouldn't be
	// pretty or look accurate.
	OverrideStyleItemHash Nullable[Hash[InventoryItemDefinition]] `json:"overrideStyleItemHash,omitempty"`

	// How much of the item you'll be getting.
	Quantity int32 `json:"quantity"`

	// If you can't buy the item due to a complex character state, these will be hashes for
	// DestinyUnlockDefinitions that you can check to see messages regarding the failure (if the unlocks
	// have human readable information: it is not guaranteed that Unlocks will have human readable strings,
	// and your application will have to handle that)
	// Prefer using failureIndexes instead. These are provided for informational purposes, but have largely
	// been supplanted by failureIndexes.
	RequiredUnlocks []uint32 `json:"requiredUnlocks"`

	// A flag indicating whether the requesting character can buy the item, and if not the reasons why the
	// character can't buy it.
	SaleStatus BitmaskSet[VendorItemStatus] `json:"saleStatus"`

	// If any complex unlock states are checked in determining purchasability, these will be returned here
	// along with the status of the unlock check.
	// Prefer using failureIndexes instead. These are provided for informational purposes, but have largely
	// been supplanted by failureIndexes.
	UnlockStatuses []UnlockStatus `json:"unlockStatuses"`

	// The index into the DestinyVendorDefinition.itemList property. Note that this means Vendor data *is*
	// Content Version dependent: make sure you have the latest content before you use Vendor data, or
	// these indexes may mismatch.
	// Most systems avoid this problem, but Vendors is one area where we are unable to reasonably avoid
	// content dependency at the moment.
	VendorItemIndex int32 `json:"vendorItemIndex"`
}

Destiny.Entities.Vendors.DestinyVendorSaleItemComponent

Request this component if you want the details about an item being sold in relation to the character making the request: whether the character can buy it, whether they can afford it, and other data related to purchasing the item. Note that if you want instance, stats, etc... data for the item, you'll have to request additional components such as ItemInstances, ItemPerks etc... and acquire them from the DestinyVendorResponse's "items" property.

type VendorSaleItemSetComponent

type VendorSaleItemSetComponent[T any] struct {
	SaleItems map[int32]T `json:"saleItems"`
}

type VendorServiceDefinition

type VendorServiceDefinition struct {

	// The localized name of a service provided.
	Name string `json:"name"`
}

Destiny.Definitions.DestinyVendorServiceDefinition

When a vendor provides services, this is the localized name of those services.

func (VendorServiceDefinition) DefinitionTable

func (d VendorServiceDefinition) DefinitionTable() string

type VendorsResponse

type VendorsResponse struct {

	// Categories that the vendor has available, and references to the sales therein. These are keyed by
	// the Vendor Hash, so you will get one Categories Component per vendor returned.
	// COMPONENT TYPE: VendorCategories
	Categories ComponentResponse[map[uint32]VendorCategoriesComponent] `json:"categories"`

	// A "lookup" convenience component that can be used to quickly check if the character has access to
	// items that can be used for purchasing.
	// COMPONENT TYPE: CurrencyLookups
	CurrencyLookups ComponentResponse[CurrenciesComponent] `json:"currencyLookups"`

	// The set of item detail components, one set of item components per Vendor. These are keyed by the
	// Vendor Hash, so you will get one Item Component Set per vendor returned.
	// The components contained inside are themselves keyed by the vendorSaleIndex, and will have whatever
	// item-level components you requested (Sockets, Stats, Instance data etc...) per item being sold by
	// the vendor.
	ItemComponents map[uint32]ItemComponentSet[int32] `json:"itemComponents"`

	// Sales, keyed by the vendorItemIndex of the item being sold. These are keyed by the Vendor Hash, so
	// you will get one Sale Item Set Component per vendor returned.
	// Note that within the Sale Item Set component, the sales are themselves keyed by the vendorSaleIndex,
	// so you can relate it to the corrent sale item definition within the Vendor's definition.
	// COMPONENT TYPE: VendorSales
	Sales ComponentResponse[map[uint32]PersonalDestinyVendorSaleItemSetComponent] `json:"sales"`

	// A map of string variable values by hash for this character context.
	// COMPONENT TYPE: StringVariables
	StringVariables ComponentResponse[StringVariablesComponent] `json:"stringVariables"`

	// For Vendors being returned, this will give you the information you need to group them and order them
	// in the same way that the Bungie Companion app performs grouping. It will automatically be returned
	// if you request the Vendors component.
	// COMPONENT TYPE: Vendors
	VendorGroups ComponentResponse[VendorGroupComponent] `json:"vendorGroups"`

	// The base properties of the vendor. These are keyed by the Vendor Hash, so you will get one Vendor
	// Component per vendor returned.
	// COMPONENT TYPE: Vendors
	Vendors ComponentResponse[map[uint32]VendorComponent] `json:"vendors"`
}

Destiny.Responses.DestinyVendorsResponse

A response containing all of the components for all requested vendors.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL