using System; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ using System.Collections.Generic; using System.IO; using DotCMIS.Data.Extensions; using DotCMIS.Enums; namespace DotCMIS.Data { public interface IRepositoryInfo : IExtensionsData { string Id { get; } string Name { get; } string Description { get; } string VendorName { get; } string ProductName { get; } string ProductVersion { get; } string RootFolderId { get; } IRepositoryCapabilities Capabilities { get; } IAclCapabilities AclCapabilities { get; } string LatestChangeLogToken { get; } string CmisVersionSupported { get; } string ThinClientUri { get; } bool? ChangesIncomplete { get; } IList ChangesOnType { get; } string PrincipalIdAnonymous { get; } string PrincipalIdAnyone { get; } } public interface IRepositoryCapabilities : IExtensionsData { CapabilityContentStreamUpdates? ContentStreamUpdatesCapability { get; } CapabilityChanges? ChangesCapability { get; } CapabilityRenditions? RenditionsCapability { get; } bool? IsGetDescendantsSupported { get; } bool? IsGetFolderTreeSupported { get; } bool? IsMultifilingSupported { get; } bool? IsUnfilingSupported { get; } bool? IsVersionSpecificFilingSupported { get; } bool? IsPwcSearchableSupported { get; } bool? IsPwcUpdatableSupported { get; } bool? IsAllVersionsSearchableSupported { get; } CapabilityQuery? QueryCapability { get; } CapabilityJoin? JoinCapability { get; } CapabilityAcl? AclCapability { get; } } public interface IAclCapabilities : IExtensionsData { SupportedPermissions? SupportedPermissions { get; } AclPropagation? AclPropagation { get; } IList Permissions { get; } IDictionary PermissionMapping { get; } } public interface IPermissionDefinition : IExtensionsData { string Id { get; } string Description { get; } } public interface IPermissionMapping : IExtensionsData { string Key { get; } IList Permissions { get; } } public interface ITypeDefinition : IExtensionsData { string Id { get; } string LocalName { get; } string LocalNamespace { get; } string DisplayName { get; } string QueryName { get; } string Description { get; } BaseTypeId BaseTypeId { get; } string ParentTypeId { get; } bool? IsCreatable { get; } bool? IsFileable { get; } bool? IsQueryable { get; } bool? IsFulltextIndexed { get; } bool? IsIncludedInSupertypeQuery { get; } bool? IsControllablePolicy { get; } bool? IsControllableAcl { get; } IPropertyDefinition this[string propertyId] { get; } IList PropertyDefinitions { get; } } public interface IDocumentTypeDefinition : ITypeDefinition { bool? IsVersionable { get; } ContentStreamAllowed? ContentStreamAllowed { get; } } public interface IFolderTypeDefinition : ITypeDefinition { } public interface IPolicyTypeDefinition : ITypeDefinition { } public interface IRelationshipTypeDefinition : ITypeDefinition { IList AllowedSourceTypeIds { get; } IList AllowedTargetTypeIds { get; } } public interface ITypeDefinitionList : IExtensionsData { IList List { get; } bool? HasMoreItems { get; } long? NumItems { get; } } public interface ITypeDefinitionContainer : IExtensionsData { ITypeDefinition TypeDefinition { get; } IList Children { get; } } public interface IPropertyDefinition : IExtensionsData { string Id { get; } string LocalName { get; } string LocalNamespace { get; } string DisplayName { get; } string QueryName { get; } string Description { get; } PropertyType PropertyType { get; } Cardinality Cardinality { get; } Updatability Updatability { get; } bool? IsInherited { get; } bool? IsRequired { get; } bool? IsQueryable { get; } bool? IsOrderable { get; } bool? IsOpenChoice { get; } } public interface IChoice { string DisplayName { get; } IList Value { get; } IList> Choices { get; } } public interface IPropertyBooleanDefinition : IPropertyDefinition { IList DefaultValue { get; } IList> Choices { get; } } public interface IPropertyDateTimeDefinition : IPropertyDefinition { IList DefaultValue { get; } IList> Choices { get; } DateTimeResolution? DateTimeResolution { get; } } public interface IPropertyDecimalDefinition : IPropertyDefinition { IList DefaultValue { get; } IList> Choices { get; } decimal? MinValue { get; } decimal? MaxValue { get; } DecimalPrecision? Precision { get; } } public interface IPropertyHtmlDefinition : IPropertyDefinition { IList DefaultValue { get; } IList> Choices { get; } } public interface IPropertyIdDefinition : IPropertyDefinition { IList DefaultValue { get; } IList> Choices { get; } } public interface IPropertyIntegerDefinition : IPropertyDefinition { IList DefaultValue { get; } IList> Choices { get; } long? MinValue { get; } long? MaxValue { get; } } public interface IPropertyStringDefinition : IPropertyDefinition { IList DefaultValue { get; } IList> Choices { get; } long? MaxLength { get; } } public interface IPropertyUriDefinition : IPropertyDefinition { IList DefaultValue { get; } IList> Choices { get; } } public interface IObjectData : IExtensionsData { string Id { get; } BaseTypeId? BaseTypeId { get; } IProperties Properties { get; } IAllowableActions AllowableActions { get; } IList Relationships { get; } IChangeEventInfo ChangeEventInfo { get; } IAcl Acl { get; } bool? IsExactAcl { get; } IPolicyIdList PolicyIds { get; } IList Renditions { get; } } public interface IObjectList : IExtensionsData { IList Objects { get; } bool? HasMoreItems { get; } long? NumItems { get; } } public interface IObjectInFolderData : IExtensionsData { IObjectData Object { get; } string PathSegment { get; } } public interface IObjectInFolderList : IExtensionsData { IList Objects { get; } bool? HasMoreItems { get; } long? NumItems { get; } } public interface IObjectInFolderContainer : IExtensionsData { IObjectInFolderData Object { get; } IList Children { get; } } public interface IObjectParentData : IExtensionsData { IObjectData Object { get; } string RelativePathSegment { get; } } public interface IProperties : IExtensionsData { IPropertyData this[string propertyId] { get; } IList PropertyList { get; } } public interface IPropertyData : IExtensionsData { string Id { get; } string LocalName { get; } string DisplayName { get; } string QueryName { get; } PropertyType PropertyType { get; } IList Values { get; } object FirstValue { get; } } public interface IPrincipal : IExtensionsData { string Id { get; } } public interface IAce : IExtensionsData { IPrincipal Principal { get; } string PrincipalId { get; } IList Permissions { get; } bool IsDirect { get; } } public interface IAcl : IExtensionsData { IList Aces { get; } bool? IsExact { get; } } public interface IContentStream : IExtensionsData { long? Length { get; } string MimeType { get; } string FileName { get; } Stream Stream { get; } } public interface IAllowableActions : IExtensionsData { HashSet Actions { get; } } public interface IRenditionData : IExtensionsData { string StreamId { get; } string MimeType { get; } long? Length { get; } string Kind { get; } string Title { get; } long? Height { get; } long? Width { get; } string RenditionDocumentId { get; } } public interface IChangeEventInfo : IExtensionsData { ChangeType? ChangeType { get; } DateTime? ChangeTime { get; } } public interface IPolicyIdList : IExtensionsData { IList PolicyIds { get; } } public interface IFailedToDeleteData : IExtensionsData { IList Ids { get; } } }