bungie-api-ts
Version:
TypeScript mappings for the Bungie.net API
215 lines (214 loc) • 6.97 kB
TypeScript
/**
* Bungie.Net API
* These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.
*
* OpenAPI spec version: 2.20.1
* Contact: support@bungie.com
*
* NOTE: This class is auto generated by the bungie-api-ts code generator program.
* https://github.com/DestinyItemManager/bungie-api-ts
* Do not edit these files manually.
*/
import { GeneralUser } from '../user/interfaces.js';
import { PagedQuery } from '../common.js';
export interface ContentTypeDescription {
readonly cType: string;
readonly name: string;
readonly contentDescription: string;
readonly previewImage: string;
readonly priority: number;
readonly reminder: string;
readonly properties: ContentTypeProperty[];
readonly tagMetadata: TagMetadataDefinition[];
readonly tagMetadataItems: {
[key: string]: TagMetadataItem;
};
readonly usageExamples: string[];
readonly showInContentEditor: boolean;
readonly typeOf: string;
readonly bindIdentifierToProperty: string;
readonly boundRegex: string;
readonly forceIdentifierBinding: boolean;
readonly allowComments: boolean;
readonly autoEnglishPropertyFallback: boolean;
readonly bulkUploadable: boolean;
readonly previews: ContentPreview[];
readonly suppressCmsPath: boolean;
readonly propertySections: ContentTypePropertySection[];
}
export interface ContentTypeProperty {
readonly name: string;
readonly rootPropertyName: string;
readonly readableName: string;
readonly value: string;
readonly propertyDescription: string;
readonly localizable: boolean;
readonly fallback: boolean;
readonly enabled: boolean;
readonly order: number;
readonly visible: boolean;
readonly isTitle: boolean;
readonly required: boolean;
readonly maxLength: number;
readonly maxByteLength: number;
readonly maxFileSize: number;
readonly regexp: string;
readonly validateAs: string;
readonly rssAttribute: string;
readonly visibleDependency: string;
readonly visibleOn: string;
readonly datatype: ContentPropertyDataTypeEnum;
readonly attributes: {
[key: string]: string;
};
readonly childProperties: ContentTypeProperty[];
readonly contentTypeAllowed: string;
readonly bindToProperty: string;
readonly boundRegex: string;
readonly representationSelection: {
[key: string]: string;
};
readonly defaultValues: ContentTypeDefaultValue[];
readonly isExternalAllowed: boolean;
readonly propertySection: string;
readonly weight: number;
readonly entitytype: string;
readonly isCombo: boolean;
readonly suppressProperty: boolean;
readonly legalContentTypes: string[];
readonly representationValidationString: string;
readonly minWidth: number;
readonly maxWidth: number;
readonly minHeight: number;
readonly maxHeight: number;
readonly isVideo: boolean;
readonly isImage: boolean;
}
export declare const enum ContentPropertyDataTypeEnum {
None = 0,
Plaintext = 1,
Html = 2,
Dropdown = 3,
List = 4,
Json = 5,
Content = 6,
Representation = 7,
Set = 8,
File = 9,
FolderSet = 10,
Date = 11,
MultilinePlaintext = 12,
DestinyContent = 13,
Color = 14,
}
export interface ContentTypeDefaultValue {
readonly whenClause: string;
readonly whenValue: string;
readonly defaultValue: string;
}
export interface TagMetadataDefinition {
readonly description: string;
readonly order: number;
readonly items: TagMetadataItem[];
readonly datatype: string;
readonly name: string;
readonly isRequired: boolean;
}
export interface TagMetadataItem {
readonly description: string;
readonly tagText: string;
readonly groups: string[];
readonly isDefault: boolean;
readonly name: string;
}
export interface ContentPreview {
readonly name: string;
readonly path: string;
readonly itemInSet: boolean;
readonly setTag: string;
readonly setNesting: number;
readonly useSetId: number;
}
export interface ContentTypePropertySection {
readonly name: string;
readonly readableName: string;
readonly collapsed: boolean;
}
export interface ContentItemPublicContract {
readonly contentId: string;
readonly cType: string;
readonly cmsPath: string;
readonly creationDate: string;
readonly modifyDate: string;
readonly allowComments: boolean;
readonly hasAgeGate: boolean;
readonly minimumAge: number;
readonly ratingImagePath: string;
readonly author: GeneralUser;
readonly autoEnglishPropertyFallback: boolean;
/**
* Firehose content is really a collection of metadata and "properties", which are
* the potentially-but-not-strictly localizable data that comprises the meat of
* whatever content is being shown.
*
* As Cole Porter would have crooned, "Anything Goes" with Firehose properties.
* They are most often strings, but they can theoretically be anything. They are
* JSON encoded, and could be JSON structures, simple strings, numbers etc... The
* Content Type of the item (cType) will describe the properties, and thus how they
* ought to be deserialized.
*/
readonly properties: {
[key: string]: object;
};
readonly representations: ContentRepresentation[];
/** NOTE: Tags will always be lower case. */
readonly tags: string[];
readonly commentSummary: CommentSummary;
}
export interface ContentRepresentation {
readonly name: string;
readonly path: string;
readonly validationString: string;
}
export interface CommentSummary {
readonly topicId: string;
readonly commentCount: number;
}
export interface SearchResultOfContentItemPublicContract {
readonly results: ContentItemPublicContract[];
readonly totalResults: number;
readonly hasMore: boolean;
readonly query: PagedQuery;
readonly replacementContinuationToken: string;
/**
* If useTotalResults is true, then totalResults represents an accurate count.
*
* If False, it does not, and may be estimated/only the size of the current page.
*
* Either way, you should probably always only trust hasMore.
*
* This is a long-held historical throwback to when we used to do paging with known
* total results. Those queries toasted our database, and we were left to hastily
* alter our endpoints and create backward- compatible shims, of which
* useTotalResults is one.
*/
readonly useTotalResults: boolean;
}
export interface NewsArticleRssResponse {
readonly CurrentPaginationToken: number;
readonly NextPaginationToken?: number;
readonly ResultCountThisPage: number;
readonly NewsArticles: NewsArticleRssItem[];
readonly CategoryFilter: string;
readonly PagerAction: string;
}
export interface NewsArticleRssItem {
readonly Title: string;
readonly Link: string;
readonly PubDate: string;
readonly UniqueIdentifier: string;
readonly Description: string;
readonly HtmlContent: string;
readonly ImagePath: string;
readonly OptionalMobileImagePath: string;
}