bungieapi.generated.components.schemas.destiny.definitions package

Submodules

bungieapi.generated.components.schemas.destiny.definitions.activity_modifiers module

class bungieapi.generated.components.schemas.destiny.definitions.activity_modifiers.DestinyActivityModifierDefinition(display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, hash: Optional[int] = None, index: Optional[int] = None, redacted: Optional[bool] = None)[source]

Bases: object

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

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
hash: Optional[int] = None
index: Optional[int] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]

bungieapi.generated.components.schemas.destiny.definitions.animations module

class bungieapi.generated.components.schemas.destiny.definitions.animations.DestinyAnimationReference(anim_identifier: Optional[str] = None, anim_name: Optional[str] = None, path: Optional[str] = None)[source]

Bases: object

anim_identifier: Optional[str] = None
anim_name: Optional[str] = None
path: Optional[str] = None
to_json() Mapping[str, Any][source]

bungieapi.generated.components.schemas.destiny.definitions.artifacts module

class bungieapi.generated.components.schemas.destiny.definitions.artifacts.DestinyArtifactDefinition(display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, hash: Optional[int] = None, index: Optional[int] = None, redacted: Optional[bool] = None, tiers: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.artifacts.DestinyArtifactTierDefinition]] = None, translation_block: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemTranslationBlockDefinition] = None)[source]

Bases: object

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.

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
hash: Optional[int] = None
index: Optional[int] = None
redacted: Optional[bool] = None
tiers: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.artifacts.DestinyArtifactTierDefinition]] = None
to_json() Mapping[str, Any][source]
translation_block: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemTranslationBlockDefinition] = None
class bungieapi.generated.components.schemas.destiny.definitions.artifacts.DestinyArtifactTierDefinition(display_title: Optional[str] = None, items: Optional[Sequence[ForwardRef('DestinyArtifactTierItemDefinition')]] = None, minimum_unlock_points_used_requirement: Optional[int] = None, progress_requirement_message: Optional[str] = None, tier_hash: Optional[int] = None)[source]

Bases: object

display_title: Optional[str] = None
items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.artifacts.DestinyArtifactTierItemDefinition]] = None
minimum_unlock_points_used_requirement: Optional[int] = None
progress_requirement_message: Optional[str] = None
tier_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.artifacts.DestinyArtifactTierItemDefinition(item_hash: Optional[int] = None)[source]

Bases: object

item_hash: Optional[int] = None
to_json() Mapping[str, Any][source]

bungieapi.generated.components.schemas.destiny.definitions.breaker_types module

class bungieapi.generated.components.schemas.destiny.definitions.breaker_types.DestinyBreakerTypeDefinition(display_properties: Optional[ForwardRef('DestinyDisplayPropertiesDefinition')] = None, enum_value: Optional[ForwardRef('DestinyBreakerType')] = None, hash: Optional[int] = None, index: Optional[int] = None, redacted: Optional[bool] = None)[source]

Bases: object

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
enum_value: Optional[bungieapi.generated.components.schemas.destiny.DestinyBreakerType] = None
hash: Optional[int] = None
index: Optional[int] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]

bungieapi.generated.components.schemas.destiny.definitions.checklists module

class bungieapi.generated.components.schemas.destiny.definitions.checklists.DestinyChecklistDefinition(display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, entries: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.checklists.DestinyChecklistEntryDefinition]] = None, hash: Optional[int] = None, index: Optional[int] = None, redacted: Optional[bool] = None, scope: Optional[bungieapi.generated.components.schemas.destiny.DestinyScope] = None, view_action_string: Optional[str] = None)[source]

Bases: object

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.

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
entries: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.checklists.DestinyChecklistEntryDefinition]] = None
hash: Optional[int] = None
index: Optional[int] = None
redacted: Optional[bool] = None
scope: Optional[bungieapi.generated.components.schemas.destiny.DestinyScope] = None
to_json() Mapping[str, Any][source]
view_action_string: Optional[str] = None
class bungieapi.generated.components.schemas.destiny.definitions.checklists.DestinyChecklistEntryDefinition(activity_hash: Optional[int] = None, bubble_hash: Optional[int] = None, destination_hash: Optional[int] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, hash: Optional[int] = None, item_hash: Optional[int] = None, location_hash: Optional[int] = None, scope: Optional[bungieapi.generated.components.schemas.destiny.DestinyScope] = None, vendor_hash: Optional[int] = None, vendor_interaction_index: Optional[int] = None)[source]

Bases: object

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.

activity_hash: Optional[int] = None
bubble_hash: Optional[int] = None
destination_hash: Optional[int] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
hash: Optional[int] = None
item_hash: Optional[int] = None
location_hash: Optional[int] = None
scope: Optional[bungieapi.generated.components.schemas.destiny.DestinyScope] = None
to_json() Mapping[str, Any][source]
vendor_hash: Optional[int] = None
vendor_interaction_index: Optional[int] = None

bungieapi.generated.components.schemas.destiny.definitions.collectibles module

class bungieapi.generated.components.schemas.destiny.definitions.collectibles.DestinyCollectibleAcquisitionBlock(acquire_material_requirement_hash: Optional[int] = None, acquire_timestamp_unlock_value_hash: Optional[int] = None)[source]

Bases: object

acquire_material_requirement_hash: Optional[int] = None
acquire_timestamp_unlock_value_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.collectibles.DestinyCollectibleDefinition(acquisition_info: Optional[bungieapi.generated.components.schemas.destiny.definitions.collectibles.DestinyCollectibleAcquisitionBlock] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, hash: Optional[int] = None, index: Optional[int] = None, item_hash: Optional[int] = None, parent_node_hashes: Optional[Sequence[int]] = None, presentation_info: Optional[bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationChildBlock] = None, presentation_node_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyPresentationNodeType] = None, redacted: Optional[bool] = None, scope: Optional[bungieapi.generated.components.schemas.destiny.DestinyScope] = None, source_hash: Optional[int] = None, source_string: Optional[str] = None, state_info: Optional[bungieapi.generated.components.schemas.destiny.definitions.collectibles.DestinyCollectibleStateBlock] = None, trait_hashes: Optional[Sequence[int]] = None, trait_ids: Optional[Sequence[str]] = None)[source]

Bases: object

Defines a.

acquisition_info: Optional[bungieapi.generated.components.schemas.destiny.definitions.collectibles.DestinyCollectibleAcquisitionBlock] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
hash: Optional[int] = None
index: Optional[int] = None
item_hash: Optional[int] = None
parent_node_hashes: Optional[Sequence[int]] = None
presentation_info: Optional[bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationChildBlock] = None
presentation_node_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyPresentationNodeType] = None
redacted: Optional[bool] = None
scope: Optional[bungieapi.generated.components.schemas.destiny.DestinyScope] = None
source_hash: Optional[int] = None
source_string: Optional[str] = None
state_info: Optional[bungieapi.generated.components.schemas.destiny.definitions.collectibles.DestinyCollectibleStateBlock] = None
to_json() Mapping[str, Any][source]
trait_hashes: Optional[Sequence[int]] = None
trait_ids: Optional[Sequence[str]] = None
class bungieapi.generated.components.schemas.destiny.definitions.collectibles.DestinyCollectibleStateBlock(obscured_override_item_hash: Optional[int] = None, requirements: Optional[ForwardRef('DestinyPresentationNodeRequirementsBlock')] = None)[source]

Bases: object

obscured_override_item_hash: Optional[int] = None
requirements: Optional[bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationNodeRequirementsBlock] = None
to_json() Mapping[str, Any][source]

bungieapi.generated.components.schemas.destiny.definitions.common module

class bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition(description: Optional[str] = None, has_icon: Optional[bool] = None, high_res_icon: Optional[str] = None, icon: Optional[str] = None, icon_sequences: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyIconSequenceDefinition]] = None, name: Optional[str] = None)[source]

Bases: object

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.

description: Optional[str] = None
has_icon: Optional[bool] = None
high_res_icon: Optional[str] = None
icon: Optional[str] = None
icon_sequences: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyIconSequenceDefinition]] = None
name: Optional[str] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.common.DestinyIconSequenceDefinition(frames: Optional[Sequence[str]] = None)[source]

Bases: object

frames: Optional[Sequence[str]] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.common.DestinyPositionDefinition(x: Optional[int] = None, y: Optional[int] = None, z: Optional[int] = None)[source]

Bases: object

to_json() Mapping[str, Any][source]
x: Optional[int] = None
y: Optional[int] = None
z: Optional[int] = None

bungieapi.generated.components.schemas.destiny.definitions.director module

class bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphArtElementDefinition(position: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyPositionDefinition] = None)[source]

Bases: object

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)

position: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyPositionDefinition] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphConnectionDefinition(dest_node_hash: Optional[int] = None, source_node_hash: Optional[int] = None)[source]

Bases: object

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.

dest_node_hash: Optional[int] = None
source_node_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphDefinition(art_elements: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphArtElementDefinition]] = None, connections: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphConnectionDefinition]] = None, display_objectives: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphDisplayObjectiveDefinition]] = None, display_progressions: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphDisplayProgressionDefinition]] = None, hash: Optional[int] = None, index: Optional[int] = None, linked_graphs: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.director.DestinyLinkedGraphDefinition]] = None, nodes: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphNodeDefinition]] = None, redacted: Optional[bool] = None)[source]

Bases: object

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.

art_elements: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphArtElementDefinition]] = None
connections: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphConnectionDefinition]] = None
display_objectives: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphDisplayObjectiveDefinition]] = None
display_progressions: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphDisplayProgressionDefinition]] = None
hash: Optional[int] = None
index: Optional[int] = None
linked_graphs: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.director.DestinyLinkedGraphDefinition]] = None
nodes: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphNodeDefinition]] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphDisplayObjectiveDefinition(id: Optional[int] = None, objective_hash: Optional[int] = None)[source]

Bases: object

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

id: Optional[int] = None
objective_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphDisplayProgressionDefinition(id: Optional[int] = None, progression_hash: Optional[int] = None)[source]

Bases: object

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

id: Optional[int] = None
progression_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphNodeActivityDefinition(activity_hash: Optional[int] = None, node_activity_id: Optional[int] = None)[source]

Bases: object

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.

activity_hash: Optional[int] = None
node_activity_id: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphNodeDefinition(activities: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphNodeActivityDefinition]] = None, featuring_states: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphNodeFeaturingStateDefinition]] = None, node_id: Optional[int] = None, override_display: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, position: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyPositionDefinition] = None, states: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphNodeStateEntry]] = None)[source]

Bases: object

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)

activities: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphNodeActivityDefinition]] = None
featuring_states: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphNodeFeaturingStateDefinition]] = None
node_id: Optional[int] = None
override_display: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
position: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyPositionDefinition] = None
states: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphNodeStateEntry]] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphNodeFeaturingStateDefinition(highlight_type: Optional[bungieapi.generated.components.schemas.destiny.ActivityGraphNodeHighlightType] = None)[source]

Bases: object

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.

highlight_type: Optional[bungieapi.generated.components.schemas.destiny.ActivityGraphNodeHighlightType] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.director.DestinyActivityGraphNodeStateEntry(state: Optional[bungieapi.generated.components.schemas.destiny.DestinyGraphNodeState] = None)[source]

Bases: object

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.

state: Optional[bungieapi.generated.components.schemas.destiny.DestinyGraphNodeState] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.director.DestinyLinkedGraphDefinition(description: Optional[str] = None, linked_graph_id: Optional[int] = None, linked_graphs: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.director.DestinyLinkedGraphEntryDefinition]] = None, name: Optional[str] = None, overview: Optional[str] = None, unlock_expression: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyUnlockExpressionDefinition] = None)[source]

Bases: object

This describes links between the current graph and others, as well as when that link is relevant.

description: Optional[str] = None
linked_graph_id: Optional[int] = None
linked_graphs: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.director.DestinyLinkedGraphEntryDefinition]] = None
name: Optional[str] = None
overview: Optional[str] = None
to_json() Mapping[str, Any][source]
unlock_expression: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyUnlockExpressionDefinition] = None
class bungieapi.generated.components.schemas.destiny.definitions.director.DestinyLinkedGraphEntryDefinition(activity_graph_hash: Optional[int] = None)[source]

Bases: object

activity_graph_hash: Optional[int] = None
to_json() Mapping[str, Any][source]

bungieapi.generated.components.schemas.destiny.definitions.energy_types module

class bungieapi.generated.components.schemas.destiny.definitions.energy_types.DestinyEnergyTypeDefinition(capacity_stat_hash: Optional[int] = None, cost_stat_hash: Optional[int] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, enum_value: Optional[bungieapi.generated.components.schemas.destiny.DestinyEnergyType] = None, hash: Optional[int] = None, index: Optional[int] = None, redacted: Optional[bool] = None, show_icon: Optional[bool] = None, transparent_icon_path: Optional[str] = None)[source]

Bases: object

Represents types of Energy that can be used for costs and payments related to Armor 2.0 mods.

capacity_stat_hash: Optional[int] = None
cost_stat_hash: Optional[int] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
enum_value: Optional[bungieapi.generated.components.schemas.destiny.DestinyEnergyType] = None
hash: Optional[int] = None
index: Optional[int] = None
redacted: Optional[bool] = None
show_icon: Optional[bool] = None
to_json() Mapping[str, Any][source]
transparent_icon_path: Optional[str] = None

bungieapi.generated.components.schemas.destiny.definitions.items module

class bungieapi.generated.components.schemas.destiny.definitions.items.DestinyDerivedItemCategoryDefinition(category_description: Optional[str] = None, items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.items.DestinyDerivedItemDefinition]] = None)[source]

Bases: object

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.

category_description: Optional[str] = None
items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.items.DestinyDerivedItemDefinition]] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.items.DestinyDerivedItemDefinition(icon_path: Optional[str] = None, item_description: Optional[str] = None, item_detail: Optional[str] = None, item_hash: Optional[int] = None, item_name: Optional[str] = None, vendor_item_index: Optional[int] = None)[source]

Bases: object

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.

icon_path: Optional[str] = None
item_description: Optional[str] = None
item_detail: Optional[str] = None
item_hash: Optional[int] = None
item_name: Optional[str] = None
to_json() Mapping[str, Any][source]
vendor_item_index: Optional[int] = None
class bungieapi.generated.components.schemas.destiny.definitions.items.DestinyEnergyCapacityEntry(capacity_value: Optional[int] = None, energy_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyEnergyType] = None, energy_type_hash: Optional[int] = None)[source]

Bases: object

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.

capacity_value: Optional[int] = None
energy_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyEnergyType] = None
energy_type_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.items.DestinyEnergyCostEntry(energy_cost: Optional[int] = None, energy_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyEnergyType] = None, energy_type_hash: Optional[int] = None)[source]

Bases: object

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.

energy_cost: Optional[int] = None
energy_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyEnergyType] = None
energy_type_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.items.DestinyItemPlugDefinition(alternate_plug_style: Optional[bungieapi.generated.components.schemas.destiny.PlugUiStyles] = None, alternate_ui_plug_label: Optional[str] = None, enabled_material_requirement_hash: Optional[int] = None, enabled_rules: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.items.DestinyPlugRuleDefinition]] = None, energy_capacity: Optional[bungieapi.generated.components.schemas.destiny.definitions.items.DestinyEnergyCapacityEntry] = None, energy_cost: Optional[bungieapi.generated.components.schemas.destiny.definitions.items.DestinyEnergyCostEntry] = None, insertion_material_requirement_hash: Optional[int] = None, insertion_rules: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.items.DestinyPlugRuleDefinition]] = None, is_dummy_plug: Optional[bool] = None, on_action_recreate_self: Optional[bool] = None, parent_item_override: Optional[bungieapi.generated.components.schemas.destiny.definitions.items.DestinyParentItemOverride] = None, plug_availability: Optional[bungieapi.generated.components.schemas.destiny.PlugAvailabilityMode] = None, plug_category_hash: Optional[int] = None, plug_category_identifier: Optional[str] = None, plug_style: Optional[bungieapi.generated.components.schemas.destiny.PlugUiStyles] = None, preview_item_override_hash: Optional[int] = None, ui_plug_label: Optional[str] = None)[source]

Bases: object

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.

alternate_plug_style: Optional[bungieapi.generated.components.schemas.destiny.PlugUiStyles] = None
alternate_ui_plug_label: Optional[str] = None
enabled_material_requirement_hash: Optional[int] = None
enabled_rules: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.items.DestinyPlugRuleDefinition]] = None
energy_capacity: Optional[bungieapi.generated.components.schemas.destiny.definitions.items.DestinyEnergyCapacityEntry] = None
energy_cost: Optional[bungieapi.generated.components.schemas.destiny.definitions.items.DestinyEnergyCostEntry] = None
insertion_material_requirement_hash: Optional[int] = None
insertion_rules: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.items.DestinyPlugRuleDefinition]] = None
is_dummy_plug: Optional[bool] = None
on_action_recreate_self: Optional[bool] = None
parent_item_override: Optional[bungieapi.generated.components.schemas.destiny.definitions.items.DestinyParentItemOverride] = None
plug_availability: Optional[bungieapi.generated.components.schemas.destiny.PlugAvailabilityMode] = None
plug_category_hash: Optional[int] = None
plug_category_identifier: Optional[str] = None
plug_style: Optional[bungieapi.generated.components.schemas.destiny.PlugUiStyles] = None
preview_item_override_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
ui_plug_label: Optional[str] = None
class bungieapi.generated.components.schemas.destiny.definitions.items.DestinyItemTierTypeDefinition(display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, hash: Optional[int] = None, index: Optional[int] = None, infusion_process: Optional[bungieapi.generated.components.schemas.destiny.definitions.items.DestinyItemTierTypeInfusionBlock] = None, redacted: Optional[bool] = None)[source]

Bases: object

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.

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
hash: Optional[int] = None
index: Optional[int] = None
infusion_process: Optional[bungieapi.generated.components.schemas.destiny.definitions.items.DestinyItemTierTypeInfusionBlock] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.items.DestinyItemTierTypeInfusionBlock(base_quality_transfer_ratio: Optional[float] = None, minimum_quality_increment: Optional[int] = None)[source]

Bases: object

base_quality_transfer_ratio: Optional[float] = None
minimum_quality_increment: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.items.DestinyParentItemOverride(additional_equip_requirements_display_strings: Optional[Sequence[str]] = None, pip_icon: Optional[str] = None)[source]

Bases: object

additional_equip_requirements_display_strings: Optional[Sequence[str]] = None
pip_icon: Optional[str] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.items.DestinyPlugRuleDefinition(failure_message: Optional[str] = None)[source]

Bases: object

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.

failure_message: Optional[str] = None
to_json() Mapping[str, Any][source]

bungieapi.generated.components.schemas.destiny.definitions.lore module

class bungieapi.generated.components.schemas.destiny.definitions.lore.DestinyLoreDefinition(display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, hash: Optional[int] = None, index: Optional[int] = None, redacted: Optional[bool] = None, subtitle: Optional[str] = None)[source]

Bases: object

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.

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
hash: Optional[int] = None
index: Optional[int] = None
redacted: Optional[bool] = None
subtitle: Optional[str] = None
to_json() Mapping[str, Any][source]

bungieapi.generated.components.schemas.destiny.definitions.metrics module

class bungieapi.generated.components.schemas.destiny.definitions.metrics.DestinyMetricDefinition(display_properties: Optional[ForwardRef('DestinyDisplayPropertiesDefinition')] = None, hash: Optional[int] = None, index: Optional[int] = None, lower_value_is_better: Optional[bool] = None, parent_node_hashes: Optional[Sequence[int]] = None, presentation_node_type: Optional[ForwardRef('DestinyPresentationNodeType')] = None, redacted: Optional[bool] = None, tracking_objective_hash: Optional[int] = None, trait_hashes: Optional[Sequence[int]] = None, trait_ids: Optional[Sequence[str]] = None)[source]

Bases: object

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
hash: Optional[int] = None
index: Optional[int] = None
lower_value_is_better: Optional[bool] = None
parent_node_hashes: Optional[Sequence[int]] = None
presentation_node_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyPresentationNodeType] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
tracking_objective_hash: Optional[int] = None
trait_hashes: Optional[Sequence[int]] = None
trait_ids: Optional[Sequence[str]] = None

bungieapi.generated.components.schemas.destiny.definitions.milestones module

class bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneActivityDefinition(conceptual_activity_hash: Optional[int] = None, variants: Optional[Mapping[str, bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneActivityVariantDefinition]] = None)[source]

Bases: object

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.

conceptual_activity_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
variants: Optional[Mapping[str, bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneActivityVariantDefinition]] = None
class bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneActivityVariantDefinition(activity_hash: Optional[int] = None, order: Optional[int] = None)[source]

Bases: object

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.

activity_hash: Optional[int] = None
order: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneChallengeActivityDefinition(activity_graph_nodes: Optional[Sequence[ForwardRef('DestinyMilestoneChallengeActivityGraphNodeEntry')]] = None, activity_hash: Optional[int] = None, challenges: Optional[Sequence[ForwardRef('DestinyMilestoneChallengeDefinition')]] = None, phases: Optional[Sequence[ForwardRef('DestinyMilestoneChallengeActivityPhase')]] = None)[source]

Bases: object

activity_graph_nodes: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneChallengeActivityGraphNodeEntry]] = None
activity_hash: Optional[int] = None
challenges: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneChallengeDefinition]] = None
phases: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneChallengeActivityPhase]] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneChallengeActivityGraphNodeEntry(activity_graph_hash: Optional[int] = None, activity_graph_node_hash: Optional[int] = None)[source]

Bases: object

activity_graph_hash: Optional[int] = None
activity_graph_node_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneChallengeActivityPhase(phase_hash: Optional[int] = None)[source]

Bases: object

phase_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneChallengeDefinition(challenge_objective_hash: Optional[int] = None)[source]

Bases: object

challenge_objective_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneDefinition(activities: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneChallengeActivityDefinition]] = None, default_order: Optional[int] = None, display_preference: Optional[bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneDisplayPreference] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, explore_prioritizes_activity_image: Optional[bool] = None, friendly_name: Optional[str] = None, has_predictable_dates: Optional[bool] = None, hash: Optional[int] = None, image: Optional[str] = None, index: Optional[int] = None, is_in_game_milestone: Optional[bool] = None, milestone_type: Optional[bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneType] = None, quests: Optional[Mapping[str, bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneQuestDefinition]] = None, recruitable: Optional[bool] = None, redacted: Optional[bool] = None, rewards: Optional[Mapping[str, bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneRewardCategoryDefinition]] = None, show_in_explorer: Optional[bool] = None, show_in_milestones: Optional[bool] = None, values: Optional[Mapping[str, bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneValueDefinition]] = None, vendors: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneVendorDefinition]] = None, vendors_display_title: Optional[str] = None)[source]

Bases: object

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.

activities: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneChallengeActivityDefinition]] = None
default_order: Optional[int] = None
display_preference: Optional[bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneDisplayPreference] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
explore_prioritizes_activity_image: Optional[bool] = None
friendly_name: Optional[str] = None
has_predictable_dates: Optional[bool] = None
hash: Optional[int] = None
image: Optional[str] = None
index: Optional[int] = None
is_in_game_milestone: Optional[bool] = None
milestone_type: Optional[bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneType] = None
quests: Optional[Mapping[str, bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneQuestDefinition]] = None
recruitable: Optional[bool] = None
redacted: Optional[bool] = None
rewards: Optional[Mapping[str, bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneRewardCategoryDefinition]] = None
show_in_explorer: Optional[bool] = None
show_in_milestones: Optional[bool] = None
to_json() Mapping[str, Any][source]
values: Optional[Mapping[str, bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneValueDefinition]] = None
vendors: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneVendorDefinition]] = None
vendors_display_title: Optional[str] = None
class bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneDisplayPreference(value)[source]

Bases: enum.Enum

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.

CURRENT_ACTIVITY_CHALLENGES = 2
CURRENT_QUEST_STEPS = 1
MILESTONE_DEFINITION = 0
class bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneQuestDefinition(activities: Optional[Mapping[str, bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneActivityDefinition]] = None, destination_hash: Optional[int] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, override_image: Optional[str] = None, quest_item_hash: Optional[int] = None, quest_rewards: Optional[bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneQuestRewardsDefinition] = None)[source]

Bases: object

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.

activities: Optional[Mapping[str, bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneActivityDefinition]] = None
destination_hash: Optional[int] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
override_image: Optional[str] = None
quest_item_hash: Optional[int] = None
quest_rewards: Optional[bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneQuestRewardsDefinition] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneQuestRewardItem(has_conditional_visibility: Optional[bool] = None, item_hash: Optional[int] = None, item_instance_id: Optional[int] = None, quantity: Optional[int] = None, vendor_hash: Optional[int] = None, vendor_item_index: Optional[int] = None)[source]

Bases: object

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.

has_conditional_visibility: Optional[bool] = None
item_hash: Optional[int] = None
item_instance_id: Optional[int] = None
quantity: Optional[int] = None
to_json() Mapping[str, Any][source]
vendor_hash: Optional[int] = None
vendor_item_index: Optional[int] = None
class bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneQuestRewardsDefinition(items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneQuestRewardItem]] = None)[source]

Bases: object

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?”

items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneQuestRewardItem]] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneRewardCategoryDefinition(category_hash: Optional[int] = None, category_identifier: Optional[str] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, order: Optional[int] = None, reward_entries: Optional[Mapping[str, bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneRewardEntryDefinition]] = None)[source]

Bases: object

The definition of a category of rewards, that contains many individual rewards.

category_hash: Optional[int] = None
category_identifier: Optional[str] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
order: Optional[int] = None
reward_entries: Optional[Mapping[str, bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneRewardEntryDefinition]] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneRewardEntryDefinition(display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.DestinyItemQuantity]] = None, order: Optional[int] = None, reward_entry_hash: Optional[int] = None, reward_entry_identifier: Optional[str] = None, vendor_hash: Optional[int] = None)[source]

Bases: object

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.

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.DestinyItemQuantity]] = None
order: Optional[int] = None
reward_entry_hash: Optional[int] = None
reward_entry_identifier: Optional[str] = None
to_json() Mapping[str, Any][source]
vendor_hash: Optional[int] = None
class bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneType(value)[source]

Bases: enum.Enum

The type of milestone.

Milestones can be Tutorials, one-time/triggered/non-repeating but not necessarily tutorials, or Repeating Milestones.

DAILY = 4
ONE_TIME = 2
SPECIAL = 5
TUTORIAL = 1
UNKNOWN = 0
WEEKLY = 3
class bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneValueDefinition(display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, key: Optional[str] = None)[source]

Bases: object

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.

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
key: Optional[str] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.milestones.DestinyMilestoneVendorDefinition(vendor_hash: Optional[int] = None)[source]

Bases: object

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.

to_json() Mapping[str, Any][source]
vendor_hash: Optional[int] = None

bungieapi.generated.components.schemas.destiny.definitions.power_caps module

class bungieapi.generated.components.schemas.destiny.definitions.power_caps.DestinyPowerCapDefinition(hash: Optional[int] = None, index: Optional[int] = None, power_cap: Optional[int] = None, redacted: Optional[bool] = None)[source]

Bases: object

Defines a ‘power cap’ (limit) for gear items, based on the rarity tier and season of release.

hash: Optional[int] = None
index: Optional[int] = None
power_cap: Optional[int] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]

bungieapi.generated.components.schemas.destiny.definitions.presentation module

class bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationChildBlock(display_style: Optional[ForwardRef('DestinyPresentationDisplayStyle')] = None, parent_presentation_node_hashes: Optional[Sequence[int]] = None, presentation_node_type: Optional[ForwardRef('DestinyPresentationNodeType')] = None)[source]

Bases: object

display_style: Optional[bungieapi.generated.components.schemas.destiny.DestinyPresentationDisplayStyle] = None
parent_presentation_node_hashes: Optional[Sequence[int]] = None
presentation_node_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyPresentationNodeType] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationNodeBaseDefinition(hash: Optional[int] = None, index: Optional[int] = None, parent_node_hashes: Optional[Sequence[int]] = None, presentation_node_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyPresentationNodeType] = None, redacted: Optional[bool] = None, trait_hashes: Optional[Sequence[int]] = None, trait_ids: Optional[Sequence[str]] = None)[source]

Bases: object

This is the base class for all presentation system children.

Presentation Nodes, Records, Collectibles, and Metrics.

hash: Optional[int] = None
index: Optional[int] = None
parent_node_hashes: Optional[Sequence[int]] = None
presentation_node_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyPresentationNodeType] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
trait_hashes: Optional[Sequence[int]] = None
trait_ids: Optional[Sequence[str]] = None
class bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationNodeChildEntry(presentation_node_hash: Optional[int] = None)[source]

Bases: object

presentation_node_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationNodeChildrenBlock(collectibles: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationNodeCollectibleChildEntry]] = None, metrics: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationNodeMetricChildEntry]] = None, presentation_nodes: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationNodeChildEntry]] = None, records: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationNodeRecordChildEntry]] = None)[source]

Bases: object

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)

collectibles: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationNodeCollectibleChildEntry]] = None
metrics: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationNodeMetricChildEntry]] = None
presentation_nodes: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationNodeChildEntry]] = None
records: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationNodeRecordChildEntry]] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationNodeCollectibleChildEntry(collectible_hash: Optional[int] = None)[source]

Bases: object

collectible_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationNodeDefinition(children: Optional[bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationNodeChildrenBlock] = None, completion_record_hash: Optional[int] = None, disable_child_subscreen_navigation: Optional[bool] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, display_style: Optional[bungieapi.generated.components.schemas.destiny.DestinyPresentationDisplayStyle] = None, hash: Optional[int] = None, index: Optional[int] = None, max_category_record_score: Optional[int] = None, node_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyPresentationNodeType] = None, objective_hash: Optional[int] = None, original_icon: Optional[str] = None, parent_node_hashes: Optional[Sequence[int]] = None, presentation_node_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyPresentationNodeType] = None, redacted: Optional[bool] = None, requirements: Optional[bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationNodeRequirementsBlock] = None, root_view_icon: Optional[str] = None, scope: Optional[bungieapi.generated.components.schemas.destiny.DestinyScope] = None, screen_style: Optional[bungieapi.generated.components.schemas.destiny.DestinyPresentationScreenStyle] = None, trait_hashes: Optional[Sequence[int]] = None, trait_ids: Optional[Sequence[str]] = None)[source]

Bases: object

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.

children: Optional[bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationNodeChildrenBlock] = None
completion_record_hash: Optional[int] = None
disable_child_subscreen_navigation: Optional[bool] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
display_style: Optional[bungieapi.generated.components.schemas.destiny.DestinyPresentationDisplayStyle] = None
hash: Optional[int] = None
index: Optional[int] = None
max_category_record_score: Optional[int] = None
node_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyPresentationNodeType] = None
objective_hash: Optional[int] = None
original_icon: Optional[str] = None
parent_node_hashes: Optional[Sequence[int]] = None
presentation_node_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyPresentationNodeType] = None
redacted: Optional[bool] = None
requirements: Optional[bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationNodeRequirementsBlock] = None
root_view_icon: Optional[str] = None
scope: Optional[bungieapi.generated.components.schemas.destiny.DestinyScope] = None
screen_style: Optional[bungieapi.generated.components.schemas.destiny.DestinyPresentationScreenStyle] = None
to_json() Mapping[str, Any][source]
trait_hashes: Optional[Sequence[int]] = None
trait_ids: Optional[Sequence[str]] = None
class bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationNodeMetricChildEntry(metric_hash: Optional[int] = None)[source]

Bases: object

metric_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationNodeRecordChildEntry(record_hash: Optional[int] = None)[source]

Bases: object

record_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationNodeRequirementsBlock(entitlement_unavailable_message: Optional[str] = None)[source]

Bases: object

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.

entitlement_unavailable_message: Optional[str] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyScoredPresentationNodeBaseDefinition(hash: Optional[int] = None, index: Optional[int] = None, max_category_record_score: Optional[int] = None, parent_node_hashes: Optional[Sequence[int]] = None, presentation_node_type: Optional[ForwardRef('DestinyPresentationNodeType')] = None, redacted: Optional[bool] = None, trait_hashes: Optional[Sequence[int]] = None, trait_ids: Optional[Sequence[str]] = None)[source]

Bases: object

hash: Optional[int] = None
index: Optional[int] = None
max_category_record_score: Optional[int] = None
parent_node_hashes: Optional[Sequence[int]] = None
presentation_node_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyPresentationNodeType] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
trait_hashes: Optional[Sequence[int]] = None
trait_ids: Optional[Sequence[str]] = None

bungieapi.generated.components.schemas.destiny.definitions.progression module

class bungieapi.generated.components.schemas.destiny.definitions.progression.DestinyProgressionLevelRequirementDefinition(hash: Optional[int] = None, index: Optional[int] = None, progression_hash: Optional[int] = None, redacted: Optional[bool] = None, requirement_curve: Optional[Sequence[bungieapi.generated.components.schemas.interpolation.InterpolationPointFloat]] = None)[source]

Bases: object

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.

hash: Optional[int] = None
index: Optional[int] = None
progression_hash: Optional[int] = None
redacted: Optional[bool] = None
requirement_curve: Optional[Sequence[bungieapi.generated.components.schemas.interpolation.InterpolationPointFloat]] = None
to_json() Mapping[str, Any][source]

bungieapi.generated.components.schemas.destiny.definitions.records module

class bungieapi.generated.components.schemas.destiny.definitions.records.DestinyRecordCompletionBlock(score_value: Optional[int] = None, partial_completion_objective_count_threshold: Optional[int] = None, should_fire_toast: Optional[bool] = None, toast_style: Optional[ForwardRef('DestinyRecordToastStyle')] = None)[source]

Bases: object

partial_completion_objective_count_threshold: Optional[int] = None
score_value: Optional[int] = None
should_fire_toast: Optional[bool] = None
to_json() Mapping[str, Any][source]
toast_style: Optional[bungieapi.generated.components.schemas.destiny.DestinyRecordToastStyle] = None
class bungieapi.generated.components.schemas.destiny.definitions.records.DestinyRecordDefinition(completion_info: Optional[ForwardRef('DestinyRecordCompletionBlock')] = None, display_properties: Optional[ForwardRef('DestinyDisplayPropertiesDefinition')] = None, expiration_info: Optional[ForwardRef('DestinyRecordExpirationBlock')] = None, for_title_gilding: Optional[bool] = None, hash: Optional[int] = None, index: Optional[int] = None, interval_info: Optional[ForwardRef('DestinyRecordIntervalBlock')] = None, lore_hash: Optional[int] = None, objective_hashes: Optional[Sequence[int]] = None, parent_node_hashes: Optional[Sequence[int]] = None, presentation_info: Optional[ForwardRef('DestinyPresentationChildBlock')] = None, presentation_node_type: Optional[ForwardRef('DestinyPresentationNodeType')] = None, record_value_style: Optional[ForwardRef('DestinyRecordValueStyle')] = None, redacted: Optional[bool] = None, requirements: Optional[ForwardRef('DestinyPresentationNodeRequirementsBlock')] = None, reward_items: Optional[Sequence[ForwardRef('DestinyItemQuantity')]] = None, scope: Optional[ForwardRef('DestinyScope')] = None, state_info: Optional[ForwardRef('SchemaRecordStateBlock')] = None, title_info: Optional[ForwardRef('DestinyRecordTitleBlock')] = None, trait_hashes: Optional[Sequence[int]] = None, trait_ids: Optional[Sequence[str]] = None)[source]

Bases: object

completion_info: Optional[bungieapi.generated.components.schemas.destiny.definitions.records.DestinyRecordCompletionBlock] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
expiration_info: Optional[bungieapi.generated.components.schemas.destiny.definitions.records.DestinyRecordExpirationBlock] = None
for_title_gilding: Optional[bool] = None
hash: Optional[int] = None
index: Optional[int] = None
interval_info: Optional[bungieapi.generated.components.schemas.destiny.definitions.records.DestinyRecordIntervalBlock] = None
lore_hash: Optional[int] = None
objective_hashes: Optional[Sequence[int]] = None
parent_node_hashes: Optional[Sequence[int]] = None
presentation_info: Optional[bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationChildBlock] = None
presentation_node_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyPresentationNodeType] = None
record_value_style: Optional[bungieapi.generated.components.schemas.destiny.DestinyRecordValueStyle] = None
redacted: Optional[bool] = None
requirements: Optional[bungieapi.generated.components.schemas.destiny.definitions.presentation.DestinyPresentationNodeRequirementsBlock] = None
reward_items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.DestinyItemQuantity]] = None
scope: Optional[bungieapi.generated.components.schemas.destiny.DestinyScope] = None
state_info: Optional[bungieapi.generated.components.schemas.destiny.definitions.records.SchemaRecordStateBlock] = None
title_info: Optional[bungieapi.generated.components.schemas.destiny.definitions.records.DestinyRecordTitleBlock] = None
to_json() Mapping[str, Any][source]
trait_hashes: Optional[Sequence[int]] = None
trait_ids: Optional[Sequence[str]] = None
class bungieapi.generated.components.schemas.destiny.definitions.records.DestinyRecordExpirationBlock(description: Optional[str] = None, has_expiration: Optional[bool] = None, icon: Optional[str] = None)[source]

Bases: object

If this record has an expiration after which it cannot be earned, this is some information about that expiration.

description: Optional[str] = None
has_expiration: Optional[bool] = None
icon: Optional[str] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.records.DestinyRecordIntervalBlock(interval_objectives: Optional[Sequence[ForwardRef('DestinyRecordIntervalObjective')]] = None, interval_rewards: Optional[Sequence[ForwardRef('DestinyRecordIntervalRewards')]] = None, original_objective_array_insertion_index: Optional[int] = None)[source]

Bases: object

interval_objectives: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.records.DestinyRecordIntervalObjective]] = None
interval_rewards: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.records.DestinyRecordIntervalRewards]] = None
original_objective_array_insertion_index: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.records.DestinyRecordIntervalObjective(interval_objective_hash: Optional[int] = None, interval_score_value: Optional[int] = None)[source]

Bases: object

interval_objective_hash: Optional[int] = None
interval_score_value: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.records.DestinyRecordIntervalRewards(interval_reward_items: Optional[Sequence[ForwardRef('DestinyItemQuantity')]] = None)[source]

Bases: object

interval_reward_items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.DestinyItemQuantity]] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.records.DestinyRecordTitleBlock(gilding_tracking_record_hash: Optional[int] = None, has_title: Optional[bool] = None, titles_by_gender: Optional[Mapping[str, str]] = None, titles_by_gender_hash: Optional[Mapping[str, str]] = None)[source]

Bases: object

gilding_tracking_record_hash: Optional[int] = None
has_title: Optional[bool] = None
titles_by_gender: Optional[Mapping[str, str]] = None
titles_by_gender_hash: Optional[Mapping[str, str]] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.records.SchemaRecordStateBlock(featured_priority: Optional[int] = None, obscured_string: Optional[str] = None)[source]

Bases: object

featured_priority: Optional[int] = None
obscured_string: Optional[str] = None
to_json() Mapping[str, Any][source]

bungieapi.generated.components.schemas.destiny.definitions.reporting module

class bungieapi.generated.components.schemas.destiny.definitions.reporting.DestinyReportReasonCategoryDefinition(display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, hash: Optional[int] = None, index: Optional[int] = None, reasons: Optional[Mapping[str, bungieapi.generated.components.schemas.destiny.definitions.reporting.DestinyReportReasonDefinition]] = None, redacted: Optional[bool] = None)[source]

Bases: object

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.

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
hash: Optional[int] = None
index: Optional[int] = None
reasons: Optional[Mapping[str, bungieapi.generated.components.schemas.destiny.definitions.reporting.DestinyReportReasonDefinition]] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.reporting.DestinyReportReasonDefinition(display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, reason_hash: Optional[int] = None)[source]

Bases: object

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.

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
reason_hash: Optional[int] = None
to_json() Mapping[str, Any][source]

bungieapi.generated.components.schemas.destiny.definitions.seasons module

class bungieapi.generated.components.schemas.destiny.definitions.seasons.DestinySeasonDefinition(artifact_item_hash: Optional[int] = None, background_image_path: Optional[str] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, end_date: Optional[str] = None, hash: Optional[int] = None, index: Optional[int] = None, preview: Optional[bungieapi.generated.components.schemas.destiny.definitions.seasons.DestinySeasonPreviewDefinition] = None, redacted: Optional[bool] = None, seal_presentation_node_hash: Optional[int] = None, season_number: Optional[int] = None, season_pass_hash: Optional[int] = None, season_pass_progression_hash: Optional[int] = None, seasonal_challenges_presentation_node_hash: Optional[int] = None, start_date: Optional[str] = None)[source]

Bases: object

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.

artifact_item_hash: Optional[int] = None
background_image_path: Optional[str] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
end_date: Optional[str] = None
hash: Optional[int] = None
index: Optional[int] = None
preview: Optional[bungieapi.generated.components.schemas.destiny.definitions.seasons.DestinySeasonPreviewDefinition] = None
redacted: Optional[bool] = None
seal_presentation_node_hash: Optional[int] = None
season_number: Optional[int] = None
season_pass_hash: Optional[int] = None
season_pass_progression_hash: Optional[int] = None
seasonal_challenges_presentation_node_hash: Optional[int] = None
start_date: Optional[str] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.seasons.DestinySeasonPassDefinition(display_properties: Optional[ForwardRef('DestinyDisplayPropertiesDefinition')] = None, hash: Optional[int] = None, index: Optional[int] = None, prestige_progression_hash: Optional[int] = None, redacted: Optional[bool] = None, reward_progression_hash: Optional[int] = None)[source]

Bases: object

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
hash: Optional[int] = None
index: Optional[int] = None
prestige_progression_hash: Optional[int] = None
redacted: Optional[bool] = None
reward_progression_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.seasons.DestinySeasonPreviewDefinition(description: Optional[str] = None, images: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.seasons.DestinySeasonPreviewImageDefinition]] = None, link_path: Optional[str] = None, video_link: Optional[str] = None)[source]

Bases: object

Defines the promotional text, images, and links to preview this season.

description: Optional[str] = None
images: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.seasons.DestinySeasonPreviewImageDefinition]] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.seasons.DestinySeasonPreviewImageDefinition(high_res_image: Optional[str] = None, thumbnail_image: Optional[str] = None)[source]

Bases: object

Defines the thumbnail icon, high-res image, and video link for promotional images.

high_res_image: Optional[str] = None
thumbnail_image: Optional[str] = None
to_json() Mapping[str, Any][source]

bungieapi.generated.components.schemas.destiny.definitions.sockets module

class bungieapi.generated.components.schemas.destiny.definitions.sockets.DestinyInsertPlugActionDefinition(action_execute_seconds: Optional[int] = None, action_type: Optional[bungieapi.generated.components.schemas.destiny.SocketTypeActionType] = None)[source]

Bases: object

Data related to what happens while a plug is being inserted, mostly for UI purposes.

action_execute_seconds: Optional[int] = None
action_type: Optional[bungieapi.generated.components.schemas.destiny.SocketTypeActionType] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.sockets.DestinyPlugSetDefinition(display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, hash: Optional[int] = None, index: Optional[int] = None, is_fake_plug_set: Optional[bool] = None, redacted: Optional[bool] = None, reusable_plug_items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSocketEntryPlugItemRandomizedDefinition]] = None)[source]

Bases: object

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.

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
hash: Optional[int] = None
index: Optional[int] = None
is_fake_plug_set: Optional[bool] = None
redacted: Optional[bool] = None
reusable_plug_items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSocketEntryPlugItemRandomizedDefinition]] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.sockets.DestinyPlugWhitelistEntryDefinition(category_hash: Optional[int] = None, category_identifier: Optional[str] = None, reinitialization_possible_plug_hashes: Optional[Sequence[int]] = None)[source]

Bases: object

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.

category_hash: Optional[int] = None
category_identifier: Optional[str] = None
reinitialization_possible_plug_hashes: Optional[Sequence[int]] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.sockets.DestinySocketCategoryDefinition(category_style: Optional[bungieapi.generated.components.schemas.destiny.DestinySocketCategoryStyle] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, hash: Optional[int] = None, index: Optional[int] = None, redacted: Optional[bool] = None, ui_category_style: Optional[int] = None)[source]

Bases: object

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)

category_style: Optional[bungieapi.generated.components.schemas.destiny.DestinySocketCategoryStyle] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
hash: Optional[int] = None
index: Optional[int] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
ui_category_style: Optional[int] = None
class bungieapi.generated.components.schemas.destiny.definitions.sockets.DestinySocketTypeDefinition(always_randomize_sockets: Optional[bool] = None, avoid_duplicates_on_initialization: Optional[bool] = None, currency_scalars: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.sockets.DestinySocketTypeScalarMaterialRequirementEntry]] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, hash: Optional[int] = None, hide_duplicate_reusable_plugs: Optional[bool] = None, index: Optional[int] = None, insert_action: Optional[bungieapi.generated.components.schemas.destiny.definitions.sockets.DestinyInsertPlugActionDefinition] = None, is_preview_enabled: Optional[bool] = None, overrides_ui_appearance: Optional[bool] = None, plug_whitelist: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.sockets.DestinyPlugWhitelistEntryDefinition]] = None, redacted: Optional[bool] = None, socket_category_hash: Optional[int] = None, visibility: Optional[bungieapi.generated.components.schemas.destiny.DestinySocketVisibility] = None)[source]

Bases: object

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.

always_randomize_sockets: Optional[bool] = None
avoid_duplicates_on_initialization: Optional[bool] = None
currency_scalars: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.sockets.DestinySocketTypeScalarMaterialRequirementEntry]] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
hash: Optional[int] = None
hide_duplicate_reusable_plugs: Optional[bool] = None
index: Optional[int] = None
insert_action: Optional[bungieapi.generated.components.schemas.destiny.definitions.sockets.DestinyInsertPlugActionDefinition] = None
is_preview_enabled: Optional[bool] = None
overrides_ui_appearance: Optional[bool] = None
plug_whitelist: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.sockets.DestinyPlugWhitelistEntryDefinition]] = None
redacted: Optional[bool] = None
socket_category_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
visibility: Optional[bungieapi.generated.components.schemas.destiny.DestinySocketVisibility] = None
class bungieapi.generated.components.schemas.destiny.definitions.sockets.DestinySocketTypeScalarMaterialRequirementEntry(currency_item_hash: Optional[int] = None, scalar_value: Optional[int] = None)[source]

Bases: object

currency_item_hash: Optional[int] = None
scalar_value: Optional[int] = None
to_json() Mapping[str, Any][source]

bungieapi.generated.components.schemas.destiny.definitions.sources module

class bungieapi.generated.components.schemas.destiny.definitions.sources.DestinyItemSourceDefinition(computed_stats: Optional[Mapping[str, bungieapi.generated.components.schemas.destiny.definitions.DestinyInventoryItemStatDefinition]] = None, level: Optional[int] = None, max_level_required: Optional[int] = None, max_quality: Optional[int] = None, min_level_required: Optional[int] = None, min_quality: Optional[int] = None, source_hashes: Optional[Sequence[int]] = None)[source]

Bases: object

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.

computed_stats: Optional[Mapping[str, bungieapi.generated.components.schemas.destiny.definitions.DestinyInventoryItemStatDefinition]] = None
level: Optional[int] = None
max_level_required: Optional[int] = None
max_quality: Optional[int] = None
min_level_required: Optional[int] = None
min_quality: Optional[int] = None
source_hashes: Optional[Sequence[int]] = None
to_json() Mapping[str, Any][source]

bungieapi.generated.components.schemas.destiny.definitions.traits module

class bungieapi.generated.components.schemas.destiny.definitions.traits.DestinyTraitCategoryDefinition(hash: Optional[int] = None, index: Optional[int] = None, redacted: Optional[bool] = None, trait_category_id: Optional[str] = None, trait_hashes: Optional[Sequence[int]] = None, trait_ids: Optional[Sequence[str]] = None)[source]

Bases: object

hash: Optional[int] = None
index: Optional[int] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
trait_category_id: Optional[str] = None
trait_hashes: Optional[Sequence[int]] = None
trait_ids: Optional[Sequence[str]] = None
class bungieapi.generated.components.schemas.destiny.definitions.traits.DestinyTraitDefinition(display_properties: Optional[ForwardRef('DestinyDisplayPropertiesDefinition')] = None, hash: Optional[int] = None, index: Optional[int] = None, redacted: Optional[bool] = None, trait_category_hash: Optional[int] = None, trait_category_id: Optional[str] = None)[source]

Bases: object

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
hash: Optional[int] = None
index: Optional[int] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
trait_category_hash: Optional[int] = None
trait_category_id: Optional[str] = None

bungieapi.generated.components.schemas.destiny.definitions.vendors module

class bungieapi.generated.components.schemas.destiny.definitions.vendors.DestinyVendorLocationDefinition(background_image_path: Optional[str] = None, destination_hash: Optional[int] = None)[source]

Bases: object

These definitions represent vendors’ locations and relevant display information at different times in the game.

background_image_path: Optional[str] = None
destination_hash: Optional[int] = None
to_json() Mapping[str, Any][source]

Module contents

class bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityChallengeDefinition(dummy_rewards: Optional[Sequence[bungieapi.generated.components.schemas.destiny.DestinyItemQuantity]] = None, objective_hash: Optional[int] = None)[source]

Bases: object

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

dummy_rewards: Optional[Sequence[bungieapi.generated.components.schemas.destiny.DestinyItemQuantity]] = None
objective_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityDefinition(activity_graph_list: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityGraphListEntryDefinition]] = None, activity_light_level: Optional[int] = None, activity_location_mappings: Optional[Sequence[bungieapi.generated.components.schemas.destiny.constants.DestinyEnvironmentLocationMapping]] = None, activity_mode_hashes: Optional[Sequence[int]] = None, activity_mode_types: Optional[Sequence[bungieapi.generated.components.schemas.destiny.historical_stats.definitions.DestinyActivityModeType]] = None, activity_type_hash: Optional[int] = None, challenges: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityChallengeDefinition]] = None, destination_hash: Optional[int] = None, direct_activity_mode_hash: Optional[int] = None, direct_activity_mode_type: Optional[int] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, guided_game: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityGuidedBlockDefinition] = None, hash: Optional[int] = None, index: Optional[int] = None, insertion_points: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityInsertionPointDefinition]] = None, is_playlist: Optional[bool] = None, is_pv_p: Optional[bool] = None, loadouts: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityLoadoutRequirementSet]] = None, matchmaking: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityMatchmakingBlockDefinition] = None, modifiers: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityModifierReferenceDefinition]] = None, optional_unlock_strings: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityUnlockStringDefinition]] = None, original_display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, pgcr_image: Optional[str] = None, place_hash: Optional[int] = None, playlist_items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityPlaylistItemDefinition]] = None, redacted: Optional[bool] = None, release_icon: Optional[str] = None, release_time: Optional[int] = None, rewards: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityRewardDefinition]] = None, selection_screen_display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, tier: Optional[int] = None)[source]

Bases: object

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.

activity_graph_list: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityGraphListEntryDefinition]] = None
activity_light_level: Optional[int] = None
activity_location_mappings: Optional[Sequence[bungieapi.generated.components.schemas.destiny.constants.DestinyEnvironmentLocationMapping]] = None
activity_mode_hashes: Optional[Sequence[int]] = None
activity_mode_types: Optional[Sequence[bungieapi.generated.components.schemas.destiny.historical_stats.definitions.DestinyActivityModeType]] = None
activity_type_hash: Optional[int] = None
challenges: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityChallengeDefinition]] = None
destination_hash: Optional[int] = None
direct_activity_mode_hash: Optional[int] = None
direct_activity_mode_type: Optional[int] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
guided_game: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityGuidedBlockDefinition] = None
hash: Optional[int] = None
index: Optional[int] = None
insertion_points: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityInsertionPointDefinition]] = None
is_playlist: Optional[bool] = None
is_pv_p: Optional[bool] = None
loadouts: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityLoadoutRequirementSet]] = None
matchmaking: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityMatchmakingBlockDefinition] = None
modifiers: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityModifierReferenceDefinition]] = None
optional_unlock_strings: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityUnlockStringDefinition]] = None
original_display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
pgcr_image: Optional[str] = None
place_hash: Optional[int] = None
playlist_items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityPlaylistItemDefinition]] = None
redacted: Optional[bool] = None
release_icon: Optional[str] = None
release_time: Optional[int] = None
rewards: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityRewardDefinition]] = None
selection_screen_display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
tier: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityGraphListEntryDefinition(activity_graph_hash: Optional[int] = None)[source]

Bases: object

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.

activity_graph_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityGuidedBlockDefinition(guided_disband_count: Optional[int] = None, guided_max_lobby_size: Optional[int] = None, guided_min_lobby_size: Optional[int] = None)[source]

Bases: object

Guided Game information for this activity.

guided_disband_count: Optional[int] = None
guided_max_lobby_size: Optional[int] = None
guided_min_lobby_size: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityInsertionPointDefinition(phase_hash: Optional[int] = None)[source]

Bases: object

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.

phase_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityLoadoutRequirement(allowed_equipped_item_hashes: Optional[Sequence[int]] = None, allowed_weapon_sub_types: Optional[Sequence[ForwardRef('DestinyItemSubType')]] = None, equipment_slot_hash: Optional[int] = None)[source]

Bases: object

allowed_equipped_item_hashes: Optional[Sequence[int]] = None
allowed_weapon_sub_types: Optional[Sequence[bungieapi.generated.components.schemas.destiny.DestinyItemSubType]] = None
equipment_slot_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityLoadoutRequirementSet(requirements: Optional[Sequence[ForwardRef('DestinyActivityLoadoutRequirement')]] = None)[source]

Bases: object

requirements: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityLoadoutRequirement]] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityMatchmakingBlockDefinition(is_matchmade: Optional[bool] = None, max_party: Optional[int] = None, max_players: Optional[int] = None, min_party: Optional[int] = None, requires_guardian_oath: Optional[bool] = None)[source]

Bases: object

Information about matchmaking and party size for the activity.

is_matchmade: Optional[bool] = None
max_party: Optional[int] = None
max_players: Optional[int] = None
min_party: Optional[int] = None
requires_guardian_oath: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityModeDefinition(activity_mode_category: Optional[bungieapi.generated.components.schemas.destiny.DestinyActivityModeCategory] = None, activity_mode_mappings: Optional[Mapping[str, bungieapi.generated.components.schemas.destiny.historical_stats.definitions.DestinyActivityModeType]] = None, display: Optional[bool] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, friendly_name: Optional[str] = None, hash: Optional[int] = None, index: Optional[int] = None, is_aggregate_mode: Optional[bool] = None, is_team_based: Optional[bool] = None, mode_type: Optional[bungieapi.generated.components.schemas.destiny.historical_stats.definitions.DestinyActivityModeType] = None, order: Optional[int] = None, parent_hashes: Optional[Sequence[int]] = None, pgcr_image: Optional[str] = None, redacted: Optional[bool] = None)[source]

Bases: object

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.

activity_mode_category: Optional[bungieapi.generated.components.schemas.destiny.DestinyActivityModeCategory] = None
activity_mode_mappings: Optional[Mapping[str, bungieapi.generated.components.schemas.destiny.historical_stats.definitions.DestinyActivityModeType]] = None
display: Optional[bool] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
friendly_name: Optional[str] = None
hash: Optional[int] = None
index: Optional[int] = None
is_aggregate_mode: Optional[bool] = None
is_team_based: Optional[bool] = None
mode_type: Optional[bungieapi.generated.components.schemas.destiny.historical_stats.definitions.DestinyActivityModeType] = None
order: Optional[int] = None
parent_hashes: Optional[Sequence[int]] = None
pgcr_image: Optional[str] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityModifierReferenceDefinition(activity_modifier_hash: Optional[int] = None)[source]

Bases: object

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

This defines some

activity_modifier_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityPlaylistItemDefinition(activity_hash: Optional[int] = None, activity_mode_hashes: Optional[Sequence[int]] = None, activity_mode_types: Optional[Sequence[bungieapi.generated.components.schemas.destiny.historical_stats.definitions.DestinyActivityModeType]] = None, direct_activity_mode_hash: Optional[int] = None, direct_activity_mode_type: Optional[int] = None)[source]

Bases: object

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.

activity_hash: Optional[int] = None
activity_mode_hashes: Optional[Sequence[int]] = None
activity_mode_types: Optional[Sequence[bungieapi.generated.components.schemas.destiny.historical_stats.definitions.DestinyActivityModeType]] = None
direct_activity_mode_hash: Optional[int] = None
direct_activity_mode_type: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityRewardDefinition(reward_items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.DestinyItemQuantity]] = None, reward_text: Optional[str] = None)[source]

Bases: object

Activities can refer to one or more sets of tooltip-friendly reward data.

These are the definitions for those tooltip friendly rewards.

reward_items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.DestinyItemQuantity]] = None
reward_text: Optional[str] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityTypeDefinition(display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, hash: Optional[int] = None, index: Optional[int] = None, redacted: Optional[bool] = None)[source]

Bases: object

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.

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
hash: Optional[int] = None
index: Optional[int] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityUnlockStringDefinition(display_string: Optional[str] = None)[source]

Bases: object

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.

display_string: Optional[str] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyArtDyeReference(art_dye_channel_hash: Optional[int] = None)[source]

Bases: object

art_dye_channel_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyBubbleDefinition(display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, hash: Optional[int] = None)[source]

Bases: object

Basic identifying data about the bubble.

Combine with DestinyDestinationBubbleSettingDefinition - see DestinyDestinationDefinition.bubbleSettings for more information.

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyClassDefinition(class_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyClass] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, gendered_class_names: Optional[Mapping[str, str]] = None, gendered_class_names_by_gender_hash: Optional[Mapping[str, str]] = None, hash: Optional[int] = None, index: Optional[int] = None, mentor_vendor_hash: Optional[int] = None, redacted: Optional[bool] = None)[source]

Bases: object

Defines a Character Class in Destiny 2.

These are types of characters you can play, like Titan, Warlock, and Hunter.

class_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyClass] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
gendered_class_names: Optional[Mapping[str, str]] = None
gendered_class_names_by_gender_hash: Optional[Mapping[str, str]] = None
hash: Optional[int] = None
index: Optional[int] = None
mentor_vendor_hash: Optional[int] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyDamageTypeDefinition(display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, enum_value: Optional[bungieapi.generated.components.schemas.destiny.DamageType] = None, hash: Optional[int] = None, index: Optional[int] = None, redacted: Optional[bool] = None, show_icon: Optional[bool] = None, transparent_icon_path: Optional[str] = None)[source]

Bases: object

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

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
enum_value: Optional[bungieapi.generated.components.schemas.destiny.DamageType] = None
hash: Optional[int] = None
index: Optional[int] = None
redacted: Optional[bool] = None
show_icon: Optional[bool] = None
to_json() Mapping[str, Any][source]
transparent_icon_path: Optional[str] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyDefinition(hash: Optional[int] = None, index: Optional[int] = None, redacted: Optional[bool] = None)[source]

Bases: object

Provides common properties for destiny definitions.

hash: Optional[int] = None
index: Optional[int] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyDestinationBubbleSettingDefinition(display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None)[source]

Bases: object

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

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyDestinationDefinition(activity_graph_entries: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityGraphListEntryDefinition]] = None, bubble_settings: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyDestinationBubbleSettingDefinition]] = None, bubbles: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyBubbleDefinition]] = None, default_freeroam_activity_hash: Optional[int] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, hash: Optional[int] = None, index: Optional[int] = None, place_hash: Optional[int] = None, redacted: Optional[bool] = None)[source]

Bases: object

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).

activity_graph_entries: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyActivityGraphListEntryDefinition]] = None
bubble_settings: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyDestinationBubbleSettingDefinition]] = None
bubbles: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyBubbleDefinition]] = None
default_freeroam_activity_hash: Optional[int] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
hash: Optional[int] = None
index: Optional[int] = None
place_hash: Optional[int] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyDisplayCategoryDefinition(display_category_hash: Optional[int] = None, display_in_banner: Optional[bool] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, display_style_hash: Optional[int] = None, display_style_identifier: Optional[str] = None, identifier: Optional[str] = None, index: Optional[int] = None, progression_hash: Optional[int] = None, sort_order: Optional[bungieapi.generated.components.schemas.destiny.VendorDisplayCategorySortOrder] = None)[source]

Bases: object

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.

display_category_hash: Optional[int] = None
display_in_banner: Optional[bool] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
display_style_hash: Optional[int] = None
display_style_identifier: Optional[str] = None
identifier: Optional[str] = None
index: Optional[int] = None
progression_hash: Optional[int] = None
sort_order: Optional[bungieapi.generated.components.schemas.destiny.VendorDisplayCategorySortOrder] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyEntitySearchResult(results: Optional[bungieapi.generated.components.schemas.SearchResultOfDestinyEntitySearchResultItem] = None, suggested_words: Optional[Sequence[str]] = None)[source]

Bases: object

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.

results: Optional[bungieapi.generated.components.schemas.SearchResultOfDestinyEntitySearchResultItem] = None
suggested_words: Optional[Sequence[str]] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyEntitySearchResultItem(display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, entity_type: Optional[str] = None, hash: Optional[int] = None, weight: Optional[float] = None)[source]

Bases: object

An individual Destiny Entity returned from the entity search.

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
entity_type: Optional[str] = None
hash: Optional[int] = None
to_json() Mapping[str, Any][source]
weight: Optional[float] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyEquipmentSlotDefinition(apply_custom_art_dyes: Optional[bool] = None, art_dye_channels: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyArtDyeReference]] = None, bucket_type_hash: Optional[int] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, equipment_category_hash: Optional[int] = None, hash: Optional[int] = None, index: Optional[int] = None, redacted: Optional[bool] = None)[source]

Bases: object

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.

apply_custom_art_dyes: Optional[bool] = None
art_dye_channels: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyArtDyeReference]] = None
bucket_type_hash: Optional[int] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
equipment_category_hash: Optional[int] = None
hash: Optional[int] = None
index: Optional[int] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyEquippingBlockDefinition(ammo_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyAmmunitionType] = None, attributes: Optional[bungieapi.generated.components.schemas.destiny.EquippingItemBlockAttributes] = None, display_strings: Optional[Sequence[str]] = None, equipment_slot_type_hash: Optional[int] = None, gearset_item_hash: Optional[int] = None, unique_label: Optional[str] = None, unique_label_hash: Optional[int] = None)[source]

Bases: object

Items that can be equipped define this block.

It contains information we need to understand how and when the item can be equipped.

ammo_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyAmmunitionType] = None
attributes: Optional[bungieapi.generated.components.schemas.destiny.EquippingItemBlockAttributes] = None
display_strings: Optional[Sequence[str]] = None
equipment_slot_type_hash: Optional[int] = None
gearset_item_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
unique_label: Optional[str] = None
unique_label_hash: Optional[int] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyFactionDefinition(display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, hash: Optional[int] = None, index: Optional[int] = None, progression_hash: Optional[int] = None, redacted: Optional[bool] = None, reward_item_hash: Optional[int] = None, reward_vendor_hash: Optional[int] = None, token_values: Optional[Mapping[str, int]] = None, vendors: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyFactionVendorDefinition]] = None)[source]

Bases: object

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.

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
hash: Optional[int] = None
index: Optional[int] = None
progression_hash: Optional[int] = None
redacted: Optional[bool] = None
reward_item_hash: Optional[int] = None
reward_vendor_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
token_values: Optional[Mapping[str, int]] = None
vendors: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyFactionVendorDefinition]] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyFactionVendorDefinition(background_image_path: Optional[str] = None, destination_hash: Optional[int] = None, vendor_hash: Optional[int] = None)[source]

Bases: object

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.

background_image_path: Optional[str] = None
destination_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
vendor_hash: Optional[int] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyGearArtArrangementReference(art_arrangement_hash: Optional[int] = None, class_hash: Optional[int] = None)[source]

Bases: object

art_arrangement_hash: Optional[int] = None
class_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyGenderDefinition(display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, gender_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyGender] = None, hash: Optional[int] = None, index: Optional[int] = None, redacted: Optional[bool] = None)[source]

Bases: object

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.

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
gender_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyGender] = None
hash: Optional[int] = None
index: Optional[int] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyInventoryBucketDefinition(bucket_order: Optional[int] = None, category: Optional[bungieapi.generated.components.schemas.destiny.BucketCategory] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, enabled: Optional[bool] = None, fifo: Optional[bool] = None, has_transfer_destination: Optional[bool] = None, hash: Optional[int] = None, index: Optional[int] = None, item_count: Optional[int] = None, location: Optional[bungieapi.generated.components.schemas.destiny.ItemLocation] = None, redacted: Optional[bool] = None, scope: Optional[bungieapi.generated.components.schemas.destiny.BucketScope] = None)[source]

Bases: object

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.

bucket_order: Optional[int] = None
category: Optional[bungieapi.generated.components.schemas.destiny.BucketCategory] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
enabled: Optional[bool] = None
fifo: Optional[bool] = None
has_transfer_destination: Optional[bool] = None
hash: Optional[int] = None
index: Optional[int] = None
item_count: Optional[int] = None
location: Optional[bungieapi.generated.components.schemas.destiny.ItemLocation] = None
redacted: Optional[bool] = None
scope: Optional[bungieapi.generated.components.schemas.destiny.BucketScope] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyInventoryItemDefinition(action: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemActionBlockDefinition] = None, allow_actions: Optional[bool] = None, animations: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.animations.DestinyAnimationReference]] = None, background_color: Optional[bungieapi.generated.components.schemas.destiny.misc.DestinyColor] = None, breaker_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyBreakerType] = None, breaker_type_hash: Optional[int] = None, class_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyClass] = None, collectible_hash: Optional[int] = None, damage_type_hashes: Optional[Sequence[int]] = None, damage_types: Optional[Sequence[bungieapi.generated.components.schemas.destiny.DamageType]] = None, default_damage_type: Optional[bungieapi.generated.components.schemas.destiny.DamageType] = None, default_damage_type_hash: Optional[int] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, display_source: Optional[str] = None, does_postmaster_pull_have_side_effects: Optional[bool] = None, emblem_objective_hash: Optional[int] = None, equippable: Optional[bool] = None, equipping_block: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyEquippingBlockDefinition] = None, flavor_text: Optional[str] = None, gearset: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemGearsetBlockDefinition] = None, hash: Optional[int] = None, icon_watermark: Optional[str] = None, icon_watermark_shelved: Optional[str] = None, index: Optional[int] = None, inventory: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemInventoryBlockDefinition] = None, investment_stats: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemInvestmentStatDefinition]] = None, is_wrapper: Optional[bool] = None, item_category_hashes: Optional[Sequence[int]] = None, item_sub_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyItemSubType] = None, item_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyItemType] = None, item_type_and_tier_display_name: Optional[str] = None, item_type_display_name: Optional[str] = None, links: Optional[Sequence[bungieapi.generated.components.schemas.links.HyperlinkReference]] = None, lore_hash: Optional[int] = None, metrics: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemMetricBlockDefinition] = None, non_transferrable: Optional[bool] = None, objectives: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemObjectiveBlockDefinition] = None, perks: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemPerkEntryDefinition]] = None, plug: Optional[bungieapi.generated.components.schemas.destiny.definitions.items.DestinyItemPlugDefinition] = None, preview: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemPreviewBlockDefinition] = None, quality: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemQualityBlockDefinition] = None, redacted: Optional[bool] = None, sack: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSackBlockDefinition] = None, screenshot: Optional[str] = None, season_hash: Optional[int] = None, secondary_icon: Optional[str] = None, secondary_overlay: Optional[str] = None, secondary_special: Optional[str] = None, set_data: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSetBlockDefinition] = None, sockets: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSocketBlockDefinition] = None, source_data: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSourceBlockDefinition] = None, special_item_type: Optional[bungieapi.generated.components.schemas.destiny.SpecialItemType] = None, stats: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemStatBlockDefinition] = None, summary: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSummaryBlockDefinition] = None, summary_item_hash: Optional[int] = None, talent_grid: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemTalentGridBlockDefinition] = None, tooltip_notifications: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemTooltipNotification]] = None, tooltip_style: Optional[str] = None, trait_hashes: Optional[Sequence[int]] = None, trait_ids: Optional[Sequence[str]] = None, translation_block: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemTranslationBlockDefinition] = None, ui_item_display_style: Optional[str] = None, value: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemValueBlockDefinition] = None)[source]

Bases: object

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.

action: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemActionBlockDefinition] = None
allow_actions: Optional[bool] = None
animations: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.animations.DestinyAnimationReference]] = None
background_color: Optional[bungieapi.generated.components.schemas.destiny.misc.DestinyColor] = None
breaker_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyBreakerType] = None
breaker_type_hash: Optional[int] = None
class_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyClass] = None
collectible_hash: Optional[int] = None
damage_type_hashes: Optional[Sequence[int]] = None
damage_types: Optional[Sequence[bungieapi.generated.components.schemas.destiny.DamageType]] = None
default_damage_type: Optional[bungieapi.generated.components.schemas.destiny.DamageType] = None
default_damage_type_hash: Optional[int] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
display_source: Optional[str] = None
does_postmaster_pull_have_side_effects: Optional[bool] = None
emblem_objective_hash: Optional[int] = None
equippable: Optional[bool] = None
equipping_block: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyEquippingBlockDefinition] = None
flavor_text: Optional[str] = None
gearset: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemGearsetBlockDefinition] = None
hash: Optional[int] = None
icon_watermark: Optional[str] = None
icon_watermark_shelved: Optional[str] = None
index: Optional[int] = None
inventory: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemInventoryBlockDefinition] = None
investment_stats: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemInvestmentStatDefinition]] = None
is_wrapper: Optional[bool] = None
item_category_hashes: Optional[Sequence[int]] = None
item_sub_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyItemSubType] = None
item_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyItemType] = None
item_type_and_tier_display_name: Optional[str] = None
item_type_display_name: Optional[str] = None
lore_hash: Optional[int] = None
metrics: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemMetricBlockDefinition] = None
non_transferrable: Optional[bool] = None
objectives: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemObjectiveBlockDefinition] = None
perks: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemPerkEntryDefinition]] = None
plug: Optional[bungieapi.generated.components.schemas.destiny.definitions.items.DestinyItemPlugDefinition] = None
preview: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemPreviewBlockDefinition] = None
quality: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemQualityBlockDefinition] = None
redacted: Optional[bool] = None
sack: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSackBlockDefinition] = None
screenshot: Optional[str] = None
season_hash: Optional[int] = None
secondary_icon: Optional[str] = None
secondary_overlay: Optional[str] = None
secondary_special: Optional[str] = None
set_data: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSetBlockDefinition] = None
sockets: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSocketBlockDefinition] = None
source_data: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSourceBlockDefinition] = None
special_item_type: Optional[bungieapi.generated.components.schemas.destiny.SpecialItemType] = None
stats: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemStatBlockDefinition] = None
summary: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSummaryBlockDefinition] = None
summary_item_hash: Optional[int] = None
talent_grid: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemTalentGridBlockDefinition] = None
to_json() Mapping[str, Any][source]
tooltip_notifications: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemTooltipNotification]] = None
tooltip_style: Optional[str] = None
trait_hashes: Optional[Sequence[int]] = None
trait_ids: Optional[Sequence[str]] = None
translation_block: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemTranslationBlockDefinition] = None
ui_item_display_style: Optional[str] = None
value: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemValueBlockDefinition] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyInventoryItemStatDefinition(display_maximum: Optional[int] = None, maximum: Optional[int] = None, minimum: Optional[int] = None, stat_hash: Optional[int] = None, value: Optional[int] = None)[source]

Bases: object

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.

display_maximum: Optional[int] = None
maximum: Optional[int] = None
minimum: Optional[int] = None
stat_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
value: Optional[int] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemActionBlockDefinition(action_type_label: Optional[str] = None, consume_entire_stack: Optional[bool] = None, delete_on_action: Optional[bool] = None, is_positive: Optional[bool] = None, overlay_icon: Optional[str] = None, overlay_screen_name: Optional[str] = None, progression_rewards: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyProgressionRewardDefinition]] = None, required_cooldown_hash: Optional[int] = None, required_cooldown_seconds: Optional[int] = None, required_items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemActionRequiredItemDefinition]] = None, required_location: Optional[str] = None, use_on_acquire: Optional[bool] = None, verb_description: Optional[str] = None, verb_name: Optional[str] = None)[source]

Bases: object

If an item can have an action performed on it (like “Dismantle”), it will be defined here if you care.

action_type_label: Optional[str] = None
consume_entire_stack: Optional[bool] = None
delete_on_action: Optional[bool] = None
is_positive: Optional[bool] = None
overlay_icon: Optional[str] = None
overlay_screen_name: Optional[str] = None
progression_rewards: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyProgressionRewardDefinition]] = None
required_cooldown_hash: Optional[int] = None
required_cooldown_seconds: Optional[int] = None
required_items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemActionRequiredItemDefinition]] = None
required_location: Optional[str] = None
to_json() Mapping[str, Any][source]
use_on_acquire: Optional[bool] = None
verb_description: Optional[str] = None
verb_name: Optional[str] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemActionRequiredItemDefinition(count: Optional[int] = None, delete_on_action: Optional[bool] = None, item_hash: Optional[int] = None)[source]

Bases: object

The definition of an item and quantity required in a character’s inventory in order to perform an action.

count: Optional[int] = None
delete_on_action: Optional[bool] = None
item_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemCategoryDefinition(deprecated: Optional[bool] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, grant_destiny_breaker_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyBreakerType] = None, grant_destiny_class: Optional[bungieapi.generated.components.schemas.destiny.DestinyClass] = None, grant_destiny_item_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyItemType] = None, grant_destiny_sub_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyItemSubType] = None, group_category_only: Optional[bool] = None, grouped_category_hashes: Optional[Sequence[int]] = None, hash: Optional[int] = None, index: Optional[int] = None, item_type_regex: Optional[str] = None, item_type_regex_not: Optional[str] = None, origin_bucket_identifier: Optional[str] = None, parent_category_hashes: Optional[Sequence[int]] = None, plug_category_identifier: Optional[str] = None, redacted: Optional[bool] = None, short_title: Optional[str] = None, trait_id: Optional[str] = None, visible: Optional[bool] = None)[source]

Bases: object

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!

deprecated: Optional[bool] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
grant_destiny_breaker_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyBreakerType] = None
grant_destiny_class: Optional[bungieapi.generated.components.schemas.destiny.DestinyClass] = None
grant_destiny_item_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyItemType] = None
grant_destiny_sub_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyItemSubType] = None
group_category_only: Optional[bool] = None
grouped_category_hashes: Optional[Sequence[int]] = None
hash: Optional[int] = None
index: Optional[int] = None
item_type_regex: Optional[str] = None
item_type_regex_not: Optional[str] = None
origin_bucket_identifier: Optional[str] = None
parent_category_hashes: Optional[Sequence[int]] = None
plug_category_identifier: Optional[str] = None
redacted: Optional[bool] = None
short_title: Optional[str] = None
to_json() Mapping[str, Any][source]
trait_id: Optional[str] = None
visible: Optional[bool] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemCreationEntryLevelDefinition(level: Optional[int] = None)[source]

Bases: object

An overly complicated wrapper for the item level at which the item should spawn.

level: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemGearsetBlockDefinition(item_list: Optional[Sequence[int]] = None, tracking_value_max: Optional[int] = None)[source]

Bases: object

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!)

item_list: Optional[Sequence[int]] = None
to_json() Mapping[str, Any][source]
tracking_value_max: Optional[int] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemIntrinsicSocketEntryDefinition(default_visible: Optional[bool] = None, plug_item_hash: Optional[int] = None, socket_type_hash: Optional[int] = None)[source]

Bases: object

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.

default_visible: Optional[bool] = None
plug_item_hash: Optional[int] = None
socket_type_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemInventoryBlockDefinition(bucket_type_hash: Optional[int] = None, expiration_tooltip: Optional[str] = None, expired_in_activity_message: Optional[str] = None, expired_in_orbit_message: Optional[str] = None, is_instance_item: Optional[bool] = None, max_stack_size: Optional[int] = None, recovery_bucket_type_hash: Optional[int] = None, stack_unique_label: Optional[str] = None, suppress_expiration_when_objectives_complete: Optional[bool] = None, tier_type: Optional[bungieapi.generated.components.schemas.destiny.TierType] = None, tier_type_hash: Optional[int] = None, tier_type_name: Optional[str] = None)[source]

Bases: object

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.

bucket_type_hash: Optional[int] = None
expiration_tooltip: Optional[str] = None
expired_in_activity_message: Optional[str] = None
expired_in_orbit_message: Optional[str] = None
is_instance_item: Optional[bool] = None
max_stack_size: Optional[int] = None
recovery_bucket_type_hash: Optional[int] = None
stack_unique_label: Optional[str] = None
suppress_expiration_when_objectives_complete: Optional[bool] = None
tier_type: Optional[bungieapi.generated.components.schemas.destiny.TierType] = None
tier_type_hash: Optional[int] = None
tier_type_name: Optional[str] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemInvestmentStatDefinition(is_conditionally_active: Optional[bool] = None, stat_type_hash: Optional[int] = None, value: Optional[int] = None)[source]

Bases: object

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.

is_conditionally_active: Optional[bool] = None
stat_type_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
value: Optional[int] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemMetricBlockDefinition(available_metric_category_node_hashes: Optional[Sequence[int]] = None)[source]

Bases: object

The metrics available for display and selection on an item.

available_metric_category_node_hashes: Optional[Sequence[int]] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemObjectiveBlockDefinition(display_activity_hashes: Optional[Sequence[int]] = None, display_as_stat_tracker: Optional[bool] = None, narrative: Optional[str] = None, objective_hashes: Optional[Sequence[int]] = None, objective_verb_name: Optional[str] = None, per_objective_display_properties: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyObjectiveDisplayProperties]] = None, quest_type_hash: Optional[int] = None, quest_type_identifier: Optional[str] = None, questline_item_hash: Optional[int] = None, require_full_objective_completion: Optional[bool] = None)[source]

Bases: object

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.

display_activity_hashes: Optional[Sequence[int]] = None
display_as_stat_tracker: Optional[bool] = None
narrative: Optional[str] = None
objective_hashes: Optional[Sequence[int]] = None
objective_verb_name: Optional[str] = None
per_objective_display_properties: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyObjectiveDisplayProperties]] = None
quest_type_hash: Optional[int] = None
quest_type_identifier: Optional[str] = None
questline_item_hash: Optional[int] = None
require_full_objective_completion: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemPerkEntryDefinition(perk_hash: Optional[int] = None, perk_visibility: Optional[bungieapi.generated.components.schemas.destiny.ItemPerkVisibility] = None, requirement_display_string: Optional[str] = None)[source]

Bases: object

An intrinsic perk on an item, and the requirements for it to be activated.

perk_hash: Optional[int] = None
perk_visibility: Optional[bungieapi.generated.components.schemas.destiny.ItemPerkVisibility] = None
requirement_display_string: Optional[str] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemPreviewBlockDefinition(artifact_hash: Optional[int] = None, derived_item_categories: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.items.DestinyDerivedItemCategoryDefinition]] = None, preview_action_string: Optional[str] = None, preview_vendor_hash: Optional[int] = None, screen_style: Optional[str] = None)[source]

Bases: object

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.

artifact_hash: Optional[int] = None
derived_item_categories: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.items.DestinyDerivedItemCategoryDefinition]] = None
preview_action_string: Optional[str] = None
preview_vendor_hash: Optional[int] = None
screen_style: Optional[str] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemQualityBlockDefinition(current_version: Optional[int] = None, display_version_watermark_icons: Optional[Sequence[str]] = None, infusion_category_hash: Optional[int] = None, infusion_category_hashes: Optional[Sequence[int]] = None, infusion_category_name: Optional[str] = None, item_levels: Optional[Sequence[int]] = None, progression_level_requirement_hash: Optional[int] = None, quality_level: Optional[int] = None, versions: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemVersionDefinition]] = None)[source]

Bases: object

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.

current_version: Optional[int] = None
display_version_watermark_icons: Optional[Sequence[str]] = None
infusion_category_hash: Optional[int] = None
infusion_category_hashes: Optional[Sequence[int]] = None
infusion_category_name: Optional[str] = None
item_levels: Optional[Sequence[int]] = None
progression_level_requirement_hash: Optional[int] = None
quality_level: Optional[int] = None
to_json() Mapping[str, Any][source]
versions: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemVersionDefinition]] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSackBlockDefinition(detail_action: Optional[str] = None, open_action: Optional[str] = None, open_on_acquire: Optional[bool] = None, select_item_count: Optional[int] = None, vendor_sack_type: Optional[str] = None)[source]

Bases: object

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”.

detail_action: Optional[str] = None
open_action: Optional[str] = None
open_on_acquire: Optional[bool] = None
select_item_count: Optional[int] = None
to_json() Mapping[str, Any][source]
vendor_sack_type: Optional[str] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSetBlockDefinition(item_list: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSetBlockEntryDefinition]] = None, quest_line_description: Optional[str] = None, quest_line_name: Optional[str] = None, quest_step_summary: Optional[str] = None, require_ordered_set_item_add: Optional[bool] = None, set_is_featured: Optional[bool] = None, set_type: Optional[str] = None)[source]

Bases: object

Primarily for Quests, this is the definition of properties related to the item if it is a quest and its various quest steps.

item_list: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSetBlockEntryDefinition]] = None
quest_line_description: Optional[str] = None
quest_line_name: Optional[str] = None
quest_step_summary: Optional[str] = None
require_ordered_set_item_add: Optional[bool] = None
set_type: Optional[str] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSetBlockEntryDefinition(item_hash: Optional[int] = None, tracking_value: Optional[int] = None)[source]

Bases: object

Defines a particular entry in an ItemSet (AKA a particular Quest Step in a Quest)

item_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
tracking_value: Optional[int] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSocketBlockDefinition(detail: Optional[str] = None, intrinsic_sockets: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemIntrinsicSocketEntryDefinition]] = None, socket_categories: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSocketCategoryDefinition]] = None, socket_entries: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSocketEntryDefinition]] = None)[source]

Bases: object

If defined, the item has at least one socket.

detail: Optional[str] = None
intrinsic_sockets: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemIntrinsicSocketEntryDefinition]] = None
socket_categories: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSocketCategoryDefinition]] = None
socket_entries: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSocketEntryDefinition]] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSocketCategoryDefinition(socket_category_hash: Optional[int] = None, socket_indexes: Optional[Sequence[int]] = None)[source]

Bases: object

Sockets are grouped into categories in the UI.

These define which category and which sockets are under that category.

socket_category_hash: Optional[int] = None
socket_indexes: Optional[Sequence[int]] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSocketEntryDefinition(default_visible: Optional[bool] = None, hide_perks_in_item_tooltip: Optional[bool] = None, plug_sources: Optional[bungieapi.generated.components.schemas.destiny.SocketPlugSources] = None, prevent_initialization_on_vendor_purchase: Optional[bool] = None, randomized_plug_set_hash: Optional[int] = None, reusable_plug_items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSocketEntryPlugItemDefinition]] = None, reusable_plug_set_hash: Optional[int] = None, single_initial_item_hash: Optional[int] = None, socket_type_hash: Optional[int] = None)[source]

Bases: object

The definition information for a specific socket on an item.

This will determine how the socket behaves in-game.

default_visible: Optional[bool] = None
hide_perks_in_item_tooltip: Optional[bool] = None
plug_sources: Optional[bungieapi.generated.components.schemas.destiny.SocketPlugSources] = None
prevent_initialization_on_vendor_purchase: Optional[bool] = None
randomized_plug_set_hash: Optional[int] = None
reusable_plug_items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSocketEntryPlugItemDefinition]] = None
reusable_plug_set_hash: Optional[int] = None
single_initial_item_hash: Optional[int] = None
socket_type_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSocketEntryPlugItemDefinition(plug_item_hash: Optional[int] = None)[source]

Bases: object

The definition of a known, reusable plug that can be applied to a socket.

plug_item_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSocketEntryPlugItemRandomizedDefinition(currently_can_roll: Optional[bool] = None, plug_item_hash: Optional[int] = None)[source]

Bases: object

currently_can_roll: Optional[bool] = None
plug_item_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSourceBlockDefinition(exclusive: Optional[bungieapi.generated.components.schemas.BungieMembershipType] = None, source_hashes: Optional[Sequence[int]] = None, sources: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.sources.DestinyItemSourceDefinition]] = None, vendor_sources: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemVendorSourceReference]] = None)[source]

Bases: object

Data about an item’s “sources”: ways that the item can be obtained.

exclusive: Optional[bungieapi.generated.components.schemas.BungieMembershipType] = None
source_hashes: Optional[Sequence[int]] = None
sources: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.sources.DestinyItemSourceDefinition]] = None
to_json() Mapping[str, Any][source]
vendor_sources: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemVendorSourceReference]] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemStatBlockDefinition(disable_primary_stat_display: Optional[bool] = None, has_displayable_stats: Optional[bool] = None, primary_base_stat_hash: Optional[int] = None, stat_group_hash: Optional[int] = None, stats: Optional[Mapping[str, bungieapi.generated.components.schemas.destiny.definitions.DestinyInventoryItemStatDefinition]] = None)[source]

Bases: object

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.

disable_primary_stat_display: Optional[bool] = None
has_displayable_stats: Optional[bool] = None
primary_base_stat_hash: Optional[int] = None
stat_group_hash: Optional[int] = None
stats: Optional[Mapping[str, bungieapi.generated.components.schemas.destiny.definitions.DestinyInventoryItemStatDefinition]] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemSummaryBlockDefinition(sort_priority: Optional[int] = None)[source]

Bases: object

This appears to be information used when rendering rewards.

We don’t currently use it on BNet.

sort_priority: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemTalentGridBlockDefinition(build_name: Optional[str] = None, hud_damage_type: Optional[bungieapi.generated.components.schemas.destiny.DamageType] = None, hud_icon: Optional[str] = None, item_detail_string: Optional[str] = None, talent_grid_hash: Optional[int] = None)[source]

Bases: object

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.

build_name: Optional[str] = None
hud_damage_type: Optional[bungieapi.generated.components.schemas.destiny.DamageType] = None
hud_icon: Optional[str] = None
item_detail_string: Optional[str] = None
talent_grid_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemTooltipNotification(display_string: Optional[str] = None, display_style: Optional[str] = None)[source]

Bases: object

display_string: Optional[str] = None
display_style: Optional[str] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemTranslationBlockDefinition(arrangements: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyGearArtArrangementReference]] = None, custom_dyes: Optional[Sequence[bungieapi.generated.components.schemas.destiny.DyeReference]] = None, default_dyes: Optional[Sequence[bungieapi.generated.components.schemas.destiny.DyeReference]] = None, has_geometry: Optional[bool] = None, locked_dyes: Optional[Sequence[bungieapi.generated.components.schemas.destiny.DyeReference]] = None, weapon_pattern_hash: Optional[int] = None, weapon_pattern_identifier: Optional[str] = None)[source]

Bases: object

This Block defines the rendering data associated with the item, if any.

arrangements: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyGearArtArrangementReference]] = None
custom_dyes: Optional[Sequence[bungieapi.generated.components.schemas.destiny.DyeReference]] = None
default_dyes: Optional[Sequence[bungieapi.generated.components.schemas.destiny.DyeReference]] = None
has_geometry: Optional[bool] = None
locked_dyes: Optional[Sequence[bungieapi.generated.components.schemas.destiny.DyeReference]] = None
to_json() Mapping[str, Any][source]
weapon_pattern_hash: Optional[int] = None
weapon_pattern_identifier: Optional[str] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemValueBlockDefinition(item_value: Optional[Sequence[bungieapi.generated.components.schemas.destiny.DestinyItemQuantity]] = None, value_description: Optional[str] = None)[source]

Bases: object

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.

item_value: Optional[Sequence[bungieapi.generated.components.schemas.destiny.DestinyItemQuantity]] = None
to_json() Mapping[str, Any][source]
value_description: Optional[str] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemVendorSourceReference(vendor_hash: Optional[int] = None, vendor_item_indexes: Optional[Sequence[int]] = None)[source]

Bases: object

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.

to_json() Mapping[str, Any][source]
vendor_hash: Optional[int] = None
vendor_item_indexes: Optional[Sequence[int]] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyItemVersionDefinition(power_cap_hash: Optional[int] = None)[source]

Bases: object

The version definition currently just holds a reference to the power cap.

power_cap_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyLocationDefinition(hash: Optional[int] = None, index: Optional[int] = None, location_releases: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyLocationReleaseDefinition]] = None, redacted: Optional[bool] = None, vendor_hash: Optional[int] = None)[source]

Bases: object

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.

hash: Optional[int] = None
index: Optional[int] = None
location_releases: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyLocationReleaseDefinition]] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
vendor_hash: Optional[int] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyLocationReleaseDefinition(activity_bubble_name: Optional[int] = None, activity_graph_hash: Optional[int] = None, activity_graph_node_hash: Optional[int] = None, activity_hash: Optional[int] = None, activity_path_bundle: Optional[int] = None, activity_path_destination: Optional[int] = None, destination_hash: Optional[int] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, large_transparent_icon: Optional[str] = None, map_icon: Optional[str] = None, nav_point_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyActivityNavPointType] = None, small_transparent_icon: Optional[str] = None, spawn_point: Optional[int] = None, world_position: Optional[Sequence[int]] = None)[source]

Bases: object

A specific “spot” referred to by a location.

Only one of these can be active at a time for a given Location.

activity_bubble_name: Optional[int] = None
activity_graph_hash: Optional[int] = None
activity_graph_node_hash: Optional[int] = None
activity_hash: Optional[int] = None
activity_path_bundle: Optional[int] = None
activity_path_destination: Optional[int] = None
destination_hash: Optional[int] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
large_transparent_icon: Optional[str] = None
map_icon: Optional[str] = None
nav_point_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyActivityNavPointType] = None
small_transparent_icon: Optional[str] = None
spawn_point: Optional[int] = None
to_json() Mapping[str, Any][source]
world_position: Optional[Sequence[int]] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyMaterialRequirement(count: Optional[int] = None, delete_on_action: Optional[bool] = None, item_hash: Optional[int] = None, omit_from_requirements: Optional[bool] = None)[source]

Bases: object

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.

count: Optional[int] = None
delete_on_action: Optional[bool] = None
item_hash: Optional[int] = None
omit_from_requirements: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyMaterialRequirementSetDefinition(hash: Optional[int] = None, index: Optional[int] = None, materials: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyMaterialRequirement]] = None, redacted: Optional[bool] = None)[source]

Bases: object

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.

hash: Optional[int] = None
index: Optional[int] = None
materials: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyMaterialRequirement]] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyNodeActivationRequirement(grid_level: Optional[int] = None, material_requirement_hashes: Optional[Sequence[int]] = None)[source]

Bases: object

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.

grid_level: Optional[int] = None
material_requirement_hashes: Optional[Sequence[int]] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyNodeSocketReplaceResponse(plug_item_hash: Optional[int] = None, socket_type_hash: Optional[int] = None)[source]

Bases: object

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.

plug_item_hash: Optional[int] = None
socket_type_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyNodeStepDefinition(activation_requirement: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyNodeActivationRequirement] = None, affects_level: Optional[bool] = None, affects_quality: Optional[bool] = None, can_activate_next_step: Optional[bool] = None, damage_type: Optional[bungieapi.generated.components.schemas.destiny.DamageType] = None, damage_type_hash: Optional[int] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, interaction_description: Optional[str] = None, is_next_step_random: Optional[bool] = None, next_step_index: Optional[int] = None, node_step_hash: Optional[int] = None, perk_hashes: Optional[Sequence[int]] = None, socket_replacements: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyNodeSocketReplaceResponse]] = None, start_progression_bar_at_progress: Optional[int] = None, stat_hashes: Optional[Sequence[int]] = None, step_groups: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeStepGroups] = None, step_index: Optional[int] = None)[source]

Bases: object

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.

activation_requirement: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyNodeActivationRequirement] = None
affects_level: Optional[bool] = None
affects_quality: Optional[bool] = None
can_activate_next_step: Optional[bool] = None
damage_type: Optional[bungieapi.generated.components.schemas.destiny.DamageType] = None
damage_type_hash: Optional[int] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
interaction_description: Optional[str] = None
is_next_step_random: Optional[bool] = None
next_step_index: Optional[int] = None
node_step_hash: Optional[int] = None
perk_hashes: Optional[Sequence[int]] = None
socket_replacements: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyNodeSocketReplaceResponse]] = None
start_progression_bar_at_progress: Optional[int] = None
stat_hashes: Optional[Sequence[int]] = None
step_groups: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeStepGroups] = None
step_index: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyObjectiveDefinition(allow_negative_value: Optional[bool] = None, allow_overcompletion: Optional[bool] = None, allow_value_change_when_completed: Optional[bool] = None, completed_value_style: Optional[bungieapi.generated.components.schemas.destiny.DestinyUnlockValueUIStyle] = None, completion_value: Optional[int] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, hash: Optional[int] = None, in_progress_value_style: Optional[bungieapi.generated.components.schemas.destiny.DestinyUnlockValueUIStyle] = None, index: Optional[int] = None, is_counting_downward: Optional[bool] = None, location_hash: Optional[int] = None, minimum_visibility_threshold: Optional[int] = None, perks: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyObjectivePerkEntryDefinition] = None, progress_description: Optional[str] = None, redacted: Optional[bool] = None, scope: Optional[bungieapi.generated.components.schemas.destiny.DestinyGatingScope] = None, show_value_on_complete: Optional[bool] = None, stats: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyObjectiveStatEntryDefinition] = None, value_style: Optional[bungieapi.generated.components.schemas.destiny.DestinyUnlockValueUIStyle] = None)[source]

Bases: object

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.

allow_negative_value: Optional[bool] = None
allow_overcompletion: Optional[bool] = None
allow_value_change_when_completed: Optional[bool] = None
completed_value_style: Optional[bungieapi.generated.components.schemas.destiny.DestinyUnlockValueUIStyle] = None
completion_value: Optional[int] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
hash: Optional[int] = None
in_progress_value_style: Optional[bungieapi.generated.components.schemas.destiny.DestinyUnlockValueUIStyle] = None
index: Optional[int] = None
is_counting_downward: Optional[bool] = None
location_hash: Optional[int] = None
minimum_visibility_threshold: Optional[int] = None
perks: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyObjectivePerkEntryDefinition] = None
progress_description: Optional[str] = None
redacted: Optional[bool] = None
scope: Optional[bungieapi.generated.components.schemas.destiny.DestinyGatingScope] = None
show_value_on_complete: Optional[bool] = None
stats: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyObjectiveStatEntryDefinition] = None
to_json() Mapping[str, Any][source]
value_style: Optional[bungieapi.generated.components.schemas.destiny.DestinyUnlockValueUIStyle] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyObjectiveDisplayProperties(activity_hash: Optional[int] = None, display_on_item_preview_screen: Optional[bool] = None)[source]

Bases: object

activity_hash: Optional[int] = None
display_on_item_preview_screen: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyObjectivePerkEntryDefinition(perk_hash: Optional[int] = None, style: Optional[bungieapi.generated.components.schemas.destiny.DestinyObjectiveGrantStyle] = None)[source]

Bases: object

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.

perk_hash: Optional[int] = None
style: Optional[bungieapi.generated.components.schemas.destiny.DestinyObjectiveGrantStyle] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyObjectiveStatEntryDefinition(stat: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemInvestmentStatDefinition] = None, style: Optional[bungieapi.generated.components.schemas.destiny.DestinyObjectiveGrantStyle] = None)[source]

Bases: object

Defines the conditions under which stat modifications will be applied to a Character while participating in an objective.

stat: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemInvestmentStatDefinition] = None
style: Optional[bungieapi.generated.components.schemas.destiny.DestinyObjectiveGrantStyle] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyPlaceDefinition(display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, hash: Optional[int] = None, index: Optional[int] = None, redacted: Optional[bool] = None)[source]

Bases: object

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.”

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
hash: Optional[int] = None
index: Optional[int] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyProgressionDefinition(color: Optional[bungieapi.generated.components.schemas.destiny.misc.DestinyColor] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyProgressionDisplayPropertiesDefinition] = None, faction_hash: Optional[int] = None, hash: Optional[int] = None, index: Optional[int] = None, rank_icon: Optional[str] = None, redacted: Optional[bool] = None, repeat_last_step: Optional[bool] = None, reward_items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyProgressionRewardItemQuantity]] = None, scope: Optional[bungieapi.generated.components.schemas.destiny.DestinyProgressionScope] = None, source: Optional[str] = None, steps: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyProgressionStepDefinition]] = None, visible: Optional[bool] = None)[source]

Bases: object

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.

color: Optional[bungieapi.generated.components.schemas.destiny.misc.DestinyColor] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyProgressionDisplayPropertiesDefinition] = None
faction_hash: Optional[int] = None
hash: Optional[int] = None
index: Optional[int] = None
rank_icon: Optional[str] = None
redacted: Optional[bool] = None
repeat_last_step: Optional[bool] = None
reward_items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyProgressionRewardItemQuantity]] = None
scope: Optional[bungieapi.generated.components.schemas.destiny.DestinyProgressionScope] = None
source: Optional[str] = None
steps: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyProgressionStepDefinition]] = None
to_json() Mapping[str, Any][source]
visible: Optional[bool] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyProgressionDisplayPropertiesDefinition(description: Optional[str] = None, display_units_name: Optional[str] = None, has_icon: Optional[bool] = None, high_res_icon: Optional[str] = None, icon: Optional[str] = None, icon_sequences: Optional[Sequence[ForwardRef('DestinyIconSequenceDefinition')]] = None, name: Optional[str] = None)[source]

Bases: object

description: Optional[str] = None
display_units_name: Optional[str] = None
has_icon: Optional[bool] = None
high_res_icon: Optional[str] = None
icon: Optional[str] = None
icon_sequences: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyIconSequenceDefinition]] = None
name: Optional[str] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyProgressionMappingDefinition(display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, display_units: Optional[str] = None, hash: Optional[int] = None, index: Optional[int] = None, redacted: Optional[bool] = None)[source]

Bases: object

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.

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
display_units: Optional[str] = None
hash: Optional[int] = None
index: Optional[int] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyProgressionRewardDefinition(amount: Optional[int] = None, apply_throttles: Optional[bool] = None, progression_mapping_hash: Optional[int] = None)[source]

Bases: object

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.

amount: Optional[int] = None
apply_throttles: Optional[bool] = None
progression_mapping_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyProgressionRewardItemQuantity(acquisition_behavior: Optional[ForwardRef('DestinyProgressionRewardItemAcquisitionBehavior')] = None, claim_unlock_display_strings: Optional[Sequence[str]] = None, has_conditional_visibility: Optional[bool] = None, item_hash: Optional[int] = None, item_instance_id: Optional[int] = None, quantity: Optional[int] = None, rewarded_at_progression_level: Optional[int] = None, ui_display_style: Optional[str] = None)[source]

Bases: object

acquisition_behavior: Optional[bungieapi.generated.components.schemas.destiny.DestinyProgressionRewardItemAcquisitionBehavior] = None
claim_unlock_display_strings: Optional[Sequence[str]] = None
has_conditional_visibility: Optional[bool] = None
item_hash: Optional[int] = None
item_instance_id: Optional[int] = None
quantity: Optional[int] = None
rewarded_at_progression_level: Optional[int] = None
to_json() Mapping[str, Any][source]
ui_display_style: Optional[str] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyProgressionStepDefinition(display_effect_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyProgressionStepDisplayEffect] = None, icon: Optional[str] = None, progress_total: Optional[int] = None, reward_items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.DestinyItemQuantity]] = None, step_name: Optional[str] = None)[source]

Bases: object

This defines a single Step in a progression (which roughly equates to a level.

See DestinyProgressionDefinition for caveats).

display_effect_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyProgressionStepDisplayEffect] = None
icon: Optional[str] = None
progress_total: Optional[int] = None
reward_items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.DestinyItemQuantity]] = None
step_name: Optional[str] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyRaceDefinition(display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, gendered_race_names: Optional[Mapping[str, str]] = None, gendered_race_names_by_gender_hash: Optional[Mapping[str, str]] = None, hash: Optional[int] = None, index: Optional[int] = None, race_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyRace] = None, redacted: Optional[bool] = None)[source]

Bases: object

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.

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
gendered_race_names: Optional[Mapping[str, str]] = None
gendered_race_names_by_gender_hash: Optional[Mapping[str, str]] = None
hash: Optional[int] = None
index: Optional[int] = None
race_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyRace] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyRewardSourceCategory(value)[source]

Bases: enum.Enum

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.

ACTIVITY = 1
AGGREGATE = 3
NONE = 0
VENDOR = 2
class bungieapi.generated.components.schemas.destiny.definitions.DestinyRewardSourceDefinition(category: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyRewardSourceCategory] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, hash: Optional[int] = None, index: Optional[int] = None, redacted: Optional[bool] = None)[source]

Bases: object

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.

category: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyRewardSourceCategory] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
hash: Optional[int] = None
index: Optional[int] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinySandboxPerkDefinition(damage_type: Optional[bungieapi.generated.components.schemas.destiny.DamageType] = None, damage_type_hash: Optional[int] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, hash: Optional[int] = None, index: Optional[int] = None, is_displayable: Optional[bool] = None, perk_groups: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeStepGroups] = None, perk_identifier: Optional[str] = None, redacted: Optional[bool] = None)[source]

Bases: object

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.

damage_type: Optional[bungieapi.generated.components.schemas.destiny.DamageType] = None
damage_type_hash: Optional[int] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
hash: Optional[int] = None
index: Optional[int] = None
is_displayable: Optional[bool] = None
perk_groups: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeStepGroups] = None
perk_identifier: Optional[str] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyStatDefinition(aggregation_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyStatAggregationType] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, has_computed_block: Optional[bool] = None, hash: Optional[int] = None, index: Optional[int] = None, redacted: Optional[bool] = None, stat_category: Optional[bungieapi.generated.components.schemas.destiny.DestinyStatCategory] = None)[source]

Bases: object

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.)

aggregation_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyStatAggregationType] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
has_computed_block: Optional[bool] = None
hash: Optional[int] = None
index: Optional[int] = None
redacted: Optional[bool] = None
stat_category: Optional[bungieapi.generated.components.schemas.destiny.DestinyStatCategory] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyStatDisplayDefinition(display_as_numeric: Optional[bool] = None, display_interpolation: Optional[Sequence[bungieapi.generated.components.schemas.interpolation.InterpolationPoint]] = None, maximum_value: Optional[int] = None, stat_hash: Optional[int] = None)[source]

Bases: object

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)

display_as_numeric: Optional[bool] = None
display_interpolation: Optional[Sequence[bungieapi.generated.components.schemas.interpolation.InterpolationPoint]] = None
maximum_value: Optional[int] = None
stat_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyStatGroupDefinition(hash: Optional[int] = None, index: Optional[int] = None, maximum_value: Optional[int] = None, overrides: Optional[Mapping[str, bungieapi.generated.components.schemas.destiny.definitions.DestinyStatOverrideDefinition]] = None, redacted: Optional[bool] = None, scaled_stats: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyStatDisplayDefinition]] = None, ui_position: Optional[int] = None)[source]

Bases: object

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)

hash: Optional[int] = None
index: Optional[int] = None
maximum_value: Optional[int] = None
overrides: Optional[Mapping[str, bungieapi.generated.components.schemas.destiny.definitions.DestinyStatOverrideDefinition]] = None
redacted: Optional[bool] = None
scaled_stats: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyStatDisplayDefinition]] = None
to_json() Mapping[str, Any][source]
ui_position: Optional[int] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyStatOverrideDefinition(display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, stat_hash: Optional[int] = None)[source]

Bases: object

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.

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
stat_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentExclusiveGroup(group_hash: Optional[int] = None, lore_hash: Optional[int] = None, node_hashes: Optional[Sequence[int]] = None, opposing_group_hashes: Optional[Sequence[int]] = None, opposing_node_hashes: Optional[Sequence[int]] = None)[source]

Bases: object

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.

group_hash: Optional[int] = None
lore_hash: Optional[int] = None
node_hashes: Optional[Sequence[int]] = None
opposing_group_hashes: Optional[Sequence[int]] = None
opposing_node_hashes: Optional[Sequence[int]] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentGridDefinition(exclusive_sets: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeExclusiveSetDefinition]] = None, grid_level_per_column: Optional[int] = None, groups: Optional[Mapping[str, bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentExclusiveGroup]] = None, hash: Optional[int] = None, independent_node_indexes: Optional[Sequence[int]] = None, index: Optional[int] = None, max_grid_level: Optional[int] = None, node_categories: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeCategory]] = None, nodes: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeDefinition]] = None, progression_hash: Optional[int] = None, redacted: Optional[bool] = None)[source]

Bases: object

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.

exclusive_sets: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeExclusiveSetDefinition]] = None
grid_level_per_column: Optional[int] = None
groups: Optional[Mapping[str, bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentExclusiveGroup]] = None
hash: Optional[int] = None
independent_node_indexes: Optional[Sequence[int]] = None
index: Optional[int] = None
max_grid_level: Optional[int] = None
node_categories: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeCategory]] = None
nodes: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeDefinition]] = None
progression_hash: Optional[int] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeCategory(display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, identifier: Optional[str] = None, is_lore_driven: Optional[bool] = None, node_hashes: Optional[Sequence[int]] = None)[source]

Bases: object

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.

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
identifier: Optional[str] = None
is_lore_driven: Optional[bool] = None
node_hashes: Optional[Sequence[int]] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeDefinition(auto_unlocks: Optional[bool] = None, binary_pair_node_index: Optional[int] = None, column: Optional[int] = None, exclusive_with_node_hashes: Optional[Sequence[int]] = None, group_hash: Optional[int] = None, ignore_for_completion: Optional[bool] = None, is_random: Optional[bool] = None, is_random_repurchasable: Optional[bool] = None, last_step_repeats: Optional[bool] = None, layout_identifier: Optional[str] = None, lore_hash: Optional[int] = None, node_hash: Optional[int] = None, node_index: Optional[int] = None, node_style_identifier: Optional[str] = None, prerequisite_node_indexes: Optional[Sequence[int]] = None, random_activation_requirement: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyNodeActivationRequirement] = None, random_start_progression_bar_at_progression: Optional[int] = None, row: Optional[int] = None, steps: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyNodeStepDefinition]] = None)[source]

Bases: object

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).

auto_unlocks: Optional[bool] = None
binary_pair_node_index: Optional[int] = None
column: Optional[int] = None
exclusive_with_node_hashes: Optional[Sequence[int]] = None
group_hash: Optional[int] = None
ignore_for_completion: Optional[bool] = None
is_random: Optional[bool] = None
is_random_repurchasable: Optional[bool] = None
last_step_repeats: Optional[bool] = None
layout_identifier: Optional[str] = None
lore_hash: Optional[int] = None
node_hash: Optional[int] = None
node_index: Optional[int] = None
node_style_identifier: Optional[str] = None
prerequisite_node_indexes: Optional[Sequence[int]] = None
random_activation_requirement: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyNodeActivationRequirement] = None
random_start_progression_bar_at_progression: Optional[int] = None
row: Optional[int] = None
steps: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyNodeStepDefinition]] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeExclusiveSetDefinition(node_indexes: Optional[Sequence[int]] = None)[source]

Bases: object

The list of indexes into the Talent Grid’s “nodes” property for nodes in this exclusive set.

(See DestinyTalentNodeDefinition.nodeIndex)

node_indexes: Optional[Sequence[int]] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeStepDamageTypes(value)[source]

Bases: enum.Enum

An enumeration.

ALL = 15
ARC = 2
KINETIC = 1
NONE = 0
SOLAR = 4
VOID = 8
class bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeStepGroups(damage_types: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeStepDamageTypes] = None, guardian_attributes: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeStepGuardianAttributes] = None, impact_effects: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeStepImpactEffects] = None, light_abilities: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeStepLightAbilities] = None, weapon_performance: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeStepWeaponPerformances] = None)[source]

Bases: object

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.

damage_types: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeStepDamageTypes] = None
guardian_attributes: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeStepGuardianAttributes] = None
impact_effects: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeStepImpactEffects] = None
light_abilities: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeStepLightAbilities] = None
to_json() Mapping[str, Any][source]
weapon_performance: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeStepWeaponPerformances] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeStepGuardianAttributes(value)[source]

Bases: enum.Enum

An enumeration.

AIM_UNDER_FIRE = 16
ALL = 255
HEALTH = 4
INVISIBILITY = 64
NONE = 0
RADAR = 32
REPUTATIONS = 128
REVIVE = 8
SHIELDS = 2
STATS = 1
class bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeStepImpactEffects(value)[source]

Bases: enum.Enum

An enumeration.

ALL = 63
ARMOR_PIERCING = 1
COLLATERAL_DAMAGE = 8
DISORIENT = 16
FLINCH = 4
HIGHLIGHT_TARGET = 32
NONE = 0
RICOCHET = 2
class bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeStepLightAbilities(value)[source]

Bases: enum.Enum

An enumeration.

ALL = 63
GRENADES = 1
MELEE = 2
MOVEMENT_MODES = 4
NONE = 0
ORBS = 8
SUPER_ENERGY = 16
SUPER_MODS = 32
class bungieapi.generated.components.schemas.destiny.definitions.DestinyTalentNodeStepWeaponPerformances(value)[source]

Bases: enum.Enum

An enumeration.

ACCURACY = 4
ALL = 8191
AMMO_AND_MAGAZINE = 512
CHARGE_TIME = 4096
DAMAGE = 2
HAIR_TRIGGER = 256
NONE = 0
RANGE = 8
RATE_OF_FIRE = 1
READY = 64
RECOIL = 32
RELOAD = 128
SHOTGUN_SPREAD = 2048
TRACKING_AND_DETONATION = 1024
ZOOM = 16
class bungieapi.generated.components.schemas.destiny.definitions.DestinyUnlockDefinition(display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, hash: Optional[int] = None, index: Optional[int] = None, redacted: Optional[bool] = None)[source]

Bases: object

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.

display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
hash: Optional[int] = None
index: Optional[int] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyUnlockExpressionDefinition(scope: Optional[bungieapi.generated.components.schemas.destiny.DestinyGatingScope] = None)[source]

Bases: object

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.

scope: Optional[bungieapi.generated.components.schemas.destiny.DestinyGatingScope] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyUnlockValueDefinition(hash: Optional[int] = None, index: Optional[int] = None, redacted: Optional[bool] = None)[source]

Bases: object

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.

hash: Optional[int] = None
index: Optional[int] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorAcceptedItemDefinition(accepted_inventory_bucket_hash: Optional[int] = None, destination_inventory_bucket_hash: Optional[int] = None)[source]

Bases: object

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.

accepted_inventory_bucket_hash: Optional[int] = None
destination_inventory_bucket_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorActionDefinition(action_hash: Optional[int] = None, action_id: Optional[str] = None, auto_perform_action: Optional[bool] = None, description: Optional[str] = None, execute_seconds: Optional[int] = None, icon: Optional[str] = None, is_positive: Optional[bool] = None, name: Optional[str] = None, verb: Optional[str] = None)[source]

Bases: object

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.

action_hash: Optional[int] = None
action_id: Optional[str] = None
auto_perform_action: Optional[bool] = None
description: Optional[str] = None
execute_seconds: Optional[int] = None
icon: Optional[str] = None
is_positive: Optional[bool] = None
name: Optional[str] = None
to_json() Mapping[str, Any][source]
verb: Optional[str] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorCategoryEntryDefinition(buy_string_override: Optional[str] = None, category_hash: Optional[int] = None, category_index: Optional[int] = None, disabled_description: Optional[str] = None, display_title: Optional[str] = None, hide_from_regular_purchase: Optional[bool] = None, hide_if_no_currency: Optional[bool] = None, is_display_only: Optional[bool] = None, is_preview: Optional[bool] = None, overlay: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorCategoryOverlayDefinition] = None, quantity_available: Optional[int] = None, reset_interval_minutes_override: Optional[int] = None, reset_offset_minutes_override: Optional[int] = None, show_unavailable_items: Optional[bool] = None, sort_value: Optional[int] = None, vendor_item_indexes: Optional[Sequence[int]] = None)[source]

Bases: object

This is the definition for a single Vendor Category, into which Sale Items are grouped.

buy_string_override: Optional[str] = None
category_hash: Optional[int] = None
category_index: Optional[int] = None
disabled_description: Optional[str] = None
display_title: Optional[str] = None
hide_from_regular_purchase: Optional[bool] = None
hide_if_no_currency: Optional[bool] = None
is_display_only: Optional[bool] = None
is_preview: Optional[bool] = None
overlay: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorCategoryOverlayDefinition] = None
quantity_available: Optional[int] = None
reset_interval_minutes_override: Optional[int] = None
reset_offset_minutes_override: Optional[int] = None
show_unavailable_items: Optional[bool] = None
sort_value: Optional[int] = None
to_json() Mapping[str, Any][source]
vendor_item_indexes: Optional[Sequence[int]] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorCategoryOverlayDefinition(choice_description: Optional[str] = None, currency_item_hash: Optional[int] = None, description: Optional[str] = None, icon: Optional[str] = None, title: Optional[str] = None)[source]

Bases: object

The details of an overlay prompt to show to a user.

They are all fairly self-explanatory localized strings that can be shown.

choice_description: Optional[str] = None
currency_item_hash: Optional[int] = None
description: Optional[str] = None
icon: Optional[str] = None
title: Optional[str] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorDefinition(accepted_items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorAcceptedItemDefinition]] = None, actions: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorActionDefinition]] = None, buy_string: Optional[str] = None, categories: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorCategoryEntryDefinition]] = None, consolidate_categories: Optional[bool] = None, display_categories: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyDisplayCategoryDefinition]] = None, display_item_hash: Optional[int] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorDisplayPropertiesDefinition] = None, enabled: Optional[bool] = None, faction_hash: Optional[int] = None, failure_strings: Optional[Sequence[str]] = None, groups: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorGroupReference]] = None, hash: Optional[int] = None, ignore_sale_item_hashes: Optional[Sequence[int]] = None, index: Optional[int] = None, inhibit_buying: Optional[bool] = None, inhibit_selling: Optional[bool] = None, interactions: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorInteractionDefinition]] = None, inventory_flyouts: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorInventoryFlyoutDefinition]] = None, item_list: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorItemDefinition]] = None, locations: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.vendors.DestinyVendorLocationDefinition]] = None, original_categories: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorCategoryEntryDefinition]] = None, redacted: Optional[bool] = None, reset_interval_minutes: Optional[int] = None, reset_offset_minutes: Optional[int] = None, return_with_vendor_request: Optional[bool] = None, sell_string: Optional[str] = None, services: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorServiceDefinition]] = None, unlock_ranges: Optional[Sequence[bungieapi.generated.components.schemas.dates.DateRange]] = None, vendor_banner: Optional[str] = None, vendor_identifier: Optional[str] = None, vendor_portrait: Optional[str] = None, vendor_progression_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyVendorProgressionType] = None, vendor_subcategory_identifier: Optional[str] = None, visible: Optional[bool] = None)[source]

Bases: object

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.

accepted_items: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorAcceptedItemDefinition]] = None
actions: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorActionDefinition]] = None
buy_string: Optional[str] = None
categories: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorCategoryEntryDefinition]] = None
consolidate_categories: Optional[bool] = None
display_categories: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyDisplayCategoryDefinition]] = None
display_item_hash: Optional[int] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorDisplayPropertiesDefinition] = None
enabled: Optional[bool] = None
faction_hash: Optional[int] = None
failure_strings: Optional[Sequence[str]] = None
groups: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorGroupReference]] = None
hash: Optional[int] = None
ignore_sale_item_hashes: Optional[Sequence[int]] = None
index: Optional[int] = None
inhibit_buying: Optional[bool] = None
inhibit_selling: Optional[bool] = None
interactions: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorInteractionDefinition]] = None
inventory_flyouts: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorInventoryFlyoutDefinition]] = None
item_list: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorItemDefinition]] = None
locations: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.vendors.DestinyVendorLocationDefinition]] = None
original_categories: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorCategoryEntryDefinition]] = None
redacted: Optional[bool] = None
reset_interval_minutes: Optional[int] = None
reset_offset_minutes: Optional[int] = None
return_with_vendor_request: Optional[bool] = None
sell_string: Optional[str] = None
services: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorServiceDefinition]] = None
to_json() Mapping[str, Any][source]
unlock_ranges: Optional[Sequence[bungieapi.generated.components.schemas.dates.DateRange]] = None
vendor_banner: Optional[str] = None
vendor_identifier: Optional[str] = None
vendor_portrait: Optional[str] = None
vendor_progression_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyVendorProgressionType] = None
vendor_subcategory_identifier: Optional[str] = None
visible: Optional[bool] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorDisplayPropertiesDefinition(description: Optional[str] = None, has_icon: Optional[bool] = None, high_res_icon: Optional[str] = None, icon: Optional[str] = None, icon_sequences: Optional[Sequence[ForwardRef('DestinyIconSequenceDefinition')]] = None, large_icon: Optional[str] = None, large_transparent_icon: Optional[str] = None, map_icon: Optional[str] = None, name: Optional[str] = None, original_icon: Optional[str] = None, requirements_display: Optional[Sequence[ForwardRef('DestinyVendorRequirementDisplayEntryDefinition')]] = None, small_transparent_icon: Optional[str] = None, subtitle: Optional[str] = None)[source]

Bases: object

description: Optional[str] = None
has_icon: Optional[bool] = None
high_res_icon: Optional[str] = None
icon: Optional[str] = None
icon_sequences: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyIconSequenceDefinition]] = None
large_icon: Optional[str] = None
large_transparent_icon: Optional[str] = None
map_icon: Optional[str] = None
name: Optional[str] = None
original_icon: Optional[str] = None
requirements_display: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorRequirementDisplayEntryDefinition]] = None
small_transparent_icon: Optional[str] = None
subtitle: Optional[str] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorGroupDefinition(category_name: Optional[str] = None, hash: Optional[int] = None, index: Optional[int] = None, order: Optional[int] = None, redacted: Optional[bool] = None)[source]

Bases: object

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.

category_name: Optional[str] = None
hash: Optional[int] = None
index: Optional[int] = None
order: Optional[int] = None
redacted: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorGroupReference(vendor_group_hash: Optional[int] = None)[source]

Bases: object

to_json() Mapping[str, Any][source]
vendor_group_hash: Optional[int] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorInteractionDefinition(flavor_line_one: Optional[str] = None, flavor_line_two: Optional[str] = None, header_display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, instructions: Optional[str] = None, interaction_index: Optional[int] = None, interaction_type: Optional[bungieapi.generated.components.schemas.destiny.VendorInteractionType] = None, questline_item_hash: Optional[int] = None, replies: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorInteractionReplyDefinition]] = None, reward_block_label: Optional[str] = None, reward_vendor_category_index: Optional[int] = None, sack_interaction_list: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorInteractionSackEntryDefinition]] = None, ui_interaction_type: Optional[int] = None, vendor_category_index: Optional[int] = None)[source]

Bases: object

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.

flavor_line_one: Optional[str] = None
flavor_line_two: Optional[str] = None
header_display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
instructions: Optional[str] = None
interaction_index: Optional[int] = None
interaction_type: Optional[bungieapi.generated.components.schemas.destiny.VendorInteractionType] = None
questline_item_hash: Optional[int] = None
replies: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorInteractionReplyDefinition]] = None
reward_block_label: Optional[str] = None
reward_vendor_category_index: Optional[int] = None
sack_interaction_list: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorInteractionSackEntryDefinition]] = None
to_json() Mapping[str, Any][source]
ui_interaction_type: Optional[int] = None
vendor_category_index: Optional[int] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorInteractionReplyDefinition(item_rewards_selection: Optional[bungieapi.generated.components.schemas.destiny.DestinyVendorInteractionRewardSelection] = None, reply: Optional[str] = None, reply_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyVendorReplyType] = None)[source]

Bases: object

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.

item_rewards_selection: Optional[bungieapi.generated.components.schemas.destiny.DestinyVendorInteractionRewardSelection] = None
reply: Optional[str] = None
reply_type: Optional[bungieapi.generated.components.schemas.destiny.DestinyVendorReplyType] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorInteractionSackEntryDefinition(sack_type: Optional[int] = None)[source]

Bases: object

Compare this sackType to the sack identifier in the DestinyInventoryItemDefinition.vendorSackType property of items.

If they match, show this sack with this interaction.

sack_type: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorInventoryFlyoutBucketDefinition(collapsible: Optional[bool] = None, inventory_bucket_hash: Optional[int] = None, sort_items_by: Optional[bungieapi.generated.components.schemas.destiny.DestinyItemSortType] = None)[source]

Bases: object

Information about a single inventory bucket in a vendor flyout UI and how it is shown.

collapsible: Optional[bool] = None
inventory_bucket_hash: Optional[int] = None
sort_items_by: Optional[bungieapi.generated.components.schemas.destiny.DestinyItemSortType] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorInventoryFlyoutDefinition(buckets: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorInventoryFlyoutBucketDefinition]] = None, display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None, equipment_slot_hash: Optional[int] = None, flyout_id: Optional[int] = None, locked_description: Optional[str] = None, suppress_newness: Optional[bool] = None)[source]

Bases: object

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.

buckets: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorInventoryFlyoutBucketDefinition]] = None
display_properties: Optional[bungieapi.generated.components.schemas.destiny.definitions.common.DestinyDisplayPropertiesDefinition] = None
equipment_slot_hash: Optional[int] = None
flyout_id: Optional[int] = None
locked_description: Optional[str] = None
suppress_newness: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorItemDefinition(action: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorSaleItemActionBlockDefinition] = None, category_index: Optional[int] = None, creation_levels: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemCreationEntryLevelDefinition]] = None, currencies: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorItemQuantity]] = None, display_category: Optional[str] = None, display_category_index: Optional[int] = None, exclusivity: Optional[bungieapi.generated.components.schemas.BungieMembershipType] = None, expiration_tooltip: Optional[str] = None, failure_indexes: Optional[Sequence[int]] = None, inventory_bucket_hash: Optional[int] = None, is_crm: Optional[bool] = None, is_offer: Optional[bool] = None, item_hash: Optional[int] = None, maximum_level: Optional[int] = None, minimum_level: Optional[int] = None, original_category_index: Optional[int] = None, purchasable_scope: Optional[bungieapi.generated.components.schemas.destiny.DestinyGatingScope] = None, quantity: Optional[int] = None, redirect_to_sale_indexes: Optional[Sequence[int]] = None, refund_policy: Optional[bungieapi.generated.components.schemas.destiny.DestinyVendorItemRefundPolicy] = None, refund_time_limit: Optional[int] = None, socket_overrides: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorItemSocketOverride]] = None, sort_value: Optional[int] = None, unpurchasable: Optional[bool] = None, vendor_item_index: Optional[int] = None, visibility_scope: Optional[bungieapi.generated.components.schemas.destiny.DestinyGatingScope] = None)[source]

Bases: object

This represents an item being sold by the vendor.

action: Optional[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorSaleItemActionBlockDefinition] = None
category_index: Optional[int] = None
creation_levels: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyItemCreationEntryLevelDefinition]] = None
currencies: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorItemQuantity]] = None
display_category: Optional[str] = None
display_category_index: Optional[int] = None
exclusivity: Optional[bungieapi.generated.components.schemas.BungieMembershipType] = None
expiration_tooltip: Optional[str] = None
failure_indexes: Optional[Sequence[int]] = None
inventory_bucket_hash: Optional[int] = None
is_crm: Optional[bool] = None
is_offer: Optional[bool] = None
item_hash: Optional[int] = None
maximum_level: Optional[int] = None
minimum_level: Optional[int] = None
original_category_index: Optional[int] = None
purchasable_scope: Optional[bungieapi.generated.components.schemas.destiny.DestinyGatingScope] = None
quantity: Optional[int] = None
redirect_to_sale_indexes: Optional[Sequence[int]] = None
refund_policy: Optional[bungieapi.generated.components.schemas.destiny.DestinyVendorItemRefundPolicy] = None
refund_time_limit: Optional[int] = None
socket_overrides: Optional[Sequence[bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorItemSocketOverride]] = None
sort_value: Optional[int] = None
to_json() Mapping[str, Any][source]
unpurchasable: Optional[bool] = None
vendor_item_index: Optional[int] = None
visibility_scope: Optional[bungieapi.generated.components.schemas.destiny.DestinyGatingScope] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorItemQuantity(has_conditional_visibility: Optional[bool] = None, item_hash: Optional[int] = None, item_instance_id: Optional[int] = None, quantity: Optional[int] = None)[source]

Bases: object

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)

has_conditional_visibility: Optional[bool] = None
item_hash: Optional[int] = None
item_instance_id: Optional[int] = None
quantity: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorItemSocketOverride(randomized_options_count: Optional[int] = None, single_item_hash: Optional[int] = None, socket_type_hash: Optional[int] = None)[source]

Bases: object

The information for how the vendor purchase should override a given socket with custom plug data.

randomized_options_count: Optional[int] = None
single_item_hash: Optional[int] = None
socket_type_hash: Optional[int] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorRequirementDisplayEntryDefinition(icon: Optional[str] = None, name: Optional[str] = None, source: Optional[str] = None, type: Optional[str] = None)[source]

Bases: object

The localized properties of the requirementsDisplay, allowing information about the requirement or item being featured to be seen.

icon: Optional[str] = None
name: Optional[str] = None
source: Optional[str] = None
to_json() Mapping[str, Any][source]
type: Optional[str] = None
class bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorSaleItemActionBlockDefinition(execute_seconds: Optional[float] = None, is_positive: Optional[bool] = None)[source]

Bases: object

Not terribly useful, some basic cooldown interaction info.

execute_seconds: Optional[float] = None
is_positive: Optional[bool] = None
to_json() Mapping[str, Any][source]
class bungieapi.generated.components.schemas.destiny.definitions.DestinyVendorServiceDefinition(name: Optional[str] = None)[source]

Bases: object

When a vendor provides services, this is the localized name of those services.

name: Optional[str] = None
to_json() Mapping[str, Any][source]