import * as Graph from "../Graph/Graph"; /** * Information about the location of a REST API resource */ export interface ApiResourceLocation { /** * Area name for this resource */ area: string; /** * Unique Identifier for this location */ id: string; /** * Maximum api version that this resource supports (current server version for this resource) */ maxVersion: string; /** * Minimum api version that this resource supports */ minVersion: string; /** * The latest version of this resource location that is in "Release" (non-preview) mode */ releasedVersion: string; /** * Resource name */ resourceName: string; /** * The current resource version supported by this resource location */ resourceVersion: number; /** * This location's route template (templated relative path) */ routeTemplate: string; } /** * Represents version information for a REST Api resource */ export interface ApiResourceVersion { /** * String representation of the Public API version. This is the version that the public sees and is used for a large group of services (e.g. the TFS 1.0 API) */ apiVersion: string; /** * Is the public API version in preview */ isPreview: boolean; /** * Internal resource version. This is defined per-resource and is used to support build-to-build compatibility of API changes within a given (in-preview) public api version. For example, within the TFS 1.0 API release cycle, while it is still in preview, a resource's data structure may be changed. This resource can be versioned such that older clients will still work (requests will be sent to the older version) and new/upgraded clients will talk to the new version of the resource. */ resourceVersion: number; } /** * Enumeration of the options that can be passed in on Connect. */ export declare enum ConnectOptions { /** * Retrieve no optional data. */ None = 0, /** * Includes information about AccessMappings and ServiceDefinitions. */ IncludeServices = 1, /** * Includes the last user access for this host. */ IncludeLastUserAccess = 2, /** * This is only valid on the deployment host and when true. Will only return inherited definitions. */ IncludeInheritedDefinitionsOnly = 4, /** * When true will only return non inherited definitions. Only valid at non-deployment host. */ IncludeNonInheritedDefinitionsOnly = 8 } export declare enum DeploymentFlags { None = 0, Hosted = 1, OnPremises = 2 } /** * Defines an "actor" for an event. */ export interface EventActor { /** * Required: This is the identity of the user for the specified role. */ id: string; /** * Required: The event specific name of a role. */ role: string; } /** * Defines a scope for an event. */ export interface EventScope { /** * Required: This is the identity of the scope for the type. */ id: string; /** * Optional: The display name of the scope */ name: string; /** * Required: The event specific type of a scope. */ type: string; } export interface IdentityRef extends Graph.GraphSubjectBase { /** * Deprecated - Can be retrieved by querying the Graph user referenced in the "self" entry of the IdentityRef "_links" dictionary */ directoryAlias: string; id: string; /** * Deprecated - Available in the "avatar" entry of the IdentityRef "_links" dictionary */ imageUrl: string; /** * Deprecated - Can be retrieved by querying the Graph membership state referenced in the "membershipState" entry of the GraphUser "_links" dictionary */ inactive: boolean; /** * Deprecated - Can be inferred from the subject type of the descriptor (Descriptor.IsAadUserType/Descriptor.IsAadGroupType) */ isAadIdentity: boolean; /** * Deprecated - Can be inferred from the subject type of the descriptor (Descriptor.IsGroupType) */ isContainer: boolean; isDeletedInOrigin: boolean; /** * Deprecated - not in use in most preexisting implementations of ToIdentityRef */ profileUrl: string; /** * Deprecated - use Domain+PrincipalName instead */ uniqueName: string; } export interface IdentityRefWithEmail extends IdentityRef { preferredEmailAddress: string; } /** * The JSON model for JSON Patch Operations */ export interface JsonPatchDocument { } /** * The JSON model for a JSON Patch operation */ export interface JsonPatchOperation { /** * The path to copy from for the Move/Copy operation. */ from: string; /** * The patch operation */ op: Operation; /** * The path for the operation. In the case of an array, a zero based index can be used to specify the position in the array (e.g. /biscuits/0/name). The "-" character can be used instead of an index to insert at the end of the array (e.g. /biscuits/-). */ path: string; /** * The value for the operation. This is either a primitive or a JToken. */ value: any; } export interface JsonWebToken { } export declare enum JWTAlgorithm { None = 0, HS256 = 1, RS256 = 2 } export declare enum Operation { Add = 0, Remove = 1, Replace = 2, Move = 3, Copy = 4, Test = 5 } /** * A list that contains a single page of results from a query. */ export interface PagedList extends Array { /** * A string that can be passed to the same endpoint that returned this PagedList in order to retrieve the next page of results. */ continuationToken: string | null; } /** * Represents the public key portion of an RSA asymmetric key. */ export interface PublicKey { /** * Gets or sets the exponent for the public key. */ exponent: number[]; /** * Gets or sets the modulus for the public key. */ modulus: number[]; } export interface Publisher { /** * Name of the publishing service. */ name: string; /** * Service Owner Guid Eg. Tfs : 00025394-6065-48CA-87D9-7F5672854EF7 */ serviceOwnerId: string; } /** * The class to represent a REST reference link. RFC: http://tools.ietf.org/html/draft-kelly-json-hal-06 The RFC is not fully implemented, additional properties are allowed on the reference link but as of yet we don't have a need for them. */ export interface ReferenceLink { href: string; } export interface ResourceRef { id: string; url: string; } export interface ServiceEvent { /** * This is the id of the type. Constants that will be used by subscribers to identify/filter events being published on a topic. */ eventType: string; /** * This is the service that published this event. */ publisher: Publisher; /** * The resource object that carries specific information about the event. The object must have the ServiceEventObject applied for serialization/deserialization to work. */ resource: any; /** * This dictionary carries the context descriptors along with their ids. */ resourceContainers: { [key: string]: any; }; /** * This is the version of the resource. */ resourceVersion: string; } /** * A signed url allowing limited-time anonymous access to private resources. */ export interface SignedUrl { /** * Timestamp when access expires. */ signatureExpires: Date; /** * The URL to allow access to. */ url: string; } export interface TeamMember { identity: IdentityRef; isTeamAdmin: boolean; } /** * A single secured timing consisting of a duration and start time */ export interface TimingEntry { /** * Duration of the entry in ticks */ elapsedTicks: number; /** * Properties to distinguish timings within the same group or to provide data to send with telemetry */ properties: { [key: string]: any; }; /** * Offset from Server Request Context start time in microseconds */ startOffset: number; } /** * A set of secured performance timings all keyed off of the same string */ export interface TimingGroup { /** * The total number of timing entries associated with this group */ count: number; /** * Overall duration of all entries in this group in ticks */ elapsedTicks: number; /** * A list of timing entries in this group. Only the first few entries in each group are collected. */ timings: TimingEntry[]; } /** * This class describes a trace filter, i.e. a set of criteria on whether or not a trace event should be emitted */ export interface TraceFilter { area: string; exceptionType: string; isEnabled: boolean; layer: string; level: number; method: string; /** * Used to serialize additional identity information (display name, etc) to clients. Not set by default. Server-side callers should use OwnerId. */ owner: IdentityRef; ownerId: string; path: string; processName: string; service: string; serviceHost: string; timeCreated: Date; traceId: string; tracepoint: number; uri: string; userAgent: string; userLogin: string; } export interface VssJsonCollectionWrapper extends VssJsonCollectionWrapperBase { value: any[]; } /** * This class is used to serialize collections as a single JSON object on the wire. */ export interface VssJsonCollectionWrapperV extends VssJsonCollectionWrapperBase { /** * The serialized item. */ value: T; } export interface VssJsonCollectionWrapperBase { /** * The number of serialized items. */ count: number; } /** * This is the type used for firing notifications intended for the subsystem in the Notifications SDK. For components that can't take a dependency on the Notifications SDK directly, they can use ITeamFoundationEventService.PublishNotification and the Notifications SDK ISubscriber implementation will get it. */ export interface VssNotificationEvent { /** * Optional: A list of actors which are additional identities with corresponding roles that are relevant to the event. */ actors: EventActor[]; /** * Optional: A list of artifacts referenced or impacted by this event. */ artifactUris: string[]; /** * Required: The event payload. If Data is a string, it must be in Json or XML format. Otherwise it must have a serialization format attribute. */ data: any; /** * Required: The name of the event. This event must be registered in the context it is being fired. */ eventType: string; /** * How long before the event expires and will be cleaned up. The default is to use the system default. */ expiresIn: any; /** * The id of the item, artifact, extension, project, etc. */ itemId: string; /** * How long to wait before processing this event. The default is to process immediately. */ processDelay: any; /** * Optional: A list of scopes which are relevant to the event. */ scopes: EventScope[]; /** * This is the time the original source event for this VssNotificationEvent was created. For example, for something like a build completion notification SourceEventCreatedTime should be the time the build finished not the time this event was raised. */ sourceEventCreatedTime: Date; } export interface WrappedException { customProperties: { [key: string]: any; }; errorCode: number; eventId: number; helpLink: string; innerException: WrappedException; message: string; stackTrace: string; typeKey: string; typeName: string; }