UNPKG

65.4 kBTypeScriptView Raw
1import VSSInterfaces = require("../interfaces/common/VSSInterfaces");
2/**
3 * How the acquisition is assigned
4 */
5export declare enum AcquisitionAssignmentType {
6 None = 0,
7 /**
8 * Just assign for me
9 */
10 Me = 1,
11 /**
12 * Assign for all users in the account
13 */
14 All = 2
15}
16export interface AcquisitionOperation {
17 /**
18 * State of the AcquisitionOperation for the current user
19 */
20 operationState?: AcquisitionOperationState;
21 /**
22 * AcquisitionOperationType: install, request, buy, etc...
23 */
24 operationType?: AcquisitionOperationType;
25 /**
26 * Optional reason to justify current state. Typically used with Disallow state.
27 */
28 reason?: string;
29}
30export declare enum AcquisitionOperationState {
31 /**
32 * Not allowed to use this AcquisitionOperation
33 */
34 Disallow = 0,
35 /**
36 * Allowed to use this AcquisitionOperation
37 */
38 Allow = 1,
39 /**
40 * Operation has already been completed and is no longer available
41 */
42 Completed = 3
43}
44/**
45 * Set of different types of operations that can be requested.
46 */
47export declare enum AcquisitionOperationType {
48 /**
49 * Not yet used
50 */
51 Get = 0,
52 /**
53 * Install this extension into the host provided
54 */
55 Install = 1,
56 /**
57 * Buy licenses for this extension and install into the host provided
58 */
59 Buy = 2,
60 /**
61 * Try this extension
62 */
63 Try = 3,
64 /**
65 * Request this extension for installation
66 */
67 Request = 4,
68 /**
69 * No action found
70 */
71 None = 5,
72 /**
73 * Request admins for purchasing extension
74 */
75 PurchaseRequest = 6
76}
77/**
78 * Market item acquisition options (install, buy, etc) for an installation target.
79 */
80export interface AcquisitionOptions {
81 /**
82 * Default Operation for the ItemId in this target
83 */
84 defaultOperation?: AcquisitionOperation;
85 /**
86 * The item id that this options refer to
87 */
88 itemId?: string;
89 /**
90 * Operations allowed for the ItemId in this target
91 */
92 operations?: AcquisitionOperation[];
93 /**
94 * The target that this options refer to
95 */
96 target?: string;
97}
98export interface Answers {
99 /**
100 * Gets or sets the vs marketplace extension name
101 */
102 vSMarketplaceExtensionName?: string;
103 /**
104 * Gets or sets the vs marketplace publisher name
105 */
106 vSMarketplacePublisherName?: string;
107}
108export interface AssetDetails {
109 /**
110 * Gets or sets the Answers, which contains vs marketplace extension name and publisher name
111 */
112 answers?: Answers;
113 /**
114 * Gets or sets the VS publisher Id
115 */
116 publisherNaturalIdentifier?: string;
117}
118export interface AzurePublisher {
119 azurePublisherId?: string;
120 publisherName?: string;
121}
122export interface AzureRestApiRequestModel {
123 /**
124 * Gets or sets the Asset details
125 */
126 assetDetails?: AssetDetails;
127 /**
128 * Gets or sets the asset id
129 */
130 assetId?: string;
131 /**
132 * Gets or sets the asset version
133 */
134 assetVersion?: number;
135 /**
136 * Gets or sets the customer support email
137 */
138 customerSupportEmail?: string;
139 /**
140 * Gets or sets the integration contact email
141 */
142 integrationContactEmail?: string;
143 /**
144 * Gets or sets the asset version
145 */
146 operation?: string;
147 /**
148 * Gets or sets the plan identifier if any.
149 */
150 planId?: string;
151 /**
152 * Gets or sets the publisher id
153 */
154 publisherId?: string;
155 /**
156 * Gets or sets the resource type
157 */
158 type?: string;
159}
160export interface AzureRestApiResponseModel extends AzureRestApiRequestModel {
161 /**
162 * Gets or sets the Asset operation status
163 */
164 operationStatus?: RestApiResponseStatusModel;
165}
166/**
167 * This is the set of categories in response to the get category query
168 */
169export interface CategoriesResult {
170 categories?: ExtensionCategory[];
171}
172/**
173 * Definition of one title of a category
174 */
175export interface CategoryLanguageTitle {
176 /**
177 * The language for which the title is applicable
178 */
179 lang?: string;
180 /**
181 * The language culture id of the lang parameter
182 */
183 lcid?: number;
184 /**
185 * Actual title to be shown on the UI
186 */
187 title?: string;
188}
189/**
190 * The structure of a Concern Rather than defining a separate data structure having same fields as QnAItem, we are inheriting from the QnAItem.
191 */
192export interface Concern extends QnAItem {
193 /**
194 * Category of the concern
195 */
196 category?: ConcernCategory;
197}
198export declare enum ConcernCategory {
199 General = 1,
200 Abusive = 2,
201 Spam = 4
202}
203/**
204 * Stores Last Contact Date
205 */
206export interface CustomerLastContact {
207 /**
208 * account for which customer was last contacted
209 */
210 account?: string;
211 /**
212 * Date on which the customer was last contacted
213 */
214 lastContactDate?: Date;
215}
216/**
217 * An entity representing the data required to create a Customer Support Request.
218 */
219export interface CustomerSupportRequest {
220 /**
221 * Display name of extension in concern
222 */
223 displayName?: string;
224 /**
225 * Email of user making the support request
226 */
227 emailId?: string;
228 /**
229 * Extension name
230 */
231 extensionName?: string;
232 /**
233 * Link to the extension details page
234 */
235 extensionURL?: string;
236 /**
237 * User-provided support request message.
238 */
239 message?: string;
240 /**
241 * Publisher name
242 */
243 publisherName?: string;
244 /**
245 * Reason for support request
246 */
247 reason?: string;
248 /**
249 * ReCaptcha Token
250 */
251 reCaptchaToken?: string;
252 /**
253 * VSID of the user making the support request
254 */
255 reporterVSID?: string;
256 /**
257 * Review under concern
258 */
259 review?: Review;
260 /**
261 * The UI source through which the request was made
262 */
263 sourceLink?: string;
264}
265export declare enum DraftPatchOperation {
266 Publish = 1,
267 Cancel = 2
268}
269export declare enum DraftStateType {
270 Unpublished = 1,
271 Published = 2,
272 Cancelled = 3,
273 Error = 4
274}
275export interface EventCounts {
276 /**
277 * Average rating on the day for extension
278 */
279 averageRating?: number;
280 /**
281 * Number of times the extension was bought in hosted scenario (applies only to VSTS extensions)
282 */
283 buyCount?: number;
284 /**
285 * Number of times the extension was bought in connected scenario (applies only to VSTS extensions)
286 */
287 connectedBuyCount?: number;
288 /**
289 * Number of times the extension was installed in connected scenario (applies only to VSTS extensions)
290 */
291 connectedInstallCount?: number;
292 /**
293 * Number of times the extension was installed
294 */
295 installCount?: number;
296 /**
297 * Number of times the extension was installed as a trial (applies only to VSTS extensions)
298 */
299 tryCount?: number;
300 /**
301 * Number of times the extension was uninstalled (applies only to VSTS extensions)
302 */
303 uninstallCount?: number;
304 /**
305 * Number of times the extension was downloaded (applies to VSTS extensions and VSCode marketplace click installs)
306 */
307 webDownloadCount?: number;
308 /**
309 * Number of detail page views
310 */
311 webPageViews?: number;
312}
313/**
314 * Contract for handling the extension acquisition process
315 */
316export interface ExtensionAcquisitionRequest {
317 /**
318 * How the item is being assigned
319 */
320 assignmentType?: AcquisitionAssignmentType;
321 /**
322 * The id of the subscription used for purchase
323 */
324 billingId?: string;
325 /**
326 * The marketplace id (publisherName.extensionName) for the item
327 */
328 itemId?: string;
329 /**
330 * The type of operation, such as install, request, purchase
331 */
332 operationType?: AcquisitionOperationType;
333 /**
334 * Additional properties which can be added to the request.
335 */
336 properties?: any;
337 /**
338 * How many licenses should be purchased
339 */
340 quantity?: number;
341 /**
342 * A list of target guids where the item should be acquired (installed, requested, etc.), such as account id
343 */
344 targets?: string[];
345}
346export interface ExtensionBadge {
347 description?: string;
348 imgUri?: string;
349 link?: string;
350}
351export interface ExtensionCategory {
352 /**
353 * The name of the products with which this category is associated to.
354 */
355 associatedProducts?: string[];
356 categoryId?: number;
357 /**
358 * This is the internal name for a category
359 */
360 categoryName?: string;
361 /**
362 * This parameter is obsolete. Refer to LanguageTitles for language specific titles
363 */
364 language?: string;
365 /**
366 * The list of all the titles of this category in various languages
367 */
368 languageTitles?: CategoryLanguageTitle[];
369 /**
370 * This is the internal name of the parent if this is associated with a parent
371 */
372 parentCategoryName?: string;
373}
374export interface ExtensionDailyStat {
375 /**
376 * Stores the event counts
377 */
378 counts?: EventCounts;
379 /**
380 * Generic key/value pair to store extended statistics. Used for sending paid extension stats like Upgrade, Downgrade, Cancel trend etc.
381 */
382 extendedStats?: {
383 [key: string]: any;
384 };
385 /**
386 * Timestamp of this data point
387 */
388 statisticDate?: Date;
389 /**
390 * Version of the extension
391 */
392 version?: string;
393}
394export interface ExtensionDailyStats {
395 /**
396 * List of extension statistics data points
397 */
398 dailyStats?: ExtensionDailyStat[];
399 /**
400 * Id of the extension, this will never be sent back to the client. For internal use only.
401 */
402 extensionId?: string;
403 /**
404 * Name of the extension
405 */
406 extensionName?: string;
407 /**
408 * Name of the publisher
409 */
410 publisherName?: string;
411 /**
412 * Count of stats
413 */
414 statCount?: number;
415}
416export declare enum ExtensionDeploymentTechnology {
417 Exe = 1,
418 Msi = 2,
419 Vsix = 3,
420 ReferralLink = 4
421}
422export interface ExtensionDraft {
423 assets?: ExtensionDraftAsset[];
424 createdDate?: Date;
425 draftState?: DraftStateType;
426 extensionName?: string;
427 id?: string;
428 lastUpdated?: Date;
429 payload?: ExtensionPayload;
430 product?: string;
431 publisherName?: string;
432 validationErrors?: {
433 key: string;
434 value: string;
435 }[];
436 validationWarnings?: {
437 key: string;
438 value: string;
439 }[];
440}
441export interface ExtensionDraftAsset extends ExtensionFile {
442}
443export interface ExtensionDraftPatch {
444 extensionData?: UnpackagedExtensionData;
445 operation?: DraftPatchOperation;
446 reCaptchaToken?: string;
447}
448/**
449 * Stores details of each event
450 */
451export interface ExtensionEvent {
452 /**
453 * Id which identifies each data point uniquely
454 */
455 id?: number;
456 /**
457 * Generic properties container which stores the data related to each event. For well known events like uninstall, install etc. We expect the Properties object to be a List<UninstallProperties>, List<InstallProperties>
458 */
459 properties?: any;
460 /**
461 * Timestamp of when the event occurred
462 */
463 statisticDate?: Date;
464 /**
465 * Version of the extension
466 */
467 version?: string;
468}
469/**
470 * Container object for all extension events. Stores all install and uninstall events related to an extension. The events container is generic so can store data of any type of event. New event types can be added without altering the contract.
471 */
472export interface ExtensionEvents {
473 /**
474 * Generic container for events data. The dictionary key denotes the type of event and the list contains properties related to that event
475 */
476 events?: {
477 [key: string]: ExtensionEvent[];
478 };
479 /**
480 * Id of the extension, this will never be sent back to the client. This field will mainly be used when EMS calls into Gallery REST API to update install/uninstall events for various extensions in one go.
481 */
482 extensionId?: string;
483 /**
484 * Name of the extension
485 */
486 extensionName?: string;
487 /**
488 * Name of the publisher
489 */
490 publisherName?: string;
491}
492export interface ExtensionFile {
493 assetType?: string;
494 language?: string;
495 source?: string;
496}
497/**
498 * The FilterResult is the set of extensions that matched a particular query filter.
499 */
500export interface ExtensionFilterResult {
501 /**
502 * This is the set of applications that matched the query filter supplied.
503 */
504 extensions?: PublishedExtension[];
505 /**
506 * The PagingToken is returned from a request when more records exist that match the result than were requested or could be returned. A follow-up query with this paging token can be used to retrieve more results.
507 */
508 pagingToken?: string;
509 /**
510 * This is the additional optional metadata for the given result. E.g. Total count of results which is useful in case of paged results
511 */
512 resultMetadata?: ExtensionFilterResultMetadata[];
513}
514/**
515 * ExtensionFilterResultMetadata is one set of metadata for the result e.g. Total count. There can be multiple metadata items for one metadata.
516 */
517export interface ExtensionFilterResultMetadata {
518 /**
519 * The metadata items for the category
520 */
521 metadataItems?: MetadataItem[];
522 /**
523 * Defines the category of metadata items
524 */
525 metadataType?: string;
526}
527/**
528 * Represents the component pieces of an extensions fully qualified name, along with the fully qualified name.
529 */
530export interface ExtensionIdentifier {
531 /**
532 * The ExtensionName component part of the fully qualified ExtensionIdentifier
533 */
534 extensionName?: string;
535 /**
536 * The PublisherName component part of the fully qualified ExtensionIdentifier
537 */
538 publisherName?: string;
539}
540/**
541 * Type of event
542 */
543export declare enum ExtensionLifecycleEventType {
544 Uninstall = 1,
545 Install = 2,
546 Review = 3,
547 Acquisition = 4,
548 Sales = 5,
549 Other = 999
550}
551/**
552 * Package that will be used to create or update a published extension
553 */
554export interface ExtensionPackage {
555 /**
556 * Base 64 encoded extension package
557 */
558 extensionManifest?: string;
559}
560export interface ExtensionPayload {
561 description?: string;
562 displayName?: string;
563 fileName?: string;
564 installationTargets?: InstallationTarget[];
565 isPreview?: boolean;
566 isSignedByMicrosoft?: boolean;
567 isValid?: boolean;
568 metadata?: {
569 key: string;
570 value: string;
571 }[];
572 type?: ExtensionDeploymentTechnology;
573}
574/**
575 * Policy with a set of permissions on extension operations
576 */
577export interface ExtensionPolicy {
578 /**
579 * Permissions on 'Install' operation
580 */
581 install?: ExtensionPolicyFlags;
582 /**
583 * Permission on 'Request' operation
584 */
585 request?: ExtensionPolicyFlags;
586}
587/**
588 * Set of flags that can be associated with a given permission over an extension
589 */
590export declare enum ExtensionPolicyFlags {
591 /**
592 * No permission
593 */
594 None = 0,
595 /**
596 * Permission on private extensions
597 */
598 Private = 1,
599 /**
600 * Permission on public extensions
601 */
602 Public = 2,
603 /**
604 * Permission in extensions that are in preview
605 */
606 Preview = 4,
607 /**
608 * Permission in released extensions
609 */
610 Released = 8,
611 /**
612 * Permission in 1st party extensions
613 */
614 FirstParty = 16,
615 /**
616 * Mask that defines all permissions
617 */
618 All = 31
619}
620/**
621 * An ExtensionQuery is used to search the gallery for a set of extensions that match one of many filter values.
622 */
623export interface ExtensionQuery {
624 /**
625 * When retrieving extensions with a query; frequently the caller only needs a small subset of the assets. The caller may specify a list of asset types that should be returned if the extension contains it. All other assets will not be returned.
626 */
627 assetTypes?: string[];
628 /**
629 * Each filter is a unique query and will have matching set of extensions returned from the request. Each result will have the same index in the resulting array that the filter had in the incoming query.
630 */
631 filters?: QueryFilter[];
632 /**
633 * The Flags are used to determine which set of information the caller would like returned for the matched extensions.
634 */
635 flags?: ExtensionQueryFlags;
636}
637/**
638 * Type of extension filters that are supported in the queries.
639 */
640export declare enum ExtensionQueryFilterType {
641 /**
642 * The values are used as tags. All tags are treated as "OR" conditions with each other. There may be some value put on the number of matched tags from the query.
643 */
644 Tag = 1,
645 /**
646 * The Values are an ExtensionName or fragment that is used to match other extension names.
647 */
648 DisplayName = 2,
649 /**
650 * The Filter is one or more tokens that define what scope to return private extensions for.
651 */
652 Private = 3,
653 /**
654 * Retrieve a set of extensions based on their id's. The values should be the extension id's encoded as strings.
655 */
656 Id = 4,
657 /**
658 * The category is unlike other filters. It is AND'd with the other filters instead of being a separate query.
659 */
660 Category = 5,
661 /**
662 * Certain contribution types may be indexed to allow for query by type. User defined types can't be indexed at the moment.
663 */
664 ContributionType = 6,
665 /**
666 * Retrieve an set extension based on the name based identifier. This differs from the internal id (which is being deprecated).
667 */
668 Name = 7,
669 /**
670 * The InstallationTarget for an extension defines the target consumer for the extension. This may be something like VS, VSOnline, or VSCode
671 */
672 InstallationTarget = 8,
673 /**
674 * Query for featured extensions, no value is allowed when using the query type.
675 */
676 Featured = 9,
677 /**
678 * The SearchText provided by the user to search for extensions
679 */
680 SearchText = 10,
681 /**
682 * Query for extensions that are featured in their own category, The filterValue for this is name of category of extensions.
683 */
684 FeaturedInCategory = 11,
685 /**
686 * When retrieving extensions from a query, exclude the extensions which are having the given flags. The value specified for this filter should be a string representing the integer values of the flags to be excluded. In case of multiple flags to be specified, a logical OR of the interger values should be given as value for this filter This should be at most one filter of this type. This only acts as a restrictive filter after. In case of having a particular flag in both IncludeWithFlags and ExcludeWithFlags, excludeFlags will remove the included extensions giving empty result for that flag.
687 */
688 ExcludeWithFlags = 12,
689 /**
690 * When retrieving extensions from a query, include the extensions which are having the given flags. The value specified for this filter should be a string representing the integer values of the flags to be included. In case of multiple flags to be specified, a logical OR of the integer values should be given as value for this filter This should be at most one filter of this type. This only acts as a restrictive filter after. In case of having a particular flag in both IncludeWithFlags and ExcludeWithFlags, excludeFlags will remove the included extensions giving empty result for that flag. In case of multiple flags given in IncludeWithFlags in ORed fashion, extensions having any of the given flags will be included.
691 */
692 IncludeWithFlags = 13,
693 /**
694 * Filter the extensions based on the LCID values applicable. Any extensions which are not having any LCID values will also be filtered. This is currently only supported for VS extensions.
695 */
696 Lcid = 14,
697 /**
698 * Filter to provide the version of the installation target. This filter will be used along with InstallationTarget filter. The value should be a valid version string. Currently supported only if search text is provided.
699 */
700 InstallationTargetVersion = 15,
701 /**
702 * Filter type for specifying a range of installation target version. The filter will be used along with InstallationTarget filter. The value should be a pair of well formed version values separated by hyphen(-). Currently supported only if search text is provided.
703 */
704 InstallationTargetVersionRange = 16,
705 /**
706 * Filter type for specifying metadata key and value to be used for filtering.
707 */
708 VsixMetadata = 17,
709 /**
710 * Filter to get extensions published by a publisher having supplied internal name
711 */
712 PublisherName = 18,
713 /**
714 * Filter to get extensions published by all publishers having supplied display name
715 */
716 PublisherDisplayName = 19,
717 /**
718 * When retrieving extensions from a query, include the extensions which have a publisher having the given flags. The value specified for this filter should be a string representing the integer values of the flags to be included. In case of multiple flags to be specified, a logical OR of the integer values should be given as value for this filter There should be at most one filter of this type. This only acts as a restrictive filter after. In case of multiple flags given in IncludeWithFlags in ORed fashion, extensions having any of the given flags will be included.
719 */
720 IncludeWithPublisherFlags = 20,
721 /**
722 * Filter to get extensions shared with particular organization
723 */
724 OrganizationSharedWith = 21,
725 /**
726 * Filter to get VS IDE extensions by Product Architecture
727 */
728 ProductArchitecture = 22,
729 /**
730 * Filter to get VS Code extensions by target platform.
731 */
732 TargetPlatform = 23,
733 /**
734 * Retrieve an extension based on the extensionName.
735 */
736 ExtensionName = 24
737}
738/**
739 * Set of flags used to determine which set of information is retrieved when reading published extensions
740 */
741export declare enum ExtensionQueryFlags {
742 /**
743 * None is used to retrieve only the basic extension details.
744 */
745 None = 0,
746 /**
747 * IncludeVersions will return version information for extensions returned
748 */
749 IncludeVersions = 1,
750 /**
751 * IncludeFiles will return information about which files were found within the extension that were stored independent of the manifest. When asking for files, versions will be included as well since files are returned as a property of the versions. These files can be retrieved using the path to the file without requiring the entire manifest be downloaded.
752 */
753 IncludeFiles = 2,
754 /**
755 * Include the Categories and Tags that were added to the extension definition.
756 */
757 IncludeCategoryAndTags = 4,
758 /**
759 * Include the details about which accounts the extension has been shared with if the extension is a private extension.
760 */
761 IncludeSharedAccounts = 8,
762 /**
763 * Include properties associated with versions of the extension
764 */
765 IncludeVersionProperties = 16,
766 /**
767 * Excluding non-validated extensions will remove any extension versions that either are in the process of being validated or have failed validation.
768 */
769 ExcludeNonValidated = 32,
770 /**
771 * Include the set of installation targets the extension has requested.
772 */
773 IncludeInstallationTargets = 64,
774 /**
775 * Include the base uri for assets of this extension
776 */
777 IncludeAssetUri = 128,
778 /**
779 * Include the statistics associated with this extension
780 */
781 IncludeStatistics = 256,
782 /**
783 * When retrieving versions from a query, only include the latest version of the extensions that matched. This is useful when the caller doesn't need all the published versions. It will save a significant size in the returned payload.
784 */
785 IncludeLatestVersionOnly = 512,
786 /**
787 * This flag switches the asset uri to use GetAssetByName instead of CDN When this is used, values of base asset uri and base asset uri fallback are switched When this is used, source of asset files are pointed to Gallery service always even if CDN is available
788 */
789 UseFallbackAssetUri = 1024,
790 /**
791 * This flag is used to get all the metadata values associated with the extension. This is not applicable to VSTS or VSCode extensions and usage is only internal.
792 */
793 IncludeMetadata = 2048,
794 /**
795 * This flag is used to indicate to return very small data for extension required by VS IDE. This flag is only compatible when querying is done by VS IDE
796 */
797 IncludeMinimalPayloadForVsIde = 4096,
798 /**
799 * This flag is used to get Lcid values associated with the extension. This is not applicable to VSTS or VSCode extensions and usage is only internal
800 */
801 IncludeLcids = 8192,
802 /**
803 * Include the details about which organizations the extension has been shared with if the extension is a private extension.
804 */
805 IncludeSharedOrganizations = 16384,
806 /**
807 * Include the details if an extension is in conflict list or not Currently being used for VSCode extensions.
808 */
809 IncludeNameConflictInfo = 32768,
810 /**
811 * AllAttributes is designed to be a mask that defines all sub-elements of the extension should be returned. NOTE: This is not actually All flags. This is now locked to the set defined since changing this enum would be a breaking change and would change the behavior of anyone using it. Try not to use this value when making calls to the service, instead be explicit about the options required.
812 */
813 AllAttributes = 16863
814}
815/**
816 * This is the set of extensions that matched a supplied query through the filters given.
817 */
818export interface ExtensionQueryResult {
819 /**
820 * For each filter supplied in the query, a filter result will be returned in the query result.
821 */
822 results?: ExtensionFilterResult[];
823}
824export interface ExtensionShare {
825 id?: string;
826 isOrg?: boolean;
827 name?: string;
828 type?: string;
829}
830export interface ExtensionStatistic {
831 statisticName?: string;
832 value?: number;
833}
834export declare enum ExtensionStatisticOperation {
835 None = 0,
836 Set = 1,
837 Increment = 2,
838 Decrement = 3,
839 Delete = 4
840}
841export interface ExtensionStatisticUpdate {
842 extensionName?: string;
843 operation?: ExtensionStatisticOperation;
844 publisherName?: string;
845 statistic?: ExtensionStatistic;
846}
847/**
848 * Stats aggregation type
849 */
850export declare enum ExtensionStatsAggregateType {
851 Daily = 1
852}
853export interface ExtensionVersion {
854 assetUri?: string;
855 badges?: ExtensionBadge[];
856 fallbackAssetUri?: string;
857 files?: ExtensionFile[];
858 flags?: ExtensionVersionFlags;
859 lastUpdated?: Date;
860 properties?: {
861 key: string;
862 value: string;
863 }[];
864 targetPlatform?: string;
865 validationResultMessage?: string;
866 version?: string;
867 versionDescription?: string;
868}
869/**
870 * Set of flags that can be associated with a given extension version. These flags apply to a specific version of the extension.
871 */
872export declare enum ExtensionVersionFlags {
873 /**
874 * No flags exist for this version.
875 */
876 None = 0,
877 /**
878 * The Validated flag for a version means the extension version has passed validation and can be used..
879 */
880 Validated = 1
881}
882/**
883 * One condition in a QueryFilter.
884 */
885export interface FilterCriteria {
886 /**
887 * The FilterType defines how the filters are to be applied to the extensions. See the documentation on the filter type to understand how the filters are matched.
888 */
889 filterType?: number;
890 /**
891 * The value used in the match based on the filter type.
892 */
893 value?: string;
894}
895export interface InstallationTarget {
896 extensionVersion?: string;
897 productArchitecture?: string;
898 target?: string;
899 targetPlatform?: string;
900 targetVersion?: string;
901}
902/**
903 * MetadataItem is one value of metadata under a given category of metadata
904 */
905export interface MetadataItem {
906 /**
907 * The count of the metadata item
908 */
909 count?: number;
910 /**
911 * The name of the metadata item
912 */
913 name?: string;
914}
915/**
916 * Information needed for sending mail notification
917 */
918export interface NotificationsData {
919 /**
920 * Notification data needed
921 */
922 data?: {
923 [key: string]: any;
924 };
925 /**
926 * List of users who should get the notification
927 */
928 identities?: {
929 [key: string]: any;
930 };
931 /**
932 * Type of Mail Notification.Can be Qna , review or CustomerContact
933 */
934 type?: NotificationTemplateType;
935}
936/**
937 * Type of event
938 */
939export declare enum NotificationTemplateType {
940 /**
941 * Template type for Review Notification.
942 */
943 ReviewNotification = 1,
944 /**
945 * Template type for Qna Notification.
946 */
947 QnaNotification = 2,
948 /**
949 * Template type for Customer Contact Notification.
950 */
951 CustomerContactNotification = 3,
952 /**
953 * Template type for Publisher Member Notification.
954 */
955 PublisherMemberUpdateNotification = 4
956}
957/**
958 * PagingDirection is used to define which set direction to move the returned result set based on a previous query.
959 */
960export declare enum PagingDirection {
961 /**
962 * Backward will return results from earlier in the resultset.
963 */
964 Backward = 1,
965 /**
966 * Forward will return results from later in the resultset.
967 */
968 Forward = 2
969}
970/**
971 * This is the set of categories in response to the get category query
972 */
973export interface ProductCategoriesResult {
974 categories?: ProductCategory[];
975}
976/**
977 * This is the interface object to be used by Root Categories and Category Tree APIs for Visual Studio Ide.
978 */
979export interface ProductCategory {
980 children?: ProductCategory[];
981 /**
982 * Indicator whether this is a leaf or there are children under this category
983 */
984 hasChildren?: boolean;
985 /**
986 * Individual Guid of the Category
987 */
988 id?: string;
989 /**
990 * Category Title in the requested language
991 */
992 title?: string;
993}
994export interface PublishedExtension {
995 categories?: string[];
996 deploymentType?: ExtensionDeploymentTechnology;
997 displayName?: string;
998 extensionId?: string;
999 extensionName?: string;
1000 flags?: PublishedExtensionFlags;
1001 installationTargets?: InstallationTarget[];
1002 lastUpdated?: Date;
1003 longDescription?: string;
1004 /**
1005 * Check if Extension is in conflict list or not. Taking as String and not as boolean because we don't want end customer to see this flag and by making it Boolean it is coming as false for all the cases.
1006 */
1007 presentInConflictList?: string;
1008 /**
1009 * Date on which the extension was first uploaded.
1010 */
1011 publishedDate?: Date;
1012 publisher?: PublisherFacts;
1013 /**
1014 * Date on which the extension first went public.
1015 */
1016 releaseDate?: Date;
1017 sharedWith?: ExtensionShare[];
1018 shortDescription?: string;
1019 statistics?: ExtensionStatistic[];
1020 tags?: string[];
1021 versions?: ExtensionVersion[];
1022}
1023/**
1024 * Set of flags that can be associated with a given extension. These flags apply to all versions of the extension and not to a specific version.
1025 */
1026export declare enum PublishedExtensionFlags {
1027 /**
1028 * No flags exist for this extension.
1029 */
1030 None = 0,
1031 /**
1032 * The Disabled flag for an extension means the extension can't be changed and won't be used by consumers. The disabled flag is managed by the service and can't be supplied by the Extension Developers.
1033 */
1034 Disabled = 1,
1035 /**
1036 * BuiltIn Extension are available to all Tenants. An explicit registration is not required. This attribute is reserved and can't be supplied by Extension Developers. BuiltIn extensions are by definition Public. There is no need to set the public flag for extensions marked BuiltIn.
1037 */
1038 BuiltIn = 2,
1039 /**
1040 * This extension has been validated by the service. The extension meets the requirements specified. This attribute is reserved and can't be supplied by the Extension Developers. Validation is a process that ensures that all contributions are well formed. They meet the requirements defined by the contribution type they are extending. Note this attribute will be updated asynchronously as the extension is validated by the developer of the contribution type. There will be restricted access to the extension while this process is performed.
1041 */
1042 Validated = 4,
1043 /**
1044 * Trusted extensions are ones that are given special capabilities. These tend to come from Microsoft and can't be published by the general public. Note: BuiltIn extensions are always trusted.
1045 */
1046 Trusted = 8,
1047 /**
1048 * The Paid flag indicates that the commerce can be enabled for this extension. Publisher needs to setup Offer/Pricing plan in Azure. If Paid flag is set and a corresponding Offer is not available, the extension will automatically be marked as Preview. If the publisher intends to make the extension Paid in the future, it is mandatory to set the Preview flag. This is currently available only for VSTS extensions only.
1049 */
1050 Paid = 16,
1051 /**
1052 * This extension registration is public, making its visibility open to the public. This means all tenants have the ability to install this extension. Without this flag the extension will be private and will need to be shared with the tenants that can install it.
1053 */
1054 Public = 256,
1055 /**
1056 * This extension has multiple versions active at one time and version discovery should be done using the defined "Version Discovery" protocol to determine the version available to a specific user or tenant. @TODO: Link to Version Discovery Protocol.
1057 */
1058 MultiVersion = 512,
1059 /**
1060 * The system flag is reserved, and cant be used by publishers.
1061 */
1062 System = 1024,
1063 /**
1064 * The Preview flag indicates that the extension is still under preview (not yet of "release" quality). These extensions may be decorated differently in the gallery and may have different policies applied to them.
1065 */
1066 Preview = 2048,
1067 /**
1068 * The Unpublished flag indicates that the extension can't be installed/downloaded. Users who have installed such an extension can continue to use the extension.
1069 */
1070 Unpublished = 4096,
1071 /**
1072 * The Trial flag indicates that the extension is in Trial version. The flag is right now being used only with respect to Visual Studio extensions.
1073 */
1074 Trial = 8192,
1075 /**
1076 * The Locked flag indicates that extension has been locked from Marketplace. Further updates/acquisitions are not allowed on the extension until this is present. This should be used along with making the extension private/unpublished.
1077 */
1078 Locked = 16384,
1079 /**
1080 * This flag is set for extensions we want to hide from Marketplace home and search pages. This will be used to override the exposure of builtIn flags.
1081 */
1082 Hidden = 32768
1083}
1084export interface Publisher extends PublisherBase {
1085 _links?: any;
1086 domain?: string;
1087 isDnsTokenVerified?: boolean;
1088 isDomainVerified?: boolean;
1089 reCaptchaToken?: string;
1090}
1091/**
1092 * Keeping base class separate since publisher DB model class and publisher contract class share these common properties
1093 */
1094export interface PublisherBase {
1095 displayName?: string;
1096 emailAddress?: string[];
1097 extensions?: PublishedExtension[];
1098 flags?: PublisherFlags;
1099 lastUpdated?: Date;
1100 longDescription?: string;
1101 publisherId?: string;
1102 publisherName?: string;
1103 shortDescription?: string;
1104 state?: PublisherState;
1105}
1106/**
1107 * High-level information about the publisher, like id's and names
1108 */
1109export interface PublisherFacts {
1110 displayName?: string;
1111 domain?: string;
1112 flags?: PublisherFlags;
1113 isDomainVerified?: boolean;
1114 publisherId?: string;
1115 publisherName?: string;
1116}
1117/**
1118 * The FilterResult is the set of publishers that matched a particular query filter.
1119 */
1120export interface PublisherFilterResult {
1121 /**
1122 * This is the set of applications that matched the query filter supplied.
1123 */
1124 publishers?: Publisher[];
1125}
1126export declare enum PublisherFlags {
1127 /**
1128 * This should never be returned, it is used to represent a publisher who's flags haven't changed during update calls.
1129 */
1130 UnChanged = 1073741824,
1131 /**
1132 * No flags exist for this publisher.
1133 */
1134 None = 0,
1135 /**
1136 * The Disabled flag for a publisher means the publisher can't be changed and won't be used by consumers, this extends to extensions owned by the publisher as well. The disabled flag is managed by the service and can't be supplied by the Extension Developers.
1137 */
1138 Disabled = 1,
1139 /**
1140 * A verified publisher is one that Microsoft has done some review of and ensured the publisher meets a set of requirements. The requirements to become a verified publisher are not listed here. They can be found in public documentation (TBD).
1141 */
1142 Verified = 2,
1143 /**
1144 * A Certified publisher is one that is Microsoft verified and in addition meets a set of requirements for its published extensions. The requirements to become a certified publisher are not listed here. They can be found in public documentation (TBD).
1145 */
1146 Certified = 4,
1147 /**
1148 * This is the set of flags that can't be supplied by the developer and is managed by the service itself.
1149 */
1150 ServiceFlags = 7
1151}
1152export declare enum PublisherPermissions {
1153 /**
1154 * This gives the bearer the rights to read Publishers and Extensions.
1155 */
1156 Read = 1,
1157 /**
1158 * This gives the bearer the rights to update, delete, and share Extensions (but not the ability to create them).
1159 */
1160 UpdateExtension = 2,
1161 /**
1162 * This gives the bearer the rights to create new Publishers at the root of the namespace.
1163 */
1164 CreatePublisher = 4,
1165 /**
1166 * This gives the bearer the rights to create new Extensions within a publisher.
1167 */
1168 PublishExtension = 8,
1169 /**
1170 * Admin gives the bearer the rights to manage restricted attributes of Publishers and Extensions.
1171 */
1172 Admin = 16,
1173 /**
1174 * TrustedPartner gives the bearer the rights to publish a extensions with restricted capabilities.
1175 */
1176 TrustedPartner = 32,
1177 /**
1178 * PrivateRead is another form of read designed to allow higher privilege accessors the ability to read private extensions.
1179 */
1180 PrivateRead = 64,
1181 /**
1182 * This gives the bearer the rights to delete any extension.
1183 */
1184 DeleteExtension = 128,
1185 /**
1186 * This gives the bearer the rights edit the publisher settings.
1187 */
1188 EditSettings = 256,
1189 /**
1190 * This gives the bearer the rights to see all permissions on the publisher.
1191 */
1192 ViewPermissions = 512,
1193 /**
1194 * This gives the bearer the rights to assign permissions on the publisher.
1195 */
1196 ManagePermissions = 1024,
1197 /**
1198 * This gives the bearer the rights to delete the publisher.
1199 */
1200 DeletePublisher = 2048
1201}
1202/**
1203 * An PublisherQuery is used to search the gallery for a set of publishers that match one of many filter values.
1204 */
1205export interface PublisherQuery {
1206 /**
1207 * Each filter is a unique query and will have matching set of publishers returned from the request. Each result will have the same index in the resulting array that the filter had in the incoming query.
1208 */
1209 filters?: QueryFilter[];
1210 /**
1211 * The Flags are used to determine which set of information the caller would like returned for the matched publishers.
1212 */
1213 flags?: PublisherQueryFlags;
1214}
1215/**
1216 * Set of flags used to define the attributes requested when a publisher is returned. Some API's allow the caller to specify the level of detail needed.
1217 */
1218export declare enum PublisherQueryFlags {
1219 /**
1220 * None is used to retrieve only the basic publisher details.
1221 */
1222 None = 0,
1223 /**
1224 * Is used to include a list of basic extension details for all extensions published by the requested publisher.
1225 */
1226 IncludeExtensions = 1,
1227 /**
1228 * Is used to include email address of all the users who are marked as owners for the publisher
1229 */
1230 IncludeEmailAddress = 2
1231}
1232/**
1233 * This is the set of publishers that matched a supplied query through the filters given.
1234 */
1235export interface PublisherQueryResult {
1236 /**
1237 * For each filter supplied in the query, a filter result will be returned in the query result.
1238 */
1239 results?: PublisherFilterResult[];
1240}
1241/**
1242 * Access definition for a RoleAssignment.
1243 */
1244export declare enum PublisherRoleAccess {
1245 /**
1246 * Access has been explicitly set.
1247 */
1248 Assigned = 1,
1249 /**
1250 * Access has been inherited from a higher scope.
1251 */
1252 Inherited = 2
1253}
1254export interface PublisherRoleAssignment {
1255 /**
1256 * Designates the role as explicitly assigned or inherited.
1257 */
1258 access?: PublisherRoleAccess;
1259 /**
1260 * User friendly description of access assignment.
1261 */
1262 accessDisplayName?: string;
1263 /**
1264 * The user to whom the role is assigned.
1265 */
1266 identity?: VSSInterfaces.IdentityRef;
1267 /**
1268 * The role assigned to the user.
1269 */
1270 role?: PublisherSecurityRole;
1271}
1272export interface PublisherSecurityRole {
1273 /**
1274 * Permissions the role is allowed.
1275 */
1276 allowPermissions?: number;
1277 /**
1278 * Permissions the role is denied.
1279 */
1280 denyPermissions?: number;
1281 /**
1282 * Description of user access defined by the role
1283 */
1284 description?: string;
1285 /**
1286 * User friendly name of the role.
1287 */
1288 displayName?: string;
1289 /**
1290 * Globally unique identifier for the role.
1291 */
1292 identifier?: string;
1293 /**
1294 * Unique name of the role in the scope.
1295 */
1296 name?: string;
1297 /**
1298 * Returns the id of the ParentScope.
1299 */
1300 scope?: string;
1301}
1302export declare enum PublisherState {
1303 /**
1304 * No state exists for this publisher.
1305 */
1306 None = 0,
1307 /**
1308 * This state indicates that publisher has applied for Marketplace verification (via UI) and still not been certified. This state would be reset once the publisher is verified.
1309 */
1310 VerificationPending = 1,
1311 /**
1312 * This state indicates that publisher has applied for Marketplace certification (via UI) and still not been certified. This state would be reset once the publisher is certified.
1313 */
1314 CertificationPending = 2,
1315 /**
1316 * This state indicates that publisher had applied for Marketplace certification (via UI) but his/her certification got rejected. This state would be reset if and when the publisher is certified.
1317 */
1318 CertificationRejected = 4,
1319 /**
1320 * This state indicates that publisher was certified on the Marketplace, but his/her certification got revoked. This state would never be reset, even after publisher gets re-certified. It would indicate that the publisher certification was revoked at least once.
1321 */
1322 CertificationRevoked = 8
1323}
1324export interface PublisherUserRoleAssignmentRef {
1325 /**
1326 * The name of the role assigned.
1327 */
1328 roleName?: string;
1329 /**
1330 * Identifier of the user given the role assignment.
1331 */
1332 uniqueName?: string;
1333 /**
1334 * Unique id of the user given the role assignment.
1335 */
1336 userId?: string;
1337}
1338/**
1339 * The core structure of a QnA item
1340 */
1341export interface QnAItem {
1342 /**
1343 * Time when the review was first created
1344 */
1345 createdDate?: Date;
1346 /**
1347 * Unique identifier of a QnA item
1348 */
1349 id?: number;
1350 /**
1351 * Get status of item
1352 */
1353 status?: QnAItemStatus;
1354 /**
1355 * Text description of the QnA item
1356 */
1357 text?: string;
1358 /**
1359 * Time when the review was edited/updated
1360 */
1361 updatedDate?: Date;
1362 /**
1363 * User details for the item.
1364 */
1365 user?: UserIdentityRef;
1366}
1367/**
1368 * Denotes the status of the QnA Item
1369 */
1370export declare enum QnAItemStatus {
1371 None = 0,
1372 /**
1373 * The UserEditable flag indicates whether the item is editable by the logged in user.
1374 */
1375 UserEditable = 1,
1376 /**
1377 * The PublisherCreated flag indicates whether the item has been created by extension publisher.
1378 */
1379 PublisherCreated = 2
1380}
1381/**
1382 * A filter used to define a set of extensions to return during a query.
1383 */
1384export interface QueryFilter {
1385 /**
1386 * The filter values define the set of values in this query. They are applied based on the QueryFilterType.
1387 */
1388 criteria?: FilterCriteria[];
1389 /**
1390 * The PagingDirection is applied to a paging token if one exists. If not the direction is ignored, and Forward from the start of the resultset is used. Direction should be left out of the request unless a paging token is used to help prevent future issues.
1391 */
1392 direction?: PagingDirection;
1393 /**
1394 * The page number requested by the user. If not provided 1 is assumed by default.
1395 */
1396 pageNumber?: number;
1397 /**
1398 * The page size defines the number of results the caller wants for this filter. The count can't exceed the overall query size limits.
1399 */
1400 pageSize?: number;
1401 /**
1402 * The paging token is a distinct type of filter and the other filter fields are ignored. The paging token represents the continuation of a previously executed query. The information about where in the result and what fields are being filtered are embedded in the token.
1403 */
1404 pagingToken?: string;
1405 /**
1406 * Defines the type of sorting to be applied on the results. The page slice is cut of the sorted results only.
1407 */
1408 sortBy?: number;
1409 /**
1410 * Defines the order of sorting, 1 for Ascending, 2 for Descending, else default ordering based on the SortBy value
1411 */
1412 sortOrder?: number;
1413}
1414/**
1415 * The structure of the question / thread
1416 */
1417export interface Question extends QnAItem {
1418 reCaptchaToken?: string;
1419 /**
1420 * List of answers in for the question / thread
1421 */
1422 responses?: Response[];
1423}
1424export interface QuestionsResult {
1425 /**
1426 * Flag indicating if there are more QnA threads to be shown (for paging)
1427 */
1428 hasMoreQuestions?: boolean;
1429 /**
1430 * List of the QnA threads
1431 */
1432 questions?: Question[];
1433}
1434export interface RatingCountPerRating {
1435 /**
1436 * Rating value
1437 */
1438 rating?: number;
1439 /**
1440 * Count of total ratings
1441 */
1442 ratingCount?: number;
1443}
1444/**
1445 * The structure of a response
1446 */
1447export interface Response extends QnAItem {
1448 reCaptchaToken?: string;
1449}
1450/**
1451 * The status of a REST Api response status.
1452 */
1453export declare enum RestApiResponseStatus {
1454 /**
1455 * The operation is completed.
1456 */
1457 Completed = 0,
1458 /**
1459 * The operation is failed.
1460 */
1461 Failed = 1,
1462 /**
1463 * The operation is in progress.
1464 */
1465 Inprogress = 2,
1466 /**
1467 * The operation is in skipped.
1468 */
1469 Skipped = 3
1470}
1471/**
1472 * REST Api Response
1473 */
1474export interface RestApiResponseStatusModel {
1475 /**
1476 * Gets or sets the operation details
1477 */
1478 operationDetails?: any;
1479 /**
1480 * Gets or sets the operation id
1481 */
1482 operationId?: string;
1483 /**
1484 * Gets or sets the completed status percentage
1485 */
1486 percentageCompleted?: number;
1487 /**
1488 * Gets or sets the status
1489 */
1490 status?: RestApiResponseStatus;
1491 /**
1492 * Gets or sets the status message
1493 */
1494 statusMessage?: string;
1495}
1496export interface Review {
1497 /**
1498 * Admin Reply, if any, for this review
1499 */
1500 adminReply?: ReviewReply;
1501 /**
1502 * Unique identifier of a review item
1503 */
1504 id?: number;
1505 /**
1506 * Flag for soft deletion
1507 */
1508 isDeleted?: boolean;
1509 /**
1510 * Flag for Ignoring Review from average rating calculation
1511 */
1512 isIgnored?: boolean;
1513 /**
1514 * Version of the product for which review was submitted
1515 */
1516 productVersion?: string;
1517 /**
1518 * Rating provided by the user
1519 */
1520 rating?: number;
1521 reCaptchaToken?: string;
1522 /**
1523 * Reply, if any, for this review
1524 */
1525 reply?: ReviewReply;
1526 /**
1527 * Text description of the review
1528 */
1529 text?: string;
1530 /**
1531 * Title of the review
1532 */
1533 title?: string;
1534 /**
1535 * Time when the review was edited/updated
1536 */
1537 updatedDate?: Date;
1538 /**
1539 * Name of the user
1540 */
1541 userDisplayName?: string;
1542 /**
1543 * Id of the user who submitted the review
1544 */
1545 userId?: string;
1546}
1547/**
1548 * Type of operation
1549 */
1550export declare enum ReviewEventOperation {
1551 Create = 1,
1552 Update = 2,
1553 Delete = 3
1554}
1555/**
1556 * Properties associated with Review event
1557 */
1558export interface ReviewEventProperties {
1559 /**
1560 * Operation performed on Event - Create\Update
1561 */
1562 eventOperation?: ReviewEventOperation;
1563 /**
1564 * Flag to see if reply is admin reply
1565 */
1566 isAdminReply?: boolean;
1567 /**
1568 * Flag to record if the review is ignored
1569 */
1570 isIgnored?: boolean;
1571 /**
1572 * Rating at the time of event
1573 */
1574 rating?: number;
1575 /**
1576 * Reply update date
1577 */
1578 replyDate?: Date;
1579 /**
1580 * Publisher reply text or admin reply text
1581 */
1582 replyText?: string;
1583 /**
1584 * User who responded to the review
1585 */
1586 replyUserId?: string;
1587 /**
1588 * Review Event Type - Review
1589 */
1590 resourceType?: ReviewResourceType;
1591 /**
1592 * Review update date
1593 */
1594 reviewDate?: Date;
1595 /**
1596 * ReviewId of the review on which the operation is performed
1597 */
1598 reviewId?: number;
1599 /**
1600 * Text in Review Text
1601 */
1602 reviewText?: string;
1603 /**
1604 * User display name at the time of review
1605 */
1606 userDisplayName?: string;
1607 /**
1608 * User who gave review
1609 */
1610 userId?: string;
1611}
1612/**
1613 * Options to GetReviews query
1614 */
1615export declare enum ReviewFilterOptions {
1616 /**
1617 * No filtering, all reviews are returned (default option)
1618 */
1619 None = 0,
1620 /**
1621 * Filter out review items with empty review text
1622 */
1623 FilterEmptyReviews = 1,
1624 /**
1625 * Filter out review items with empty usernames
1626 */
1627 FilterEmptyUserNames = 2
1628}
1629export interface ReviewPatch {
1630 /**
1631 * Denotes the patch operation type
1632 */
1633 operation?: ReviewPatchOperation;
1634 /**
1635 * Use when patch operation is FlagReview
1636 */
1637 reportedConcern?: UserReportedConcern;
1638 /**
1639 * Use when patch operation is EditReview
1640 */
1641 reviewItem?: Review;
1642}
1643/**
1644 * Denotes the patch operation type
1645 */
1646export declare enum ReviewPatchOperation {
1647 /**
1648 * Flag a review
1649 */
1650 FlagReview = 1,
1651 /**
1652 * Update an existing review
1653 */
1654 UpdateReview = 2,
1655 /**
1656 * Submit a reply for a review
1657 */
1658 ReplyToReview = 3,
1659 /**
1660 * Submit an admin response
1661 */
1662 AdminResponseForReview = 4,
1663 /**
1664 * Delete an Admin Reply
1665 */
1666 DeleteAdminReply = 5,
1667 /**
1668 * Delete Publisher Reply
1669 */
1670 DeletePublisherReply = 6
1671}
1672export interface ReviewReply {
1673 /**
1674 * Id of the reply
1675 */
1676 id?: number;
1677 /**
1678 * Flag for soft deletion
1679 */
1680 isDeleted?: boolean;
1681 /**
1682 * Version of the product when the reply was submitted or updated
1683 */
1684 productVersion?: string;
1685 /**
1686 * Content of the reply
1687 */
1688 replyText?: string;
1689 /**
1690 * Id of the review, to which this reply belongs
1691 */
1692 reviewId?: number;
1693 /**
1694 * Title of the reply
1695 */
1696 title?: string;
1697 /**
1698 * Date the reply was submitted or updated
1699 */
1700 updatedDate?: Date;
1701 /**
1702 * Id of the user who left the reply
1703 */
1704 userId?: string;
1705}
1706/**
1707 * Type of event
1708 */
1709export declare enum ReviewResourceType {
1710 Review = 1,
1711 PublisherReply = 2,
1712 AdminReply = 3
1713}
1714export interface ReviewsResult {
1715 /**
1716 * Flag indicating if there are more reviews to be shown (for paging)
1717 */
1718 hasMoreReviews?: boolean;
1719 /**
1720 * List of reviews
1721 */
1722 reviews?: Review[];
1723 /**
1724 * Count of total review items
1725 */
1726 totalReviewCount?: number;
1727}
1728export interface ReviewSummary {
1729 /**
1730 * Average Rating
1731 */
1732 averageRating?: number;
1733 /**
1734 * Count of total ratings
1735 */
1736 ratingCount?: number;
1737 /**
1738 * Split of count across rating
1739 */
1740 ratingSplit?: RatingCountPerRating[];
1741}
1742/**
1743 * Defines the sort order that can be defined for Extensions query
1744 */
1745export declare enum SortByType {
1746 /**
1747 * The results will be sorted by relevance in case search query is given, if no search query resutls will be provided as is
1748 */
1749 Relevance = 0,
1750 /**
1751 * The results will be sorted as per Last Updated date of the extensions with recently updated at the top
1752 */
1753 LastUpdatedDate = 1,
1754 /**
1755 * Results will be sorted Alphabetically as per the title of the extension
1756 */
1757 Title = 2,
1758 /**
1759 * Results will be sorted Alphabetically as per Publisher title
1760 */
1761 Publisher = 3,
1762 /**
1763 * Results will be sorted by Install Count
1764 */
1765 InstallCount = 4,
1766 /**
1767 * The results will be sorted as per Published date of the extensions
1768 */
1769 PublishedDate = 5,
1770 /**
1771 * The results will be sorted as per Average ratings of the extensions
1772 */
1773 AverageRating = 6,
1774 /**
1775 * The results will be sorted as per Trending Daily Score of the extensions
1776 */
1777 TrendingDaily = 7,
1778 /**
1779 * The results will be sorted as per Trending weekly Score of the extensions
1780 */
1781 TrendingWeekly = 8,
1782 /**
1783 * The results will be sorted as per Trending monthly Score of the extensions
1784 */
1785 TrendingMonthly = 9,
1786 /**
1787 * The results will be sorted as per ReleaseDate of the extensions (date on which the extension first went public)
1788 */
1789 ReleaseDate = 10,
1790 /**
1791 * The results will be sorted as per Author defined in the VSix/Metadata. If not defined, publisher name is used This is specifically needed by VS IDE, other (new and old) clients are not encouraged to use this
1792 */
1793 Author = 11,
1794 /**
1795 * The results will be sorted as per Weighted Rating of the extension.
1796 */
1797 WeightedRating = 12
1798}
1799/**
1800 * Defines the sort order that can be defined for Extensions query
1801 */
1802export declare enum SortOrderType {
1803 /**
1804 * Results will be sorted in the default order as per the sorting type defined. The default varies for each type, e.g. for Relevance, default is Descending, for Title default is Ascending etc.
1805 */
1806 Default = 0,
1807 /**
1808 * The results will be sorted in Ascending order
1809 */
1810 Ascending = 1,
1811 /**
1812 * The results will be sorted in Descending order
1813 */
1814 Descending = 2
1815}
1816export interface UnpackagedExtensionData {
1817 categories?: string[];
1818 description?: string;
1819 displayName?: string;
1820 draftId?: string;
1821 extensionName?: string;
1822 installationTargets?: InstallationTarget[];
1823 isConvertedToMarkdown?: boolean;
1824 isPreview?: boolean;
1825 pricingCategory?: string;
1826 product?: string;
1827 publisherName?: string;
1828 qnAEnabled?: boolean;
1829 referralUrl?: string;
1830 repositoryUrl?: string;
1831 tags?: string[];
1832 version?: string;
1833 vsixId?: string;
1834}
1835/**
1836 * Represents the extension policy applied to a given user
1837 */
1838export interface UserExtensionPolicy {
1839 /**
1840 * User display name that this policy refers to
1841 */
1842 displayName?: string;
1843 /**
1844 * The extension policy applied to the user
1845 */
1846 permissions?: ExtensionPolicy;
1847 /**
1848 * User id that this policy refers to
1849 */
1850 userId?: string;
1851}
1852/**
1853 * Identity reference with name and guid
1854 */
1855export interface UserIdentityRef {
1856 /**
1857 * User display name
1858 */
1859 displayName?: string;
1860 /**
1861 * User VSID
1862 */
1863 id?: string;
1864}
1865export interface UserReportedConcern {
1866 /**
1867 * Category of the concern
1868 */
1869 category?: ConcernCategory;
1870 /**
1871 * User comment associated with the report
1872 */
1873 concernText?: string;
1874 /**
1875 * Id of the review which was reported
1876 */
1877 reviewId?: number;
1878 /**
1879 * Date the report was submitted
1880 */
1881 submittedDate?: Date;
1882 /**
1883 * Id of the user who reported a review
1884 */
1885 userId?: string;
1886}
1887export declare enum VSCodeWebExtensionStatisicsType {
1888 Install = 1,
1889 Update = 2,
1890 Uninstall = 3
1891}
1892export declare var TypeInfo: {
1893 AcquisitionAssignmentType: {
1894 enumValues: {
1895 none: number;
1896 me: number;
1897 all: number;
1898 };
1899 };
1900 AcquisitionOperation: any;
1901 AcquisitionOperationState: {
1902 enumValues: {
1903 disallow: number;
1904 allow: number;
1905 completed: number;
1906 };
1907 };
1908 AcquisitionOperationType: {
1909 enumValues: {
1910 get: number;
1911 install: number;
1912 buy: number;
1913 try: number;
1914 request: number;
1915 none: number;
1916 purchaseRequest: number;
1917 };
1918 };
1919 AcquisitionOptions: any;
1920 AzureRestApiResponseModel: any;
1921 Concern: any;
1922 ConcernCategory: {
1923 enumValues: {
1924 general: number;
1925 abusive: number;
1926 spam: number;
1927 };
1928 };
1929 CustomerLastContact: any;
1930 CustomerSupportRequest: any;
1931 DraftPatchOperation: {
1932 enumValues: {
1933 publish: number;
1934 cancel: number;
1935 };
1936 };
1937 DraftStateType: {
1938 enumValues: {
1939 unpublished: number;
1940 published: number;
1941 cancelled: number;
1942 error: number;
1943 };
1944 };
1945 ExtensionAcquisitionRequest: any;
1946 ExtensionDailyStat: any;
1947 ExtensionDailyStats: any;
1948 ExtensionDeploymentTechnology: {
1949 enumValues: {
1950 exe: number;
1951 msi: number;
1952 vsix: number;
1953 referralLink: number;
1954 };
1955 };
1956 ExtensionDraft: any;
1957 ExtensionDraftPatch: any;
1958 ExtensionEvent: any;
1959 ExtensionEvents: any;
1960 ExtensionFilterResult: any;
1961 ExtensionLifecycleEventType: {
1962 enumValues: {
1963 uninstall: number;
1964 install: number;
1965 review: number;
1966 acquisition: number;
1967 sales: number;
1968 other: number;
1969 };
1970 };
1971 ExtensionPayload: any;
1972 ExtensionPolicy: any;
1973 ExtensionPolicyFlags: {
1974 enumValues: {
1975 none: number;
1976 private: number;
1977 public: number;
1978 preview: number;
1979 released: number;
1980 firstParty: number;
1981 all: number;
1982 };
1983 };
1984 ExtensionQuery: any;
1985 ExtensionQueryFilterType: {
1986 enumValues: {
1987 tag: number;
1988 displayName: number;
1989 private: number;
1990 id: number;
1991 category: number;
1992 contributionType: number;
1993 name: number;
1994 installationTarget: number;
1995 featured: number;
1996 searchText: number;
1997 featuredInCategory: number;
1998 excludeWithFlags: number;
1999 includeWithFlags: number;
2000 lcid: number;
2001 installationTargetVersion: number;
2002 installationTargetVersionRange: number;
2003 vsixMetadata: number;
2004 publisherName: number;
2005 publisherDisplayName: number;
2006 includeWithPublisherFlags: number;
2007 organizationSharedWith: number;
2008 productArchitecture: number;
2009 targetPlatform: number;
2010 extensionName: number;
2011 };
2012 };
2013 ExtensionQueryFlags: {
2014 enumValues: {
2015 none: number;
2016 includeVersions: number;
2017 includeFiles: number;
2018 includeCategoryAndTags: number;
2019 includeSharedAccounts: number;
2020 includeVersionProperties: number;
2021 excludeNonValidated: number;
2022 includeInstallationTargets: number;
2023 includeAssetUri: number;
2024 includeStatistics: number;
2025 includeLatestVersionOnly: number;
2026 useFallbackAssetUri: number;
2027 includeMetadata: number;
2028 includeMinimalPayloadForVsIde: number;
2029 includeLcids: number;
2030 includeSharedOrganizations: number;
2031 includeNameConflictInfo: number;
2032 allAttributes: number;
2033 };
2034 };
2035 ExtensionQueryResult: any;
2036 ExtensionStatisticOperation: {
2037 enumValues: {
2038 none: number;
2039 set: number;
2040 increment: number;
2041 decrement: number;
2042 delete: number;
2043 };
2044 };
2045 ExtensionStatisticUpdate: any;
2046 ExtensionStatsAggregateType: {
2047 enumValues: {
2048 daily: number;
2049 };
2050 };
2051 ExtensionVersion: any;
2052 ExtensionVersionFlags: {
2053 enumValues: {
2054 none: number;
2055 validated: number;
2056 };
2057 };
2058 NotificationsData: any;
2059 NotificationTemplateType: {
2060 enumValues: {
2061 reviewNotification: number;
2062 qnaNotification: number;
2063 customerContactNotification: number;
2064 publisherMemberUpdateNotification: number;
2065 };
2066 };
2067 PagingDirection: {
2068 enumValues: {
2069 backward: number;
2070 forward: number;
2071 };
2072 };
2073 PublishedExtension: any;
2074 PublishedExtensionFlags: {
2075 enumValues: {
2076 none: number;
2077 disabled: number;
2078 builtIn: number;
2079 validated: number;
2080 trusted: number;
2081 paid: number;
2082 public: number;
2083 multiVersion: number;
2084 system: number;
2085 preview: number;
2086 unpublished: number;
2087 trial: number;
2088 locked: number;
2089 hidden: number;
2090 };
2091 };
2092 Publisher: any;
2093 PublisherBase: any;
2094 PublisherFacts: any;
2095 PublisherFilterResult: any;
2096 PublisherFlags: {
2097 enumValues: {
2098 unChanged: number;
2099 none: number;
2100 disabled: number;
2101 verified: number;
2102 certified: number;
2103 serviceFlags: number;
2104 };
2105 };
2106 PublisherPermissions: {
2107 enumValues: {
2108 read: number;
2109 updateExtension: number;
2110 createPublisher: number;
2111 publishExtension: number;
2112 admin: number;
2113 trustedPartner: number;
2114 privateRead: number;
2115 deleteExtension: number;
2116 editSettings: number;
2117 viewPermissions: number;
2118 managePermissions: number;
2119 deletePublisher: number;
2120 };
2121 };
2122 PublisherQuery: any;
2123 PublisherQueryFlags: {
2124 enumValues: {
2125 none: number;
2126 includeExtensions: number;
2127 includeEmailAddress: number;
2128 };
2129 };
2130 PublisherQueryResult: any;
2131 PublisherRoleAccess: {
2132 enumValues: {
2133 assigned: number;
2134 inherited: number;
2135 };
2136 };
2137 PublisherRoleAssignment: any;
2138 PublisherState: {
2139 enumValues: {
2140 none: number;
2141 verificationPending: number;
2142 certificationPending: number;
2143 certificationRejected: number;
2144 certificationRevoked: number;
2145 };
2146 };
2147 QnAItem: any;
2148 QnAItemStatus: {
2149 enumValues: {
2150 none: number;
2151 userEditable: number;
2152 publisherCreated: number;
2153 };
2154 };
2155 QueryFilter: any;
2156 Question: any;
2157 QuestionsResult: any;
2158 Response: any;
2159 RestApiResponseStatus: {
2160 enumValues: {
2161 completed: number;
2162 failed: number;
2163 inprogress: number;
2164 skipped: number;
2165 };
2166 };
2167 RestApiResponseStatusModel: any;
2168 Review: any;
2169 ReviewEventOperation: {
2170 enumValues: {
2171 create: number;
2172 update: number;
2173 delete: number;
2174 };
2175 };
2176 ReviewEventProperties: any;
2177 ReviewFilterOptions: {
2178 enumValues: {
2179 none: number;
2180 filterEmptyReviews: number;
2181 filterEmptyUserNames: number;
2182 };
2183 };
2184 ReviewPatch: any;
2185 ReviewPatchOperation: {
2186 enumValues: {
2187 flagReview: number;
2188 updateReview: number;
2189 replyToReview: number;
2190 adminResponseForReview: number;
2191 deleteAdminReply: number;
2192 deletePublisherReply: number;
2193 };
2194 };
2195 ReviewReply: any;
2196 ReviewResourceType: {
2197 enumValues: {
2198 review: number;
2199 publisherReply: number;
2200 adminReply: number;
2201 };
2202 };
2203 ReviewsResult: any;
2204 SortByType: {
2205 enumValues: {
2206 relevance: number;
2207 lastUpdatedDate: number;
2208 title: number;
2209 publisher: number;
2210 installCount: number;
2211 publishedDate: number;
2212 averageRating: number;
2213 trendingDaily: number;
2214 trendingWeekly: number;
2215 trendingMonthly: number;
2216 releaseDate: number;
2217 author: number;
2218 weightedRating: number;
2219 };
2220 };
2221 SortOrderType: {
2222 enumValues: {
2223 default: number;
2224 ascending: number;
2225 descending: number;
2226 };
2227 };
2228 UserExtensionPolicy: any;
2229 UserReportedConcern: any;
2230 VSCodeWebExtensionStatisicsType: {
2231 enumValues: {
2232 install: number;
2233 update: number;
2234 uninstall: number;
2235 };
2236 };
2237};