UNPKG

@omnia/fx-models

Version:
268 lines (267 loc) • 8.2 kB
import { IconPickerModel, IIcon } from "../Icon"; import { GuidValue } from "@omnia/fx-models/internal-do-not-import-from-here/shared/models"; import { AppInstanceScopedQueryTypes, AppInstanceStatus, AppTemplatePermissionLevel } from "../Enums"; import { ServiceParam } from "../ServiceParam"; import { ProvisioningTemplateEnterpriseProperty } from "../enterprise-properties/EnterpriseProperty"; import { MultilingualString } from "../MultilingualString"; import { AppProvisioningStepInfo } from "./AppProvisioning"; import { RollupFilter } from "../RollupQuery"; import { MediaPickerImage } from "../media-picker"; import { TargetingFilterProperty } from "../../sp/models"; import { Identity } from "../identities"; export interface AppInstanceIdentities { /** * When update an app instance, Omnia will update App Admin permission based on this value. * So leave it null to ignore permission updates * */ admin?: Identity[]; /** * When update an app instance, Omnia will update App Contributors permission based on this value. * So leave it null to ignore permission updates * */ contributors?: Identity[]; /** * When update an app instance, Omnia will update App Readers permission based on this value. * So leave it null to ignore permission updates * */ readers?: Identity[]; /** * When update an app instance, Omnia will update App Viewers permission based on this value. * So leave it null to ignore permission updates * */ viewers?: Identity[]; } export declare enum UserAppTemplateAvailabilityOptions { All = 0, SpecificUser = 1, AdminOnly = 2 } export interface UserAppTemplateAvailability { availability: UserAppTemplateAvailabilityOptions; targetingFilter?: TargetingFilterProperty; } export interface AppTemplatePolicies { namingPolicyId?: number; minimumDescriptionLength?: number; minimumNumberOfAdministrators: number; defaultAdministrators: Identity[]; } export interface AppTemplatePropertiesVisibility { hiddenInNewForm: boolean; hiddenInEditForm: boolean; } export interface AppTemplateProperties { disallowUserEdit?: boolean; userAvailability: UserAppTemplateAvailability; permissionLevel?: AppTemplatePermissionLevel; approvers?: Array<Identity>; enterprisePropertySetId?: GuidValue; appProvisioningStepInfos?: Array<AppProvisioningStepInfo>; [id: string]: any; defaultEnterprisePropertySetValues: { [internalName: string]: any; }; visibility: { [internalName: string]: AppTemplatePropertiesVisibility; }; policies?: AppTemplatePolicies; enterpriseProperties?: Array<ProvisioningTemplateEnterpriseProperty>; } export interface AppDefinitionUIOption { appTemplateRendererElement: string; appInstanceRendererElement: string; } export interface AppResourceType { id: GuidValue; title: string; icon: IIcon; parameters: Array<ServiceParam>; providedParameters: Array<ServiceParam>; requiredFeatures?: Array<GuidValue>; requiredEnvironments?: Array<string>; } export interface AppDefinition { id: GuidValue; serviceId: GuidValue; version: string; title: string; description: string; icons: IIcon[]; hidden: boolean; resourceTypes: AppResourceType[]; enabledResourceTypes: AppResourceType[]; } export interface AppTemplate { id: GuidValue; businessProfileId?: GuidValue; appDefinitionId: GuidValue; title: MultilingualString; description: MultilingualString; icons: IconPickerModel[]; features: GuidValue[]; permissionIdentities: string[]; properties: AppTemplateProperties; createdBy: Identity; modifiedBy: Identity; createdAt: Date; modifiedAt: Date; appDefinition: AppDefinition; resourceTypeId: GuidValue; isDeleting?: boolean; } export interface AppInstancePropertiesStorage { [name: string]: unknown; omniaPath?: string; omniaRoutePrefix?: string; analyticsEnabled?: boolean; } export interface AppInstanceOutput { absoluteAppUrl: string; routePath: string; } export interface AppInstanceProperties { contextParams: { [name: string]: string; }; properties: AppInstancePropertiesStorage; featureProperties: { [name: string]: any; }; pendingRequestUrl: string; processedFeaturesIndex: number[]; } export declare enum ShowInPublicListingsMode { None = 0, PublicToProfileViewer = 1, PublicToAppViewer = 2 } export interface AppInstance { id: GuidValue; businessProfileId: GuidValue; appDefinitionId: GuidValue; appTemplateId: GuidValue; appDefinitionVersion: string; title: MultilingualString; description: MultilingualString; showInPublicListings: ShowInPublicListingsMode; error: string; status: AppInstanceStatus; transactionId: GuidValue; properties: AppInstanceProperties; permissionIdentities: AppInstanceIdentities; enterpriseProperties: { [internalName: string]: any; }; outputInfo: AppInstanceOutput; createdBy: Identity; modifiedBy: Identity; createdAt: Date; modifiedAt: Date; appTemplate: AppTemplate; lastActivity: Date; image?: MediaPickerImage; onDataChanged?: () => void; } export interface AppInstanceInputInfo { title: MultilingualString; description: MultilingualString; showInPublicListings: ShowInPublicListingsMode; permissionIdentities: AppInstanceIdentities; outputInfo: any; properties: any; featureProperties: { [id: string]: any; }; pendingRequestUrl?: string; enterpriseProperties?: { [internalName: string]: any; }; image?: MediaPickerImage; } export interface AppInstancesResult { total: number; appInstances: AppInstance[]; } export interface AppInstancesScopedQueryResult { total: number; items: AppInstanceInfo[]; } export interface AppInstanceInfo { appInstanceId: GuidValue; title: MultilingualString; description: MultilingualString; image: MediaPickerImage; enterprisePropertyValues: { [id: string]: any; }; dynamicPropertyValues: { [id: string]: any; }; appInstanceOutput: AppInstanceOutput; businessProfileId: GuidValue; } export interface AppInstanceInfoUser extends AppInstanceInfo { followed: boolean; } export interface AppInstanceCreateInfo { appTemplateId: GuidValue; inputInfo: AppInstanceInputInfo; contextParams: { [name: string]: string; }; } export interface AppInstanceUpdateInfo { appInstanceId: GuidValue; inputInfo: AppInstanceInputInfo; contextParams?: { [name: string]: string; }; } export interface AppInstanceRejectInfo { appInstanceId: GuidValue; appDefinitionId: GuidValue; comment: string; } export interface AppInstanceOutputInfo { id: string; businessProfileId: string; title: MultilingualString; outputInfo: AppInstanceOutput; status: AppInstanceStatus; } export interface AppInstanceQuery { includeTotal: boolean; itemLimit?: number; skip?: number; keyWord?: string; orderBy?: AppInstanceQueryOrderBy; statuses?: AppInstanceStatus[]; keywordFilterOnProperties?: string[]; keywordFilterEnableWildcardSearch?: boolean; appTemplateFilters?: AppInstanceTemplateFilter[]; appInstanceFilter?: AppInstanceFilter; lastActivityPeriod?: number; } export interface AppInstanceScopedQuery extends AppInstanceQuery { scope: AppInstanceScopedQueryTypes; includeFollowAppStatus: boolean; selectDynamicAppProperties: string[]; selectEnterpriseProperties: string[]; trimByRoleId?: GuidValue; } export interface AppInstanceFilter { enableWildcardSearch: boolean; filters: RollupFilter[]; } export interface AppInstanceTemplateFilter extends AppInstanceFilter { appTemplateId: GuidValue; } export interface AppInstanceQueryOrderBy { descending: boolean; propertyName: string; } export interface AppInstanceActionProgressResult { appInstance: AppInstance; message: string; percentage: number; }