/* | |
* 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 PortCMIS.Data.Extensions; | |
using PortCMIS.Enums; | |
using System; | |
using System.Collections.Generic; | |
using System.IO; | |
using System.Numerics; | |
namespace PortCMIS.Data | |
{ | |
/// <summary> | |
/// Represents a repository info. | |
/// </summary> | |
public interface IRepositoryInfo : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the repository ID. | |
/// </value> | |
string Id { get; } | |
/// <value> | |
/// Gets the repository Name. | |
/// </value> | |
string Name { get; } | |
/// <value> | |
/// Gets the repository description. | |
/// </value> | |
string Description { get; } | |
/// <value> | |
/// Gets the repository vendor. | |
/// </value> | |
string VendorName { get; } | |
/// <value> | |
/// Gets the repository product name. | |
/// </value> | |
string ProductName { get; } | |
/// <value> | |
/// Gets the repository product version. | |
/// </value> | |
string ProductVersion { get; } | |
/// <value> | |
/// Gets the root folder ID. | |
/// </value> | |
string RootFolderId { get; } | |
/// <value> | |
/// Gets the repository capabilities. | |
/// </value> | |
IRepositoryCapabilities Capabilities { get; } | |
/// <value> | |
/// Gets the repository ACL capabilities. | |
/// </value> | |
IAclCapabilities AclCapabilities { get; } | |
/// <value> | |
/// Gets the latest change log token. | |
/// </value> | |
string LatestChangeLogToken { get; } | |
/// <value> | |
/// Gets the CMIS version as string. | |
/// </value> | |
string CmisVersionSupported { get; } | |
/// <value> | |
/// Gets the CMIS version as enum. | |
/// </value> | |
CmisVersion CmisVersion { get; } | |
/// <value> | |
/// Gets the repository thin client URI. | |
/// </value> | |
string ThinClientUri { get; } | |
/// <value> | |
/// Gets the changes incomplete flag. | |
/// </value> | |
bool? ChangesIncomplete { get; } | |
/// <value> | |
/// Gets the list of changable base types. | |
/// </value> | |
IList<BaseTypeId?> ChangesOnType { get; } | |
/// <value> | |
/// Gets the principal ID of an anonymous user, if supported. | |
/// </value> | |
string PrincipalIdAnonymous { get; } | |
/// <value> | |
/// Gets the principal ID of an unauthenticated user, if supported. | |
/// </value> | |
string PrincipalIdAnyone { get; } | |
/// <value> | |
/// Gets the list of extension features. | |
/// </value> | |
IList<IExtensionFeature> ExtensionFeatures { get; } | |
} | |
/// <summary> | |
/// Repository Capabilities. | |
/// </summary> | |
public interface IRepositoryCapabilities : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the content Stream Updates capability. | |
/// </value> | |
CapabilityContentStreamUpdates? ContentStreamUpdatesCapability { get; } | |
/// <value> | |
/// Gets the change log capability. | |
/// </value> | |
CapabilityChanges? ChangesCapability { get; } | |
/// <value> | |
/// Gets the rendition capability. | |
/// </value> | |
CapabilityRenditions? RenditionsCapability { get; } | |
/// <value> | |
/// Gets whether getDescendants is supported or not. | |
/// </value> | |
bool? IsGetDescendantsSupported { get; } | |
/// <value> | |
/// Gets whether getFolderTree is supported or not. | |
/// </value> | |
bool? IsGetFolderTreeSupported { get; } | |
/// <value> | |
/// Gets the OREDER BY capability. | |
/// </value> | |
CapabilityOrderBy? OrderByCapability { get; } | |
/// <value> | |
/// Gets whether multi-filing is supported or not. | |
/// </value> | |
bool? IsMultifilingSupported { get; } | |
/// <value> | |
/// Gets whether unfiling is supported or not. | |
/// </value> | |
bool? IsUnfilingSupported { get; } | |
/// <value> | |
/// Gets whether version specific filing is supported or not. | |
/// </value> | |
bool? IsVersionSpecificFilingSupported { get; } | |
/// <value> | |
/// Gets whether the PWC is searchable or not. | |
/// </value> | |
bool? IsPwcSearchableSupported { get; } | |
/// <value> | |
/// Gets whether PWC is updapatable or not. | |
/// </value> | |
bool? IsPwcUpdatableSupported { get; } | |
/// <value> | |
/// Gets whether query for all versions is supported or not. | |
/// </value> | |
bool? IsAllVersionsSearchableSupported { get; } | |
/// <value> | |
/// Gets the query capability. | |
/// </value> | |
CapabilityQuery? QueryCapability { get; } | |
/// <value> | |
/// Gets the Join capability. | |
/// </value> | |
CapabilityJoin? JoinCapability { get; } | |
/// <value> | |
/// Gets the ACL capability. | |
/// </value> | |
CapabilityAcl? AclCapability { get; } | |
/// <value> | |
/// Gets which property types are supported for new types. | |
/// </value> | |
ICreatablePropertyTypes CreatablePropertyTypes { get; } | |
/// <value> | |
/// Gets which attributes can be set on a new type. | |
/// </value> | |
INewTypeSettableAttributes NewTypeSettableAttributes { get; } | |
} | |
/// <summary> | |
/// Property Type that are supported for new types. | |
/// </summary> | |
public interface ICreatablePropertyTypes : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the set of property types that are supported for new types. | |
/// </value> | |
ISet<PropertyType> CanCreate { get; } | |
} | |
/// <summary> | |
/// Attributes that can be set on new types. | |
/// </summary> | |
public interface INewTypeSettableAttributes : IExtensionsData | |
{ | |
/// <value> | |
/// Gets whether the type ID can be set or not. | |
/// </value> | |
bool? CanSetId { get; } | |
/// <value> | |
/// Gets whether the local name can be set or not. | |
/// </value> | |
bool? CanSetLocalName { get; } | |
/// <value> | |
/// Gets whether the local namespace can be set or not. | |
/// </value> | |
bool? CanSetLocalNamespace { get; } | |
/// <value> | |
/// Gets whether the display name can be set or not. | |
/// </value> | |
bool? CanSetDisplayName { get; } | |
/// <value> | |
/// Gets whether the query name can be set or not. | |
/// </value> | |
bool? CanSetQueryName { get; } | |
/// <value> | |
/// Gets whether the description can be set or not. | |
/// </value> | |
bool? CanSetDescription { get; } | |
/// <value> | |
/// Gets whether the creatable flag can be set or not. | |
/// </value> | |
bool? CanSetCreatable { get; } | |
/// <value> | |
/// Gets whether the filable flag can be set or not. | |
/// </value> | |
bool? CanSetFileable { get; } | |
/// <value> | |
/// Gets whether the queryable flag can be set or not. | |
/// </value> | |
bool? CanSetQueryable { get; } | |
/// <value> | |
/// Gets whether the fulltext flag can be set or not. | |
/// </value> | |
bool? CanSetFulltextIndexed { get; } | |
/// <value> | |
/// Gets whether the IncludedInSupertype flag can be set or not. | |
/// </value> | |
bool? CanSetIncludedInSupertypeQuery { get; } | |
/// <value> | |
/// Gets whether the policy control can be set or not. | |
/// </value> | |
bool? CanSetControllablePolicy { get; } | |
/// <value> | |
/// Gets whether the ACL control can be set or not. | |
/// </value> | |
bool? CanSetControllableAcl { get; } | |
} | |
/// <summary> | |
/// ACL capabilities. | |
/// </summary> | |
public interface IAclCapabilities : IExtensionsData | |
{ | |
/// <value> | |
/// Gets which permission set is supported. | |
/// </value> | |
SupportedPermissions? SupportedPermissions { get; } | |
/// <value> | |
/// Gets which ACL propagation is supported. | |
/// </value> | |
AclPropagation? AclPropagation { get; } | |
/// <value> | |
/// Gets permission definitions. | |
/// </value> | |
IList<IPermissionDefinition> Permissions { get; } | |
/// <value> | |
/// Gets permission mapping. | |
/// </value> | |
IDictionary<string, IPermissionMapping> PermissionMapping { get; } | |
} | |
/// <summary> | |
/// Permission definition. | |
/// </summary> | |
public interface IPermissionDefinition : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the permission ID. | |
/// </value> | |
string Id { get; } | |
/// <value> | |
/// Gets the description of the permission. | |
/// </value> | |
string Description { get; } | |
} | |
/// <summary> | |
/// Permission mapping. | |
/// </summary> | |
public interface IPermissionMapping : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the permission key. | |
/// </value> | |
/// <seealso cref="PortCMIS.PermissionMappingKeys"/> | |
string Key { get; } | |
/// <value> | |
/// Gets the required permissions. | |
/// </value> | |
IList<string> Permissions { get; } | |
} | |
/// <summary> | |
/// Extension feature. | |
/// </summary> | |
public interface IExtensionFeature : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the ID of the feature. | |
/// </value> | |
string Id { get; } | |
/// <value> | |
/// Gets the URL of the feature. | |
/// </value> | |
string Url { get; } | |
/// <value> | |
/// Gets the name of the feature. | |
/// </value> | |
string CommonName { get; } | |
/// <value> | |
/// Gets the version label of the feature. | |
/// </value> | |
string VersionLabel { get; } | |
/// <value> | |
/// Gets the description of the feature. | |
/// </value> | |
string Description { get; } | |
/// <value> | |
/// Gets a feature specific set of data. | |
/// </value> | |
IDictionary<string, string> FeatureData { get; } | |
} | |
/// <summary> | |
/// Type definition. | |
/// </summary> | |
public interface ITypeDefinition : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the type ID. | |
/// </value> | |
string Id { get; } | |
/// <value> | |
/// Gets the local name. | |
/// </value> | |
string LocalName { get; } | |
/// <value> | |
/// Gets the local name space. | |
/// </value> | |
string LocalNamespace { get; } | |
/// <value> | |
/// Gets the display name. | |
/// </value> | |
string DisplayName { get; } | |
/// <value> | |
/// Gets the query name. | |
/// </value> | |
string QueryName { get; } | |
/// <value> | |
/// Gets the description. | |
/// </value> | |
string Description { get; } | |
/// <value> | |
/// Gets the ID of the base type. | |
/// </value> | |
BaseTypeId BaseTypeId { get; } | |
/// <value> | |
/// Gets the ID of the parent type. | |
/// </value> | |
string ParentTypeId { get; } | |
/// <value> | |
/// Gets whether objects of this type can be created or not. | |
/// </value> | |
bool? IsCreatable { get; } | |
/// <value> | |
/// Gets whether objects of this type can be filed or not. | |
/// </value> | |
bool? IsFileable { get; } | |
/// <value> | |
/// Gets whether objects of this type can be queried or not. | |
/// </value> | |
bool? IsQueryable { get; } | |
/// <value> | |
/// Gets whether objects of this type are indexed or not. | |
/// </value> | |
bool? IsFulltextIndexed { get; } | |
/// <value> | |
/// Gets whether objects of this type can be found in super type queries or not. | |
/// </value> | |
bool? IsIncludedInSupertypeQuery { get; } | |
/// <value> | |
/// Gets whether polices can be applied to objects of this type or not. | |
/// </value> | |
bool? IsControllablePolicy { get; } | |
/// <value> | |
/// Gets whether ACLs can be applied to objects of this type or not. | |
/// </value> | |
bool? IsControllableAcl { get; } | |
/// <value> | |
/// Gets the property definition for the given property ID. | |
/// </value> | |
IPropertyDefinition this[string propertyId] { get; } | |
/// <value> | |
/// Gets a list of all property definitions. | |
/// </value> | |
IList<IPropertyDefinition> PropertyDefinitions { get; } | |
/// <value> | |
/// Gets the type mutability flags. | |
/// </value> | |
ITypeMutability TypeMutability { get; } | |
} | |
/// <summary> | |
/// Type mutability flags. | |
/// </summary> | |
public interface ITypeMutability : IExtensionsData | |
{ | |
/// <value> | |
/// Defines whether subtypes can be created. | |
/// </value> | |
bool? CanCreate { get; } | |
/// <value> | |
/// Defines whether the type can be updated. | |
/// </value> | |
bool? CanUpdate { get; } | |
/// <value> | |
/// Defines whether the type can be deleted. | |
/// </value> | |
bool? CanDelete { get; } | |
} | |
/// <summary> | |
/// Document type definition. | |
/// </summary> | |
public interface IDocumentTypeDefinition : ITypeDefinition | |
{ | |
/// <value> | |
/// Defines whether the type is versionabel or not. | |
/// </value> | |
bool? IsVersionable { get; } | |
/// <value> | |
/// Defines if content streams are supported for this type. | |
/// </value> | |
ContentStreamAllowed? ContentStreamAllowed { get; } | |
} | |
/// <summary> | |
/// Folder type definition. | |
/// </summary> | |
public interface IFolderTypeDefinition : ITypeDefinition | |
{ | |
} | |
/// <summary> | |
/// Secondary type definition. | |
/// </summary> | |
public interface ISecondaryTypeDefinition : ITypeDefinition | |
{ | |
} | |
/// <summary> | |
/// Policy type definition. | |
/// </summary> | |
public interface IPolicyTypeDefinition : ITypeDefinition | |
{ | |
} | |
/// <summary> | |
/// Item type definition. | |
/// </summary> | |
public interface IItemTypeDefinition : ITypeDefinition | |
{ | |
} | |
/// <summary> | |
/// Relationship type definition. | |
/// </summary> | |
public interface IRelationshipTypeDefinition : ITypeDefinition | |
{ | |
/// <value> | |
/// Gets the list of allowed source types. | |
/// If the list is empty all types are allowed. | |
/// </value> | |
IList<string> AllowedSourceTypeIds { get; } | |
/// <value> | |
/// Gets the list of allowed target types. | |
/// If the list is empty all types are allowed. | |
/// </value> | |
IList<string> AllowedTargetTypeIds { get; } | |
} | |
/// <summary> | |
/// List of type definitions. | |
/// </summary> | |
/// <remarks> | |
/// The list may be incomplete if paging was used to fetch the list. | |
/// </remarks> | |
public interface ITypeDefinitionList : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the (partial) list of type definitions. | |
/// </value> | |
IList<ITypeDefinition> List { get; } | |
/// <value> | |
/// Gets whether there are more type definitions; <c>null</c> if unknown. | |
/// </value> | |
bool? HasMoreItems { get; } | |
/// <value> | |
/// Gets the total number of type definitions; <c>null</c> if unknown. | |
/// </value> | |
BigInteger? NumItems { get; } | |
} | |
/// <summary> | |
/// Type Definition Container for trees of type definitions. | |
/// </summary> | |
public interface ITypeDefinitionContainer : IExtensionsData | |
{ | |
/// <summary> | |
/// Gets the type definition. | |
/// </summary> | |
ITypeDefinition TypeDefinition { get; } | |
/// <summary> | |
/// Gets the children of this type definition, if requested. | |
/// </summary> | |
IList<ITypeDefinitionContainer> Children { get; } | |
} | |
/// <summary> | |
/// Property definition. | |
/// </summary> | |
public interface IPropertyDefinition : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the property ID. | |
/// </value> | |
string Id { get; } | |
/// <value> | |
/// Gets the local name. | |
/// </value> | |
string LocalName { get; } | |
/// <value> | |
/// Gets the local namespace. | |
/// </value> | |
string LocalNamespace { get; } | |
/// <value> | |
/// Gets the display name. | |
/// </value> | |
string DisplayName { get; } | |
/// <value> | |
/// Gets the query name. | |
/// </value> | |
string QueryName { get; } | |
/// <value> | |
/// Gets the description. | |
/// </value> | |
string Description { get; } | |
/// <value> | |
/// Get the property type. | |
/// </value> | |
PropertyType PropertyType { get; } | |
/// <value> | |
/// Gets the cardinality. | |
/// </value> | |
Cardinality? Cardinality { get; } | |
/// <value> | |
/// Gets the updatability. | |
/// </value> | |
Updatability? Updatability { get; } | |
/// <value> | |
/// Gets whether the property has been inherited from a super type or not. | |
/// </value> | |
bool? IsInherited { get; } | |
/// <value> | |
/// Gets whether a value for this property required or not. | |
/// </value> | |
bool? IsRequired { get; } | |
/// <value> | |
/// Gets whether this property is queryable or not. | |
/// </value> | |
bool? IsQueryable { get; } | |
/// <value> | |
/// Gets whether this property is orderable or not. | |
/// </value> | |
bool? IsOrderable { get; } | |
/// <value> | |
/// Gets whether this property is an open choice property or not. | |
/// </value> | |
bool? IsOpenChoice { get; } | |
} | |
/// <summary> | |
/// A choice value. | |
/// </summary> | |
/// <typeparam name="T">type of the choice</typeparam> | |
public interface IChoice<T> | |
{ | |
/// <value> | |
/// Gets the display name. | |
/// </value> | |
string DisplayName { get; } | |
/// <value> | |
/// Gets the value. | |
/// </value> | |
IList<T> Value { get; } | |
/// <value> | |
/// Gets the children of this choice. | |
/// </value> | |
IList<IChoice<T>> Choices { get; } | |
} | |
/// <summary> | |
/// Property definition for a boolean property. | |
/// </summary> | |
public interface IPropertyBooleanDefinition : IPropertyDefinition | |
{ | |
/// <value> | |
/// Gets the default value. | |
/// </value> | |
IList<bool?> DefaultValue { get; } | |
/// <value> | |
/// Gets the choices of this property. | |
/// </value> | |
IList<IChoice<bool?>> Choices { get; } | |
} | |
/// <summary> | |
/// Property definition for a date time property. | |
/// </summary> | |
public interface IPropertyDateTimeDefinition : IPropertyDefinition | |
{ | |
/// <value> | |
/// Gets the default value. | |
/// </value> | |
IList<DateTime?> DefaultValue { get; } | |
/// <value> | |
/// Gets the choices of this property. | |
/// </value> | |
IList<IChoice<DateTime?>> Choices { get; } | |
/// <value> | |
/// Gets the supported resolution. | |
/// </value> | |
DateTimeResolution? DateTimeResolution { get; } | |
} | |
/// <summary> | |
/// Property definition for a decimal property. | |
/// </summary> | |
public interface IPropertyDecimalDefinition : IPropertyDefinition | |
{ | |
/// <value> | |
/// Gets the default value. | |
/// </value> | |
IList<decimal?> DefaultValue { get; } | |
/// <value> | |
/// Gets the choices of this property. | |
/// </value> | |
IList<IChoice<decimal?>> Choices { get; } | |
/// <summary> | |
/// Gets the min value for this property. | |
/// </summary> | |
decimal? MinValue { get; } | |
/// <summary> | |
/// Gets the max value for this property. | |
/// </summary> | |
decimal? MaxValue { get; } | |
/// <summary> | |
/// Gets the supported precision. | |
/// </summary> | |
DecimalPrecision? Precision { get; } | |
} | |
/// <summary> | |
/// Property definition for a HTML property. | |
/// </summary> | |
public interface IPropertyHtmlDefinition : IPropertyDefinition | |
{ | |
/// <value> | |
/// Gets the default value. | |
/// </value> | |
IList<string> DefaultValue { get; } | |
/// <value> | |
/// Gets the choices of this property. | |
/// </value> | |
IList<IChoice<string>> Choices { get; } | |
} | |
/// <summary> | |
/// Property definition for an ID property. | |
/// </summary> | |
public interface IPropertyIdDefinition : IPropertyDefinition | |
{ | |
/// <value> | |
/// Gets the default value. | |
/// </value> | |
IList<string> DefaultValue { get; } | |
/// <value> | |
/// Gets the choices of this property. | |
/// </value> | |
IList<IChoice<string>> Choices { get; } | |
} | |
/// <summary> | |
/// Property definition for a integer property. | |
/// </summary> | |
public interface IPropertyIntegerDefinition : IPropertyDefinition | |
{ | |
/// <value> | |
/// Gets the default value. | |
/// </value> | |
IList<BigInteger?> DefaultValue { get; } | |
/// <value> | |
/// Gets the choices of this property. | |
/// </value> | |
IList<IChoice<BigInteger?>> Choices { get; } | |
/// <summary> | |
/// Gets the min value for this property. | |
/// </summary> | |
BigInteger? MinValue { get; } | |
/// <summary> | |
/// Gets the max value for this property. | |
/// </summary> | |
BigInteger? MaxValue { get; } | |
} | |
/// <summary> | |
/// Property definition for a string property. | |
/// </summary> | |
public interface IPropertyStringDefinition : IPropertyDefinition | |
{ | |
/// <value> | |
/// Gets the default value. | |
/// </value> | |
IList<string> DefaultValue { get; } | |
/// <value> | |
/// Gets the choices of this property. | |
/// </value> | |
IList<IChoice<string>> Choices { get; } | |
/// <value> | |
/// Gets the max length of the string. | |
/// </value> | |
BigInteger? MaxLength { get; } | |
} | |
/// <summary> | |
/// Property definition for a URI property. | |
/// </summary> | |
public interface IPropertyUriDefinition : IPropertyDefinition | |
{ | |
/// <value> | |
/// Gets the default value. | |
/// </value> | |
IList<string> DefaultValue { get; } | |
/// <value> | |
/// Gets the choices of this property. | |
/// </value> | |
IList<IChoice<string>> Choices { get; } | |
} | |
/// <summary> | |
/// Object data. | |
/// </summary> | |
public interface IObjectData : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the ID of this object. | |
/// </value> | |
string Id { get; } | |
/// <value> | |
/// Gets the base type ID of this object. | |
/// </value> | |
BaseTypeId? BaseTypeId { get; } | |
/// <value> | |
/// Gets the properties of this object. | |
/// </value> | |
IProperties Properties { get; } | |
/// <value> | |
/// Gets the allowable actions of this object. | |
/// </value> | |
IAllowableActions AllowableActions { get; } | |
/// <value> | |
/// Gets the relationships of this object. | |
/// </value> | |
IList<IObjectData> Relationships { get; } | |
/// <value> | |
/// Gets the change events of this object. | |
/// </value> | |
IChangeEventInfo ChangeEventInfo { get; } | |
/// <value> | |
/// Gets the ACL of this object. | |
/// </value> | |
IAcl Acl { get; } | |
/// <value> | |
/// Gets whether the ACL is exact or not. | |
/// </value> | |
bool? IsExactAcl { get; } | |
/// <value> | |
/// Gets the policy IDs of this object. | |
/// </value> | |
IPolicyIdList PolicyIds { get; } | |
/// <value> | |
/// Gets the renditions of this object. | |
/// </value> | |
IList<IRenditionData> Renditions { get; } | |
} | |
/// <summary> | |
/// Object List. | |
/// </summary> | |
public interface IObjectList : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the list of objects. | |
/// </value> | |
IList<IObjectData> Objects { get; } | |
/// <value> | |
/// Gets whether there are more objects, if known. | |
/// </value> | |
bool? HasMoreItems { get; } | |
/// <value> | |
/// Gets total number of objects in the list, if known. | |
/// </value> | |
BigInteger? NumItems { get; } | |
} | |
/// <summary> | |
/// Object in a folder. | |
/// </summary> | |
public interface IObjectInFolderData : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the object. | |
/// </value> | |
IObjectData Object { get; } | |
/// <value> | |
/// Get the path segment of the object in the folder. | |
/// </value> | |
string PathSegment { get; } | |
} | |
/// <summary> | |
/// List of objects in a folder. | |
/// </summary> | |
public interface IObjectInFolderList : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the list of objects. | |
/// </value> | |
IList<IObjectInFolderData> Objects { get; } | |
/// <value> | |
/// Gets whether there are more objects, if known. | |
/// </value> | |
bool? HasMoreItems { get; } | |
/// <value> | |
/// Gets total number of objects in the list, if known. | |
/// </value> | |
BigInteger? NumItems { get; } | |
} | |
/// <summary> | |
/// Tree node of objects in a folder. | |
/// </summary> | |
public interface IObjectInFolderContainer : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the object. | |
/// </value> | |
IObjectInFolderData Object { get; } | |
/// <value> | |
/// Gets the children of the object, if any. | |
/// </value> | |
IList<IObjectInFolderContainer> Children { get; } | |
} | |
/// <summary> | |
/// Object parent. | |
/// </summary> | |
public interface IObjectParentData : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the parent object. | |
/// </value> | |
IObjectData Object { get; } | |
/// <value> | |
/// Gets the relative path segment of the object in the parent folder. | |
/// </value> | |
string RelativePathSegment { get; } | |
} | |
/// <summary> | |
/// Collection of property data. | |
/// </summary> | |
public interface IProperties : IExtensionsData | |
{ | |
/// <value> | |
/// Gets a property by property ID. | |
/// </value> | |
/// <param name="propertyId">the property ID</param> | |
/// <returns>the property or <c>null</c> if the property doesn't exist</returns> | |
IPropertyData this[string propertyId] { get; } | |
/// <value> | |
/// Gets the list of properties. | |
/// </value> | |
IList<IPropertyData> PropertyList { get; } | |
} | |
/// <summary> | |
/// Property Data. | |
/// </summary> | |
public interface IPropertyData : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the property ID. | |
/// </value> | |
string Id { get; } | |
/// <value> | |
/// Gets the local name. | |
/// </value> | |
string LocalName { get; } | |
/// <value> | |
/// Gets the display name. | |
/// </value> | |
string DisplayName { get; } | |
/// <value> | |
/// Gets the query name. | |
/// </value> | |
string QueryName { get; } | |
/// <value> | |
/// Gets the property type. | |
/// </value> | |
PropertyType PropertyType { get; } | |
/// <value> | |
/// Gets the property values. | |
/// </value> | |
IList<object> Values { get; } | |
/// <value> | |
/// Gets the first property value. | |
/// </value> | |
object FirstValue { get; } | |
} | |
/// <summary> | |
/// Represents a principal. | |
/// </summary> | |
public interface IPrincipal : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the principal ID. | |
/// </value> | |
string Id { get; } | |
} | |
/// <summary> | |
/// Represents an ACE. | |
/// </summary> | |
public interface IAce : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the principal | |
/// </value> | |
IPrincipal Principal { get; } | |
/// <value> | |
/// Gets the principal ID | |
/// </value> | |
string PrincipalId { get; } | |
/// <value> | |
/// Gets the list of permissions | |
/// </value> | |
IList<string> Permissions { get; } | |
/// <value> | |
/// Gets whether the ACE is a direct ACE or not | |
/// </value> | |
bool IsDirect { get; } | |
} | |
/// <summary> | |
/// Represents an ACL. | |
/// </summary> | |
public interface IAcl : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the list of ACEs. | |
/// </value> | |
IList<IAce> Aces { get; } | |
/// <value> | |
/// Gets whether the ACL is exact or not. | |
/// </value> | |
bool? IsExact { get; } | |
} | |
/// <summary> | |
/// Represents a content stream. | |
/// </summary> | |
public interface IContentStream : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the stream length, if known. | |
/// </value> | |
BigInteger? Length { get; } | |
/// <value> | |
/// Gets the MIME type, if known. | |
/// </value> | |
string MimeType { get; } | |
/// <value> | |
/// Gets the file name, if known. | |
/// </value> | |
string FileName { get; } | |
/// <value> | |
/// Gets the stream. | |
/// </value> | |
Stream Stream { get; } | |
} | |
/// <summary> | |
/// Represents a partial content stream. | |
/// </summary> | |
public interface IPartialContentStream : IContentStream | |
{ | |
} | |
/// <summary> | |
/// Allowable Actions. | |
/// </summary> | |
public interface IAllowableActions : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the set of Allowable Actions. | |
/// </value> | |
ISet<PortCMIS.Enums.Action> Actions { get; } | |
} | |
/// <summary> | |
/// Rendition Data. | |
/// </summary> | |
public interface IRenditionData : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the stream ID. | |
/// </value> | |
string StreamId { get; } | |
/// <value> | |
/// Gets the MIME type. | |
/// </value> | |
string MimeType { get; } | |
/// <value> | |
/// Gets the stream length, if known. | |
/// </value> | |
BigInteger? Length { get; } | |
/// <value> | |
/// Gets the kind. | |
/// </value> | |
string Kind { get; } | |
/// <value> | |
/// Gets the title. | |
/// </value> | |
string Title { get; } | |
/// <value> | |
/// Gets the height, if the rendition is an image. | |
/// </value> | |
BigInteger? Height { get; } | |
/// <value> | |
/// Gets the width, if the rendition is an image. | |
/// </value> | |
BigInteger? Width { get; } | |
/// <value> | |
/// Gets the rendition document ID, if the rendition is a standalone document. | |
/// </value> | |
string RenditionDocumentId { get; } | |
} | |
/// <summary> | |
/// Change event. | |
/// </summary> | |
public interface IChangeEventInfo : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the type of the change. | |
/// </value> | |
ChangeType? ChangeType { get; } | |
/// <value> | |
/// Gets the date and time of the change. | |
/// </value> | |
DateTime? ChangeTime { get; } | |
} | |
/// <summary> | |
/// Policy ID List. | |
/// </summary> | |
public interface IPolicyIdList : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the IDs of policies. | |
/// </value> | |
IList<string> PolicyIds { get; } | |
} | |
/// <summary> | |
/// Failed to Delete data. | |
/// </summary> | |
public interface IFailedToDeleteData : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the IDs of objects that couldn't be deleted. | |
/// </value> | |
IList<string> Ids { get; } | |
} | |
/// <summary> | |
/// Bulk Update data. | |
/// </summary> | |
public interface IBulkUpdateObjectIdAndChangeToken : IExtensionsData | |
{ | |
/// <value> | |
/// Gets the original object ID. | |
/// </value> | |
string Id { get; } | |
/// <value> | |
/// Gets the new object ID, if available. | |
/// </value> | |
string NewId { get; } | |
/// <value> | |
/// Gets the change token. | |
/// </value> | |
string ChangeToken { get; } | |
} | |
} |