@itwin/reality-data-client
Version:
HTTP Client for the iTwin Platform Reality Management APIs
92 lines • 3.82 kB
TypeScript
import type { RealityData } from "@itwin/core-common";
import { type AccessToken, type GuidString } from "@itwin/core-bentley";
import type { RealityDataAccessClient } from "./RealityDataClient";
/**
* Extent of a reality data, delimited by southwest and northeast coordinates.
*/
export interface Extent {
southWest: Point;
northEast: Point;
}
/**
* Point used to define an extent.
*/
export interface Point {
latitude: number;
longitude: number;
}
/**
* Provides information regarding the acquisition, such as dates and acquirer used.
*/
export interface Acquisition {
startDateTime: Date;
endDateTime?: Date;
acquirer?: string;
}
/** RealityData
* This class implements a Reality Data instance.
* Data is accessed directly through methods of the reality data instance.
* Access to the data required a properly entitled token though the access to the blob is controlled through
* an Azure blob URL, the token may be required to obtain this Azure blob URL or refresh it.
* The Azure blob URL is considered valid for an hour and is refreshed after 50 minutes.
* In addition to the reality data properties, and Azure blob URL and internal states, a reality data also contains
* the identification of the iTwin to be used for access permissions and
* may contain a RealityDataClient to obtain the specialization to communicate with Reality Management API (to obtain the Azure blob URL).
* @beta
*/
export declare class ITwinRealityData implements RealityData {
id: GuidString;
displayName?: string;
dataset?: string;
group?: string;
dataCenterLocation?: string;
description?: string;
rootDocument?: string;
tags?: string[];
acquisition?: Acquisition;
size?: number;
authoring?: boolean;
classification?: string;
type?: string;
extent?: Extent;
/** @deprecated in 1.0.1 not used in Reality Management API. Will be removed in next major update.*/
accessControl?: string;
modifiedDateTime?: Date;
lastAccessedDateTime?: Date;
createdDateTime?: Date;
/** Link to client to fetch the blob url */
client: undefined | RealityDataAccessClient;
/** The GUID identifier of the iTwin used when using the client. */
iTwinId: GuidString;
/** Cache parameters for reality data access. Contains the blob url, the timestamp to refresh (every 50 minutes) the url and the root document path. */
private _containerCache;
/**
* Creates an instance of RealityData.
* @beta
*/
constructor(client: RealityDataAccessClient, realityData?: any, iTwinId?: GuidString);
/**
* Gets string url to fetch blob data from. Access is read-only.
* @param accessToken The client request context.
* @param blobPath name or path of tile
* @param writeAccess Optional boolean indicating if write access is requested. Default is false for read-only access. The realitydata:modify scope is required to grant the "write" access.
* @returns string url for blob data
* @beta
*/
getBlobUrl(accessToken: AccessToken, blobPath: string, writeAccess?: boolean): Promise<URL>;
/**
* Try to use authorizationClient in RealityDataClientOptions to get the access token
* otherwise, will return the input token
* This is a workaround to support different authorization client for the reality data client and iTwin-core.
*/
private resolveAccessToken;
/**
* Gets a tile access url URL object
* @param accessToken The client request context.
* @param writeAccess Optional boolean indicating if write access is requested. Default is false for read-only access.
* @returns app URL object for blob url
* @beta
*/
private getContainerUrl;
}
//# sourceMappingURL=RealityData.d.ts.map