blob: 9aaea109443b0394e4b2589646d5d2d848d94a3f [file] [log] [blame]
/*
* 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; }
}
}