Repository: jlucansky/Camunda.Api.Client Branch: master Commit: 34803317afbb Files: 307 Total size: 713.9 KB Directory structure: gitextract_dm5kiy9h/ ├── .gitattributes ├── .gitignore ├── Camunda.Api.Client/ │ ├── ApiException.cs │ ├── Batch/ │ │ └── BatchInfo.cs │ ├── BinaryDataContent.cs │ ├── Camunda.Api.Client.csproj │ ├── CamundaClient.cs │ ├── CaseDefinition/ │ │ ├── CaseDefinitionDiagram.cs │ │ ├── CaseDefinitionInfo.cs │ │ ├── CaseDefinitionQuery.cs │ │ ├── CaseDefinitionResource.cs │ │ ├── CaseDefinitionResourceById.cs │ │ ├── CaseDefinitionResourceByKey.cs │ │ ├── CaseDefinitionResourceByKeyAndTenantId.cs │ │ ├── CaseDefinitionService.cs │ │ ├── CreateCaseInstance.cs │ │ └── ICaseDefinitionRestService.cs │ ├── CaseExecution/ │ │ ├── CaseExecutionComplete.cs │ │ ├── CaseExecutionDisable.cs │ │ ├── CaseExecutionInfo.cs │ │ ├── CaseExecutionQuery.cs │ │ ├── CaseExecutionReEnable.cs │ │ ├── CaseExecutionResource.cs │ │ ├── CaseExecutionService.cs │ │ ├── CaseExecutionStart.cs │ │ ├── CaseExecutionTerminate.cs │ │ └── ICaseExecutionRestService.cs │ ├── CaseInstance/ │ │ ├── CaseInstanceDeleteVariable.cs │ │ ├── CaseInstanceInfo.cs │ │ ├── CaseInstanceQuery.cs │ │ ├── CaseInstanceQueryVariable.cs │ │ ├── CaseInstanceResource.cs │ │ ├── CaseInstanceService.cs │ │ ├── CaseInstanceSorting.cs │ │ ├── CaseInstanceVariableValue.cs │ │ ├── ChangeCaseInstanceState.cs │ │ ├── ICaseInstanceRestService.cs │ │ └── VariableResource.cs │ ├── ConditionQueryParameter.cs │ ├── CountResult.cs │ ├── DateTimeExtensions.cs │ ├── DecisionDefinition/ │ │ ├── DecisionDefinitionDiagram.cs │ │ ├── DecisionDefinitionInfo.cs │ │ ├── DecisionDefinitionQuery.cs │ │ ├── DecisionDefinitionResource.cs │ │ ├── DecisionDefinitionResourceById.cs │ │ ├── DecisionDefinitionResourceByKey.cs │ │ ├── DecisionDefinitionResourceByKeyAndTenantId.cs │ │ ├── DecisionDefinitionService.cs │ │ ├── EvaluateDecision.cs │ │ └── IDecisionDefinitionRestService.cs │ ├── Deployment/ │ │ ├── DeploymentInfo.cs │ │ ├── DeploymentQuery.cs │ │ ├── DeploymentResource.cs │ │ ├── DeploymentResourceInfo.cs │ │ ├── DeploymentResourcesResource.cs │ │ ├── DeploymentService.cs │ │ ├── IDeploymentRestService.cs │ │ ├── RedeploymentInfo.cs │ │ └── ResourceDataContent.cs │ ├── EnumerableExtensions.cs │ ├── ErrorMessageHandler.cs │ ├── Execution/ │ │ ├── EventSubscription.cs │ │ ├── EventSubscriptionResource.cs │ │ ├── ExecutionInfo.cs │ │ ├── ExecutionQuery.cs │ │ ├── ExecutionResource.cs │ │ ├── ExecutionService.cs │ │ ├── ExecutionTrigger.cs │ │ ├── IExecutionRestService.cs │ │ └── LocalVariableResource.cs │ ├── ExternalTask/ │ │ ├── CompleteExternalTask.cs │ │ ├── ExternalTaskBpmnError.cs │ │ ├── ExternalTaskExtendLock.cs │ │ ├── ExternalTaskFailure.cs │ │ ├── ExternalTaskInfo.cs │ │ ├── ExternalTaskQuery.cs │ │ ├── ExternalTaskResource.cs │ │ ├── ExternalTaskService.cs │ │ ├── FetchExternalTaskTopic.cs │ │ ├── FetchExternalTasks.cs │ │ ├── IExternalTaskRestService.cs │ │ └── LockedExternalTask.cs │ ├── Filter/ │ │ ├── FilterInfo.cs │ │ ├── FilterQuery.cs │ │ ├── FilterResource.cs │ │ ├── FilterService.cs │ │ └── IFilterRestService.cs │ ├── Group/ │ │ ├── GroupInfo.cs │ │ ├── GroupQuery.cs │ │ ├── GroupResource.cs │ │ ├── GroupService.cs │ │ └── IGroupRestService.cs │ ├── History/ │ │ ├── AbstractReport.cs │ │ ├── CleanableProcessInstanceReport.cs │ │ ├── CleanableProcessInstanceReportCount.cs │ │ ├── CleanableProcessInstanceReportResult.cs │ │ ├── CountReportResult.cs │ │ ├── DeleteHistoricProcessInstances.cs │ │ ├── DurationReportResult.cs │ │ ├── HistoricActivityInstance.cs │ │ ├── HistoricActivityInstanceQuery.cs │ │ ├── HistoricActivityInstanceResource.cs │ │ ├── HistoricActivityInstanceService.cs │ │ ├── HistoricActivityStatistics.cs │ │ ├── HistoricActivityStatisticsResult.cs │ │ ├── HistoricCaseActivityInstance.cs │ │ ├── HistoricCaseActivityInstanceQuery.cs │ │ ├── HistoricCaseActivityInstanceQueryResource.cs │ │ ├── HistoricCaseActivityInstanceResource.cs │ │ ├── HistoricCaseActivityInstanceService.cs │ │ ├── HistoricCaseDefinitionResource.cs │ │ ├── HistoricCaseDefinitionService.cs │ │ ├── HistoricCaseDefinitionStatisticsResult.cs │ │ ├── HistoricCaseInstance.cs │ │ ├── HistoricCaseInstanceQuery.cs │ │ ├── HistoricCaseInstanceResource.cs │ │ ├── HistoricCaseInstanceService.cs │ │ ├── HistoricDecisionInstance.cs │ │ ├── HistoricDecisionInstanceInputValue.cs │ │ ├── HistoricDecisionInstanceOutputValue.cs │ │ ├── HistoricDecisionInstanceQuery.cs │ │ ├── HistoricDecisionInstanceResource.cs │ │ ├── HistoricDecisionInstanceService.cs │ │ ├── HistoricDetail.cs │ │ ├── HistoricDetailQuery.cs │ │ ├── HistoricDetailResource.cs │ │ ├── HistoricDetailService.cs │ │ ├── HistoricExternalTaskLog.cs │ │ ├── HistoricExternalTaskLogQuery.cs │ │ ├── HistoricExternalTaskLogResource.cs │ │ ├── HistoricExternalTaskLogService.cs │ │ ├── HistoricIncident.cs │ │ ├── HistoricIncidentQuery.cs │ │ ├── HistoricIncidentService.cs │ │ ├── HistoricJobLog.cs │ │ ├── HistoricJobLogQuery.cs │ │ ├── HistoricJobLogResource.cs │ │ ├── HistoricJobLogService.cs │ │ ├── HistoricProcessDefinitionService.cs │ │ ├── HistoricProcessInstance.cs │ │ ├── HistoricProcessInstanceQuery.cs │ │ ├── HistoricProcessInstanceReport.cs │ │ ├── HistoricProcessInstanceResource.cs │ │ ├── HistoricProcessInstanceService.cs │ │ ├── HistoricTask.cs │ │ ├── HistoricTaskCountReport.cs │ │ ├── HistoricTaskDurationReport.cs │ │ ├── HistoricTaskQuery.cs │ │ ├── HistoricUserTaskService.cs │ │ ├── HistoricVariableInstance.cs │ │ ├── HistoricVariableInstanceQuery.cs │ │ ├── HistoricVariableInstanceQueryResource.cs │ │ ├── HistoricVariableInstanceResource.cs │ │ ├── HistoricVariableInstanceService.cs │ │ ├── HistoryService.cs │ │ ├── IHistoricActivityInstanceRestService.cs │ │ ├── IHistoricCaseActivityInstanceRestService.cs │ │ ├── IHistoricCaseDefinitionRestService.cs │ │ ├── IHistoricCaseInstanceRestService.cs │ │ ├── IHistoricDecisionInstanceRestService.cs │ │ ├── IHistoricDetailRestService.cs │ │ ├── IHistoricExternalTaskLogRestService.cs │ │ ├── IHistoricIncidentRestService.cs │ │ ├── IHistoricJobLogRestService.cs │ │ ├── IHistoricProcessDefinitionRestService.cs │ │ ├── IHistoricProcessInstanceRestService.cs │ │ ├── IHistoricUserTaskRestService.cs │ │ ├── IHistoricVariableInstanceRestService.cs │ │ └── ReportResult.cs │ ├── HttpContentMultipartItem.cs │ ├── IVariableResource.cs │ ├── Identity/ │ │ ├── IIdentityRestService.cs │ │ ├── IdentityGroupMembership.cs │ │ ├── IdentityQuery.cs │ │ ├── IdentityService.cs │ │ ├── IdentityUserCredentials.cs │ │ └── IdentityVerifiedUser.cs │ ├── Incident/ │ │ ├── IIncidentRestService.cs │ │ ├── IncidentInfo.cs │ │ ├── IncidentQuery.cs │ │ └── IncidentService.cs │ ├── Job/ │ │ ├── IJobRestService.cs │ │ ├── JobDuedateInfo.cs │ │ ├── JobInfo.cs │ │ ├── JobQuery.cs │ │ ├── JobResource.cs │ │ ├── JobRetries.cs │ │ ├── JobService.cs │ │ └── JobSuspensionState.cs │ ├── JobDefinition/ │ │ ├── IJobDefinitionRestService.cs │ │ ├── JobDefinitionInfo.cs │ │ ├── JobDefinitionPriority.cs │ │ ├── JobDefinitionQuery.cs │ │ ├── JobDefinitionResource.cs │ │ ├── JobDefinitionService.cs │ │ └── JobDefinitionSuspensionState.cs │ ├── MediaTypes.cs │ ├── Message/ │ │ ├── CorrelationMessage.cs │ │ ├── CorrelationResult.cs │ │ ├── IMessageRestService.cs │ │ └── MessageService.cs │ ├── Migration/ │ │ ├── IMigrationRestService.cs │ │ ├── MigrationExecution.cs │ │ ├── MigrationInstruction.cs │ │ ├── MigrationInstructionValidationReport.cs │ │ ├── MigrationPlan.cs │ │ ├── MigrationPlanGeneration.cs │ │ ├── MigrationPlanReport.cs │ │ └── MigrationService.cs │ ├── NamedVariableValue.cs │ ├── PatchVariables.cs │ ├── PlainTextContent.cs │ ├── PriorityInfo.cs │ ├── ProcessDefinition/ │ │ ├── FormInfo.cs │ │ ├── IProcessDefinitionRestService.cs │ │ ├── IncidentStatisticsResult.cs │ │ ├── ProcessDefinitionDiagram.cs │ │ ├── ProcessDefinitionInfo.cs │ │ ├── ProcessDefinitionQuery.cs │ │ ├── ProcessDefinitionResource.cs │ │ ├── ProcessDefinitionResourceById.cs │ │ ├── ProcessDefinitionResourceByKey.cs │ │ ├── ProcessDefinitionResourceByKeyAndTenantId.cs │ │ ├── ProcessDefinitionService.cs │ │ ├── ProcessDefinitionStatisticsResult.cs │ │ ├── ProcessDefinitionSuspensionState.cs │ │ ├── StartProcessInstance.cs │ │ ├── StatisticsResult.cs │ │ └── SubmitStartForm.cs │ ├── ProcessInstance/ │ │ ├── ActivityInstanceInfo.cs │ │ ├── DeleteProcessInstances.cs │ │ ├── IProcessInstanceRestService.cs │ │ ├── JobRetriesByProcess.cs │ │ ├── ProcessInstanceInfo.cs │ │ ├── ProcessInstanceModification.cs │ │ ├── ProcessInstanceModificationInstruction.cs │ │ ├── ProcessInstanceQuery.cs │ │ ├── ProcessInstanceResource.cs │ │ ├── ProcessInstanceService.cs │ │ ├── ProcessInstanceSuspensionState.cs │ │ ├── ProcessInstanceWithVariables.cs │ │ ├── TransitionInstanceInfo.cs │ │ ├── TriggerVariableValue.cs │ │ └── VariableResource.cs │ ├── QueryParameters.cs │ ├── QueryResource.cs │ ├── RestError.cs │ ├── RetriesInfo.cs │ ├── Signal/ │ │ ├── ISignalRestService.cs │ │ ├── Signal.cs │ │ └── SignalService.cs │ ├── SortOrder.cs │ ├── SortableQuery.cs │ ├── SortingInfo.cs │ ├── StringEnumConverter.cs │ ├── StringExtensions.cs │ ├── SuspensionState.cs │ ├── Tenant/ │ │ ├── ITenantRestService.cs │ │ ├── TenantInfo.cs │ │ ├── TenantQuery.cs │ │ └── TenantService.cs │ ├── User/ │ │ ├── CreateUser.cs │ │ ├── IUserRestService.cs │ │ ├── UserCredentialsInfo.cs │ │ ├── UserProfileInfo.cs │ │ ├── UserQuery.cs │ │ ├── UserResource.cs │ │ └── UserService.cs │ ├── UserInfo.cs │ ├── UserTask/ │ │ ├── AttachmentContent.cs │ │ ├── AttachmentInfo.cs │ │ ├── Comment.cs │ │ ├── CommentInfo.cs │ │ ├── CompleteTask.cs │ │ ├── DelegationState.cs │ │ ├── IUserTaskRestService.cs │ │ ├── IdentityLink.cs │ │ ├── LocalVariableResource.cs │ │ ├── ResolveTask.cs │ │ ├── TaskAttachmentResource.cs │ │ ├── TaskCommentResource.cs │ │ ├── TaskCountByCandidateGroupResult.cs │ │ ├── TaskIdentityLinkResource.cs │ │ ├── TaskQuery.cs │ │ ├── TaskResource.cs │ │ ├── UserTask.cs │ │ ├── UserTaskInfo.cs │ │ ├── UserTaskService.cs │ │ └── VariableResource.cs │ ├── ValueTypeContent.cs │ ├── VariableInstance/ │ │ ├── IVariableInstanceRestService.cs │ │ ├── VariableInstanceInfo.cs │ │ ├── VariableInstanceQuery.cs │ │ ├── VariableInstanceQueryResource.cs │ │ ├── VariableInstanceResource.cs │ │ └── VariableInstanceService.cs │ ├── VariableOrder.cs │ ├── VariableQueryParameter.cs │ └── VariableValue.cs ├── Camunda.Api.Client.Tests/ │ ├── Camunda.Api.Client.Tests.csproj │ ├── DateTimeTests.cs │ └── ProcessInstanceTests.cs ├── Camunda.Api.Client.sln ├── Key.snk ├── LICENSE └── README.md ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitattributes ================================================ ############################################################################### # Set default behavior to automatically normalize line endings. ############################################################################### * text=auto ############################################################################### # Set default behavior for command prompt diff. # # This is need for earlier builds of msysgit that does not have it on by # default for csharp files. # Note: This is only used by command line ############################################################################### #*.cs diff=csharp ############################################################################### # Set the merge driver for project and solution files # # Merging from the command prompt will add diff markers to the files if there # are conflicts (Merging from VS is not affected by the settings below, in VS # the diff markers are never inserted). Diff markers may cause the following # file extensions to fail to load in VS. An alternative would be to treat # these files as binary and thus will always conflict and require user # intervention with every merge. To do so, just uncomment the entries below ############################################################################### #*.sln merge=binary #*.csproj merge=binary #*.vbproj merge=binary #*.vcxproj merge=binary #*.vcproj merge=binary #*.dbproj merge=binary #*.fsproj merge=binary #*.lsproj merge=binary #*.wixproj merge=binary #*.modelproj merge=binary #*.sqlproj merge=binary #*.wwaproj merge=binary ############################################################################### # behavior for image files # # image files are treated as binary by default. ############################################################################### #*.jpg binary #*.png binary #*.gif binary ############################################################################### # diff behavior for common document formats # # Convert binary document formats to text before diffing them. This feature # is only available from the command line. Turn it on by uncommenting the # entries below. ############################################################################### #*.doc diff=astextplain #*.DOC diff=astextplain #*.docx diff=astextplain #*.DOCX diff=astextplain #*.dot diff=astextplain #*.DOT diff=astextplain #*.pdf diff=astextplain #*.PDF diff=astextplain #*.rtf diff=astextplain #*.RTF diff=astextplain ================================================ FILE: .gitignore ================================================ ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. # User-specific files *.suo *.user *.userosscache *.sln.docstates # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs # Build results [Dd]ebug/ [Dd]ebugPublic/ [Rr]elease/ [Rr]eleases/ [Xx]64/ [Xx]86/ [Bb]uild/ bld/ [Bb]in/ [Oo]bj/ # Visual Studio 2015 cache/options directory .vs/ # Uncomment if you have tasks that create the project's static files in wwwroot #wwwroot/ # MSTest test Results [Tt]est[Rr]esult*/ [Bb]uild[Ll]og.* # NUNIT *.VisualState.xml TestResult.xml # Build Results of an ATL Project [Dd]ebugPS/ [Rr]eleasePS/ dlldata.c # DNX project.lock.json artifacts/ *_i.c *_p.c *_i.h *.ilk *.meta *.obj *.pch *.pdb *.pgc *.pgd *.rsp *.sbr *.tlb *.tli *.tlh *.tmp *.tmp_proj *.log *.vspscc *.vssscc .builds *.pidb *.svclog *.scc # Chutzpah Test files _Chutzpah* # Visual C++ cache files ipch/ *.aps *.ncb *.opendb *.opensdf *.sdf *.cachefile *.VC.db # Visual Studio profiler *.psess *.vsp *.vspx *.sap # TFS 2012 Local Workspace $tf/ # Guidance Automation Toolkit *.gpState # ReSharper is a .NET coding add-in _ReSharper*/ *.[Rr]e[Ss]harper *.DotSettings.user # JustCode is a .NET coding add-in .JustCode # TeamCity is a build add-in _TeamCity* # DotCover is a Code Coverage Tool *.dotCover # NCrunch _NCrunch_* .*crunch*.local.xml nCrunchTemp_* # MightyMoose *.mm.* AutoTest.Net/ # Web workbench (sass) .sass-cache/ # Installshield output folder [Ee]xpress/ # DocProject is a documentation generator add-in DocProject/buildhelp/ DocProject/Help/*.HxT DocProject/Help/*.HxC DocProject/Help/*.hhc DocProject/Help/*.hhk DocProject/Help/*.hhp DocProject/Help/Html2 DocProject/Help/html # Click-Once directory publish/ # Publish Web Output *.[Pp]ublish.xml *.azurePubxml # TODO: Un-comment the next line if you do not want to checkin # your web deploy settings because they may include unencrypted # passwords #*.pubxml *.publishproj # NuGet Packages *.nupkg # The packages folder can be ignored because of Package Restore **/packages/* # except build/, which is used as an MSBuild target. !**/packages/build/ # Uncomment if necessary however generally it will be regenerated when needed #!**/packages/repositories.config # NuGet v3's project.json files produces more ignoreable files *.nuget.props *.nuget.targets # Microsoft Azure Build Output csx/ *.build.csdef # Microsoft Azure Emulator ecf/ rcf/ # Windows Store app package directory AppPackages/ BundleArtifacts/ # Visual Studio cache files # files ending in .cache can be ignored *.[Cc]ache # but keep track of directories ending in .cache !*.[Cc]ache/ # Others ClientBin/ [Ss]tyle[Cc]op.* ~$* *~ *.dbmdl *.dbproj.schemaview *.pfx *.publishsettings node_modules/ orleans.codegen.cs # RIA/Silverlight projects Generated_Code/ # Backup & report files from converting an old project file # to a newer Visual Studio version. Backup files are not needed, # because we have git ;-) _UpgradeReport_Files/ Backup*/ UpgradeLog*.XML UpgradeLog*.htm # SQL Server files *.mdf *.ldf # Business Intelligence projects *.rdl.data *.bim.layout *.bim_*.settings # Microsoft Fakes FakesAssemblies/ # GhostDoc plugin setting file *.GhostDoc.xml # Node.js Tools for Visual Studio .ntvs_analysis.dat # Visual Studio 6 build log *.plg # Visual Studio 6 workspace options file *.opt # Visual Studio LightSwitch build output **/*.HTMLClient/GeneratedArtifacts **/*.DesktopClient/GeneratedArtifacts **/*.DesktopClient/ModelManifest.xml **/*.Server/GeneratedArtifacts **/*.Server/ModelManifest.xml _Pvt_Extensions # LightSwitch generated files GeneratedArtifacts/ ModelManifest.xml # Paket dependency manager .paket/paket.exe # FAKE - F# Make .fake/ ================================================ FILE: Camunda.Api.Client/ApiException.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Concurrent; using System.Diagnostics; using System.Linq.Expressions; using System.Net.Http; using System.Reflection; namespace Camunda.Api.Client { [JsonObject(MemberSerialization.OptIn)] public class ApiException : Exception { public string ErrorType { get; } public HttpResponseMessage Response { get; } [DebuggerBrowsable(DebuggerBrowsableState.Never)] private static readonly ConcurrentDictionary> _knownTypes = new ConcurrentDictionary>(); public ApiException(string type, string message, HttpResponseMessage response) : base(message) { ErrorType = type; Response = response; } private static Func GetConstructor(string typeName) { return _knownTypes.GetOrAdd(typeName, typeName_ => { Type t = Type.GetType($"{typeof(ApiException).Namespace}.{typeName_}"); if (t == null || !typeof(ApiException).IsAssignableFrom(t)) return null; var paramType = Expression.Parameter(typeof(string)); var paramMessage = Expression.Parameter(typeof(string)); var paramResponse = Expression.Parameter(typeof(HttpResponseMessage)); var ctor = t.GetConstructor(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance, null, new[] { paramType.Type, paramMessage.Type, paramResponse.Type }, null); if (ctor == null) return null; var newExpression = Expression.New(ctor, paramType, paramMessage, paramResponse); var lambda = Expression.Lambda>(newExpression, paramType, paramMessage, paramResponse); return lambda.Compile(); }); } public static ApiException FromRestError(RestError restError, HttpResponseMessage response) { var ctor = GetConstructor(restError.Type); if (ctor != null) return ctor(restError.Type, restError.Message, response); else return new ApiException(restError.Type, restError.Message, response); } } /// /// Exception thrown by the process engine in case a user tries to interact with a resource in an unauthorized way. /// public class AuthorizationException : ApiException { [JsonProperty] public string UserId { get; private set; } [JsonProperty] public string PermissionName { get; private set; } [JsonProperty] public string ResourceName { get; private set; } [JsonProperty] public string ResourceId { get; private set; } public AuthorizationException(string type, string message, HttpResponseMessage response) :base(type, message, response) { } } /// /// RuntimeException is the superclass of those exceptions that can be thrown during the normal operation of the Java Virtual Machine /// public class RuntimeException : ApiException { public RuntimeException(string type, string message, HttpResponseMessage response) : base(type, message, response) { } } public class RestException : RuntimeException { public RestException(string type, string message, HttpResponseMessage response) : base(type, message, response) { } } /// /// This exception is used for any kind of errors that occur due to malformed parameters in a Http query. /// public class InvalidRequestException : RestException { public InvalidRequestException(string type, string message, HttpResponseMessage response) : base(type, message, response) { } } /// /// Runtime exception that is the superclass of all exceptions in the process engine. /// public class ProcessEngineException : RuntimeException { public ProcessEngineException(string type, string message, HttpResponseMessage response) : base(type, message, response) { } } /// /// Exception resulting from a bad user request. A bad user request is an interaction where the user requests some non-existing state or attempts to perform an illegal action on some entity. /// public class BadUserRequestException : ProcessEngineException { public BadUserRequestException(string type, string message, HttpResponseMessage response) :base(type, message, response) { } } /// /// Exception during the parsing of an BPMN model. /// public class BpmnParseException : ProcessEngineException { public BpmnParseException(string type, string message, HttpResponseMessage response) :base(type, message, response) { } } /// /// Runtime exception indicating the requested class was not found or an error occurred while loading the class. /// public class ClassLoadingException : ProcessEngineException { [JsonProperty] public string ClassName { get; private set; } public ClassLoadingException(string type, string message, HttpResponseMessage response) :base(type, message, response) { } } /// /// Exception that is thrown when an optimistic locking occurs in the datastore caused by concurrent access of the same data entry. /// public class OptimisticLockingException : ProcessEngineException { public OptimisticLockingException(string type, string message, HttpResponseMessage response) :base(type, message, response) { } } /// /// Exception resulting from a error during a script compilation. /// public class ScriptEngineException : ProcessEngineException { public ScriptEngineException(string type, string message, HttpResponseMessage response) :base(type, message, response) { } } /// /// This exception is thrown when you try to claim a task that is already claimed by someone else. /// public class TaskAlreadyClaimedException : ProcessEngineException { public TaskAlreadyClaimedException(string type, string message, HttpResponseMessage response) :base(type, message, response) { } } /// /// Exception that is thrown when the Activiti engine discovers a mismatch between the database schema version and the engine version. /// public class WrongDbException : ProcessEngineException { public WrongDbException(string type, string message, HttpResponseMessage response) :base(type, message, response) { } } /// /// Special exception that can be used to throw a BPMN Error from JavaDelegate and expressions. /// This should only be used for business faults, which shall be handled by a Boundary Error Event or Error Event Sub-Process modeled in the process definition. /// Technical errors should be represented by other exception types. /// public class BpmnError : ProcessEngineException { [JsonProperty] public string ErrorCode { get; private set; } [JsonProperty] public string ErrorMessage { get; private set; } public BpmnError(string type, string message, HttpResponseMessage response) :base(type, message, response) { } } public class DeploymentResourceNotFoundException : ProcessEngineException { public DeploymentResourceNotFoundException(string type, string message, HttpResponseMessage response) :base(type, message, response) { } } public class NullValueException : ProcessEngineException { public NullValueException(string type, string message, HttpResponseMessage response) :base(type, message, response) { } } /// /// This is exception is thrown when a specific case definition is not found. /// public class CaseException : ProcessEngineException { public CaseException(string type, string message, HttpResponseMessage response) :base(type, message, response) { } } /// /// This exception is thrown when a specific decision definition is not found. /// public class DecisionException : ProcessEngineException { public DecisionException(string type, string message, HttpResponseMessage response) :base(type, message, response) { } } public class FormException : ProcessEngineException { public FormException(string type, string message, HttpResponseMessage response) :base(type, message, response) { } } /// /// Marks an exception triggered inside an identity provider implementation. /// public class IdentityProviderException : ProcessEngineException { public IdentityProviderException(string type, string message, HttpResponseMessage response) :base(type, message, response) { } } /// /// Represents any of the exception conditions that can arise during expression evaluation. /// public class ELException : ProcessEngineException { public ELException(string type, string message, HttpResponseMessage response) :base(type, message, response) { } } public class PvmException : ProcessEngineException { public PvmException(string type, string message, HttpResponseMessage response) :base(type, message, response) { } } /// /// Thrown if at least one migration instruction cannot be applied to the activity instance it matches. /// public class MigratingProcessInstanceValidationException : ProcessEngineException { public MigratingProcessInstanceValidationException(string type, string message, HttpResponseMessage response) :base(type, message, response) { } } /// /// Represents an exception in activiti cdi. /// public class ProcessEngineCdiException : ProcessEngineException { public ProcessEngineCdiException(string type, string message, HttpResponseMessage response) :base(type, message, response) { } } /// /// Unable to bootstrap server. /// public class ServerBootstrapException : RuntimeException { public ServerBootstrapException(string type, string message, HttpResponseMessage response) : base(type, message, response) { } } /// /// The JSONException is thrown by the JSON.org classes when things are amiss. /// public class JSONException : RuntimeException { public JSONException(string type, string message, HttpResponseMessage response) : base(type, message, response) { } } public class HalRelationCacheConfigurationException : RuntimeException { public HalRelationCacheConfigurationException(string type, string message, HttpResponseMessage response) : base(type, message, response) { } } } ================================================ FILE: Camunda.Api.Client/Batch/BatchInfo.cs ================================================ namespace Camunda.Api.Client.Batch { public class BatchInfo { /// /// The id of the batch. /// public string Id; /// /// The type of the batch. /// public string Type; /// /// The total jobs of a batch is the number of batch execution jobs required to complete the batch. /// public int TotalJobs; /// /// The number of batch execution jobs already created by the seed job. /// public int JobsCreated; /// /// Number The number of batch execution jobs created per seed job invocation. /// The batch seed job is invoked until it has created all batch execution jobs required by the batch (see property). /// public int BatchJobsPerSeed; /// /// Every batch execution job invokes the command executed by the batch invocationsPerBatchJob times. /// E.g., for a process instance migration batch this specifies the number of process instances which are migrated per batch execution job. /// public int InvocationsPerBatchJob; /// /// The job definition id for the seed jobs of this batch. /// public string SeedJobDefinitionId; /// /// The job definition id for the batch execution jobs of this batch. /// public string BatchJobDefinitionId; /// /// Indicates whether this batch is suspended or not. /// public bool Suspended; /// /// The tenant id of the batch. /// public string TenantId; /// /// The id of the user that created the batch. /// public string CreateUserId; } } ================================================ FILE: Camunda.Api.Client/BinaryDataContent.cs ================================================ using Iana; using System.IO; using System.Net.Http; using System.Net.Http.Headers; namespace Camunda.Api.Client { public class BinaryDataContent : StreamContent { /// The binary data to be set. /// The name of the file. This is not the variable name but the name that will be used when downloading the file again. public BinaryDataContent(Stream stream, string fileName = "unspecified") : base(stream) { Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data") { FileName = fileName, Name = "data" }; Headers.ContentType = new MediaTypeHeaderValue(MediaTypes.Application.OctetStream); Headers.Add("Content-Transfer-Encoding", "binary"); } } } ================================================ FILE: Camunda.Api.Client/Camunda.Api.Client.csproj ================================================  netstandard2.0;net461 true 2.6.0 2.6.0.0 Camunda REST API Client Camunda REST API Client Jan Lucansky true https://github.com/jlucansky/Camunda.Api.Client icon.png Camunda REST API Client for .NET platform camunda rest refit bpmn bpm LICENSE 1701;1702;1705;1591 true 2.0.0.0 true ..\Key.snk ================================================ FILE: Camunda.Api.Client/CamundaClient.cs ================================================ using System; using System.Net.Http; using System.Reflection; using System.Globalization; using Newtonsoft.Json; using Newtonsoft.Json.Serialization; using Refit; using Camunda.Api.Client.CaseDefinition; using Camunda.Api.Client.CaseExecution; using Camunda.Api.Client.CaseInstance; using Camunda.Api.Client.DecisionDefinition; using Camunda.Api.Client.Deployment; using Camunda.Api.Client.Execution; using Camunda.Api.Client.ExternalTask; using Camunda.Api.Client.Group; using Camunda.Api.Client.History; using Camunda.Api.Client.Incident; using Camunda.Api.Client.Job; using Camunda.Api.Client.JobDefinition; using Camunda.Api.Client.Message; using Camunda.Api.Client.Migration; using Camunda.Api.Client.ProcessDefinition; using Camunda.Api.Client.ProcessInstance; using Camunda.Api.Client.Signal; using Camunda.Api.Client.Tenant; using Camunda.Api.Client.User; using Camunda.Api.Client.UserTask; using Camunda.Api.Client.VariableInstance; using JsonSerializer = Newtonsoft.Json.JsonSerializer; using Camunda.Api.Client.Filter; namespace Camunda.Api.Client { public class CamundaClient { private Lazy _caseDefinitionRestService; private Lazy _caseExecutionRestService; private Lazy _caseInstanceRestService; private Lazy _decisionDefinitionRestService; private Lazy _deploymentApi; private Lazy _executionApi; private Lazy _externalTaskApi; private Lazy _groupApi; private Lazy _incidentApi; private Lazy _jobDefinitionApi; private Lazy _jobApi; private Lazy _migrationRestService; private Lazy _messageApi; private Lazy _processDefinitionApi; private Lazy _processInstanceApi; private Lazy _signalApi; private Lazy _tenantApi; private Lazy _userApi; private Lazy _userTaskApi; private Lazy _variableInstanceApi; private Lazy _filterApi; private HistoricApi _historicApi; private string _hostUrl; private HttpClient _httpClient; private RefitSettings _refitSettings; private HttpMessageHandler _httpMessageHandler; internal static JsonSerializerSettings JsonSerializerSettings { get; private set; } internal static IContentSerializer JsonContentSerializer { get; private set; } internal class HistoricApi { public Lazy ActivityInstanceApi; public Lazy CaseActivityInstanceApi; public Lazy CaseDefinitionApi; public Lazy CaseInstanceApi; public Lazy DecisionInstanceApi; public Lazy DetailApi; public Lazy IncidentApi; public Lazy JobLogApi; public Lazy ProcessInstanceApi; public Lazy VariableInstanceApi; public Lazy UserTaskApi; public Lazy ProcessDefinitionApi; public Lazy ExternalTaskLogApi; } static CamundaClient() { JsonSerializerSettings = JsonSerializerSettings ?? new JsonSerializerSettings { ContractResolver = new CustomCamelCasePropertyNamesContractResolver(), NullValueHandling = NullValueHandling.Ignore, // do not send empty fields }; JsonSerializerSettings.Converters.Add(new StringEnumConverter()); JsonSerializerSettings.Converters.Add(new CustomIsoDateTimeConverter()); JsonContentSerializer = JsonContentSerializer ?? new JsonContentSerializer(JsonSerializerSettings); } private class CustomIsoDateTimeConverter : Newtonsoft.Json.Converters.IsoDateTimeConverter { public CustomIsoDateTimeConverter() { Culture = CultureInfo.InvariantCulture; } public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (value is DateTime dateTime) { if ((DateTimeStyles & DateTimeStyles.AdjustToUniversal) == DateTimeStyles.AdjustToUniversal || (DateTimeStyles & DateTimeStyles.AssumeUniversal) == DateTimeStyles.AssumeUniversal) { dateTime = dateTime.ToUniversalTime(); } writer.WriteValue(dateTime.ToJavaISO8601()); } else { base.WriteJson(writer, value, serializer); } } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { bool nullable = objectType.IsGenericType && objectType.GetGenericTypeDefinition() == typeof(Nullable<>); if (reader.TokenType == JsonToken.String) { string dateText = reader.Value.ToString(); if (string.IsNullOrEmpty(dateText) && nullable) return null; if (dateText.EndsWith("UTC")) { if (DateTime.TryParseExact(dateText.Replace("UTC", "Z"), "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFK", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal, out var dt)) return dt; } } return base.ReadJson(reader, objectType, existingValue, serializer); } } private void Initialize() { _httpMessageHandler = _httpMessageHandler ?? new ErrorMessageHandler(); _refitSettings = _refitSettings ?? new RefitSettings { ContentSerializer = JsonContentSerializer, UrlParameterFormatter = new CustomUrlParameterFormatter(), HttpMessageHandlerFactory = () => _httpMessageHandler }; } private class CustomUrlParameterFormatter : DefaultUrlParameterFormatter { public override string Format(object parameterValue, ICustomAttributeProvider attributeProvider, Type type) { if (parameterValue is bool) return string.Format(CultureInfo.InvariantCulture, "{0}", parameterValue).ToLowerInvariant(); return base.Format(parameterValue, attributeProvider, type); } } private class CustomCamelCasePropertyNamesContractResolver : CamelCasePropertyNamesContractResolver { // preserve exact dictionary key protected override string ResolveDictionaryKey(string dictionaryKey) => dictionaryKey; } private CamundaClient(string hostUrl) { _hostUrl = hostUrl; Initialize(); CreateServices(); } private CamundaClient(HttpClient httpClient) { _httpClient = httpClient; Initialize(); CreateServices(); } private CamundaClient(string hostUrl, HttpMessageHandler httpMessageHandler) { _hostUrl = hostUrl; _httpMessageHandler = httpMessageHandler; Initialize(); CreateServices(); } private void CreateServices() { _caseDefinitionRestService = CreateService(); _caseExecutionRestService = CreateService(); _caseInstanceRestService = CreateService(); _decisionDefinitionRestService = CreateService(); _deploymentApi = CreateService(); _executionApi = CreateService(); _externalTaskApi = CreateService(); _groupApi = CreateService(); _incidentApi = CreateService(); _jobApi = CreateService(); _jobDefinitionApi = CreateService(); _messageApi = CreateService(); _migrationRestService = CreateService(); _processDefinitionApi = CreateService(); _processInstanceApi = CreateService(); _signalApi = CreateService(); _tenantApi = CreateService(); _userApi = CreateService(); _userTaskApi = CreateService(); _variableInstanceApi = CreateService(); _filterApi = CreateService(); _historicApi = new HistoricApi() { ActivityInstanceApi = CreateService(), CaseActivityInstanceApi = CreateService(), CaseDefinitionApi = CreateService(), CaseInstanceApi = CreateService(), DecisionInstanceApi = CreateService(), DetailApi = CreateService(), IncidentApi = CreateService(), JobLogApi = CreateService(), ProcessInstanceApi = CreateService(), VariableInstanceApi = CreateService(), UserTaskApi = CreateService(), ProcessDefinitionApi = CreateService(), ExternalTaskLogApi = CreateService(), }; } private Lazy CreateService() { if (_httpClient != null) return new Lazy(() => RestService.For(_httpClient, _refitSettings)); else return new Lazy(() => RestService.For(_hostUrl, _refitSettings)); } public static CamundaClient Create(string hostUrl) { return new CamundaClient(hostUrl); } public static CamundaClient Create(string hostUrl, HttpMessageHandler httpMessageHandler) { return new CamundaClient(hostUrl, httpMessageHandler); } public static CamundaClient Create(HttpClient httpClient) { return new CamundaClient(httpClient); } /// public CaseDefinitionService CaseDefinitions => new CaseDefinitionService(_caseDefinitionRestService.Value); /// public CaseExecutionService CaseExecutions => new CaseExecutionService(_caseExecutionRestService.Value); /// public CaseInstanceService CaseInstances => new CaseInstanceService(_caseInstanceRestService.Value); /// public DecisionDefinitionService DecisionDefinitions => new DecisionDefinitionService(_decisionDefinitionRestService.Value); /// public DeploymentService Deployments => new DeploymentService(_deploymentApi.Value); /// public ExecutionService Executions => new ExecutionService(_executionApi.Value); /// public ExternalTaskService ExternalTasks => new ExternalTaskService(_externalTaskApi.Value); /// public GroupService Group => new GroupService(_groupApi.Value); /// public HistoryService History => new HistoryService(_historicApi); /// public IncidentService Incidents => new IncidentService(_incidentApi.Value); /// public JobDefinitionService JobDefinitions => new JobDefinitionService(_jobDefinitionApi.Value); /// public JobService Jobs => new JobService(_jobApi.Value); /// public MessageService Messages => new MessageService(_messageApi.Value); /// public MigrationService Migrations => new MigrationService(_migrationRestService.Value); /// public ProcessDefinitionService ProcessDefinitions => new ProcessDefinitionService(_processDefinitionApi.Value); /// public ProcessInstanceService ProcessInstances => new ProcessInstanceService(_processInstanceApi.Value); /// public SignalService Signals => new SignalService(_signalApi.Value); /// public TenantService Tenants => new TenantService(_tenantApi.Value); /// public UserService Users => new UserService(_userApi.Value); /// public UserTaskService UserTasks => new UserTaskService(_userTaskApi.Value); /// public VariableInstanceService VariableInstances => new VariableInstanceService(_variableInstanceApi.Value); /// public FilterService Filters => new FilterService(_filterApi.Value); } } ================================================ FILE: Camunda.Api.Client/CaseDefinition/CaseDefinitionDiagram.cs ================================================ namespace Camunda.Api.Client.CaseDefinition { public class CaseDefinitionDiagram { /// /// The id of the case definition. /// public string Id; /// /// An escaped XML string containing the XML that this case definition was deployed with. Carriage returns, line feeds and quotation marks are escaped. /// public string CmmnXml; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/CaseDefinition/CaseDefinitionInfo.cs ================================================ namespace Camunda.Api.Client.CaseDefinition { public class CaseDefinitionInfo { /// /// The id of the case definition. /// public string Id; /// /// The category of the case definition. /// public string Category; /// /// The deployment id of the case definition. /// public string DeploymentId; /// /// History time to live value of the case definition. Is used within LINK. /// public int HistoryTimeToLive; /// /// The key of the case definition, i.e., the id of the CMMN XML case definition. /// public string Key; /// /// The name of the case definition. /// public string Name; /// /// The file name of the case definition. /// public string Resource; /// /// The tenant id of the case definition. /// public string TenantId; /// /// The version of the case definition that the engine assigned to it. /// public int Version; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/CaseDefinition/CaseDefinitionQuery.cs ================================================ using Newtonsoft.Json; using System.Collections.Generic; namespace Camunda.Api.Client.CaseDefinition { public class CaseDefinitionQuery : QueryParameters { /// /// Filter by case definition id. /// public string CaseDefinitionId; /// /// Filter by case definition ids. /// [JsonProperty("caseDefinitionIdIn")] public List CaseDefinitionIds = new List(); /// /// Filter by case definition name. /// public string Name; /// /// Filter by case definition names that the parameter is a substring of. /// public string NameLike; /// /// Filter by the deployment the id belongs to. /// public string DeploymentId; /// /// Filter by case definition key, i.e., the id in the CMMN XML.Exact match. /// public string Key; /// /// Filter by case definition keys that the parameter is a substring of. /// public string KeyLike; /// /// Filter by case definition category. Exact match. /// public string Category; /// /// Filter by case definition categories that the parameter is a substring of. /// public string CategoryLike; /// /// Filter by case definition version. /// public int? Version; /// /// Only include those case definitions that are latest versions. Value may only be true, as false is the default behavior. /// public bool LatestVersion = false; /// /// Filter by the name of the case definition resource. Exact match. /// public string ResourceName; /// /// Filter by names of those case definition resources that the parameter is a substring of. /// public string ResourceNameLike; /// /// Filter by a comma-separated list of tenant ids. A case definition must have one of the given tenant ids. /// [JsonProperty("tenantIdIn")] public List TenantIds = new List(); /// /// Only include case definitions which belong to no tenant. Value may only be true, as false is the default behavior. /// public bool WithoutTenantId = false; /// /// Include case definitions which belong to no tenant. Can be used in combination with tenantIdIn. Value may only be true, as false is the default behavior. /// [JsonProperty("includeCaseDefinitionsWithoutTenantId")] public bool IncludeDefinitionsWithoutTenantId = false; /// /// Sort the results lexicographically by a given criterion. Must be used in conjunction with the parameter. /// public CaseDefinitionQuerySorting SortBy; /// /// Sort the results in a given order. Values may be asc for ascending order or desc for descending order. Must be used in conjunction with the sortBy parameter. /// public SortOrder SortOrder; } public enum CaseDefinitionQuerySorting { Category, Key, Id, Name, Version, DeploymentId, TenantId } } ================================================ FILE: Camunda.Api.Client/CaseDefinition/CaseDefinitionResource.cs ================================================ using Camunda.Api.Client.CaseInstance; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.CaseDefinition { public abstract class CaseDefinitionResource { /// /// Retrieves a case definition according to the CaseDefinition interface in the engine. /// public abstract Task Get(); /// /// Retrieves the CMMN XML of a case definition. /// public abstract Task GetXml(); /// /// Retrieves the diagram of a case definition. /// /// public abstract Task GetDiagram(); /// /// Instantiates a given case definition. Case variables and business key may be supplied in the request body. /// public abstract Task CreateCaseInstance(CreateCaseInstance parameters); // TODO: Update history time to live } } ================================================ FILE: Camunda.Api.Client/CaseDefinition/CaseDefinitionResourceById.cs ================================================ using Camunda.Api.Client.CaseInstance; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.CaseDefinition { public class CaseDefinitionResourceById : CaseDefinitionResource { private ICaseDefinitionRestService _api; private string _caseDefinitionId; internal CaseDefinitionResourceById(ICaseDefinitionRestService api, string caseDefinitionId) { _api = api; _caseDefinitionId = caseDefinitionId; } public override Task Get() => _api.GetById(_caseDefinitionId); public override Task GetXml() => _api.GetXmlById(_caseDefinitionId); public override async Task GetDiagram() => (await _api.GetDiagramById(_caseDefinitionId)).Content; public override Task CreateCaseInstance(CreateCaseInstance parameters) => _api.CreateCaseInstanceById(_caseDefinitionId, parameters); public override string ToString() => _caseDefinitionId; } } ================================================ FILE: Camunda.Api.Client/CaseDefinition/CaseDefinitionResourceByKey.cs ================================================ using Camunda.Api.Client.CaseInstance; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.CaseDefinition { public class CaseDefinitionResourceByKey : CaseDefinitionResource { private ICaseDefinitionRestService _api; private string _caseDefinitionKey; internal CaseDefinitionResourceByKey(ICaseDefinitionRestService api, string caseDefinitionKey) { _api = api; _caseDefinitionKey = caseDefinitionKey; } public override Task Get() => _api.GetByKey(_caseDefinitionKey); public override Task GetXml() => _api.GetXmlByKey(_caseDefinitionKey); public override async Task GetDiagram() => (await _api.GetDiagramByKey(_caseDefinitionKey)).Content; public override Task CreateCaseInstance(CreateCaseInstance parameters) => _api.CreateCaseInstanceByKey(_caseDefinitionKey, parameters); public override string ToString() => _caseDefinitionKey; } } ================================================ FILE: Camunda.Api.Client/CaseDefinition/CaseDefinitionResourceByKeyAndTenantId.cs ================================================ using Camunda.Api.Client.CaseInstance; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.CaseDefinition { public class CaseDefinitionResourceByKeyAndTenantId : CaseDefinitionResource { private ICaseDefinitionRestService _api; private string _caseDefinitionKey, _tenantId; internal CaseDefinitionResourceByKeyAndTenantId(ICaseDefinitionRestService api, string caseDefinitionKey, string tenantId) { _api = api; _caseDefinitionKey = caseDefinitionKey; _tenantId = tenantId; } public override Task Get() => _api.GetByKeyAndTenantId(_caseDefinitionKey, _tenantId); public override Task GetXml() => _api.GetXmlByKeyAndTenantId(_caseDefinitionKey, _tenantId); public override async Task GetDiagram() => (await _api.GetDiagramByKeyAndTenantId(_caseDefinitionKey, _tenantId)).Content; public override Task CreateCaseInstance(CreateCaseInstance parameters) => _api.CreateCaseInstanceByKeyAndTenantId(_caseDefinitionKey, _tenantId, parameters); public override string ToString() => _caseDefinitionKey; } } ================================================ FILE: Camunda.Api.Client/CaseDefinition/CaseDefinitionService.cs ================================================ namespace Camunda.Api.Client.CaseDefinition { public class CaseDefinitionService { private ICaseDefinitionRestService _api; internal CaseDefinitionService(ICaseDefinitionRestService api) { _api = api; } public CaseDefinitionResource this[string caseDefinitionId] => new CaseDefinitionResourceById(_api, caseDefinitionId); public CaseDefinitionResource ByKey(string caseDefinitionKey) => new CaseDefinitionResourceByKey(_api, caseDefinitionKey); public CaseDefinitionResource ByKey(string caseDefinitionKey, string tenantId) => new CaseDefinitionResourceByKeyAndTenantId(_api, caseDefinitionKey, tenantId); public QueryResource Query(CaseDefinitionQuery query = null) => new QueryResource( query, (q, f, m) => _api.GetList(q, f, m), q => _api.GetListCount(q)); } } ================================================ FILE: Camunda.Api.Client/CaseDefinition/CreateCaseInstance.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client.CaseDefinition { public class CreateCaseInstance { /// /// Object containing the variables the case is to be initialized with. Each key corresponds to a variable name and each value to a variable value. /// public Dictionary Variables = new Dictionary(); /// /// The business key the case instance is to be initialized with. The business key uniquely identifies the case instance in the context of the given case definition. /// public string BusinessKey; public CreateCaseInstance SetVariable(string name, object value) { Variables = (Variables ?? new Dictionary()).Set(name, value); return this; } } } ================================================ FILE: Camunda.Api.Client/CaseDefinition/ICaseDefinitionRestService.cs ================================================ using Camunda.Api.Client.CaseInstance; using Refit; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.CaseDefinition { internal interface ICaseDefinitionRestService { [Get("/case-definition")] Task> GetList(QueryDictionary query, int? firstResult, int? maxResults); [Get("/case-definition/count")] Task GetListCount(QueryDictionary query); [Get("/case-definition/{id}")] Task GetById(string id); [Get("/case-definition/key/{key}")] Task GetByKey(string key); [Get("/case-definition/key/{key}/tenant-id/{tenantId}")] Task GetByKeyAndTenantId(string key, string tenantId); [Get("/case-definition/{id}/xml")] Task GetXmlById(string id); [Get("/case-definition/key/{key}/xml")] Task GetXmlByKey(string key); [Get("/case-definition/key/{key}/tenant-id/{tenantId}/xml")] Task GetXmlByKeyAndTenantId(string key, string tenantId); [Get("/case-definition/{id}/diagram")] Task GetDiagramById(string id); [Get("/case-definition/key/{key}/diagram")] Task GetDiagramByKey(string key); [Get("/case-definition/key/{key}/tenant-id/{tenantId}/diagram")] Task GetDiagramByKeyAndTenantId(string key, string tenantId); [Post("/case-definition/{id}/create")] Task CreateCaseInstanceById(string id, [Body] CreateCaseInstance parameters); [Post("/case-definition/key/{key}/create")] Task CreateCaseInstanceByKey(string key, [Body] CreateCaseInstance parameters); [Post("/case-definition/key/{key}/tenant-id/{tenantId}/create")] Task CreateCaseInstanceByKeyAndTenantId(string key, string tenantId, [Body] CreateCaseInstance parameters); } } ================================================ FILE: Camunda.Api.Client/CaseExecution/CaseExecutionComplete.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client.CaseExecution { public class CaseExecutionComplete { public Dictionary Variables = new Dictionary(); // TODO: deletions } } ================================================ FILE: Camunda.Api.Client/CaseExecution/CaseExecutionDisable.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client.CaseExecution { public class CaseExecutionDisable { public Dictionary Variables = new Dictionary(); // TODO: deletions } } ================================================ FILE: Camunda.Api.Client/CaseExecution/CaseExecutionInfo.cs ================================================ namespace Camunda.Api.Client.CaseExecution { public class CaseExecutionInfo { /// /// The id of the case execution. /// public string Id; /// /// A flag indicating whether the case execution is active or not. /// public bool Active; /// /// The description of the activity this case execution belongs to. /// public string ActivityDescription; /// /// The id of the activity this case execution belongs to. /// public string ActivityId; /// /// The name of the activity this case execution belongs to. /// public string ActivityName; /// /// The type of the activity this case execution belongs to. /// public string ActivityType; /// /// The id of the case definition this case execution belongs to. /// public string CaseDefinitionId; /// /// The id of the case instance this case execution belongs to. /// public string CaseInstanceId; /// /// A flag indicating whether the case execution is disabled or not. /// public bool Disabled; /// /// A flag indicating whether the case execution is enabled or not. /// public bool Enabled; /// /// The id of the parent of this case execution belongs to. /// public string ParentId; /// /// A flag indicating whether the case execution is repeatable or not. /// public bool Repeatable; /// /// A flag indicating whether the case execution is a repetition or not. /// public bool Repetition; /// /// A flag indicating whether the case execution is required or not. /// public bool Required; /// /// The tenant id of the case execution. /// public string TenantId; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/CaseExecution/CaseExecutionQuery.cs ================================================ using Newtonsoft.Json; using System.Collections.Generic; namespace Camunda.Api.Client.CaseExecution { public class CaseExecutionQuery : QueryParameters { /// /// Filter by a case execution id. /// public string CaseExecutionId; /// /// Filter by a case instance id. /// public string CaseInstanceId; /// /// Filter by the business key of the case instances the case executions belong to. /// public string BusinessKey; /// /// Filter by the case definition the case executions run on. /// public string CaseDefinitionId; /// /// Filter by the key of the case definition the case executions run on. /// public string CaseDefinitionKey; /// /// Filter by the id of the activity the case execution currently executes. /// public string ActivityId; /// /// Only include required case executions. Value may only be true, as false is the default behavior. /// public bool? Required; /// /// Only include repeatable case executions. Value may only be true, as false is the default behavior. /// public bool? Repeatable; /// /// Only include case executions which are repetitions. Value may only be true, as false is the default behavior. /// public bool? Repetition; /// /// Only include active case executions. Value may only be true, as false is the default behavior. /// public bool? Active; /// /// Only include enabled case executions. Value may only be true, as false is the default behavior. /// public bool? Enabled; /// /// Only include disabled case executions. Value may only be true, as false is the default behavior. /// public bool? Disabled; /// /// Filter by a comma-separated list of tenant ids. A case execution must have one of the given tenant ids. /// [JsonProperty("tenantIdIn")] public List TenantIds = new List(); /// /// Sort the results lexicographically by a given criterion. Must be used in conjunction with the parameter. /// public CaseExecutionQuerySorting SortBy; /// /// Sort the results in a given order. Values may be asc for ascending order or desc for descending order. Must be used in conjunction with the sortBy parameter. /// public SortOrder SortOrder; } public enum CaseExecutionQuerySorting { CaseExecutionId, CaseDefinitionKey, CaseDefinitionId, TenantId } } ================================================ FILE: Camunda.Api.Client/CaseExecution/CaseExecutionReEnable.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client.CaseExecution { public class CaseExecutionReEnable { public Dictionary Variables = new Dictionary(); // TODO: deletions } } ================================================ FILE: Camunda.Api.Client/CaseExecution/CaseExecutionResource.cs ================================================ using System.Threading.Tasks; namespace Camunda.Api.Client.CaseExecution { public class CaseExecutionResource { private ICaseExecutionRestService _api; private string _caseExecutionId; internal CaseExecutionResource(ICaseExecutionRestService api, string caseExecutionId) { _api = api; _caseExecutionId = caseExecutionId; } // TODO: Variables, LocalVariables /// /// Retrieves a case execution by id, according to the CaseExecution interface in the engine. /// public Task Get() => _api.Get(_caseExecutionId); /// /// Performs a transition from ENABLED state to ACTIVE state. In relation to the state transition, it is possible to update or delete case instance variables (please note: deletion precedes update). /// public Task Start(CaseExecutionStart start) => _api.StartExecution(_caseExecutionId, start); /// /// Performs a transition from ACTIVE state to COMPLETED state. In relation to the state transition, it is possible to update or delete case instance variables (please note: deletion precedes update). /// public Task Complete(CaseExecutionComplete complete) => _api.CompleteExecution(_caseExecutionId, complete); /// /// Performs a transition from ENABLED state to DISABLED state. In relation to the state transition, it is possible to update or delete case instance variables (please note: deletion precedes update). /// public Task Disable(CaseExecutionDisable disable) => _api.DisableExecution(_caseExecutionId, disable); /// /// Performs a transition from DISABLED state to ENABLED state. In relation to the state transition, it is possible to update or delete case instance variables (please note: deletion precedes update). /// public Task ReEnable(CaseExecutionReEnable reEnable) => _api.ReEnableExecution(_caseExecutionId, reEnable); /// /// Performs a transition from ACTIVE state to TERMINATED state if the execution belongs to a task or a stage and performs a transition from AVAILABLE state to TERMINATED state if the execution belongs to a milestone. In relation to the state transition, it is possible to update or delete case instance variables (please note: deletion precedes update). /// public Task Terminate(CaseExecutionTerminate terminate) => _api.TerminateExecution(_caseExecutionId, terminate); } } ================================================ FILE: Camunda.Api.Client/CaseExecution/CaseExecutionService.cs ================================================ namespace Camunda.Api.Client.CaseExecution { public class CaseExecutionService { private ICaseExecutionRestService _api; internal CaseExecutionService(ICaseExecutionRestService api) { _api = api; } public CaseExecutionResource this[string caseExecutionId] => new CaseExecutionResource(_api, caseExecutionId); public QueryResource Query(CaseExecutionQuery query = null) => new QueryResource( query, (q, f, m) => _api.GetList(q, f, m), q => _api.GetListCount(q)); } } ================================================ FILE: Camunda.Api.Client/CaseExecution/CaseExecutionStart.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client.CaseExecution { public class CaseExecutionStart { public Dictionary Variables = new Dictionary(); // TODO: deletions } } ================================================ FILE: Camunda.Api.Client/CaseExecution/CaseExecutionTerminate.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client.CaseExecution { public class CaseExecutionTerminate { public Dictionary Variables = new Dictionary(); // TODO: deletions } } ================================================ FILE: Camunda.Api.Client/CaseExecution/ICaseExecutionRestService.cs ================================================ using Refit; using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.CaseExecution { internal interface ICaseExecutionRestService { [Get("/case-execution")] Task> GetList(QueryDictionary query, int? firstResult, int? maxResults); [Get("/case-execution/count")] Task GetListCount(QueryDictionary query); [Get("/case-execution/{id}")] Task Get(string id); [Post("/case-execution/{id}/manual-start")] Task StartExecution(string id, [Body]CaseExecutionStart start); [Post("/case-execution/{id}/complete")] Task CompleteExecution(string id, [Body]CaseExecutionComplete complete); [Post("/case-execution/{id}/disable")] Task DisableExecution(string id, [Body]CaseExecutionDisable disable); [Post("/case-execution/{id}/reenable")] Task ReEnableExecution(string id, [Body]CaseExecutionReEnable reenable); [Post("/case-execution/{id}/terminate")] Task TerminateExecution(string id, [Body]CaseExecutionTerminate terminate); } } ================================================ FILE: Camunda.Api.Client/CaseInstance/CaseInstanceDeleteVariable.cs ================================================ #region Usings using Newtonsoft.Json; #endregion namespace Camunda.Api.Client.CaseInstance { public class CaseInstanceDeleteVariable { [JsonProperty("name")] public string Name; } } ================================================ FILE: Camunda.Api.Client/CaseInstance/CaseInstanceInfo.cs ================================================ namespace Camunda.Api.Client.CaseInstance { public class CaseInstanceInfo { /// /// The id of the case instance. /// public string Id; /// /// A flag indicating whether the case instance is active or not. /// public bool Active; /// /// The business key of the case instance. /// public string BusinessKey; /// /// The id of the case definition that this case instance belongs to. /// public string CaseDefinitionId; /// /// A flag indicating whether the case instance is completed or not. /// public bool Completed; /// /// The tenant id of the case instance. /// public string TenantId; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/CaseInstance/CaseInstanceQuery.cs ================================================ #region Usings using System.Collections.Generic; using Newtonsoft.Json; #endregion namespace Camunda.Api.Client.CaseInstance { public class CaseInstanceQuery { [JsonProperty("caseInstanceId")] public string CaseInstanceId; [JsonProperty("businessKey")] public string BusinessKey; [JsonProperty("caseDefinitionId")] public string CaseDefinitionId; [JsonProperty("caseDefinitionKey")] public string CaseDefinitionKey; [JsonProperty("deploymentId")] public string DeploymentId; [JsonProperty("superProcessInstance")] public string SuperProcessInstance; [JsonProperty("subProcessInstance")] public string SubProcessInstance; [JsonProperty("superCaseInstance")] public string SuperCaseInstance; [JsonProperty("subCaseInstance")] public string SubCaseInstance; [JsonProperty("active")] public bool? Active; [JsonProperty("completed")] public bool? Completed; [JsonProperty("tenantIdIn")] public List TenantIdIn; [JsonProperty("withoutTenantId")] public bool? WithoutTenantId; [JsonProperty("variables")] public List Variables; [JsonProperty("variableNamesIgnoreCase")] public bool VariableNamesIgnoreCase; [JsonProperty("variableValuesIgnoreCase")] public bool VariableValuesIgnoreCase; [JsonProperty("sorting")] public List Sorting; } } ================================================ FILE: Camunda.Api.Client/CaseInstance/CaseInstanceQueryVariable.cs ================================================ #region Usings using Newtonsoft.Json; #endregion namespace Camunda.Api.Client.CaseInstance { public class CaseInstanceQueryVariable { [JsonProperty("name")] public string Name; [JsonProperty("operator")] public ConditionOperator Operator; [JsonProperty("value")] public object Value; } } ================================================ FILE: Camunda.Api.Client/CaseInstance/CaseInstanceResource.cs ================================================ #region Usings using System.Collections.Generic; using System.Net; using System.Net.Http; using System.Threading.Tasks; #endregion namespace Camunda.Api.Client.CaseInstance { public class CaseInstanceResource { private string _caseInstanceId; private ICaseInstanceRestService _api; internal CaseInstanceResource(ICaseInstanceRestService api, string caseInstanceId) { _api = api; _caseInstanceId = caseInstanceId; } /// /// Retrieves a case instance by id, according to the CaseInstance interface in the engine. /// /// corresponding case instance basis info public Task Get() => _api.Get(_caseInstanceId); /// /// Performs a transition from ACTIVE state to COMPLETED state. In relation to the state transition, it is possible to update or delete case instance variables (please note: deletion precedes update). /// /// contains variables to delete or update /// public Task Complete(ChangeCaseInstanceState completeCaseInstanceState) => _api.Complete(_caseInstanceId, completeCaseInstanceState); /// /// Performs a transition from COMPLETED state to CLOSED state. In relation to the state transition, it is possible to update or delete case instance variables (please note: deletion precedes update). /// /// contains variables to delete or update /// public Task Close(ChangeCaseInstanceState closeCaseInstanceState) => _api.Close(_caseInstanceId, closeCaseInstanceState); /// /// Performs a transition from ACTIVE state to TERMINATED state. In relation to the state transition, it is possible to update or delete case instance variables (please note: deletion precedes update). /// /// contains variables to delete or update /// public Task Terminate(ChangeCaseInstanceState terminateCaseInstanceState) => _api.Terminate(_caseInstanceId, terminateCaseInstanceState); public VariableResource Variables => new VariableResource(_api, _caseInstanceId); public override string ToString() => _caseInstanceId; } } ================================================ FILE: Camunda.Api.Client/CaseInstance/CaseInstanceService.cs ================================================ namespace Camunda.Api.Client.CaseInstance { public class CaseInstanceService { private ICaseInstanceRestService _api; internal CaseInstanceService(ICaseInstanceRestService api) { _api = api; } public QueryResource Query(CaseInstanceQuery query = null) => new QueryResource(query, _api.GetList, _api.GetListCount); /// Id of specific case instance public CaseInstanceResource this[string caseInstanceId] => new CaseInstanceResource(_api, caseInstanceId); } } ================================================ FILE: Camunda.Api.Client/CaseInstance/CaseInstanceSorting.cs ================================================ namespace Camunda.Api.Client.CaseInstance { public enum CaseInstanceSorting { CaseInstanceId, CaseDefinitionKey, CaseDefinitionId, TenantId } } ================================================ FILE: Camunda.Api.Client/CaseInstance/CaseInstanceVariableValue.cs ================================================ #region Usings using Newtonsoft.Json; #endregion namespace Camunda.Api.Client.CaseInstance { public class CaseInstanceVariableValue : VariableValue { [JsonProperty("local")] public bool Local; } } ================================================ FILE: Camunda.Api.Client/CaseInstance/ChangeCaseInstanceState.cs ================================================ #region Usings using System.Collections.Generic; using Newtonsoft.Json; #endregion namespace Camunda.Api.Client.CaseInstance { public class ChangeCaseInstanceState { [JsonProperty("variables")] public Dictionary Variables; [JsonProperty("deletions")] public List Deletions; } } ================================================ FILE: Camunda.Api.Client/CaseInstance/ICaseInstanceRestService.cs ================================================ #region Usings using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; using Refit; #endregion namespace Camunda.Api.Client.CaseInstance { internal interface ICaseInstanceRestService { [Get("/case-instance/{id}/variables")] Task> GetVariables(string id, bool? deserializeValues); [Get("/case-instance/{id}/variables/{varName}")] Task GetVariableValue(string id, string varName, bool? deserializeValue); // TODO: check if HttpWebResponse is indeed the correct return type [Get("/case-instance/{id}/variables/{varName}/data")] Task GetBinaryVariable(string id, string varName); [Post("/case-instance/{id}/variables")] Task ModifyVariables(string id, [Body] PatchVariables patch); [Put("/case-instance/{id}/variables/{varName}")] Task UpdateVariable(string id, string varName, [Body] VariableValue value); [Post("/case-instance/{id}/variables/{varName}/data")] Task SetBinaryVariable(string id, string varName, BinaryDataContent data, ValueTypeContent valueType); [Delete("/case-instance/{id}/variables/{varName}")] Task DeleteVariable(string id, string varName); [Get("/case-instance/{id}")] Task Get(string id); [Post("/case-instance")] Task> GetList([Body] CaseInstanceQuery query, int? firstResult, int? maxResults); [Post("/case-instance/count")] Task GetListCount([Body] CaseInstanceQuery query); [Post("/case-instance/{id}/complete")] Task Complete(string id, [Body] ChangeCaseInstanceState completeCaseInstance); [Post("/case-instance/{id}/close")] Task Close(string id, [Body] ChangeCaseInstanceState closeCaseInstance); [Post("/case-instance/{id}/terminate")] Task Terminate(string id, [Body] ChangeCaseInstanceState terminateCaseInstance); } } ================================================ FILE: Camunda.Api.Client/CaseInstance/VariableResource.cs ================================================ using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.CaseInstance { public class VariableResource : IVariableResource { private string _caseInstanceId; private ICaseInstanceRestService _api; internal VariableResource(ICaseInstanceRestService api, string caseInstanceId) { _api = api; _caseInstanceId = caseInstanceId; } /// /// Retrieves all variables of a given case instance. /// /// Determines whether serializable variable values (typically variables that store custom Java objects) should be deserialized on server side. public Task> GetAll(bool deserializeValues = true) => _api.GetVariables(_caseInstanceId, deserializeValues); /// /// Retrieves a variable from the context of a given case instance. /// public Task Get(string variableName, bool deserializeValue = true) => _api.GetVariableValue(_caseInstanceId, variableName, deserializeValue); /// /// Retrieves a binary variable from the context of a given case instance. Applicable for byte array and file variables. /// public async Task GetBinary(string variableName) => (await _api.GetBinaryVariable(_caseInstanceId, variableName)).Content; /// /// Sets a variable in the context of a given case instance. /// public Task Set(string variableName, VariableValue variable) => _api.UpdateVariable(_caseInstanceId, variableName, variable); /// /// Sets the serialized value for a binary variable or the binary value for a file variable. /// public Task SetBinary(string variableName, BinaryDataContent data, BinaryVariableType valueType) => _api.SetBinaryVariable(_caseInstanceId, variableName, data, new ValueTypeContent(valueType.ToString())); /// /// Removes a variable from a case instance. /// public Task Delete(string variableName) => _api.DeleteVariable(_caseInstanceId, variableName); /// /// Updates or deletes the variables in the context of a case instance. Updates precede deletions. So, if a variable is updated AND deleted, the deletion overrides the update. /// public Task Modify(PatchVariables patch) => _api.ModifyVariables(_caseInstanceId, patch); public override string ToString() => _caseInstanceId; } } ================================================ FILE: Camunda.Api.Client/ConditionQueryParameter.cs ================================================ using System.Runtime.Serialization; namespace Camunda.Api.Client { public class ConditionQueryParameter { /// /// Comparison operator to be used. /// public ConditionOperator Operator; /// /// Value may be String, Number or Boolean /// public object Value; } public enum ConditionOperator { [EnumMember(Value = "eq")] Equals, [EnumMember(Value = "neq")] NotEquals, [EnumMember(Value = "gt")] GreaterThan, [EnumMember(Value = "gteq")] GreaterThanOrEquals, [EnumMember(Value = "lt")] LessThan, [EnumMember(Value = "lteq")] LessThanOrEquals, [EnumMember(Value = "like")] Like } } ================================================ FILE: Camunda.Api.Client/CountResult.cs ================================================ namespace Camunda.Api.Client { internal class CountResult { /// /// The number of matching items. /// public int Count = 0; } } ================================================ FILE: Camunda.Api.Client/DateTimeExtensions.cs ================================================ using System; using System.Globalization; using System.Runtime.CompilerServices; [assembly: InternalsVisibleTo("Camunda.Api.Client.Tests,PublicKey=" + "00240000048000009400000006020000002400005253413100040000010001004196a3758b909b" + "46774069391580d90f2078e831d76f42a00c3d584321fd9b394b12d3a46eab643bc339f526d1d9" + "5f7450cfd7a0a0316ce2eea145b9d9013f6b677aac1333d94007c79c33e2804af6a749c732ac45" + "90f17f078d33445a25c45598f744f0774d2c3d82e2a8b0309203be7e3d0b719f7825d4ded4577b" + "435db7ae")] namespace Camunda.Api.Client { internal static class DateTimeExtensions { const string _dateTimeFormat = "yyyy-MM-ddTHH':'mm':'ss.fff"; public static string ToJavaISO8601(this DateTime dateTime) { if (dateTime.Kind == DateTimeKind.Unspecified) // treat unspecified time as local time dateTime = new DateTime(dateTime.Ticks, DateTimeKind.Local); return dateTime.ToString(_dateTimeFormat, CultureInfo.InvariantCulture) + dateTime.ToString("%K").Replace(":", "").Replace("Z", "+0000"); } } } ================================================ FILE: Camunda.Api.Client/DecisionDefinition/DecisionDefinitionDiagram.cs ================================================ namespace Camunda.Api.Client.DecisionDefinition { public class DecisionDefinitionDiagram { /// /// The id of the decision definition. /// public string Id; /// /// An escaped XML string containing the XML that this decision definition was deployed with. Carriage returns, line feeds and quotation marks are escaped. /// public string DmnXml; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/DecisionDefinition/DecisionDefinitionInfo.cs ================================================ namespace Camunda.Api.Client.DecisionDefinition { public class DecisionDefinitionInfo { /// /// The id of the decision definition. /// public string Id; /// /// The category of the decision definition. /// public string Category; /// /// The id of the decision requirements definition this decision definition belongs to. /// public string DecisionRequirementsDefinitionId; /// /// The key of the decision requirements definition this decision definition belongs to. /// public string DecisionRequirementsDefinitionKey; /// /// The deployment id of the decision definition. /// public string DeploymentId; /// /// History time to live value of the decision definition. Is used within LINK. /// public int HistoryTimeToLive; /// /// The key of the decision definition, i.e., the id of the DMN 1.0 XML decision definition. /// public string Key; /// /// The name of the decision definition. /// public string Name; /// /// The file name of the decision definition. /// public string Resource; /// /// The tenant id of the decision definition. /// public string TenantId; /// /// The version of the decision definition that the engine assigned to it. /// public int Version; /// /// The version tag of the decision or null when no version tag is set /// public string VersionTag; /// /// Filter by the version tag that the parameter is a substring of. /// public string VersionTagLike; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/DecisionDefinition/DecisionDefinitionQuery.cs ================================================ using Newtonsoft.Json; using System.Collections.Generic; namespace Camunda.Api.Client.DecisionDefinition { public class DecisionDefinitionQuery : QueryParameters { /// /// Filter by decision definition id. /// public string DecisionDefinitionId; /// /// Filter by decision definition ids. /// [JsonProperty("decisionDefinitionIdIn")] public List DecisionDefinitionIds = new List(); /// /// Filter by decision definition name. /// public string Name; /// /// Filter by decision definition names that the parameter is a substring of. /// public string NameLike; /// /// Filter by the deployment the id belongs to. /// public string DeploymentId; /// /// Filter by decision definition key, i.e.the id in the DMN 1.0 XML.Exact match. /// public string Key; /// /// Filter by decision definition keys that the parameter is a substring of. /// public string KeyLike; /// /// Filter by decision definition category. Exact match. /// public string Category; /// /// Filter by decision definition categories that the parameter is a substring of. /// public string CategoryLike; /// /// Filter by decision definition version. /// public int? Version; /// /// Only include those decision definitions that are latest versions. Value may only be true, as false is the default behavior. /// public bool LatestVersion = false; /// /// Filter by the name of the decision definition resource. Exact match. /// public string ResourceName; /// /// Filter by names of those decision definition resources that the parameter is a substring of. /// public string ResourceNameLike; /// /// Filter by a comma-separated list of tenant ids.A decision definition must have one of the given tenant ids. /// [JsonProperty("tenantIdIn")] public List TenantIds = new List(); /// /// Only include decision definitions which belongs to no tenant. Value may only be true, as false is the default behavior. /// public bool WithoutTenantId = false; /// /// Include decision definitions which belongs to no tenant.Can be used in combination with tenantIdIn.Value may only be true, as false is the default behavior. /// [JsonProperty("includeDecisionDefinitionsWithoutTenantId")] public bool IncludeDefinitionsWithoutTenantId = false; /// /// Sort the results lexicographically by a given criterion.Valid values are category, key, id, name, version, deploymentId and tenantId.Must be used in conjunction with the sortOrder parameter. /// public DecisionDefinitionSorting SortBy; /// /// Sort the results in a given order.Values may be asc for ascending order or desc for descending order. Must be used in conjunction with the sortBy parameter. /// public SortOrder SortOrder; } public enum DecisionDefinitionSorting { Category, Key, Id, Name, Version, DeploymentId, TenantId } } ================================================ FILE: Camunda.Api.Client/DecisionDefinition/DecisionDefinitionResource.cs ================================================ using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.DecisionDefinition { public abstract class DecisionDefinitionResource { /// /// Retrieves a single decision definition according to the DecisionDefinition interface in the engine. /// public abstract Task Get(); /// /// Retrieves the DMN XML of this decision definition. /// public abstract Task GetXml(); /// /// Retrieves the diagram of a decision definition. /// public abstract Task GetDiagram(); /// /// Evaluates a given decision and returns the result. The input values of the decision have to be supplied in the request body. /// public abstract Task>> Evaluate(EvaluateDecision parameters); } } ================================================ FILE: Camunda.Api.Client/DecisionDefinition/DecisionDefinitionResourceById.cs ================================================ using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.DecisionDefinition { public class DecisionDefinitionResourceById : DecisionDefinitionResource { private IDecisionDefinitionRestService _api; private string _decisionDefinitionId; internal DecisionDefinitionResourceById(IDecisionDefinitionRestService api, string decisionDefinitionId) { _api = api; _decisionDefinitionId = decisionDefinitionId; } public override Task Get() => _api.GetById(_decisionDefinitionId); public override async Task GetDiagram() => (await _api.GetDiagramById(_decisionDefinitionId)).Content; public override Task GetXml() => _api.GetXmlById(_decisionDefinitionId); public override Task>> Evaluate(EvaluateDecision parameters) => _api.EvaluateById(_decisionDefinitionId, parameters); } } ================================================ FILE: Camunda.Api.Client/DecisionDefinition/DecisionDefinitionResourceByKey.cs ================================================ using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.DecisionDefinition { public class DecisionDefinitionResourceByKey : DecisionDefinitionResource { private IDecisionDefinitionRestService _api; private string _decisionDefinitionKey; internal DecisionDefinitionResourceByKey(IDecisionDefinitionRestService api, string decisionDefinitionKey) { _api = api; _decisionDefinitionKey = decisionDefinitionKey; } public override Task Get() => _api.GetByKey(_decisionDefinitionKey); public override async Task GetDiagram() => (await _api.GetDiagramByKey(_decisionDefinitionKey)).Content; public override Task GetXml() => _api.GetXmlByKey(_decisionDefinitionKey); public override Task>> Evaluate(EvaluateDecision parameters) => _api.EvaluateByKey(_decisionDefinitionKey, parameters); } } ================================================ FILE: Camunda.Api.Client/DecisionDefinition/DecisionDefinitionResourceByKeyAndTenantId.cs ================================================ using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.DecisionDefinition { public class DecisionDefinitionResourceByKeyAndTenantId : DecisionDefinitionResource { private IDecisionDefinitionRestService _api; private string _decisionDefinitionKey, _tenantId; internal DecisionDefinitionResourceByKeyAndTenantId(IDecisionDefinitionRestService api, string decisionDefinitionKey, string tenantId) { _api = api; _decisionDefinitionKey = decisionDefinitionKey; _tenantId = tenantId; } public override Task Get() => _api.GetByKeyAndTenantId(_decisionDefinitionKey, _tenantId); public override async Task GetDiagram() => (await _api.GetDiagramByKeyAndTenantId(_decisionDefinitionKey, _tenantId)).Content; public override Task GetXml() => _api.GetXmlByKeyAndTenantId(_decisionDefinitionKey, _tenantId); public override Task>> Evaluate(EvaluateDecision parameters) => _api.EvaluateByKeyAndTenantId(_decisionDefinitionKey, _tenantId, parameters); } } ================================================ FILE: Camunda.Api.Client/DecisionDefinition/DecisionDefinitionService.cs ================================================ namespace Camunda.Api.Client.DecisionDefinition { public class DecisionDefinitionService { private IDecisionDefinitionRestService _api; internal DecisionDefinitionService(IDecisionDefinitionRestService api) { _api = api; } public DecisionDefinitionResource this[string decisionDefinitionId] => new DecisionDefinitionResourceById(_api, decisionDefinitionId); public DecisionDefinitionResource ByKey(string decisionDefinitionKey) => new DecisionDefinitionResourceByKey(_api, decisionDefinitionKey); public DecisionDefinitionResource ByKey(string decisionDefinitionKey, string tenantId) => new DecisionDefinitionResourceByKeyAndTenantId(_api, decisionDefinitionKey, tenantId); public QueryResource Query( DecisionDefinitionQuery query = null) => new QueryResource( query, (q, f, m) => _api.GetList(q, f, m), q => _api.GetListCount(q)); } } ================================================ FILE: Camunda.Api.Client/DecisionDefinition/EvaluateDecision.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client.DecisionDefinition { public class EvaluateDecision { /// /// Object containing the variables the decision is to be evaluated with. Each key corresponds to a variable name and each value to a variable value. /// public Dictionary Variables = new Dictionary(); public EvaluateDecision SetVariable(string name, object value) { Variables = (Variables ?? new Dictionary()).Set(name, value); return this; } } } ================================================ FILE: Camunda.Api.Client/DecisionDefinition/IDecisionDefinitionRestService.cs ================================================ using Refit; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.DecisionDefinition { internal interface IDecisionDefinitionRestService { [Get("/decision-definition")] Task> GetList(QueryDictionary query, int? firstResult, int? maxResults); [Get("/decision-definition/count")] Task GetListCount(QueryDictionary query); [Get("/decision-definition/{id}")] Task GetById(string id); [Get("/decision-definition/key/{key}")] Task GetByKey(string key); [Get("/decision-definition/key/{key}/tenant-id/{tenantId}")] Task GetByKeyAndTenantId(string key, string tenantId); [Get("/decision-definition/{id}/xml")] Task GetXmlById(string id); [Get("/decision-definition/key/{key}/xml")] Task GetXmlByKey(string key); [Get("/decision-definition/key/{key}/tenant-id/{tenantId}/xml")] Task GetXmlByKeyAndTenantId(string key, string tenantId); [Get("/decision-definition/{id}/diagram")] Task GetDiagramById(string id); [Get("/decision-definition/key/{key}/diagram")] Task GetDiagramByKey(string key); [Get("/decision-definition/key/{key}/tenant-id/{tenantId}/diagram")] Task GetDiagramByKeyAndTenantId(string key, string tenantId); [Post("/decision-definition/{id}/evaluate")] Task>> EvaluateById(string id, [Body] EvaluateDecision parameters); [Post("/decision-definition/key/{key}/evaluate")] Task>> EvaluateByKey(string key, [Body] EvaluateDecision parameters); [Post("/decision-definition/key/{key}/tenant-id/{tenantId}/evaluate")] Task>> EvaluateByKeyAndTenantId(string key, string tenantId, [Body] EvaluateDecision parameters); } } ================================================ FILE: Camunda.Api.Client/Deployment/DeploymentInfo.cs ================================================ using System; namespace Camunda.Api.Client.Deployment { public class DeploymentInfo { /// /// The id of the deployment. /// public string Id; /// /// The name of the deployment. /// public string Name; /// /// The source of the deployment. /// public string Source; /// /// The time when the deployment was created. /// public DateTime DeploymentTime; /// /// The tenant id of the deployment. /// public string TenantId; public override string ToString() => Name ?? Id; } } ================================================ FILE: Camunda.Api.Client/Deployment/DeploymentQuery.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; namespace Camunda.Api.Client.Deployment { public class DeploymentQuery : QueryParameters { /// /// Filter by deployment id. /// public string Id; /// /// Filter by the deployment name. Exact match. /// public string Name; /// /// Filter by the deployment name that the parameter is a substring of. The parameter can include the wildcard % to express like-strategy such as: starts with (%name), ends with (name%) or contains (%name%). /// public string NameLike; /// /// Filter by the deployment source. /// public string Source; /// /// Filter by the deployment source whereby source is equal to null. /// public bool WithoutSource; /// /// Restricts to all deployments before the given date. /// public DateTime? Before; /// /// Restricts to all deployments after the given date. /// public DateTime? After; /// /// Filter by a comma-separated list of tenant ids. A deployment must have one of the given tenant ids. /// [JsonProperty("tenantIdIn")] public List TenantIds = new List(); /// /// Only include deployments which belongs to no tenant. Value may only be true, as false is the default behavior. /// public bool WithoutTenantId; /// /// Include deployments which belongs to no tenant. Can be used in combination with tenantIdIn. Value may only be true, as false is the default behavior. /// public bool IncludeDeploymentsWithoutTenantId; /// /// Sort the results lexicographically by a given criterion. Must be used in conjunction with the parameter. /// public DeploymentSorting SortBy; /// /// Sort the results in a given order. Must be used in conjunction with the parameter. /// public SortOrder SortOrder; } public enum DeploymentSorting { Id, Name, DeploymentTime, TenantId } } ================================================ FILE: Camunda.Api.Client/Deployment/DeploymentResource.cs ================================================ using System.Threading.Tasks; namespace Camunda.Api.Client.Deployment { public class DeploymentResource { private IDeploymentRestService _api; private string _deploymentId; internal DeploymentResource(IDeploymentRestService api, string deploymentId) { _api = api; _deploymentId = deploymentId; } /// /// Retrieves a single deployment by id. /// public Task Get() => _api.Get(_deploymentId); public DeploymentResourcesResource Resources => new DeploymentResourcesResource(_api, _deploymentId); /// /// Re-deploy an existing deployment. /// /// /// The deployment resources to re-deploy can be restricted by using the properties resourceIds or resourceNames. /// If no deployment resources to re-deploy are passed then all existing resources of the given deployment are re-deployed. /// public Task Redeploy(RedeploymentInfo redeployment) => _api.Redeploy(_deploymentId, redeployment); /// /// // Deletes a deployment. /// /// true, if all process instances, historic process instances and jobs for this deployment should be deleted. /// true, if only the built-in ExecutionListeners should be notified with the end event. /// true, if all input/output mappings should not be invoked. public Task Delete(bool cascade = false, bool skipCustomListeners = false, bool skipIoMappings = false) => _api.Delete(_deploymentId, cascade, skipCustomListeners, skipIoMappings); public override string ToString() => _deploymentId; } } ================================================ FILE: Camunda.Api.Client/Deployment/DeploymentResourceInfo.cs ================================================  namespace Camunda.Api.Client.Deployment { public class DeploymentResourceInfo { /// /// The id of the deployment resource. /// public string Id; /// /// The name of the deployment resource. /// public string Name; /// /// The id of the deployment. /// public string DeploymentId; public override string ToString() => Name ?? Id; } } ================================================ FILE: Camunda.Api.Client/Deployment/DeploymentResourcesResource.cs ================================================ using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.Deployment { public class DeploymentResourcesResource { private IDeploymentRestService _api; private string _deploymentId; internal DeploymentResourcesResource(IDeploymentRestService api, string deploymentId) { _api = api; _deploymentId = deploymentId; } /// /// Retrieves all deployment resources of a given deployment. /// public Task> GetAll() => _api.GetDeploymentResources(_deploymentId); /// /// Retrieves a single deployment resource by resource id for the given deployment. /// public Task Get(string resourceId) => _api.GetDeploymentResource(_deploymentId, resourceId); /// /// Retrieves the binary content of a single deployment resource for the given deployment. /// public async Task GetData(string resourceId) => (await _api.GetDeploymentResourceData(_deploymentId, resourceId)).Content; public override string ToString() => _deploymentId; } } ================================================ FILE: Camunda.Api.Client/Deployment/DeploymentService.cs ================================================ using System.Linq; using System.Threading.Tasks; namespace Camunda.Api.Client.Deployment { public class DeploymentService { private IDeploymentRestService _api; internal DeploymentService(IDeploymentRestService api) { _api = api; } public DeploymentResource this[string deploymentId] => new DeploymentResource(_api, deploymentId); public QueryResource Query(DeploymentQuery query = null) => new QueryResource( query, (q, f, m) => _api.GetList(q, f, m), q => _api.GetListCount(q)); /// /// Create a deployment. /// /// /// Deployments can contain custom code in form of scripts or EL expressions to customize process behavior. /// This may be abused for remote execution of arbitrary code. See the section on security considerations for custom code in the user guide for details. /// /// The name for the deployment to be created. /// The binary data to create the deployment resource. It is possible to have more than one form part with different form part names for the binary data to create a deployment. /// A flag indicating whether the process engine should perform duplicate checking on a per-resource basis. If set to true, only those resources that have actually changed are deployed. Checks are made against resources included previous deployments of the same name and only against the latest versions of those resources. If set to true, the option duplicateFiltering is overridden and set to true. /// The source for the deployment to be created. /// A flag indicating whether the process engine should perform duplicate checking for the deployment or not. This allows you to check if a deployment with the same name and the same resouces already exists and if true, not create a new deployment but instead return the existing deployment. The default value is false. /// The tenant id for the deployment to be created. public Task Create(string deploymentName, bool duplicateFiltering, bool changedOnly, string deploymentSource, string tenantId = null, params ResourceDataContent[] resources) => _api.Create( new HttpContentMultipartItem(new PlainTextContent("deployment-name", deploymentName)), new HttpContentMultipartItem(new PlainTextContent("enable-duplicate-filtering", duplicateFiltering.ToString().ToLower())), new HttpContentMultipartItem(new PlainTextContent("deploy-changed-only", changedOnly.ToString().ToLower())), new HttpContentMultipartItem(new PlainTextContent("deployment-source", deploymentSource ?? "undefined")), tenantId == null ? null : new HttpContentMultipartItem(new PlainTextContent("tenant-id", tenantId)), resources.Select(r => new HttpContentMultipartItem(r)).ToArray()); /// /// Create a deployment. /// /// /// Deployments can contain custom code in form of scripts or EL expressions to customize process behavior. /// This may be abused for remote execution of arbitrary code. See the section on security considerations for custom code in the user guide for details. /// /// The name for the deployment to be created. /// The binary data to create the deployment resource. It is possible to have more than one form part with different form part names for the binary data to create a deployment. public Task Create(string deploymentName, params ResourceDataContent[] resources) => Create(deploymentName, false, false, null, null, resources); } } ================================================ FILE: Camunda.Api.Client/Deployment/IDeploymentRestService.cs ================================================ using Refit; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.Deployment { internal interface IDeploymentRestService { [Get("/deployment")] Task> GetList(QueryDictionary query, int? firstResult, int? maxResults); [Get("/deployment/count")] Task GetListCount(QueryDictionary query); [Get("/deployment/{id}")] Task Get(string id); [Post("/deployment/{id}/redeploy")] Task Redeploy(string id, [Body] RedeploymentInfo redeployment); [Delete("/deployment/{id}")] Task Delete(string id, bool cascade, bool skipCustomListeners, bool skipIoMappings); [Get("/deployment/{deploymentId}/resources")] Task> GetDeploymentResources(string deploymentId); [Get("/deployment/{deploymentId}/resources/{resourceId}")] Task GetDeploymentResource(string deploymentId, string resourceId); [Get("/deployment/{deploymentId}/resources/{resourceId}/data")] Task GetDeploymentResourceData(string deploymentId, string resourceId); [Post("/deployment/create"), Multipart] Task Create(HttpContentMultipartItem deploymentName, HttpContentMultipartItem enableDuplicateFiltering, HttpContentMultipartItem deployChangedOnly, HttpContentMultipartItem deploymentSource, HttpContentMultipartItem tenantId, params HttpContentMultipartItem[] resources); } } ================================================ FILE: Camunda.Api.Client/Deployment/RedeploymentInfo.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client.Deployment { public class RedeploymentInfo { /// /// Sets the source of the deployment. /// public string Source; /// /// A list of deployment resource ids to re-deploy. /// public List ResourceIds = new List(); /// /// A list of deployment resource names to re-deploy. /// public List ResourceNames = new List(); } } ================================================ FILE: Camunda.Api.Client/Deployment/ResourceDataContent.cs ================================================ using Iana; using System; using System.IO; using System.Net.Http; using System.Net.Http.Headers; namespace Camunda.Api.Client.Deployment { public class ResourceDataContent : StreamContent { /// The binary data to create the deployment resource. /// The name of the file. public ResourceDataContent(Stream stream, string fileName ) : base(stream) { Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data") { FileName = fileName, Name = "data-" + Guid.NewGuid().ToString("D") }; Headers.ContentType = new MediaTypeHeaderValue(MediaTypes.Application.OctetStream); Headers.Add("Content-Transfer-Encoding", "binary"); } } } ================================================ FILE: Camunda.Api.Client/EnumerableExtensions.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client { public static class EnumerableExtensions { public static Dictionary Set(this Dictionary variables, string name, object value) { var varVal = value as VariableValue; if (varVal == null) varVal = VariableValue.FromObject(value); variables[name] = varVal; return variables; } } } ================================================ FILE: Camunda.Api.Client/ErrorMessageHandler.cs ================================================ using Iana; using Newtonsoft.Json; using System.Net.Http; using System.Threading; using System.Threading.Tasks; namespace Camunda.Api.Client { public class ErrorMessageHandler : DelegatingHandler { public ErrorMessageHandler(HttpMessageHandler innerHandler) : base(innerHandler) { } public ErrorMessageHandler() : base(new HttpClientHandler()) { } protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { var response = await base.SendAsync(request, cancellationToken); if (response.IsSuccessStatusCode == false && response.Content?.Headers?.ContentType?.MediaType?.Equals(MediaTypes.Application.Json) == true) { RestError err = null; string json = null; try { json = await response.Content.ReadAsStringAsync(); err = JsonConvert.DeserializeObject(json); } catch { // we are currently handling exception, don't throw another one during deserialization } if (err?.Type != null) { var ex = ApiException.FromRestError(err, response); // fill additional exception properties JsonConvert.PopulateObject(json, ex); throw ex; } } return response; } } } ================================================ FILE: Camunda.Api.Client/Execution/EventSubscription.cs ================================================ using System; namespace Camunda.Api.Client.Execution { public class EventSubscription { /// /// The identifier of the event subscription. /// public string Id; /// /// The type of the event. message for message events. /// public string EventType; /// /// The name of the event the subscription belongs to, as defined in the process model. /// public string EventName; /// /// The id of the execution the subscription belongs to. /// public string ExecutionId; /// /// The id of the process instance the subscription belongs to. /// public string ProcessInstanceId; /// /// The id of the activity that the event subscription belongs to. Corresponds to the id in the process model. /// public string ActivityId; /// /// The time the subscription was created by the engine. /// public DateTime CreatedDate; /// /// The id of the tenant the subscription belongs to. /// public string TenantId; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/Execution/EventSubscriptionResource.cs ================================================ using System.Threading.Tasks; namespace Camunda.Api.Client.Execution { public class EventSubscriptionResource { private string _executionId; private IExecutionRestService _api; private string _messageName; internal EventSubscriptionResource(IExecutionRestService api, string executionId, string messageName) { _api = api; _executionId = executionId; _messageName = messageName; } /// /// Get a message event subscription for a specific execution and a message name. /// public Task Get() => _api.GetMessageEventSubscription(_executionId, _messageName); /// /// Deliver a message to a specific execution to trigger an existing message event subscription. Inject process variables as the message’s payload. /// public Task Trigger(ExecutionTrigger trigger) => _api.TriggerMessageEventSubscription(_executionId, _messageName, trigger); public override string ToString() => _executionId; } } ================================================ FILE: Camunda.Api.Client/Execution/ExecutionInfo.cs ================================================ namespace Camunda.Api.Client.Execution { public class ExecutionInfo { /// /// The id of the execution. /// public string Id; /// /// The id of the process instance that this execution instance belongs to. /// public string ProcessInstanceId; /// /// A flag indicating whether the execution has ended or not. /// public bool Ended; /// /// The tenant id of the execution. /// public string TenantId; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/Execution/ExecutionQuery.cs ================================================ using Newtonsoft.Json; using System.Collections.Generic; namespace Camunda.Api.Client.Execution { public class ExecutionQuery : SortableQuery { /// /// Filter by the key of the process definition the executions run on. /// public string ProcessDefinitionKey; /// /// Filter by the business key of the process instances the executions belong to. /// public string BusinessKey; /// /// Filter by the process definition the executions run on. /// public string ProcessDefinitionId; /// /// Filter by the id of the process instance the execution belongs to. /// public string ProcessInstanceId; /// /// Filter by the id of the activity the execution currently executes. /// public string ActivityId; /// /// Select only those executions that expect a signal of the given name. /// public string SignalEventSubscriptionName; /// /// Select only those executions that expect a message of the given name. /// public string MessageEventSubscriptionName; /// /// Only include active executions. Value may only be true, as false is the default behavior. /// public bool Active; /// /// Only include suspended executions. Value may only be true, as false is the default behavior. /// public bool Suspended; /// /// Filter by the incident id. /// public string IncidentId; /// /// Filter by the incident type. /// public string IncidentType; /// /// Filter by the incident message. Exact match. /// public string IncidentMessage; /// /// Filter by the incident message that the parameter is a substring of. /// public string IncidentMessageLike; /// /// Filter by a list of tenant ids. An execution must have one of the given tenant ids. /// [JsonProperty("tenantIdIn")] public List TenantIds; /// /// Array to only include executions that have variables with certain values. /// The array consists of objects with the three properties key, operator and value.key(String) is the variable name, operator (String) is the comparison operator to be used and value the variable value. /// Value may be String, Number or Boolean. /// public List Variables = new List(); /// /// Array to only include executions that belong to a process instance with variables with certain values. /// A valid parameter value has the form key_operator_value.key is the variable name, operator is the comparison operator to be used and value the variable value. /// /// Values are always treated as String objects on server side. public List ProcessVariables = new List(); } public enum ExecutionSorting { InstanceId, DefinitionKey, DefinitionId, TenantId } } ================================================ FILE: Camunda.Api.Client/Execution/ExecutionResource.cs ================================================ using System.Threading.Tasks; namespace Camunda.Api.Client.Execution { public class ExecutionResource { private IExecutionRestService _api; private string _executionId; internal ExecutionResource(IExecutionRestService api, string executionId) { _api = api; _executionId = executionId; } public LocalVariableResource LocalVariables => new LocalVariableResource(_api, _executionId); /// /// Retrieves a single execution according to the Execution interface in the engine. /// public Task Get() => _api.Get(_executionId); /// /// Signals a single execution. Can for example be used to explicitly skip user tasks or signal asynchronous continuations. /// public Task Trigger(ExecutionTrigger trigger) => _api.TriggerExecution(_executionId, trigger); public EventSubscriptionResource GetMessageEventSubscription(string messageName) => new EventSubscriptionResource(_api, _executionId, messageName); public override string ToString() => _executionId; } } ================================================ FILE: Camunda.Api.Client/Execution/ExecutionService.cs ================================================ namespace Camunda.Api.Client.Execution { public class ExecutionService { private IExecutionRestService _api; internal ExecutionService(IExecutionRestService api) { _api = api; } public ExecutionResource this[string executionId] => new ExecutionResource(_api, executionId); public QueryResource Query(ExecutionQuery query = null) => new QueryResource(query, _api.GetList, _api.GetListCount); } } ================================================ FILE: Camunda.Api.Client/Execution/ExecutionTrigger.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client.Execution { public class ExecutionTrigger { public Dictionary Variables = new Dictionary(); } } ================================================ FILE: Camunda.Api.Client/Execution/IExecutionRestService.cs ================================================ using Refit; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.Execution { internal interface IExecutionRestService { [Post("/execution")] Task> GetList([Body] ExecutionQuery query, int? firstResult, int? maxResults); [Post("/execution/count")] Task GetListCount([Body] ExecutionQuery query); [Get("/execution/{id}")] Task Get(string id); [Get("/execution/{id}/messageSubscriptions/{messageName}")] Task GetMessageEventSubscription(string id, string messageName); [Post("/execution/{id}/messageSubscriptions/{messageName}/trigger")] Task TriggerMessageEventSubscription(string id, string messageName, [Body] ExecutionTrigger trigger); [Post("/execution/{id}/signal")] Task TriggerExecution(string id, [Body] ExecutionTrigger trigger); #region Local Variables [Delete("/execution/{id}/localVariables/{varName}")] Task DeleteLocalVariable(string id, string varName); [Get("/execution/{id}/localVariables/{varName}")] Task GetLocalVariable(string id, string varName, bool deserializeValue = true); [Get("/execution/{id}/localVariables")] Task> GetLocalVariables(string id, bool deserializeValues = true); [Get("/execution/{id}/localVariables/{varName}/data")] Task GetBinaryLocalVariable(string id, string varName); [Post("/execution/{id}/localVariables/{varName}/data"), Multipart] Task SetBinaryLocalVariable(string id, string varName, BinaryDataContent data, ValueTypeContent valueType); [Post("/execution/{id}/localVariables")] Task ModifyLocalVariables(string id, PatchVariables patch); [Put("/execution/{id}/localVariables/{varName}")] Task PutLocalVariable(string id, string varName, [Body] VariableValue variable); #endregion } } ================================================ FILE: Camunda.Api.Client/Execution/LocalVariableResource.cs ================================================ using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.Execution { public class LocalVariableResource : IVariableResource { private string _executionId; private IExecutionRestService _api; internal LocalVariableResource(IExecutionRestService api, string executionId) { _api = api; _executionId = executionId; } /// /// Retrieves all variables of a given execution. /// /// Determines whether serializable variable values (typically variables that store custom Java objects) should be deserialized on server side. public Task> GetAll(bool deserializeValues = true) => _api.GetLocalVariables(_executionId, deserializeValues); /// /// Retrieves a variable from the context of a given execution. Does not traverse the parent execution hierarchy. /// /// The name of the variable to get. /// Determines whether serializable variable values (typically variables that store custom Java objects) should be deserialized on server side. public Task Get(string variableName, bool deserializeValue = true) => _api.GetLocalVariable(_executionId, variableName, deserializeValue); /// /// Retrieves a binary variable from the context of a given execution. Does not traverse the parent execution hierarchy. Applicable for byte array and file variables. /// public async Task GetBinary(string variableName) => (await _api.GetBinaryLocalVariable(_executionId, variableName)).Content; /// /// Sets a variable in the context of a given execution. Update does not propagate upwards in the execution hierarchy. /// public Task Set(string variableName, VariableValue variable) => _api.PutLocalVariable(_executionId, variableName, variable); /// /// Sets the serialized value for a binary variable or the binary value for a file variable. /// public Task SetBinary(string variableName, BinaryDataContent data, BinaryVariableType valueType) => _api.SetBinaryLocalVariable(_executionId, variableName, data, new ValueTypeContent(valueType.ToString())); /// /// Deletes a variable in the context of a given execution. Deletion does not propagate upwards in the execution hierarchy. /// public Task Delete(string variableName) => _api.DeleteLocalVariable(_executionId, variableName); /// /// Updates or deletes the variables in the context of an execution. The updates do not propagate upwards in the execution hierarchy. Updates precede deletions. So, if a variable is updated AND deleted, the deletion overrides the update. /// public Task Modify(PatchVariables patch) => _api.ModifyLocalVariables(_executionId, patch); public override string ToString() => _executionId; } } ================================================ FILE: Camunda.Api.Client/ExternalTask/CompleteExternalTask.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client.ExternalTask { public class CompleteExternalTask { /// /// The id of the worker that completes the task. Must match the id of the worker who has most recently locked the task. /// public string WorkerId; /// /// Dictionary containing variable key-value pairs. /// public Dictionary Variables; /// /// Dictionary containing variable key-value pairs. Local variables are set only in the scope of external task. /// public Dictionary LocalVariables; public CompleteExternalTask SetVariable(string name, object value) { Variables = (Variables ?? new Dictionary()).Set(name, value); return this; } /// /// Local variables are set only in the scope of external task. /// public CompleteExternalTask SetLocalVariable(string name, object value) { LocalVariables = (LocalVariables ?? new Dictionary()).Set(name, value); return this; } } } ================================================ FILE: Camunda.Api.Client/ExternalTask/ExternalTaskBpmnError.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client.ExternalTask { public class ExternalTaskBpmnError { /// /// The id of the worker that reports the failure. Must match the id of the worker who has most recently locked the task. /// public string WorkerId; /// /// A error code that indicates the predefined error. Is used to identify the BPMN error handler. /// public string ErrorCode; /// /// An error message that describes the error. /// public string ErrorMessage; /// /// Object containing variable key-value pairs. /// public Dictionary Variables; public ExternalTaskBpmnError SetVariable(string name, object value) { Variables = (Variables ?? new Dictionary()).Set(name, value); return this; } public override string ToString() => ErrorCode; } } ================================================ FILE: Camunda.Api.Client/ExternalTask/ExternalTaskExtendLock.cs ================================================  namespace Camunda.Api.Client.ExternalTask { public class ExternalTaskExtendLock { /// /// The ID of a worker who is locking the external task. /// public string WorkerId; /// /// An amount of time (in milliseconds) to extend the lock by. /// public long NewDuration; } } ================================================ FILE: Camunda.Api.Client/ExternalTask/ExternalTaskFailure.cs ================================================ namespace Camunda.Api.Client.ExternalTask { public class ExternalTaskFailure { /// /// The id of the worker that reports the failure. Must match the id of the worker who has most recently locked the task. /// public string WorkerId; /// /// An message indicating the reason of the failure. /// public string ErrorMessage; /// /// A detailed error description. /// public string ErrorDetails; /// /// A timeout in milliseconds before the external task becomes available again for fetching. Must be >= 0. /// public long RetryTimeout; /// /// A number of how often the task should be retried. Must be >= 0. If this is 0, an incident is created and the task cannot be fetched anymore unless the retries are increased again. The incident's message is set to the errorMessage parameter. /// public int Retries; public override string ToString() => ErrorMessage; } } ================================================ FILE: Camunda.Api.Client/ExternalTask/ExternalTaskInfo.cs ================================================ using System; namespace Camunda.Api.Client.ExternalTask { public class ExternalTaskInfo { /// /// The id of the activity that this external task belongs to. /// public string ActivityId; /// /// The id of the activity instance that the external task belongs to. /// public string ActivityInstanceId; /// /// The error message that was supplied when the last failure of this task was reported. /// public string ErrorMessage; /// /// The error details submitted with the latest reported failure executing this task. /// null if no failure was reported previously or if no error details was submitted. /// public string ErrorDetails; /// /// The id of the execution that the external task belongs to. /// public string ExecutionId; /// /// The external task's id. /// public string Id; /// /// The date that the task's most recent lock expires or has expired. /// public DateTime? LockExpirationTime; /// /// The id of the process definition the external task is defined in. /// public string ProcessDefinitionId; /// /// The key of the process definition the external task is defined in. /// public string ProcessDefinitionKey; /// /// The id of the process instance the external task belongs to. /// public string ProcessInstanceId; /// /// The number of retries the task currently has left. /// public int? Retries; /// /// A flag indicating whether the external task is suspended or not. /// public bool Suspended; /// /// The id of the worker that posesses or posessed the most recent lock. /// public string WorkerId; /// /// The external task's topic name. /// public string TopicName; /// /// The business key of the process instance the external task belongs to. /// public string BusinessKey; /// /// The id of the tenant the external task belongs to. /// public string TenantId; /// /// The priority of the external task. /// public long Priority; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/ExternalTask/ExternalTaskQuery.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; namespace Camunda.Api.Client.ExternalTask { public class ExternalTaskQuery : SortableQuery { /// /// Filter by an external task's id. /// public string ExternalTaskId; /// /// Filter by the id of the activity that an external task is created for. /// public string ActivityId; /// /// Restrict to external tasks that have a lock that expires before a given date. /// public DateTime? LockExpirationBefore; /// /// Restrict to external tasks that have a lock that expires after a given date. /// public DateTime? LockExpirationAfter; /// /// Filter by an external task topic. /// public string TopicName; /// /// Only include external tasks that are currently locked (i.e. they have a lock time and it has not expired). Value may only be true, as false matches any external task. /// public bool? Locked; /// /// Only include external tasks that are currently not locked (i.e. they have no lock or it has expired). Value may only be true, as false matches any external task. /// public bool? NotLocked; /// /// Filter by the id of the execution that an external task belongs to. /// public string ExecutionId; /// /// Filter by the id of the process instance that an external task belongs to. /// public string ProcessInstanceId; /// /// Filter by the id of the process definition that an external task belongs to. /// public string ProcessDefinitionId; /// /// Only include active tasks. Value may only be true, as false matches any external task. /// public bool? Active; /// /// Only include suspended tasks. Value may only be true, as false matches any external task. /// public bool? Suspended; /// /// Only include external tasks that have a positive (> 0) number of retries (or null). Value may only be true, as false matches any external task. /// public bool? WithRetriesLeft; /// /// Only include external tasks that have 0 retries. Value may only be true, as false matches any external task. /// public bool? NoRetriesLeft; /// /// Filter by the id of the worker that the task was most recently locked by. /// public string WorkerId; /// /// Filter by a comma-separated list of tenant ids. An external task must have one of the given tenant ids. /// [JsonProperty("tenantIdIn")] public List TenantIds = new List(); /// /// Only include jobs with a priority higher than or equal to the given value. Value must be a valid long value. /// public long? PriorityHigherThanOrEquals; /// /// Only include jobs with a priority lower than or equal to the given value. Value must be a valid long value. /// public long? PriorityLowerThanOrEquals; } public enum ExternalTaskSorting { Id, LockExpirationTime, ProcessInstanceId, ProcessDefinitionId, ProcessDefinitionKey, TaskPriority, TenantId } } ================================================ FILE: Camunda.Api.Client/ExternalTask/ExternalTaskResource.cs ================================================ using System.Threading.Tasks; namespace Camunda.Api.Client.ExternalTask { public class ExternalTaskResource { private string _externalTaskId; private IExternalTaskRestService _api; internal ExternalTaskResource(IExternalTaskRestService api, string externalTaskId) { _api = api; _externalTaskId = externalTaskId; } /// /// Retrieves a single external task corresponding to the ExternalTask interface in the engine. /// public Task Get() => _api.Get(_externalTaskId); /// /// Set the number of retries left to execute an external task. If retries are set to 0, an incident is created. /// /// The number of retries to set for the external task. Must be >= 0. If this is 0, an incident is created and the task cannot be fetched anymore unless the retries are increased again. public Task SetRetries(int retries) => _api.SetRetries(_externalTaskId, new RetriesInfo() { Retries = retries }); /// /// Set the priority of an existing external task. The default value of a priority is 0. /// /// The priority of the external task. public Task SetPriority(long priority) => _api.SetPriority(_externalTaskId, new PriorityInfo { Priority = priority }); /// /// Complete an external task and update process variables. /// public Task Complete(CompleteExternalTask completeExternalTask) => _api.Complete(_externalTaskId, completeExternalTask); /// /// Report a failure to execute an external task. A number of retries and a timeout until the task can be retried can be specified. If retries are set to 0, an incident for this task is created. /// public Task HandleFailure(ExternalTaskFailure externalTaskFailure) => _api.HandleFailure(_externalTaskId, externalTaskFailure); /// /// Report a business error in the context of a running external task. The error code must be specified to identify the BPMN error handler. /// public Task HandleBpmnError(ExternalTaskBpmnError externalTaskBpmnError) => _api.HandleBpmnError(_externalTaskId, externalTaskBpmnError); /// /// Unlock an external task. Clears the task’s lock expiration time and worker id. /// public Task Unlock() => _api.Unlock(_externalTaskId); /// /// Extends the timeout of the lock by a given amount of time. /// public Task ExtendLock(ExternalTaskExtendLock externalTaskExtendLock) => _api.ExtendLock(_externalTaskId, externalTaskExtendLock); public override string ToString() => _externalTaskId; } } ================================================ FILE: Camunda.Api.Client/ExternalTask/ExternalTaskService.cs ================================================  using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.ExternalTask { public class ExternalTaskService { private IExternalTaskRestService _api; internal ExternalTaskService(IExternalTaskRestService api) { _api = api; } public QueryResource Query(ExternalTaskQuery query = null) => new QueryResource(query, _api.GetList, _api.GetListCount); /// The id of the external task to be retrieved. public ExternalTaskResource this[string externalTaskId] => new ExternalTaskResource(_api, externalTaskId); /// /// Fetches and locks a specific number of external tasks for execution by a worker. Query can be restricted to specific task topics and for each task topic an individual lock time can be provided. /// public Task> FetchAndLock(FetchExternalTasks fetching) => _api.FetchAndLock(fetching); } } ================================================ FILE: Camunda.Api.Client/ExternalTask/FetchExternalTaskTopic.cs ================================================ using Newtonsoft.Json; using System.Collections.Generic; namespace Camunda.Api.Client.ExternalTask { public class FetchExternalTaskTopic { /// The topic's name. /// The duration to lock the external tasks for in milliseconds. public FetchExternalTaskTopic(string topicName, long lockDuration) { TopicName = topicName; LockDuration = lockDuration; } /// /// A String value which enables the filtering of tasks based on process instance business key. /// public string BusinessKey; /// /// Determines whether serializable variable values (typically variables that store custom Java objects) should be deserialized on server side (default false). /// public bool DeserializeValues; /// /// If true only local variables will be fetched. /// public bool LocalVariables; /// /// The duration to lock the external tasks for in milliseconds. /// public long LockDuration; /// /// Filter tasks based on process definition id. /// public string ProcessDefinitionId; /// /// Filter tasks based on process definition ids. /// [JsonProperty("processDefinitionIdIn")] public List ProcessDefinitionIds = new List(); /// /// Filter tasks based on process definition key. /// public string ProcessDefinitionKey; /// /// Filter tasks based on process definition keys. /// [JsonProperty("processDefinitionKeyIn")] public List ProcessDefinitionKeys = new List(); /// /// A map of variables used for filtering tasks based on process instance variable values. /// public Dictionary ProcessVariables = new Dictionary(); /// /// Filter tasks based on tenant ids. /// [JsonProperty("tenantIdIn")] public List TenantIds = new List(); /// /// The topic's name /// public string TopicName; /// /// Array of String values that represent variable names. /// For each result task belonging to this topic, the given variables are returned as well if they are accessible from the external task's execution. /// public List Variables; /// /// Filter tasks without tenant id. /// public bool WithoutTenantId; public override string ToString() => TopicName; } } ================================================ FILE: Camunda.Api.Client/ExternalTask/FetchExternalTasks.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client.ExternalTask { public class FetchExternalTasks { /// /// Mandatory. The maximum number of tasks to return. /// public int MaxTasks; /// /// Mandatory. The id of the worker on which behalf tasks are fetched. The returned tasks are locked for that worker and can only be completed when providing the same worker id. /// public string WorkerId; /// /// Indicates whether the task should be fetched based on its priority or arbitrarily. /// public bool UsePriority; /// /// The Long Polling timeout in milliseconds. The value cannot be set larger than 1.800.000 milliseconds (corresponds to 30 minutes). /// public long AsyncResponseTimeout; /// /// Array of topic objects for which external tasks should be fetched. The returned tasks may be arbitrarily distributed among these topics. /// public List Topics; } } ================================================ FILE: Camunda.Api.Client/ExternalTask/IExternalTaskRestService.cs ================================================ using Refit; using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.ExternalTask { internal interface IExternalTaskRestService { [Get("/external-task/{externalTaskId}")] Task Get(string externalTaskId); [Post("/external-task")] Task> GetList([Body] ExternalTaskQuery query, int? firstResult, int? maxResults); [Post("/external-task/count")] Task GetListCount([Body] ExternalTaskQuery query); [Post("/external-task/fetchAndLock")] Task> FetchAndLock([Body] FetchExternalTasks fetching); [Put("/external-task/{externalTaskId}/retries")] Task SetRetries(string externalTaskId, [Body] RetriesInfo retries); [Put("/external-task/{externalTaskId}/priority")] Task SetPriority(string externalTaskId, [Body] PriorityInfo priority); [Post("/external-task/{externalTaskId}/complete")] Task Complete(string externalTaskId, [Body] CompleteExternalTask completeExternalTask); [Post("/external-task/{externalTaskId}/bpmnError")] Task HandleBpmnError(string externalTaskId, [Body] ExternalTaskBpmnError externalTaskBpmnError); [Post("/external-task/{externalTaskId}/failure")] Task HandleFailure(string externalTaskId, [Body] ExternalTaskFailure externalTaskFailure); [Post("/external-task/{externalTaskId}/unlock")] Task Unlock(string externalTaskId); [Post("/external-task/{externalTaskId}/extendLock")] Task ExtendLock(string externalTaskId, [Body] ExternalTaskExtendLock externalTaskExtendLock); } } ================================================ FILE: Camunda.Api.Client/ExternalTask/LockedExternalTask.cs ================================================ using System; using System.Collections.Generic; namespace Camunda.Api.Client.ExternalTask { public class LockedExternalTask : ExternalTaskInfo { /// /// Object containing a property for each of the requested variables. /// public Dictionary Variables; } } ================================================ FILE: Camunda.Api.Client/Filter/FilterInfo.cs ================================================ using System; namespace Camunda.Api.Client.Filter { public class FilterInfo { public class Request { public Request() { ResourceType = "Task"; } /// /// The resource type of the filter. /// public string ResourceType; /// /// The name of the filter. /// public string Name; /// /// The user id of the owner of the filter. /// public string Owner; /// /// The query of the filter as a JSON object. /// public object Query; /// /// The properties of a filter as a JSON object. /// public object Properties; } public class Response { /// /// The id of the filter. /// public string Id; /// /// The resource type of the filter. /// public string ResourceType; /// /// The name of the filter. /// public string Name; /// /// The user id of the owner of the filter. /// public string Owner; /// /// The query of the filter as a JSON object. /// public object Query; /// /// The properties of a filter as a JSON object. /// public object Properties; /// /// The number of items matched by the filter itself.Note: Only exists if the query parameter itemCount was set to true /// public long? ItemCount; } } } ================================================ FILE: Camunda.Api.Client/Filter/FilterQuery.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; namespace Camunda.Api.Client.Filter { public class FilterQuery : QueryParameters { /// /// Filter by the id of the filter. /// public string FilterId; /// /// Filter by the resource type of the filter, e.g., Task. /// public string ResourceType; /// /// Filter by the name of the filter. /// public string Name; /// /// Filter by the name that the parameter is a substring of. /// public string NameLike; /// /// Filter by the user id of the owner of the filter. /// public string Owner; /// /// If set to true, each filter result will contain an itemCount property with the number of items matched by the filter itself. /// public bool ItemCount; /// /// Sort the results lexicographically by a given criterion. Must be used in conjunction with the parameter. /// public FilterSorting SortBy; /// /// Sort the results in a given order. Must be used in conjunction with the parameter. /// public SortOrder SortOrder; } public enum FilterSorting { FilterId, FirstName, LastName, Email } } ================================================ FILE: Camunda.Api.Client/Filter/FilterResource.cs ================================================ using Camunda.Api.Client.UserTask; using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.Filter { public class FilterResource { private IFilterRestService _api; private string _filterId; internal FilterResource(IFilterRestService api, string filterId) { _api = api; _filterId = filterId; } /// /// Retrieves a single filter by id. /// public Task Get() => _api.Get(_filterId); /// /// Updates an existing filter. /// /// /// public Task Update(FilterInfo.Request filterInfo) => _api.Update(_filterId, filterInfo); /// /// Delete an existing filter. /// /// public Task Delete() => _api.Delete(_filterId); /// /// Executes the saved query of the filter by id and returns the single result. /// /// public Task Execute() => _api.Execute(_filterId); /// /// Executes the saved query of the filter by id and returns the result list. /// /// /// /// public Task> ExecuteList(int firstResult, int maxResults, TaskQuery query = null) => _api.ExecuteList(_filterId, firstResult, maxResults, query); /// /// Executes the saved query of the filter by id and returns the count. /// /// public async Task ExecuteCount(TaskQuery query = null) => (await _api.ExecuteCount(_filterId, query)).Count; public override string ToString() => _filterId; } } ================================================ FILE: Camunda.Api.Client/Filter/FilterService.cs ================================================ using System.Linq; using System.Threading.Tasks; namespace Camunda.Api.Client.Filter { public class FilterService { private IFilterRestService _api; internal FilterService(IFilterRestService api) { _api = api; } public FilterResource this[string filterId] => new FilterResource(_api, filterId); public QueryResource Query(FilterQuery query = null) => new QueryResource( query, (q, f, m) => _api.GetList(q, f, m), q => _api.GetListCount(q)); /// /// Creates a new filter. /// /// /// public Task Create(FilterInfo.Request filterInfo) => _api.Create(filterInfo); } } ================================================ FILE: Camunda.Api.Client/Filter/IFilterRestService.cs ================================================ using Camunda.Api.Client.UserTask; using Refit; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.Filter { internal interface IFilterRestService { [Get("/filter")] Task> GetList(QueryDictionary query, int? firstResult, int? maxResults); [Get("/filter/count")] Task GetListCount(QueryDictionary query); [Get("/filter/{id}")] Task Get(string id); [Post("/filter/create")] Task Create([Body] FilterInfo.Request filterInfo); [Delete("/filter/{id}")] Task Delete(string id); [Put("/filter/{id}")] Task Update(string id, [Body] FilterInfo.Request filterInfo); [Get("/filter/{id}/singleResult")] Task Execute(string id); [Post("/filter/{id}/list")] Task> ExecuteList(string id, int firstResult, int maxResults, [Body] TaskQuery query); [Post("/filter/{id}/count")] Task ExecuteCount(string id, [Body] TaskQuery query); } } ================================================ FILE: Camunda.Api.Client/Group/GroupInfo.cs ================================================ namespace Camunda.Api.Client.Group { public class GroupInfo { /// /// The id of the group /// public string Id; /// /// The name of the group. /// public string Name; /// /// The type of the group. /// public string Type; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/Group/GroupQuery.cs ================================================ namespace Camunda.Api.Client.Group { public class GroupQuery: QueryParameters { /// /// Filter by the id of the group. /// public string Id; /// /// Filter by the name of the group. /// public string Name; /// /// Filter by the name that the parameter is a substring of. /// public string NameLike; /// /// Filter by the type of the group. /// public string Type; /// /// Only retrieve groups which the given user id is a member of. /// public string Member; /// /// Only retrieve groups which are members of the given tenant. /// public string MemberOfTenant; /// /// Sort the results lexicographically by a given criterion. Must be used in conjunction with the . /// public GroupSorting SortBy; /// /// Sort the results in a given order. Must be used in conjunction with the . /// public SortOrder SortOrder; } public enum GroupSorting { Id, Name, Type } } ================================================ FILE: Camunda.Api.Client/Group/GroupResource.cs ================================================ using System.Threading.Tasks; namespace Camunda.Api.Client.Group { public class GroupResource { private IGroupRestService _api; private string _groupId; internal GroupResource(IGroupRestService api, string groupId) { _api = api; _groupId = groupId; } /// /// Retrieves a single group /// public Task Get() => _api.Get(_groupId); /// /// Updates a group. /// public Task Update(GroupInfo group) => _api.Update(_groupId, group); /// /// Deletes a group. /// public Task Delete() => _api.Delete(_groupId); /// /// Adds a member to a group. /// public Task AddMember(string userId) => _api.AddMember(_groupId, userId); /// /// Removes a member from a group. /// public Task RemoveMember(string userId) => _api.RemoveMember(_groupId, userId); public override string ToString() => _groupId; } } ================================================ FILE: Camunda.Api.Client/Group/GroupService.cs ================================================ using System.Threading.Tasks; namespace Camunda.Api.Client.Group { public class GroupService { private IGroupRestService _api; internal GroupService(IGroupRestService api) { _api = api; } public QueryResource Query(GroupQuery query = null) => new QueryResource( query, (q, f, m) => _api.GetList(q, f, m), q => _api.GetListCount(q)); /// The id of the group to be retrieved. public GroupResource this[string groupId] => new GroupResource(_api, groupId); /// /// Create a new group. /// public Task Create(GroupInfo group) => _api.Create(group); } } ================================================ FILE: Camunda.Api.Client/Group/IGroupRestService.cs ================================================ using Refit; using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.Group { internal interface IGroupRestService { [Get("/group")] Task> GetList(QueryDictionary query, int? firstResult, int? maxResults); [Get("/group/count")] Task GetListCount(QueryDictionary query); [Get("/group/{id}")] Task Get(string id); [Post("/group/create")] Task Create([Body] GroupInfo group); [Put("/group/{id}")] Task Update(string id, [Body] GroupInfo group); [Delete("/group/{id}")] Task Delete(string id); [Put("/group/{id}/members/{userId}")] Task AddMember(string id, string userId); [Delete("/group/{id}/members/{userId}")] Task RemoveMember(string id, string userId); } } ================================================ FILE: Camunda.Api.Client/History/AbstractReport.cs ================================================ using Newtonsoft.Json; using System.Runtime.Serialization; namespace Camunda.Api.Client.History { public abstract class AbstractReport : QueryParameters { /// /// Specifies the granularity of the report. /// public PeriodUnit PeriodUnit; /// /// Specifies the type of the report to retrieve. /// public ReportType ReportType; } public enum PeriodUnit { /// /// Represents a unit for a quarter of the year. /// [EnumMember(Value = "quarter")] Quarter, /// /// Represents a unit for a month of the year. /// [EnumMember(Value = "month")] Month } public enum ReportType { [EnumMember(Value = "duration")] Duration, [EnumMember(Value = "count")] Count } public enum GroupBy { [EnumMember(Value = "taskName")] TaskName, [EnumMember(Value = "processDefinition")] ProcessDefinition } } ================================================ FILE: Camunda.Api.Client/History/CleanableProcessInstanceReport.cs ================================================ namespace Camunda.Api.Client.History { public class CleanableProcessInstanceReport: CleanableProcessInstanceReportCount { /// /// Sort the results by a given criterion. A valid value is activityId. Must be used in conjunction with the sortOrder parameter. /// public CleanableProcessInstanceReportSorting SortBy; /// /// Sort the results in a given order. Values may be asc for ascending order or desc for descending order. Must be used in conjunction with the sortBy parameter. /// public SortOrder SortOrder; /// /// Pagination of results. Specifies the index of the first result to return. /// public int? FirstResult; /// /// Pagination of results. Specifies the maximum number of results to return. Will return less results if there are no more results left. /// public int? MaxResults; } public enum CleanableProcessInstanceReportSorting { Finished } } ================================================ FILE: Camunda.Api.Client/History/CleanableProcessInstanceReportCount.cs ================================================ using Newtonsoft.Json; using System.Collections.Generic; namespace Camunda.Api.Client.History { public class CleanableProcessInstanceReportCount: QueryParameters { /// /// Filter by process definition ids.Must be a comma-separated list of process definition ids. /// [JsonProperty("processDefinitionIdIn")] public List ProcessDefinitionIds; /// /// Filter by process definition keys. Must be a comma-separated list of process definition keys. /// [JsonProperty("processDefinitionKeyIn")] public List ProcessDefinitionKeys; /// /// Filter by a comma-separated list of tenant ids.A process definition must have one of the given tenant ids. /// [JsonProperty("tenantIdIn")] public List TenantIds; /// /// Only include process definitions which belong to no tenant. Value may only be true, as false is the default behavior. /// public bool WithoutTenantId; /// /// Only include process instances which have more than zero finished instances. Value may only be true, as false is the default behavior. /// public bool Compact; } } ================================================ FILE: Camunda.Api.Client/History/CleanableProcessInstanceReportResult.cs ================================================ using System; using System.Collections.Generic; using System.Text; namespace Camunda.Api.Client.History { public class CleanableProcessInstanceReportResult { /// /// The id of the process definition. /// public string ProcessDefinitionId; /// /// The key of the process definition. /// public string ProcessDefinitionKey; /// /// The name of the process definition. /// public string ProcessDefinitionName; /// /// The version of the process definition. /// public int ProcessDefinitionVersion; /// /// The history time to live of the process definition. /// public int HistoryTimeToLive; /// /// The count of the finished historic process instances. /// public int FinishedProcessInstanceCount; /// /// The count of the cleanable historic process instances, referring to history time to live. /// public int CleanableProcessInstanceCount; /// /// The tenant id of the process definition. /// public string TenantId; } } ================================================ FILE: Camunda.Api.Client/History/CountReportResult.cs ================================================ namespace Camunda.Api.Client.History { public class CountReportResult { /// /// The task name of the task. It is only available when the groupBy-parameter is set to taskName. Else the value is null. /// public string TaskName; /// /// The id of the process definition /// public string ProcessDefinitionId; /// /// The key of the process definition. /// public string ProcessDefinitionKey; /// /// The name of the process definition. /// public string processDefinitionName; /// /// The number of tasks which have the given definition. /// public long Count; } } ================================================ FILE: Camunda.Api.Client/History/DeleteHistoricProcessInstances.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client.History { public class DeleteHistoricProcessInstances { /// /// A list historic process instance ids to delete. /// public List HistoricProcessInstanceIds; /// /// A historic process instance query. /// public HistoricProcessInstanceQuery HistoricProcessInstanceQuery; /// /// A string with delete reason. /// public string DeleteReason; } } ================================================ FILE: Camunda.Api.Client/History/DurationReportResult.cs ================================================ namespace Camunda.Api.Client.History { public class DurationReportResult : ReportResult { /// /// The smallest duration in milliseconds of all completed process instances which were started in the given period. /// public long Minimum; /// /// The greatest duration in milliseconds of all completed process instances which were started in the given period. /// public long Maximum; /// /// The average duration in milliseconds of all completed process instances which were started in the given period. /// public long Average; } } ================================================ FILE: Camunda.Api.Client/History/HistoricActivityInstance.cs ================================================ using System; namespace Camunda.Api.Client.History { public class HistoricActivityInstance { /// /// The id of the activity instance. /// public string Id; /// /// The id of the parent activity instance, for example a sub process instance. /// public string ParentActivityInstanceId; /// /// The id of the activity that this object is an instance of. /// public string ActivityId; /// /// The name of the activity that this object is an instance of. /// public string ActivityName; /// /// The type of the activity that this object is an instance of. /// public string ActivityType; /// /// The key of the process definition that this activity instance belongs to. /// public string ProcessDefinitionKey; /// /// The id of the process definition that this activity instance belongs to. /// public string ProcessDefinitionId; /// /// The id of the process instance that this activity instance belongs to. /// public string ProcessInstanceId; /// /// The id of the execution that executed this activity instance. /// public string ExecutionId; /// /// The id of the task that is associated to this activity instance. Is only set if the activity is a user task. /// public string TaskId; /// /// The id of the called process instance. Is only set if the activity is a call activity and the called instance a process instance. /// public string CalledProcessInstanceId; /// /// The id of the called case instance. Is only set if the activity is a call activity and the called instance a case instance. /// public string CalledCaseInstanceId; /// /// The assignee of the task that is associated to this activity instance. Is only set if the activity is a user task. /// public string Assignee; /// /// The time the instance was started. Has the format yyyy-MM-dd'T'HH:mm:ss. /// public DateTime StartTime; /// /// The time the instance ended. Has the format yyyy-MM-dd'T'HH:mm:ss. /// public DateTime EndTime; /// /// The time the instance took to finish (in milliseconds). /// public long DurationInMillis; /// /// If true, this activity instance is canceled. /// public bool Canceled; /// /// If true, this activity instance did complete a BPMN 2.0 scope. /// public bool CompleteScope; /// /// The tenant id of the activity instance. /// public string TenantId; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/History/HistoricActivityInstanceQuery.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Runtime.Serialization; namespace Camunda.Api.Client.History { public class HistoricActivityInstanceQuery : SortableQuery { /// /// Filter by activity instance id. /// public string ActivityInstanceId; /// /// Filter by process instance id. /// public string ProcessInstanceId; /// /// Filter by process definition id. /// public string ProcessDefinitionId; /// /// Filter by the id of the execution that executed the activity instance. /// public string ExecutionId; /// /// Filter by the activity id (according to BPMN 2.0 XML). /// public string ActivityId; /// /// Filter by the activity name (according to BPMN 2.0 XML). /// public string ActivityName; /// /// Filter by activity type. /// public string ActivityType; /// /// Only include activity instances that are user tasks and assigned to a given user. /// public string TaskAssignee; /// /// Only include finished activity instances. /// public bool Finished; /// /// Only include unfinished activity instances. Value may only be true, as false is the default behavior. /// public bool Unfinished; /// /// Only include activity instances which completed a scope. /// public bool CompleteScope; /// /// Only include canceled activity instances. Value may only be true, as false is the default behavior. /// public bool Canceled; /// /// Restrict to instances that were started before the given date. /// public DateTime? StartedBefore; /// /// Restrict to instances that were started after the given date. /// public DateTime? StartedAfter; /// /// Restrict to instances that were finished before the given date. /// public DateTime? FinishedBefore; /// /// Restrict to instances that were finished after the given date. /// public DateTime? FinishedAfter; /// /// Filter by a list of tenant ids. An activity instance must have one of the given tenant ids. /// [JsonProperty("tenantIdIn")] public List TenantIds; } public enum HistoricActivityInstanceQuerySorting { ActivityInstanceId, InstanceId, ExecutionId, ActivityId, ActivityName, ActivityType, StartTime, EndTime, Duration, DefinitionId, TenantId } } ================================================ FILE: Camunda.Api.Client/History/HistoricActivityInstanceResource.cs ================================================ using System.Threading.Tasks; namespace Camunda.Api.Client.History { public class HistoricActivityInstanceResource { private IHistoricActivityInstanceRestService _api; private string _activityInstanceId; internal HistoricActivityInstanceResource(IHistoricActivityInstanceRestService api, string activityInstanceId) { _api = api; _activityInstanceId = activityInstanceId; } /// /// Retrieves a historic activity instance by id, according to the interface in the engine. /// public Task Get() => _api.Get(_activityInstanceId); } } ================================================ FILE: Camunda.Api.Client/History/HistoricActivityInstanceService.cs ================================================ namespace Camunda.Api.Client.History { public class HistoricActivityInstanceService { private IHistoricActivityInstanceRestService _api; internal HistoricActivityInstanceService(IHistoricActivityInstanceRestService api) { _api = api; } public QueryResource Query( HistoricActivityInstanceQuery query = null) => new QueryResource(query, _api.GetList, _api.GetListCount); /// The id of the historic activity instance to be retrieved. public HistoricActivityInstanceResource this[string activityInstanceId] => new HistoricActivityInstanceResource(_api, activityInstanceId); } } ================================================ FILE: Camunda.Api.Client/History/HistoricActivityStatistics.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; namespace Camunda.Api.Client.History { public class HistoricActivityStatistics : QueryParameters { /// /// Whether to include the number of canceled activity instances in the result or not. Valid values are true or false. Default: false. /// public bool Canceled; /// /// Whether to include the number of finished activity instances in the result or not. Valid values are true or false. Default: false. /// public bool Finished; /// /// Whether to include the number of activity instances which completed a scope in the result or not. Valid values are true or false. Default: false. /// public bool CompleteScope; /// /// Whether to include the number of incidents. Valid values are true or false. Default: false. /// public bool Incidents; /// /// Restrict to instances that were started before the given date. /// public DateTime? StartedBefore; /// /// Restrict to instances that were started after the given date. /// public DateTime? StartedAfter; /// /// Restrict to instances that were finished before the given date. /// public DateTime? FinishedBefore; /// /// Restrict to instances that were finished after the given date. /// public DateTime? FinishedAfter; /// /// Filter by the key of the process definition the instances run on. /// [JsonProperty("processInstanceIdIn")] public List ProcessInstanceIds; /// /// Sort the results by a given criterion. A valid value is activityId. Must be used in conjunction with the sortOrder parameter. /// public HistoricActivityStatisticsSorting SortBy; /// /// Sort the results in a given order. Values may be asc for ascending order or desc for descending order. Must be used in conjunction with the sortBy parameter. /// public SortOrder SortOrder; } public enum HistoricActivityStatisticsSorting { ActivityId } } ================================================ FILE: Camunda.Api.Client/History/HistoricActivityStatisticsResult.cs ================================================ namespace Camunda.Api.Client.History { public class HistoricActivityStatisticsResult { /// /// The id of the activity the results are aggregated for. /// public string Id; /// /// The total number of all running instances of the activity. /// public int Instances; /// /// The total number of all canceled instances of the activity. Note: Will be 0 (not null), if canceled activity instances were excluded. /// public int Canceled; /// /// The total number of all finished instances of the activity. Note: Will be 0 (not null), if finished activity instances were excluded. /// public int Finished; /// /// The total number of all instances which completed a scope of the activity. Note: Will be 0 (not null), if activity instances which completed a scope were excluded. /// public int CompleteScope; /// /// The total number of open incident for the activity. Note: Will be 0 (not null), if incidents is set to false. /// public int OpenIncidents; /// /// The total number of resolved incident for the activity. Note: Will be 0 (not null), if incidents is set to false. /// public int ResolvedIncidents; /// /// The total number of deleted incident for the activity. Note: Will be 0 (not null), if incidents is set to false. /// public int DeletedIncidents; public override string ToString() => Id.ToString(); } } ================================================ FILE: Camunda.Api.Client/History/HistoricCaseActivityInstance.cs ================================================ using System; namespace Camunda.Api.Client.History { public class HistoricCaseActivityInstance { /// /// The id of the case activity instance. /// public string Id; /// /// If true, this case activity instance is active. /// public bool Active; /// /// If true, this case activity instance is available. /// public bool Available; /// /// The id of the called case instance. Is only set if the case activity is a case task. /// public string CalledCaseInstanceId; /// /// The id of the called process instance. Is only set if the case activity is a process task. /// public string CalledProcessInstanceId; /// /// The id of the case activity that this object is an instance of. /// public string CaseActivityId; /// /// The name of the case activity that this object is an instance of. /// public string CaseActivityName; /// /// The type of the activity this case execution belongs to. /// public string CaseActivityType; /// /// The id of the case definition that this case activity instance belongs to. /// public string CaseDefinitionId; /// /// The id of the case execution that executed this case activity instance. /// public string CaseExecutionId; /// /// The id of the case instance that this case activity instance belongs to. /// public string CaseInstanceId; /// /// If true, this case activity instance is completed. /// public bool Completed; /// /// The time the instance was created. Default format* yyyy-MM-dd'T'HH:mm:ss.SSSZ. /// public DateTime CreateTime; /// /// If true, this case activity instance is disabled. /// public bool Disabled; /// /// The time the instance took to finish (in milliseconds). /// public int DurationInMillis; /// /// If true, this case activity instance is enabled. /// public bool Enabled; /// /// The time the instance ended. Default format* yyyy-MM-dd'T'HH:mm:ss.SSSZ. /// public DateTime EndTime; /// /// The id of the parent case activity instance. /// public string ParentCaseActivityInstanceId; /// /// If true, this case activity instance is repeatable. /// public bool Repeatable; /// /// If true, this case activity instance is a repetition. /// public bool Repetition; /// /// If true, this case activity instance is required. /// public bool Required; /// /// The id of the task that is associated to this case activity instance. Is only set if the case activity is a human task. /// public string TaskId; /// /// The tenant id of the case activity instance. /// public string TenantId; /// /// If true, this case activity instance is terminated. /// public bool Terminated; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/History/HistoricCaseActivityInstanceQuery.cs ================================================ namespace Camunda.Api.Client.History { public class HistoricCaseActivityInstanceQuery : SortableQuery { /// /// Filter by case instance id. /// public string CaseInstanceId; } public enum HistoricCaseActivityInstanceQuerySorting { CaseActivityInstanceID, CaseInstanceId, CaseExecutionId, CaseActivityId, CaseActivityName, CreateTime, EndTime, Duration, CaseDefinitionId, TenantId } } ================================================ FILE: Camunda.Api.Client/History/HistoricCaseActivityInstanceQueryResource.cs ================================================ using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.History { public class HistoricCaseActivityInstanceQueryResource { private IHistoricCaseActivityInstanceRestService _api; private HistoricCaseActivityInstanceQuery _query; internal HistoricCaseActivityInstanceQueryResource(IHistoricCaseActivityInstanceRestService api, HistoricCaseActivityInstanceQuery query) { _api = api; _query = query; } /// /// Query for variable instances that fulfill given parameters. /// public Task> List() => _api.GetList(_query.CaseInstanceId, null, null); /// /// Query for variable instances that fulfill given parameters. /// /// Pagination of results. Specifies the index of the first result to return. /// Pagination of results. Specifies the maximum number of results to return. Will return less results if there are no more results left. public Task> List(int firstResult, int maxResults) => _api.GetList(_query.CaseInstanceId, firstResult, maxResults); // TODO: Count } } ================================================ FILE: Camunda.Api.Client/History/HistoricCaseActivityInstanceResource.cs ================================================ using System.Threading.Tasks; namespace Camunda.Api.Client.History { public class HistoricCaseActivityInstanceResource { private IHistoricCaseActivityInstanceRestService _api; private string _caseActivityInstanceId; internal HistoricCaseActivityInstanceResource(IHistoricCaseActivityInstanceRestService api, string caseActivityInstanceId) { _api = api; _caseActivityInstanceId = caseActivityInstanceId; } /// /// Retrieves a historic case activity instance by id, according to the interface in the engine. /// public Task Get() => _api.Get(_caseActivityInstanceId); } } ================================================ FILE: Camunda.Api.Client/History/HistoricCaseActivityInstanceService.cs ================================================ namespace Camunda.Api.Client.History { public class HistoricCaseActivityInstanceService { private IHistoricCaseActivityInstanceRestService _api; internal HistoricCaseActivityInstanceService(IHistoricCaseActivityInstanceRestService api) { _api = api; } public HistoricCaseActivityInstanceQueryResource Query(HistoricCaseActivityInstanceQuery query = null) => new HistoricCaseActivityInstanceQueryResource(_api, query); /// The id of the historic case activity instance to be retrieved. public HistoricCaseActivityInstanceResource this[string caseActivityInstanceId] => new HistoricCaseActivityInstanceResource(_api, caseActivityInstanceId); } } ================================================ FILE: Camunda.Api.Client/History/HistoricCaseDefinitionResource.cs ================================================ using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.History { public class HistoricCaseDefinitionResource { private IHistoricCaseDefinitionRestService _api; private string _caseDefinitionId; internal HistoricCaseDefinitionResource(IHistoricCaseDefinitionRestService api, string caseDefinitionId) { _api = api; _caseDefinitionId = caseDefinitionId; } public Task> GetActivityStatistics() => _api.GetActivityStatistics(_caseDefinitionId); } } ================================================ FILE: Camunda.Api.Client/History/HistoricCaseDefinitionService.cs ================================================ namespace Camunda.Api.Client.History { public class HistoricCaseDefinitionService { private IHistoricCaseDefinitionRestService _api; internal HistoricCaseDefinitionService(IHistoricCaseDefinitionRestService api) { _api = api; } public HistoricCaseDefinitionResource this[string caseDefinitionId] => new HistoricCaseDefinitionResource(_api, caseDefinitionId); } } ================================================ FILE: Camunda.Api.Client/History/HistoricCaseDefinitionStatisticsResult.cs ================================================ namespace Camunda.Api.Client.History { public class HistoricCaseDefinitionStatisticsResult { public string Id; public int Active; public int Available; public int Completed; public int Disabled; public int Enabled; public int Terminated; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/History/HistoricCaseInstance.cs ================================================ using System; namespace Camunda.Api.Client.History { public class HistoricCaseInstance { /// /// The id of the case instance. /// public string Id; /// /// If true, this case instance is active. /// public bool Active; /// /// The business key of the case instance. /// public string BusinessKey; /// /// The id of the case definition that this case instance belongs to. /// public string CaseDefinitionId; /// /// The key of the case definition that this case instance belongs to. /// public string CaseDefinitionKey; /// /// The name of the case definition that this case instance belongs to. /// public string CaseDefinitionName; /// /// If true, this case instance is closed. /// public bool Closed; /// /// The time the instance was closed. Default format* yyyy-MM-dd'T'HH:mm:ss.SSSZ. /// public DateTime CloseTime; /// /// If true, this case instance is completed. /// public bool Completed; /// /// The time the instance was created. Default format* yyyy-MM-dd'T'HH:mm:ss.SSSZ. /// public DateTime CreateTime; /// /// The id of the user who created the case instance. /// public string CreateUserId; /// /// The time the instance took to finish (in milliseconds). /// public int DurationInMillis; /// /// The id of the parent case instance, if it exists. /// public string SuperCaseInstanceId; /// /// The id of the parent process instance, if it exists. /// public string SuperProcessInstanceId; /// /// The tenant id of the case instance. /// public string TenantId; /// /// If true, this case instance is terminated. /// public bool Terminated; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/History/HistoricCaseInstanceQuery.cs ================================================ using Newtonsoft.Json; using System.Collections.Generic; namespace Camunda.Api.Client.History { public class HistoricCaseInstanceQuery : SortableQuery { /// /// Filter by the case definition the instances run on. /// public string CaseDefinitionId; [JsonProperty("caseActivityIdIn")] public List CaseActivityIds; /// /// Restrict query to one case instance that has a sub process instance with the given id. /// public string SubProcessInstanceId; /// /// Only include active case instances.Value may only be true, as false is the default behavior. /// public bool Active; /// /// Only include completed case instances.Value may only be true, as false is the default behavior. /// public bool Completed; /// /// Only include terminated case instances.Value may only be true, as false is the default behavior. /// public bool Terminated; /// /// Only include closed case instances.Value may only be true, as false is the default behavior. /// public bool Closed; /// /// Only include not closed case instances.Value may only be true, as false is the default behavior. /// public bool NotClosed; } public enum HistoricCaseInstanceQuerySorting { InstanceId, DefinitionId, BusinessKey, CreateTime, CloseTime, Duration, TenantId } } ================================================ FILE: Camunda.Api.Client/History/HistoricCaseInstanceResource.cs ================================================ using System.Threading.Tasks; namespace Camunda.Api.Client.History { public class HistoricCaseInstanceResource { private IHistoricCaseInstanceRestService _api; private string _caseInstanceId; internal HistoricCaseInstanceResource(IHistoricCaseInstanceRestService api, string caseInstanceId) { _api = api; _caseInstanceId = caseInstanceId; } /// /// Retrieves a historic case instance by id, according to the interface in the engine. /// /// public Task Get() => _api.Get(_caseInstanceId); } } ================================================ FILE: Camunda.Api.Client/History/HistoricCaseInstanceService.cs ================================================ namespace Camunda.Api.Client.History { public class HistoricCaseInstanceService { private IHistoricCaseInstanceRestService _api; internal HistoricCaseInstanceService(IHistoricCaseInstanceRestService api) { _api = api; } public QueryResource Query( HistoricCaseInstanceQuery query = null) => new QueryResource(query, _api.GetList, _api.GetListCount); /// The id of the historic case instance to be retrieved. public HistoricCaseInstanceResource this[string caseInstanceId] => new HistoricCaseInstanceResource(_api, caseInstanceId); } } ================================================ FILE: Camunda.Api.Client/History/HistoricDecisionInstance.cs ================================================ using System; using System.Collections.Generic; namespace Camunda.Api.Client.History { public class HistoricDecisionInstance { /// /// The id of the decision instance. /// public string Id; /// /// The id of the decision definition that this decision instance belongs to. /// public string DecisionDefinitionId; /// /// The key of the decision definition that this decision instance belongs to. /// public string DecisionDefinitionKey; /// /// The name of the decision definition that this decision instance belongs to. /// public string DecisionDefinitionName; /// /// The time the instance was evaluated. /// public DateTime? EvaluationTime; /// /// The id of the process definition that this decision instance belongs to. /// public string ProcessDefinitionId; /// /// The key of the process definition that this decision instance belongs to. /// public string ProcessDefinitionKey; /// /// The id of the process instance that this decision instance belongs to. /// public string ProcessInstanceId; /// /// The id of the case definition that this decision instance belongs to. /// public string CaseDefinitionId; /// /// The key of the case definition that this decision instance belongs to. /// public string CaseDefinitionKey; /// /// The id of the case instance that this decision instance belongs to. /// public string CaseInstanceId; /// /// The id of the activity that this decision instance belongs to. /// public string ActivityId; /// /// The id of the activity instance that this decision instance belongs to. /// public string ActivityInstanceId; /// /// The tenant id of the historic decision instance. /// public string TenantId; /// /// The id of the authenticated user that has evaluated this decision instance without a process or case instance. /// public string UserId; /// /// The list of decision input values. Only exists if was set to true in the query. For the decision input properties see . /// public List Inputs; /// /// The list of decision output values.Only exists if was set to true in the query. For the decision output properties see . /// public List Outputs; /// /// The result of the collect aggregation of the decision result if used. null if no aggregation was used. /// public double? CollectResultValue; } } ================================================ FILE: Camunda.Api.Client/History/HistoricDecisionInstanceInputValue.cs ================================================ namespace Camunda.Api.Client.History { public class HistoricDecisionInstanceInputValue : VariableValue { /// /// The id of the decision input value. /// public string Id; /// /// The id of the decision instance the input value belongs to. /// public string DecisionInstanceId; /// /// The id of the clause the input value belongs to. /// public string ClauseId; /// /// The name of the clause the input value belongs to. /// public string ClauseName; /// /// An error message in case a Java Serialized Object could not be de-serialized. /// public string ErrorMessage; } } ================================================ FILE: Camunda.Api.Client/History/HistoricDecisionInstanceOutputValue.cs ================================================ namespace Camunda.Api.Client.History { public class HistoricDecisionInstanceOutputValue : VariableValue { /// /// The id of the decision output value. /// public string Id; /// /// The id of the decision instance the output value belongs to. /// public string DecisionInstanceId; /// /// The id of the clause the output value belongs to. /// public string ClauseId; /// /// The name of the clause the output value belongs to. /// public string ClauseName; /// /// The id of the rule the output value belongs to. /// public string RuleId; /// /// The order of the rule the output value belongs to. /// public int RuleOrder; /// /// An error message in case a Java Serialized Object could not be de-serialized. /// public string ErrorMessage; /// /// The name of the output variable. /// public string VariableName; } } ================================================ FILE: Camunda.Api.Client/History/HistoricDecisionInstanceQuery.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; namespace Camunda.Api.Client.History { public class HistoricDecisionInstanceQuery : QueryParameters { /// /// Filter by decision instance id. /// public string DecisionInstanceId; /// /// Filter by decision instance ids. /// [JsonProperty("decisionInstanceIdIn")] public List DecisionInstanceIds = new List(); /// /// Filter by the decision definition the instances belongs to. /// public string DecisionDefinitionId; /// /// Filter by the decision definitions the instances belongs to. /// [JsonProperty("decisionDefinitionIdIn")] public List DecisionDefinitionIds = new List(); /// /// Filter by the key of the decision definition the instances belongs to. /// public string DecisionDefinitionKey; /// /// Filter by the keys of the decision definition the instances belongs to. /// [JsonProperty("decisionDefinitionKeyIn")] public List DecisionDefinitionKeys = new List(); /// /// Filter by the name of the decision definition the instances belongs to. /// public string DecisionDefinitionName; /// /// Filter by the process definition the instances belongs to. /// public string ProcessDefinitionId; /// /// Filter by the key of the process definition the instances belongs to. /// public string ProcessDefinitionKey; /// /// Filter by the process instance the instances belongs to. /// public string ProcessInstanceId; /// /// Filter by the case definition the instances belongs to. /// public string CaseDefinitionId; /// /// Filter by the key of the case definition the instances belongs to. /// public string CaseDefinitionKey; /// /// Filter by the case instance the instances belongs to. /// public string CaseInstanceId; /// /// Filter by the activity ids the instances belongs to. /// [JsonProperty("activityIdIn")] public List ActivityIds = new List(); /// /// Filter by the activity instance ids the instances belongs to. /// [JsonProperty("activityInstanceIdIn")] public List ActivityInstanceIds = new List(); /// /// Filter by a comma-separated list of tenant ids. A historic decision instance must have one of the given tenant ids. /// [JsonProperty("tenantIdIn")] public List TenantIds = new List(); /// /// Restrict to instances that were evaluated before the given date. /// public DateTime? EvaluatedBefore; /// /// Restrict to instances that were evaluated after the given date. /// public DateTime? EvaluatedAfter; /// /// Restrict to instances that were evaluated by the given user. /// public string UserId; /// /// Include input values in the result. Value may only be true, as false is the default behavior. /// public bool IncludeInputs = false; /// /// Include output values in the result. Value may only be true, as false is the default behavior. /// public bool IncludeOutputs = false; /// /// Disables fetching of byte array input and output values. Value may only be true, as false is the default behavior. /// public bool DisableBinaryFetching = false; /// /// Disables deserialization of input and output values that are custom objects. Value may only be true, as false is the default behavior. /// public bool DisableCustomObjectDeserialization = false; /// /// Restrict to instances that have a given root decision instance id. This also includes the decision instance with the given id. /// public string RootDecisionInstanceId; /// /// Restrict to instances those are the root decision instance of an evaluation.Value may only be true, as false is the default behavior. /// public bool RootDecisionInstancesOnly = false; /// /// Filter by the decision requirements definition the instances belongs to. /// public string DecisionRequirementsDefinitionId; /// /// Filter by the key of the decision requirements definition the instances belongs to. /// public string DecisionRequirementsDefinitionKey; /// /// Sort the results by a given criterion. Must be used in conjunction with the parameter. /// public HistoricDecisionInstanceQuerySorting SortBy; /// /// Sort the results in a given order. Must be used in conjunction with the parameter. /// public SortOrder SortOrder; } public enum HistoricDecisionInstanceQuerySorting { EvaluationTime, TenantId } } ================================================ FILE: Camunda.Api.Client/History/HistoricDecisionInstanceResource.cs ================================================ using System.Threading.Tasks; namespace Camunda.Api.Client.History { public class HistoricDecisionInstanceResource { private IHistoricDecisionInstanceRestService _api; private string _decisionInstanceId; internal HistoricDecisionInstanceResource(IHistoricDecisionInstanceRestService api, string decisionInstanceId) { _api = api; _decisionInstanceId = decisionInstanceId; } /// /// Retrieves a single historic decision instance according to the HistoricDecisionInstance interface in the engine. /// public Task Get() => _api.Get(_decisionInstanceId); } } ================================================ FILE: Camunda.Api.Client/History/HistoricDecisionInstanceService.cs ================================================ namespace Camunda.Api.Client.History { public class HistoricDecisionInstanceService { private IHistoricDecisionInstanceRestService _api; internal HistoricDecisionInstanceService(IHistoricDecisionInstanceRestService api) { _api = api; } public QueryResource Query( HistoricDecisionInstanceQuery query = null) => new QueryResource( query, (q, f, m) => _api.GetList(q, f, m), q => _api.GetListCount(q)); /// The id of the historic decision instance to be retrieved. public HistoricDecisionInstanceResource this[string decisionInstanceId] => new HistoricDecisionInstanceResource(_api, decisionInstanceId); } } ================================================ FILE: Camunda.Api.Client/History/HistoricDetail.cs ================================================ using System; using System.Collections.Generic; namespace Camunda.Api.Client.History { public class HistoricDetail { /// /// Type /// public string Type; /// /// The id of the entry. /// public string Id; /// /// The key of the process definition. /// public string ProcessDefinitionKey; /// /// The id of the process definition which the associated job belongs to. /// public string ProcessDefinitionId; /// /// The id of the process instance on which the associated job was created. /// public string ProcessInstanceId; /// /// The id of the activity instance that the external task belongs to. /// public string ActivityInstanceId; /// /// The execution id on which the associated job was created. /// public string ExecutionId; /// /// Case definition key /// public string CaseDefinitionKey; /// /// Case definition id /// public string CaseDefinitionId; /// /// Case instance id /// public string CaseInstanceId; /// /// Case execution id /// public string CaseExecutionId; /// /// Task id /// public string TaskId; /// /// The id of the tenant that this historic job log entry belongs to. /// public string TenantId; /// /// User operation id /// public string UserOperationId; /// /// Time /// public DateTime Time; /// /// Variable name /// public string VariableName; /// /// Variable instance id /// public string VariableInstanceId; /// /// Variable type /// public string VariableType; /// /// Value /// public object Value; /// /// Revision /// public string Revision; /// /// Error message /// public string ErrorMessage; /// /// Value info /// public Dictionary ValueInfo; /// /// The id of the form field. /// public string FieldId; /// /// The submitted value. /// public object FieldValue; /// /// To string implementation /// /// public override string ToString() => Id.ToString(); } } ================================================ FILE: Camunda.Api.Client/History/HistoricDetailQuery.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; namespace Camunda.Api.Client.History { public class HistoricDetailQuery : QueryParameters { /// /// Filter by process instance id. /// public string ProcessInstanceId; /// /// Filter by the id of the execution that executed the activity instance. /// public string ExecutionId; /// /// Filter by activity instance id. /// public string ActivityInstanceId; /// /// Restrict query to all process instances that are sub process instances of the given case instance. Takes a case instance id. /// public string CaseInstanceId; /// /// Restrict to tasks that belong to a case execution with the given id. /// public string CaseExecutionId; /// /// Variable instance id /// public string VariableInstanceId; /// /// Only select variable instances with one of the given tenant ids. /// [JsonProperty("tenantIdIn")] public List TenantIds; /// /// User operation id /// public string UserOperationId; /// /// Form fields /// public bool? FormFields; /// /// Variable updates /// public bool? VariableUpdates; /// /// Exclude task details /// public bool? ExcludeTaskDetails; } } ================================================ FILE: Camunda.Api.Client/History/HistoricDetailResource.cs ================================================ using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.History { public class HistoricDetailResource { private IHistoricDetailRestService _api; private string _historicDetailId; internal HistoricDetailResource(IHistoricDetailRestService api, string historicDetailId) { _api = api; _historicDetailId = historicDetailId; } /// /// Retrieves a historic detail by id. /// public Task Get() => _api.Get(_historicDetailId); /// /// /// public async Task GetData() => (await _api.GetData(_historicDetailId)).Content; } } ================================================ FILE: Camunda.Api.Client/History/HistoricDetailService.cs ================================================ namespace Camunda.Api.Client.History { public class HistoricDetailService { private IHistoricDetailRestService _api; internal HistoricDetailService(IHistoricDetailRestService api) { _api = api; } public QueryResource Query(HistoricDetailQuery query = null) => new QueryResource( query, (q, f, m) => _api.GetList(q, f, m), q => _api.GetListCount(q)); /// The id of the detail entry. public HistoricDetailResource this[string historicJobLogId] => new HistoricDetailResource(_api, historicJobLogId); } } ================================================ FILE: Camunda.Api.Client/History/HistoricExternalTaskLog.cs ================================================ using Camunda.Api.Client.UserTask; using System; using System.Runtime.Serialization; namespace Camunda.Api.Client.History { public class HistoricExternalTaskLog { /// /// The id of the log entry. /// public string Id; /// /// The id of the external task. /// public string ExternalTaskId; /// /// The time when the log entry has been written. /// public string Timestamp; /// /// The topic name of the associated external task. /// public string TopicName; /// /// The id of the worker that posessed the most recent lock. /// public string WorkerId; /// /// The number of retries the associated external task has left. /// public int Retries; /// /// The execution priority the external task had when the log entry was created. /// public int Priority; /// /// The message of the error that occurred by executing the associated external task. /// public string ErrorMessage; /// /// The id of the activity on which the associated external task was created. /// public string ActivityId; /// /// The id of the activity instance on which the associated external task was created. /// public string ActivityInstanceId; /// /// The execution id on which the associated external task was created. /// public string ExecutionId; /// /// The id of the process instance on which the associated external task was created. /// public string ProcessInstanceId; /// /// The id of the process definition which the associated external task belongs to. /// public string ProcessDefinitionId; /// /// The key of the process definition which the associated external task belongs to. /// public string ProcessDefinitionKey; /// /// The id of the tenant that this historic external task log entry belongs to. /// public string TenantId; /// /// A flag indicating whether this log represents the creation of the associated external task. /// public bool CreationLog; /// /// A flag indicating whether this log represents the failed execution of the associated external task. /// public bool FailureLog; /// /// A flag indicating whether this log represents the successful execution of the associated external task. /// public bool SuccessLog; /// /// A flag indicating whether this log represents the deletion of the associated external task. /// public bool DeletionLog; /// /// The time after which this log should be removed by the History Cleanup job.Default format* yyyy-MM-dd'T'HH:mm:ss.SSSZ. /// public string RemovalTime; /// /// The process instance id of the root process instance that initiated the process containing this log. /// public string RootProcessInstanceId; } } ================================================ FILE: Camunda.Api.Client/History/HistoricExternalTaskLogQuery.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; namespace Camunda.Api.Client.History { public class HistoricExternalTaskLogQuery : SortableQuery { /// /// Filter by historic external task log id. /// public string LogId; /// /// Filter by external task id. /// public string ExternalTaskId; /// /// Filter by an external task topic. /// public string TopicName; /// /// Filter by the id of the worker that the task was most recently locked by. /// public string WorkerId; /// /// Filter by external task exception message. /// public string ErrorMessage; /// /// Only include historic external task logs which belong to one of the passed activity ids. /// [JsonProperty("activityIdIn")] public List ActivityIds; /// /// Only include historic external task logs which belong to one of the passed activity instance ids. /// [JsonProperty("activityInstanceIdIn")] public List ActivityInstanceIds; /// /// Only include historic external task logs which belong to one of the passed execution ids. /// [JsonProperty("executionIdIn")] public List ExecutionIds; /// /// Filter by process instance id. /// public string ProcessInstanceId; /// /// Filter by process definition id. /// public string ProcessDefinitionId; /// /// Filter by process definition key. /// public string ProcessDefinitionKey; /// /// Only include historic external task log entries which belong to one of the passed and comma-separated tenant ids. /// [JsonProperty("tenantIdIn")] public List TenantIds; /// /// Only include historic external task log entries that belong to no tenant. Value may only be true, as false is the default behavior. /// public bool WithoutTenantId; /// /// Only include logs for which the associated external task had a priority lower than or equal to the given value. Value must be a valid long value /// public long PriorityLowerThanOrEquals; /// /// Only include logs for which the associated external task had a priority higher than or equal to the given value. Value must be a valid long value. /// public long PriorityHigherThanOrEquals; /// /// Only include creation logs. Value may only be true, as false is the default behavior. /// public bool CreationLog; /// /// Only include failure logs. Value may only be true, as false is the default behavior. /// public bool FailureLog; /// /// Only include success logs. Value may only be true, as false is the default behavior. /// public bool SuccessLog; /// /// Only include deletion logs. Value may only be true, as false is the default behavior. /// public bool DeletionLog; } public enum HistoricExternalTaskTaskSorting { Timestamp, TaskId, TopicName, WorkerId, Retries, Priority, ActivityId, ActivityInstanceId, ExecutionId, ProcessInstanceId, ProcessDefinitionId, ProcessDefinitionKey, TenantId } } ================================================ FILE: Camunda.Api.Client/History/HistoricExternalTaskLogResource.cs ================================================ using System.Threading.Tasks; namespace Camunda.Api.Client.History { public class HistoricExternalTaskLogResource { private IHistoricExternalTaskLogRestService _api; private string _logId; internal HistoricExternalTaskLogResource(IHistoricExternalTaskLogRestService api, string logId) { _api = api; _logId = logId; } /// /// Retrieves a historic external task log by id. /// /// public Task Get() => _api.Get(_logId); /// /// Retrieves the corresponding exception stacktrace to the passed historic job log by id. /// public Task GetErrorDetails() => _api.GetErrorDetails(_logId); } } ================================================ FILE: Camunda.Api.Client/History/HistoricExternalTaskLogService.cs ================================================ using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.History { public class HistoricExternalTaskLogService { private IHistoricExternalTaskLogRestService _api; internal HistoricExternalTaskLogService(IHistoricExternalTaskLogRestService api) { _api = api; } public QueryResource Query(HistoricExternalTaskLogQuery query = null) => new QueryResource(query, _api.GetList, _api.GetListCount); public HistoricExternalTaskLogResource this[string logId] => new HistoricExternalTaskLogResource(_api, logId); } } ================================================ FILE: Camunda.Api.Client/History/HistoricIncident.cs ================================================ using System; namespace Camunda.Api.Client.History { public class HistoricIncident { /// /// The id of the incident. /// public string Id; /// /// The key of the process definition this incident is associated with. /// public string ProcessDefinitionKey; /// /// The id of the process definition this incident is associated with. /// public string ProcessDefinitionId; /// /// The id of the process instance this incident is associated with. /// public string ProcessInstanceId; /// /// The id of the execution this incident is associated with. /// public string ExecutionId; /// /// The time this incident happened. /// public DateTime CreateTime; /// /// The time this incident has been deleted or resolved. /// public DateTime? EndTime; /// /// The type of incident, for example: failedJobs will be returned in case of an incident which identified a failed job during /// public string IncidentType; /// /// The id of the activity this incident is associated with. /// public string ActivityId; /// /// The id of the associated cause incident which has been triggered. /// public string CauseIncidentId; /// /// The id of the associated root cause incident which has been triggered. /// public string RootCauseIncidentId; /// /// The payload of this incident. /// public string Configuration; /// /// The message of this incident. /// public string IncidentMessage; /// /// The id of the tenant this incident is associated with. /// public string TenantId; /// /// The job definition id the incident is associated with. /// public string JobDefinitionId; /// /// If true, this incident is open. /// public bool Open; /// /// If true, this incident has been deleted. /// public bool Deleted; /// /// If true, this incident has been resolved. /// public bool Resolved; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/History/HistoricIncidentQuery.cs ================================================ using Newtonsoft.Json; using System.Collections.Generic; namespace Camunda.Api.Client.History { public class HistoricIncidentQuery : QueryParameters { /// /// Restricts to incidents that have the given id. /// public string IncidentId; /// /// Restricts to incidents that belong to the given incident type. See the User Guide for a list of incident types. /// public string IncidentType; /// /// Restricts to incidents that have the given incident message. /// public string IncidentMessage; /// /// Restricts to incidents that belong to a process definition with the given id. /// public string ProcessDefinitionId; /// /// Restricts to incidents that belong to a process instance with the given id. /// public string ProcessInstanceId; /// /// Restricts to incidents that belong to an execution with the given id. /// public string ExecutionId; /// /// Restricts to incidents that belong to an activity with the given id. /// public string ActivityId; /// /// Restricts to incidents that have the given incident id as cause incident. /// public string CauseIncidentId; /// /// Restricts to incidents that have the given incident id as root cause incident. /// public string RootCauseIncidentId; /// /// Restricts to incidents that have the given parameter set as configuration. /// public string Configuration; /// /// Restricts to incidents that are open. /// public bool Open; /// /// Restricts to incidents that are resolved. /// public bool Resolved; /// /// Restricts to incidents that are deleted. /// public bool Deleted; /// /// Restricts to incidents that have one of the given comma-separated tenant ids. /// [JsonProperty("tenantIdIn")] public List TenantIds; /// /// Restricts to incidents that have one of the given comma-separated job definition ids. /// [JsonProperty("jobDefinitionIdIn")] public List JobDefinitionIds; /// /// Sort the results lexicographically by a given criterion. Must be used in conjunction with the . /// public HistoricIncidentQuerySorting SortBy; /// /// Sort the results in a given order. Must be used in conjunction with the . /// public SortOrder SortOrder; } public enum HistoricIncidentQuerySorting { IncidentId, CreateTime, EndTime, IncidentType, ExecutionId, ActivityId, ProcessInstanceId, ProcessDefinitionId, CauseIncidentId, RootCauseIncidentId, Configuration, TenantId } } ================================================ FILE: Camunda.Api.Client/History/HistoricIncidentService.cs ================================================ namespace Camunda.Api.Client.History { public class HistoricIncidentService { private IHistoricIncidentRestService _api; internal HistoricIncidentService(IHistoricIncidentRestService api) { _api = api; } public QueryResource Query(HistoricIncidentQuery query = null) => new QueryResource( query, (q, f, m) => _api.GetList(q, f, m), q => _api.GetListCount(q)); } } ================================================ FILE: Camunda.Api.Client/History/HistoricJobLog.cs ================================================ using System; namespace Camunda.Api.Client.History { public class HistoricJobLog { /// /// The id of the log entry. /// public string Id; /// /// The time when the log entry has been written. /// public DateTime Timestamp; /// /// The id of the associated job. /// public string JobId; /// /// The date on which the associated job is supposed to be processed. /// public DateTime JobDueDate; /// /// The number of retries the associated job has left. /// public int JobRetries; /// /// The execution priority the job had when the log entry was created. /// public long JobPriority; /// /// The message of the exception that occurred by executing the associated job. /// public string JobExceptionMessage; /// /// The id of the job definition on which the associated job was created. /// public string JobDefinitionId; /// /// The job definition type of the associated job. /// public string JobDefinitionType; /// /// The job definition configuration type of the associated job. /// public string JobDefinitionConfiguration; /// /// The id of the activity on which the associated job was created. /// public string ActivityId; /// /// The execution id on which the associated job was created. /// public string ExecutionId; /// /// The id of the process instance on which the associated job was created. /// public string ProcessInstanceId; /// /// The id of the process definition which the associated job belongs to. /// public string ProcessDefinitionId; /// /// The key of the process definition which the associated job belongs to. /// public string ProcessDefinitionKey; /// /// The id of the deployment which the associated job belongs to. /// public string DeploymentId; /// /// The id of the tenant that this historic job log entry belongs to. /// public string TenantId; /// /// A flag indicating whether this log represents the creation of the associated job. /// public bool CreationLog; /// /// A flag indicating whether this log represents the failed execution of the associated job. /// public bool FailureLog; /// /// A flag indicating whether this log represents the successful execution of the associated job. /// public bool SuccessLog; /// /// A flag indicating whether this log represents the deletion of the associated job. /// public bool DeletionLog; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/History/HistoricJobLogQuery.cs ================================================ using Newtonsoft.Json; using System.Collections.Generic; namespace Camunda.Api.Client.History { public class HistoricJobLogQuery : SortableQuery { /// /// Filter by historic job log id. /// public string LogId; /// /// Filter by job id. /// public string JobId; /// /// Filter by job exception message. /// public string JobExceptionMessage; /// /// Filter by job definition id. /// public string JobDefinitionId; /// /// Filter by job definition type. /// public string JobDefinitionType; /// /// Filter by job definition configuration. /// public string JobDefinitionConfiguration; /// /// Only include historic job logs which belong to one of the passed activity ids. /// [JsonProperty("activityIdIn")] public List ActivityIds; /// /// Only include historic job logs which belong to one of the passed execution ids. /// [JsonProperty("executionIdIn")] public List ExecutionIds; /// /// Filter by process instance id. /// public string ProcessInstanceId; /// /// Filter by process definition id. /// public string ProcessDefinitionId; /// /// Filter by process definition key. /// public string ProcessDefinitionKey; /// /// Filter by deployment id. /// public string DeploymentId; /// /// Only include creation logs. Value may only be true, as false is the default behavior. /// public bool CreationLog; /// /// Only include failure logs. Value may only be true, as false is the default behavior. /// public bool FailureLog; /// /// Only include success logs. Value may only be true, as false is the default behavior. /// public bool SuccessLog; /// /// Only include deletion logs. Value may only be true, as false is the default behavior. /// public bool DeletionLog; /// /// Only include logs for which the associated job had a priority higher than or equal to the given value. Value must be a valid long value. /// public long JobPriorityHigherThanOrEquals; /// /// Only include logs for which the associated job had a priority lower than or equal to the given value. Value must be a valid long value. /// public long JobPriorityLowerThanOrEquals; /// /// Only include historic job log entries which belong to one of the passed and comma-separated tenant ids. /// [JsonProperty("tenantIdIn")] public List TenantIds; } public enum HistoricJobLogQuerySorting { JobId, JobDefinitionId, JobDueDate, JobRetries, JobPriority, ActivityId, Timestamp, ExecutionId, ProcessInstanceId, ProcessDefinitionId, ProcessDefinitionKey, DeploymentId, Occurrence, TenantId } } ================================================ FILE: Camunda.Api.Client/History/HistoricJobLogResource.cs ================================================ using System.Threading.Tasks; namespace Camunda.Api.Client.History { public class HistoricJobLogResource { private IHistoricJobLogRestService _api; private string _historicJobLogId; internal HistoricJobLogResource(IHistoricJobLogRestService api, string historicJobLogId) { _api = api; _historicJobLogId = historicJobLogId; } /// /// Retrieves a historic job log by id. /// public Task Get() => _api.Get(_historicJobLogId); /// /// Retrieves the corresponding exception stacktrace to the passed historic job log by id. /// public async Task GetStacktrace() => await (await _api.GetStacktrace(_historicJobLogId)).Content.ReadAsStringAsync(); } } ================================================ FILE: Camunda.Api.Client/History/HistoricJobLogService.cs ================================================ namespace Camunda.Api.Client.History { public class HistoricJobLogService { private IHistoricJobLogRestService _api; internal HistoricJobLogService(IHistoricJobLogRestService api) { _api = api; } public QueryResource Query(HistoricJobLogQuery query = null) => new QueryResource(query, _api.GetList, _api.GetListCount); /// The id of the log entry. public HistoricJobLogResource this[string historicJobLogId] => new HistoricJobLogResource(_api, historicJobLogId); } } ================================================ FILE: Camunda.Api.Client/History/HistoricProcessDefinitionService.cs ================================================ using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.History { public class HistoricProcessDefinitionService { private IHistoricProcessDefinitionRestService _api; internal HistoricProcessDefinitionService(IHistoricProcessDefinitionRestService api) { _api = api; } /// /// Retrieves historic statistics of a given process definition, grouped by activities. These statistics include the number of running activity instances and, optionally, the number of canceled activity instances, finished activity instances and activity instances which completed a scope (i.e., in BPMN 2.0 manner: a scope is completed by an activity instance when the activity instance consumed a token but did not emit a new token). /// /// /// /// public Task> GetHistoricActivityStatistics(string id, HistoricActivityStatistics historicActivityStatistics) => _api.GetHistoricActivityStatistics(id, historicActivityStatistics); /// /// Retrieves a report about a process definition and finished process instances relevant to history cleanup (see History cleanup) so that you can tune the history time to live. These reports include the count of the finished historic process instances, cleanable process instances and basic process definition data - id, key, name and version. The size of the result set can be retrieved by using the Get Cleanable Process Instance Report Count method. /// /// /// public Task> GetCleanableProcessInstanceReport(CleanableProcessInstanceReport cleanableProcessInstanceReport) => _api.GetCleanableProcessInstanceReport(cleanableProcessInstanceReport); /// /// Queries for the number of report results about a process definition and finished process instances relevant to history cleanup (see History cleanup). Takes the same parameters as the Get Cleanable Process Instance Report method. /// /// /// public async Task GetCleanableProcessInstanceReportCount(CleanableProcessInstanceReportCount cleanableProcessInstanceReportCount) => (await _api.GetCleanableProcessInstanceReportCount(cleanableProcessInstanceReportCount)).Count; } } ================================================ FILE: Camunda.Api.Client/History/HistoricProcessInstance.cs ================================================ using System; using System.Runtime.Serialization; namespace Camunda.Api.Client.History { public class HistoricProcessInstance { /// /// The id of the process instance. /// public string Id; /// /// The business key of the process instance. /// public string BusinessKey; /// /// The id of the process definition that this process instance belongs to. /// public string ProcessDefinitionId; /// /// The key of the process definition that this process instance belongs to. /// public string ProcessDefinitionKey; /// /// The name of the process definition that this process instance belongs to. /// public string ProcessDefinitionName; /// /// The time the instance was started. /// public DateTime StartTime; /// /// The time the instance ended. /// public DateTime EndTime; /// /// The time the instance took to finish (in milliseconds). /// public long DurationInMillis; /// /// The id of the user who started the process instance. /// public string StartUserId; /// /// The id of the initial activity that was executed (e.g., a start event). /// public string StartActivityId; /// /// The provided delete reason in case the process instance was canceled during execution./// public string DeleteReason; /// /// The id of the parent process instance, if it exists. /// public string SuperProcessInstanceId; /// /// The id of the parent case instance, if it exists. /// public string SuperCaseInstanceId; /// /// The id of the parent case instance, if it exists. /// public string CaseInstanceId; /// /// The tenant id of the process instance. /// public string TenantId; /// /// Last state of the process instance. /// public ProcessInstanceState State; public override string ToString() => Id; } public enum ProcessInstanceState { /// /// Running process instance /// [EnumMember(Value = "ACTIVE")] Active, /// /// Suspended process instances /// [EnumMember(Value = "SUSPENDED")] Suspended, /// /// Suspended process instances /// [EnumMember(Value = "COMPLETED")] Completed, /// /// Suspended process instances /// [EnumMember(Value = "EXTERNALLY_TERMINATED")] ExternallyTerminated, /// /// Terminated internally, for instance by terminating boundary event /// [EnumMember(Value = "INTERNALLY_TERMINATED")] InternallyTerminated, } } ================================================ FILE: Camunda.Api.Client/History/HistoricProcessInstanceQuery.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; namespace Camunda.Api.Client.History { public class HistoricProcessInstanceQuery : SortableQuery { /// /// Filter by process instance id. /// public string ProcessInstanceId; /// /// Filter by process instance ids. /// public List ProcessInstanceIds; /// /// Filter by the process definition the instances run on. /// public string ProcessDefinitionId; /// /// Filter by the name of the process definition the instances run on. /// public string ProcessDefinitionName; /// /// Filter by process definition names that the parameter is a substring of. /// public string ProcessDefinitionNameLike; /// /// Filter by process instance business key. /// [JsonProperty("processInstanceBusinessKey")] public string BusinessKey; /// /// Filter by process instance business key that the parameter is a substring of. /// [JsonProperty("processInstanceBusinessKeyLike")] public string BusinessKeyLike; /// /// Only include finished process instances. /// public bool Finished = false; /// /// Only include unfinished process instances. /// public bool Unfinished = false; /// /// Only include process instances which have an incident. /// public bool WithIncidents = false; /// /// Only include process instances which have an incident in status either open or resolved. To get all process instances, use the query parameter withIncidents. /// public string IncidentStatus; /// /// Filter by the incident message. Exact match. /// public string IncidentMessage; /// /// Filter by the incident message that the parameter is a substring of. /// public string IncidentMessageLike; /// /// Only include process instances that were started by the given user. /// public string StartedBy; /// /// Restrict query to all process instances that are sub process instances of the given process instance. Takes a process instance id. /// public string SuperProcessInstanceId; /// /// Restrict query to one process instance that has a sub process instance with the given id. /// public string SubProcessInstanceId; /// /// Restrict query to all process instances that are sub process instances of the given case instance. Takes a case instance id. /// public string SuperCaseInstanceId; /// /// Restrict query to one process instance that has a sub case instance with the given id. /// public string SubCaseInstanceId; /// /// Restrict to instances that were started before the given date. /// public DateTime? StartedBefore; /// /// Restrict to instances that were started after the given date. /// public DateTime? StartedAfter; /// /// Restrict to instances that were finished before the given date. /// public DateTime? FinishedBefore; /// /// Restrict to instances that were finished after the given date. /// public DateTime? FinishedAfter; /// /// Filter by the key of the process definition the instances run on. /// public string ProcessDefinitionKey; /// /// Exclude instances that belong to a set of process definitions. An array of process definition keys. /// public List ProcessDefinitionKeyNotIn; /// /// Filter by a list of tenant ids. A process instance must have one of the given tenant ids. Must be an array of Strings. /// [JsonProperty("tenantIdIn")] public List TenantIds; /// /// Restrict query to all process instances that are sub process instances of the given case instance. Takes a case instance id. /// public string CaseInstanceId; /// /// Restrict to instances that have an active activity with one of given ids. /// [JsonProperty("activeActivityIdIn")] public List ActiveActivityIds; /// /// Array to only include process instances that have/had variables with certain values. /// public List Variables = new List(); } public enum HistoricProcessInstanceQuerySorting { InstanceId, DefinitionId, BusinessKey, StartTime, EndTime, Duration, TenantId } } ================================================ FILE: Camunda.Api.Client/History/HistoricProcessInstanceReport.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; namespace Camunda.Api.Client.History { public class HistoricProcessInstanceReport : AbstractReport { /// /// Filter by process definition ids. /// [JsonProperty("processDefinitionIdIn")] public List ProcessDefinitionIds; /// /// Filter by process definition keys. /// [JsonProperty("processDefinitionKeyIn")] public List ProcessDefinitionKeys; /// /// Restrict to instances that were started after the given date. /// public DateTime? StartedAfter; /// /// Restrict to instances that were started before the given date. /// public DateTime? StartedBefore; public HistoricProcessInstanceReport() { ReportType = ReportType.Duration; } } } ================================================ FILE: Camunda.Api.Client/History/HistoricProcessInstanceResource.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Camunda.Api.Client.History { public class HistoricProcessInstanceResource { private IHistoricProcessInstanceRestService _api; private string _processInstanceId; internal HistoricProcessInstanceResource(IHistoricProcessInstanceRestService api, string processInstanceId) { _api = api; _processInstanceId = processInstanceId; } /// /// Retrieves a historic process instance by id, according to the interface in the engine. /// public Task Get() => _api.Get(_processInstanceId); /// /// Deletes a process instance from the history by id. /// public Task Delete() => _api.Delete(_processInstanceId); } } ================================================ FILE: Camunda.Api.Client/History/HistoricProcessInstanceService.cs ================================================ using Camunda.Api.Client.Batch; using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.History { public class HistoricProcessInstanceService { private IHistoricProcessInstanceRestService _api; internal HistoricProcessInstanceService(IHistoricProcessInstanceRestService api) { _api = api; } public QueryResource Query( HistoricProcessInstanceQuery query = null) => new QueryResource(query, _api.GetList, _api.GetListCount); /// The id of the historic process instance to be retrieved. public HistoricProcessInstanceResource this[string processInstanceId] => new HistoricProcessInstanceResource(_api, processInstanceId); /// /// Delete multiple historic process instances asynchronously (batch). /// At least or has to be provided. /// If both are provided then all instances matching query criterion and instances from the list will be deleted. /// public Task Delete(DeleteHistoricProcessInstances deleteHistoricProcessInstances) => _api.DeleteAsync(deleteHistoricProcessInstances); /// /// Retrieves a report about the duration of completed process instances, grouped by a period. These reports include the maximum, minimum and average duration of all completed process instances which were started in a given period. /// /// This only includes historic data. public Task> GetDurationReport(HistoricProcessInstanceReport historicProcessInstanceReport) => _api.GetDurationReport(historicProcessInstanceReport); } } ================================================ FILE: Camunda.Api.Client/History/HistoricTask.cs ================================================ using Camunda.Api.Client.UserTask; using System; using System.Runtime.Serialization; namespace Camunda.Api.Client.History { public class HistoricTask: UserTaskInfo { /// /// Whether the task belongs to a process instance that is suspended. /// public bool Suspended; } } ================================================ FILE: Camunda.Api.Client/History/HistoricTaskCountReport.cs ================================================ using System; namespace Camunda.Api.Client.History { public class HistoricTaskCountReport : AbstractReport { /// /// Restrict to tasks that were completed before the given date. By default*, the date must have the format yyyy-MM-dd'T'HH:mm:ss.SSSZ, e.g., 2013-01-23T14:42:45.000+0200. /// public DateTime? CompletedAfter; /// ///Restrict to tasks that were completed before the given date. By default*, the date must have the format yyyy-MM-dd'T'HH:mm:ss.SSSZ, e.g., 2013-01-23T14:42:45.000+0200. /// public DateTime? CompletedBefore; /// /// When the report type is set to count, this parameter is Mandatory. Groups the tasks report by a given criterion. Valid values are taskName and processDefinition. /// public GroupBy GroupBy; public HistoricTaskCountReport() { ReportType = ReportType.Count; } } } ================================================ FILE: Camunda.Api.Client/History/HistoricTaskDurationReport.cs ================================================ using System; namespace Camunda.Api.Client.History { public class HistoricTaskDurationReport : AbstractReport { /// /// Restrict to tasks that were completed before the given date. By default*, the date must have the format yyyy-MM-dd'T'HH:mm:ss.SSSZ, e.g., 2013-01-23T14:42:45.000+0200. /// public DateTime? CompletedAfter; /// ///Restrict to tasks that were completed before the given date. By default*, the date must have the format yyyy-MM-dd'T'HH:mm:ss.SSSZ, e.g., 2013-01-23T14:42:45.000+0200. /// public DateTime? CompletedBefore; /// /// When the report type is set to count, this parameter is Mandatory. Groups the tasks report by a given criterion. Valid values are taskName and processDefinition. /// public GroupBy? GroupBy; public HistoricTaskDurationReport() { ReportType = ReportType.Duration; } } } ================================================ FILE: Camunda.Api.Client/History/HistoricTaskQuery.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; namespace Camunda.Api.Client.History { public class HistoricTaskQuery : SortableQuery { /// /// Filter by task id. /// public string TaskId; /// /// Filter by parent task id. /// public string TaskParentTaskId; /// /// Filter by process instance id. /// public string ProcessInstanceId; /// /// Filter by process instance business key. /// [JsonProperty("processInstanceBusinessKey")] public string BusinessKey; /// /// Filter by process instances with one of the give business keys. The keys need to be in a comma-separated list. /// [JsonProperty("ProcessInstanceBusinessKeyIn")] public List ProcessInstanceBusinessKeys; /// /// Filter by process instance business key that has the parameter value as a substring. /// [JsonProperty("processInstanceBusinessKeyLike")] public string BusinessKeyLike; /// /// Filter by the id of the execution that executed the task. /// public string ExecutionId; /// /// Filter by process definition id. /// public string ProcessDefinitionId; /// /// Restrict to tasks that belong to a process definition with the given key. /// public string ProcessDefinitionKey; /// /// Restrict to tasks that belong to a process definition with the given name. /// public string ProcessDefinitionName; /// /// Filter by case instance id. /// public string CaseInstanceId; /// /// Filter by the id of the case execution that executed the task. /// public string CaseExecutionId; /// /// Filter by case definition id. /// public string CaseDefinitionId; /// /// Restrict to tasks that belong to a case definition with the given key. /// public string CaseDefinitionKey; /// /// Restrict to tasks that belong to a case definition with the given name. /// public string CaseDefinitionName; /// /// Only include tasks which belong to one of the passed and comma-separated activity instance ids. /// [JsonProperty("activityInstanceIdIn")] public List ActivityInstanceIds; /// /// Restrict to tasks that have the given name. /// public string TaskName; /// /// Restrict to tasks that have a name with the given parameter value as substring. /// public string TaskNameLike; /// /// Restrict to tasks that have the given description. /// public string TaskDescription; /// /// Restrict to tasks that have a description that has the parameter value as a substring. /// public string TaskDescriptionLike; /// /// Restrict to tasks that have the given key. /// public string TaskDefinitionKey; /// /// Restrict to tasks that have one of the passed and comma-separated task definition keys. /// [JsonProperty("taskDefinitionKeyIn")] public List TaskDefinitionKeys; /// /// Restrict to tasks that have the given delete reason. /// public string TaskDeleteReason; /// /// Restrict to tasks that have a delete reason that has the parameter value as a substring. /// public string TaskDeleteReasonLike; /// /// Restrict to tasks that the given user is assigned to. /// public string TaskAssignee; /// /// Restrict to tasks that are assigned to users with the parameter value as a substring. /// public string TaskAssigneeLike; /// /// Restrict to tasks that the given user owns. /// public string TaskOwner; /// /// Restrict to tasks that are owned by users with the parameter value as a substring. /// public string TaskOwnerLike; /// /// Restrict to tasks that have the given priority. /// public long? TaskPriority; /// /// If set to true, restricts the query to all tasks that are assigned. /// public bool? Assigned; /// /// If set to true, restricts the query to all tasks that are unassigned. /// public bool? Unassigned; /// /// Only include finished tasks. Value may only be true, as false is the default behavior. /// public bool? Finished; /// /// Only include unfinished tasks. Value may only be true, as false is the default behavior. /// public bool? Unfinished; /// /// Only include tasks of finished processes. Value may only be true, as false is the default behavior. /// public bool? ProcessFinished; /// /// Only include tasks of unfinished processes. Value may only be true, as false is the default behavior. /// public bool? ProcessUnfinished; /// /// Restrict to tasks that are due on the given date. By default*, the date must have the format yyyy-MM-dd'T'HH:mm:ss.SSSZ, e.g., 2013-01-23T14:42:45.000+0200. /// public DateTime? TaskDueDate; /// /// Restrict to tasks that are due before the given date. By default*, the date must have the format yyyy-MM-dd'T'HH:mm:ss.SSSZ, e.g., 2013-01-23T14:42:45.000+0200. /// public DateTime? TaskDueDateBefore; /// /// Restrict to tasks that are due after the given date. By default*, the date must have the format yyyy-MM-dd'T'HH:mm:ss.SSSZ, e.g., 2013-01-23T14:42:45.000+0200. /// public DateTime? TaskDueDateAfter; /// /// Restrict to tasks that have a followUp date on the given date. By default*, the date must have the format yyyy-MM-dd'T'HH:mm:ss.SSSZ, e.g., 2013-01-23T14:42:45.000+0200. /// public DateTime? TaskFollowUpDate; /// /// Restrict to tasks that have a followUp date before the given date. By default*, the date must have the format yyyy-MM-dd'T'HH:mm:ss.SSSZ, e.g., 2013-01-23T14:42:45.000+0200. /// public DateTime? TaskFollowUpDateBefore; /// /// Restrict to tasks that have a followUp date after the given date. By default*, the date must have the format yyyy-MM-dd'T'HH:mm:ss.SSSZ, e.g., 2013-01-23T14:42:45.000+0200. /// public DateTime? TaskFollowUpDateAfter; /// /// Restrict to tasks that were started before the given date. By default*, the date must have the format yyyy-MM-dd'T'HH:mm:ss.SSSZ, e.g., 2013-01-23T14:42:45.000+0200. /// public DateTime? StartedBefore; /// /// Restrict to tasks that were started after the given date. By default*, the date must have the format yyyy-MM-dd'T'HH:mm:ss.SSSZ, e.g., 2013-01-23T14:42:45.000+0200. /// public DateTime? StartedAfter; /// /// Restrict to tasks that were finished before the given date. By default*, the date must have the format yyyy-MM-dd'T'HH:mm:ss.SSSZ, e.g., 2013-01-23T14:42:45.000+0200. /// public DateTime? FinishedBefore; /// /// Restrict to tasks that were finished after the given date. By default*, the date must have the format yyyy-MM-dd'T'HH:mm:ss.SSSZ, e.g., 2013-01-23T14:42:45.000+0200. /// public DateTime? FinishedAfter; /// /// Filter by a comma-separated list of tenant ids. A task instance must have one of the given tenant ids. /// [JsonProperty("tenantIdIn")] public List TenantIds; /// /// Only include historic task instances that belong to no tenant. Value may only be true, as false is the default behavior. /// public bool? WithoutTenantId; /// /// Only include tasks that have variables with certain values. Variable filtering expressions are comma-separated and are structured as follows: ///A valid parameter value has the form key_operator_value.key is the variable name, operator is the comparison operator to be used and value the variable value. /// Note: Values are always treated as String objects on server side. ///Valid operator values are: eq - equal to; neq - not equal to; gt - greater than; gteq - greater than or equal to; lt - lower than; lteq - lower than or equal to; like. /// key and value may not contain underscore or comma characters. /// public List TaskVariables; /// /// Only include tasks that belong to process instances that have variables with certain values. Variable filtering expressions are comma-separated and are structured as follows: ///A valid parameter value has the form key_operator_value.key is the variable name, operator is the comparison operator to be used and value the variable value. /// Note: Values are always treated as String objects on server side. ///Valid operator values are: eq - equal to; neq - not equal to; gt - greater than; gteq - greater than or equal to; lt - lower than; lteq - lower than or equal to; like. ///key and value may not contain underscore or comma characters. /// public List ProcessVariables; /// /// Match the variable name provided in taskVariables and processVariables case-insensitively. If set to true variableName and variablename are treated as equal. /// [JsonProperty("variableNamesIgnoreCase")] public bool? VariableNamesIgnoreCase; /// /// Match the variable value provided in taskVariables and processVariables case-insensitively. If set to true variableValue and variablevalue are treated as equal. /// [JsonProperty("variableValuesIgnoreCase")] public bool? VariableValuesIgnoreCase; /// /// Restrict to tasks with a historic identity link to the given user /// public string TaskInvolvedUser; /// /// Restrict to tasks with a historic identity link to the given group. /// public string TaskInvolvedGroup; /// /// Restrict to tasks with a historic identity link to the given candidate user. /// public string TaskHadCandidateUser; /// /// Restrict to tasks with a historic identity link to the given candidate group. /// public string TaskHadCandidateGroup; /// /// Only include tasks which have a candidate group. Value may only be true, as false is the default behavior. /// public bool? WithCandidateGroups; /// /// Only include tasks which have no candidate group. Value may only be true, as false is the default behavior. /// public bool? WithoutCandidateGroups; } public enum HistoricTaskSorting { TaskId, ActivityInstanceId, ProcessDefinitionId, ProcessInstanceId, ExecutionId, Duration, EndTime, StartTime, TaskName, TaskDescription, Assignee, Owner, DueDate, FollowUpDate, DeleteReason, TaskDefinitionKey, Priority, CaseDefinitionId, CaseInstanceId, CaseExecutionId, TenantId } } ================================================ FILE: Camunda.Api.Client/History/HistoricUserTaskService.cs ================================================ using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.History { public class HistoricUserTaskService { private IHistoricUserTaskRestService _api; internal HistoricUserTaskService(IHistoricUserTaskRestService api) { _api = api; } public QueryResource Query(HistoricTaskQuery query = null) => new QueryResource(query, _api.GetList, _api.GetListCount); /// /// Retrieves a report of completed tasks. When the report type is set to count, the report contains a list of completed task counts where an entry contains the task name, the definition key of the task, the process definition id, the process definition key, the process definition name and the count of how many tasks were completed for the specified key in a given period. When the report type is set to duration, the report contains a minimum, maximum and average duration value of all completed task instances in a given period. /// /// /// public Task> GetDurationReport(HistoricTaskDurationReport historicTaskReport) => _api.GetDurationReport(historicTaskReport); /// /// Retrieves a report of completed tasks. When the report type is set to count, the report contains a list of completed task counts where an entry contains the task name, the definition key of the task, the process definition id, the process definition key, the process definition name and the count of how many tasks were completed for the specified key in a given period. When the report type is set to duration, the report contains a minimum, maximum and average duration value of all completed task instances in a given period. /// /// /// public Task> GetCountReport(HistoricTaskCountReport historicTaskReport) => _api.GetCountReport(historicTaskReport); } } ================================================ FILE: Camunda.Api.Client/History/HistoricVariableInstance.cs ================================================ using System.Runtime.Serialization; namespace Camunda.Api.Client.History { public class HistoricVariableInstance : VariableValue { /// /// The id of the variable instance. /// public string Id; /// /// The name of the variable instance. /// public string Name; /// /// The key of the process definition the variable instance belongs to. /// public string ProcessDefinitionKey; /// /// The id of the process definition the variable instance belongs to. /// public string ProcessDefinitionId; /// /// The id the process instance belongs to. /// public string ProcessInstanceId; /// /// The execution id the variable instance belongs to. /// public string ExecutionId; /// /// The id of the activity instance in which the variable is valid. /// public string ActivityInstanceId; /// /// The key of the case definition the variable instance belongs to. /// public string CaseDefinitionKey; /// /// The id of the case definition the variable instance belongs to. /// public string CaseDefinitionId; /// /// The case instance id the variable instance belongs to. /// public string CaseInstanceId; /// /// The case execution id the variable instance belongs to. /// public string CaseExecutionId; /// /// The id of the task the variable instance belongs to. /// public string TaskId; /// /// The id of the tenant that this variable instance belongs to. /// public string ErrorMessage; /// /// An error message in case a Java Serialized Object could not be de-serialized. /// public string TenantId; /// /// The current state of the variable. /// public HistoricVariableInstanceState State; public override string ToString() => $"{Name} = {base.ToString()}"; } public enum HistoricVariableInstanceState { /// /// Created /// [EnumMember(Value = "CREATED")] Created, /// /// Deleted /// [EnumMember(Value = "DELETED")] Deleted, } } ================================================ FILE: Camunda.Api.Client/History/HistoricVariableInstanceQuery.cs ================================================ using Newtonsoft.Json; using System.Collections.Generic; namespace Camunda.Api.Client.History { public class HistoricVariableInstanceQuery : SortableQuery { /// /// Filter by the process instance the variable belongs to. /// public string ProcessInstanceId; /// /// Filter by the case instance the variable belongs to. /// public string CaseInstanceId; /// /// Filter by variable name. /// public string VariableName; /// /// Restrict to variables with a name like the parameter. /// public string VariableNameLike; /// /// Filter by variable value. May be String, Number or Boolean. /// public object VariableValue; /// /// Only include historic variable instances which belong to one of the passed execution ids. /// [JsonProperty("executionIdIn")] public List ExecutionIds; /// /// Only include historic variable instances which belong to one of the passed task ids. /// [JsonProperty("taskIdIn")] public List TaskIds; /// /// Only include historic variable instances which belong to one of the passed activity instance ids. /// [JsonProperty("activityInstanceIdIn")] public List ActivityInstanceIds; /// /// Only include historic variable instances which belong to one of the passed case execution ids. /// [JsonProperty("CaseExecutionIdIn")] public List CaseExecutionIds; /// /// Only include historic variable instances which belong to one of the passed case activity ids. /// [JsonProperty("caseActivityIdIn")] public List CaseActivityIds; /// /// Only include historic variable instances which belong to one of the passed process instance ids. /// [JsonProperty("processInstanceIdIn")] public List ProcessInstanceIds; /// /// Only include historic variable instances which belong to one of the passed and comma-separated tenant ids. /// [JsonProperty("tenantIdIn")] public List TenantIds; } public enum HistoricVariableInstanceQuerySorting { InstanceId, VariableName, TenantId } } ================================================ FILE: Camunda.Api.Client/History/HistoricVariableInstanceQueryResource.cs ================================================ using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.History { public class HistoricVariableInstanceQueryResource { private IHistoricVariableInstanceRestService _api; private HistoricVariableInstanceQuery _query; internal HistoricVariableInstanceQueryResource(IHistoricVariableInstanceRestService api, HistoricVariableInstanceQuery query) { _api = api; _query = query; } /// /// Query for variable instances that fulfill given parameters. /// public Task> List() => _api.GetList(_query, null, null); /// /// Query for variable instances that fulfill given parameters. /// /// Pagination of results. Specifies the index of the first result to return. /// Pagination of results. Specifies the maximum number of results to return. Will return less results if there are no more results left. /// Determines whether serializable variable values (typically variables that store custom Java objects) should be deserialized on server side. public Task> List(int firstResult, int maxResults, bool deserializeValues = true) => _api.GetList(_query, firstResult, maxResults, deserializeValues); /// /// Get number of variable instances that fulfill given parameters. /// public async Task Count() => (await _api.GetListCount(_query)).Count; } } ================================================ FILE: Camunda.Api.Client/History/HistoricVariableInstanceResource.cs ================================================ using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.History { public class HistoricVariableInstanceResource { private IHistoricVariableInstanceRestService _api; private string _variableId; internal HistoricVariableInstanceResource(IHistoricVariableInstanceRestService api, string variableId) { _api = api; _variableId = variableId; } /// /// Retrieves a historic variable by id. /// /// Determines whether serializable variable values (typically variables that store custom Java objects) should be deserialized on server side. public Task Get(bool deserializeValue = true) => _api.Get(_variableId, deserializeValue); /// /// Retrieves the content of a historic variable by id. Applicable for variables that are serialized as binary data. /// /// public async Task GetBinary() => (await _api.GetBinaryVariable(_variableId)).Content; } } ================================================ FILE: Camunda.Api.Client/History/HistoricVariableInstanceService.cs ================================================ namespace Camunda.Api.Client.History { public class HistoricVariableInstanceService { private IHistoricVariableInstanceRestService _api; internal HistoricVariableInstanceService(IHistoricVariableInstanceRestService api) { _api = api; } public HistoricVariableInstanceQueryResource Query(HistoricVariableInstanceQuery query = null) => new HistoricVariableInstanceQueryResource(_api, query ?? new HistoricVariableInstanceQuery()); /// The id of the variable instance. public HistoricVariableInstanceResource this[string variableId] => new HistoricVariableInstanceResource(_api, variableId); } } ================================================ FILE: Camunda.Api.Client/History/HistoryService.cs ================================================ namespace Camunda.Api.Client.History { public class HistoryService { private CamundaClient.HistoricApi _api; internal HistoryService(CamundaClient.HistoricApi api) { _api = api; } /// /// Case Definition /// public HistoricCaseDefinitionService CaseDefinitions => new HistoricCaseDefinitionService(_api.CaseDefinitionApi.Value); /// /// Case Instance /// public HistoricCaseInstanceService CaseInstances => new HistoricCaseInstanceService(_api.CaseInstanceApi.Value); /// /// Case Activity Instance /// public HistoricCaseActivityInstanceService CaseActivityInstances => new HistoricCaseActivityInstanceService(_api.CaseActivityInstanceApi.Value); /// /// Decision Instance /// public HistoricDecisionInstanceService DecisionInstances => new HistoricDecisionInstanceService(_api.DecisionInstanceApi.Value); /// /// Process Instance /// public HistoricProcessInstanceService ProcessInstances => new HistoricProcessInstanceService(_api.ProcessInstanceApi.Value); /// /// Activity Instance /// public HistoricActivityInstanceService ActivityInstances => new HistoricActivityInstanceService(_api.ActivityInstanceApi.Value); /// /// Job Log /// public HistoricJobLogService JobLogs => new HistoricJobLogService(_api.JobLogApi.Value); /// /// Incident /// public HistoricIncidentService Incidents => new HistoricIncidentService(_api.IncidentApi.Value); /// /// Variable Instance /// public HistoricVariableInstanceService VariableInstances => new HistoricVariableInstanceService(_api.VariableInstanceApi.Value); /// /// Detail /// public HistoricDetailService Detail => new HistoricDetailService(_api.DetailApi.Value); /// /// User Task /// public HistoricUserTaskService UserTasks => new HistoricUserTaskService(_api.UserTaskApi.Value); /// /// Process Definition /// public HistoricProcessDefinitionService ProcessDefinitions => new HistoricProcessDefinitionService(_api.ProcessDefinitionApi.Value); /// /// External Tas kLog /// public HistoricExternalTaskLogService ExternalTaskLogs => new HistoricExternalTaskLogService(_api.ExternalTaskLogApi.Value); } } ================================================ FILE: Camunda.Api.Client/History/IHistoricActivityInstanceRestService.cs ================================================ using Refit; using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.History { internal interface IHistoricActivityInstanceRestService { [Get("/history/activity-instance/{id}")] Task Get(string id); [Post("/history/activity-instance")] Task> GetList([Body] HistoricActivityInstanceQuery query, int? firstResult, int? maxResults); [Post("/history/activity-instance/count")] Task GetListCount([Body] HistoricActivityInstanceQuery query); } } ================================================ FILE: Camunda.Api.Client/History/IHistoricCaseActivityInstanceRestService.cs ================================================ using Refit; using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.History { internal interface IHistoricCaseActivityInstanceRestService { [Get("/history/case-activity-instance/{id}")] Task Get(string id); [Get("/history/case-activity-instance")] Task> GetList(string caseInstanceId, int? firstResult, int? maxResults); [Get("/history/case-activity-instance/count")] Task GetListCount(string caseInstanceId); } } ================================================ FILE: Camunda.Api.Client/History/IHistoricCaseDefinitionRestService.cs ================================================ using Refit; using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.History { internal interface IHistoricCaseDefinitionRestService { [Get("/history/case-definition/{id}/statistics")] Task> GetActivityStatistics(string id); } } ================================================ FILE: Camunda.Api.Client/History/IHistoricCaseInstanceRestService.cs ================================================ using Refit; using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.History { internal interface IHistoricCaseInstanceRestService { [Get("/history/case-instance/{id}")] Task Get(string id); [Post("/history/case-instance")] Task> GetList([Body]HistoricCaseInstanceQuery query, int? firstResult, int? maxResults); [Post("/history/case-instance/count")] Task GetListCount([Body] HistoricCaseInstanceQuery query); } } ================================================ FILE: Camunda.Api.Client/History/IHistoricDecisionInstanceRestService.cs ================================================ using Refit; using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.History { internal interface IHistoricDecisionInstanceRestService { [Get("/history/decision-instance/{id}")] Task Get(string id); [Get("/history/decision-instance")] Task> GetList(QueryDictionary query, int? firstResult, int? maxResults); [Get("/history/decision-instance/count")] Task GetListCount(QueryDictionary query); } } ================================================ FILE: Camunda.Api.Client/History/IHistoricDetailRestService.cs ================================================ using Refit; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.History { internal interface IHistoricDetailRestService { [Get("/history/detail/{id}")] Task Get(string id); [Get("/history/detail")] Task> GetList(QueryDictionary query, int? firstResult, int? maxResults); [Get("/history/detail/count")] Task GetListCount(QueryDictionary query); [Get("/history/detail/{id}/data")] Task GetData(string id); } } ================================================ FILE: Camunda.Api.Client/History/IHistoricExternalTaskLogRestService.cs ================================================ using Refit; using System; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.History { internal interface IHistoricExternalTaskLogRestService { [Post("/history/external-task-log")] Task> GetList([Body] HistoricExternalTaskLogQuery query, int? firstResult, int? maxResults); [Post("/history/external-task-log/count")] Task GetListCount([Body] HistoricExternalTaskLogQuery query); [Get("/history/external-task-log/{id}")] Task Get(string id); [Get("/history/external-task-log/{id}/error-details")] Task GetErrorDetails(string id); } } ================================================ FILE: Camunda.Api.Client/History/IHistoricIncidentRestService.cs ================================================ using Refit; using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.History { internal interface IHistoricIncidentRestService { [Get("/history/incident")] Task> GetList(QueryDictionary query, int? firstResult, int? maxResults); [Get("/history/incident/count")] Task GetListCount(QueryDictionary query); } } ================================================ FILE: Camunda.Api.Client/History/IHistoricJobLogRestService.cs ================================================ using Refit; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.History { internal interface IHistoricJobLogRestService { [Get("/history/job-log/{id}")] Task Get(string id); [Post("/history/job-log")] Task> GetList([Body] HistoricJobLogQuery query, int? firstResult, int? maxResults); [Post("/history/job-log/count")] Task GetListCount([Body] HistoricJobLogQuery query); [Get("/history/job-log/{id}/stacktrace")] Task GetStacktrace(string id); } } ================================================ FILE: Camunda.Api.Client/History/IHistoricProcessDefinitionRestService.cs ================================================ using Refit; using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.History { internal interface IHistoricProcessDefinitionRestService { [Get("/history/process-definition/{id}/statistics")] Task> GetHistoricActivityStatistics(string id, QueryDictionary query); [Get("/history/process-definition/cleanable-process-instance-report")] Task> GetCleanableProcessInstanceReport(QueryDictionary query); [Get("/history/process-definition/cleanable-process-instance-report/count")] Task GetCleanableProcessInstanceReportCount(QueryDictionary query); } } ================================================ FILE: Camunda.Api.Client/History/IHistoricProcessInstanceRestService.cs ================================================ using Camunda.Api.Client.Batch; using Refit; using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.History { internal interface IHistoricProcessInstanceRestService { [Get("/history/process-instance/{id}")] Task Get(string id); [Post("/history/process-instance")] Task> GetList([Body] HistoricProcessInstanceQuery query, int? firstResult, int? maxResults); [Post("/history/process-instance/count")] Task GetListCount([Body] HistoricProcessInstanceQuery query); [Delete("/history/process-instance/{id}")] Task Delete(string id); [Get("/history/process-instance/report")] Task> GetDurationReport(QueryDictionary query); [Post("/history/process-instance/delete")] Task DeleteAsync([Body] DeleteHistoricProcessInstances deleteHistoricProcessInstances); } } ================================================ FILE: Camunda.Api.Client/History/IHistoricUserTaskRestService.cs ================================================ using Refit; using System; using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.History { internal interface IHistoricUserTaskRestService { [Post("/history/task")] Task> GetList([Body] HistoricTaskQuery query, int? firstResult, int? maxResults); [Post("/history/task/count")] Task GetListCount([Body] HistoricTaskQuery query); [Get("/history/task/report")] Task> GetDurationReport(QueryDictionary query); [Get("/history/task/report")] Task> GetCountReport(QueryDictionary query); } } ================================================ FILE: Camunda.Api.Client/History/IHistoricVariableInstanceRestService.cs ================================================ using Refit; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.History { internal interface IHistoricVariableInstanceRestService { [Get("/history/variable-instance/{id}")] Task Get(string id, bool deserializeValue = true); [Post("/history/variable-instance")] Task> GetList([Body] HistoricVariableInstanceQuery query, int? firstResult, int? maxResults, bool deserializeValues = true); [Post("/history/variable-instance/count")] Task GetListCount([Body] HistoricVariableInstanceQuery query); [Get("/history/variable-instance/{id}/data")] Task GetBinaryVariable(string id); } } ================================================ FILE: Camunda.Api.Client/History/ReportResult.cs ================================================ namespace Camunda.Api.Client.History { public class ReportResult { /// /// Specifies a timespan within a year. The period must be interpreted in conjunction with the returned . /// public int Period; /// /// The unit of the given period. /// public PeriodUnit PeriodUnit; } } ================================================ FILE: Camunda.Api.Client/HttpContentMultipartItem.cs ================================================ using Refit; using System; using System.Net.Http; namespace Camunda.Api.Client { public class HttpContentMultipartItem : MultipartItem where T : HttpContent { public HttpContentMultipartItem(T content, string fileName = "") : base(fileName, null) { Content = content ?? throw new ArgumentNullException("content"); } public T Content { get; set; } protected override HttpContent CreateContent() { return Content; } } } ================================================ FILE: Camunda.Api.Client/IVariableResource.cs ================================================ using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client { public interface IVariableResource { Task> GetAll(bool deserializeValue = true); Task Get(string variableName, bool deserializeValues = true); Task GetBinary(string variableName); Task Set(string variableName, VariableValue variable); Task SetBinary(string variableName, BinaryDataContent data, BinaryVariableType valueType); Task Delete(string variableName); Task Modify(PatchVariables patch); } } ================================================ FILE: Camunda.Api.Client/Identity/IIdentityRestService.cs ================================================ using Refit; using System.Threading.Tasks; namespace Camunda.Api.Client.Identity { internal interface IIdentityRestService { [Get("/identity/groups")] Task GetMembership(QueryDictionary query); [Post("/identity/verify")] Task Verify([Body]IdentityUserCredentials credentials); } } ================================================ FILE: Camunda.Api.Client/Identity/IdentityGroupMembership.cs ================================================ using Newtonsoft.Json; using System.Collections.Generic; namespace Camunda.Api.Client.Identity { public class IdentityGroupMembership { public IdentityGroupMembership() { Groups = new List(); GroupUsers = new List(); } /// /// List of groups the user is a member of /// [JsonProperty("groups")] public List Groups { get; set; } /// /// List of users who are members of any of the groups /// [JsonProperty("groupUsers")] public List GroupUsers { get; set; } } public class IdentityGroup { public string Id; public string Name; public override string ToString() => Id; } public class IdentityUser { public string Id; public string FirstName; public string LastName; public string DisplayName; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/Identity/IdentityQuery.cs ================================================ namespace Camunda.Api.Client.Identity { public class IdentityQuery : QueryParameters { /// /// The id of the user to get the groups for. /// public string UserId; } } ================================================ FILE: Camunda.Api.Client/Identity/IdentityService.cs ================================================ using System.Threading.Tasks; namespace Camunda.Api.Client.Identity { public class IdentityService { private IIdentityRestService _api; internal IdentityService(IIdentityRestService api) { _api = api; } /// The id of the user whose group membership is to be retrieved. public Task GetMembership(string userId) => _api.GetMembership(new IdentityQuery() { UserId = userId }); /// /// Create a new user. /// /// The user's profile /// The user's password. /// public Task Verify(string username, string password) => _api.Verify(new IdentityUserCredentials() { Username = username, Password = password }); } } ================================================ FILE: Camunda.Api.Client/Identity/IdentityUserCredentials.cs ================================================ namespace Camunda.Api.Client.Identity { internal class IdentityUserCredentials { /// /// The id of the user to verify /// public string Username; /// /// The password of the user to verify /// public string Password; } } ================================================ FILE: Camunda.Api.Client/Identity/IdentityVerifiedUser.cs ================================================ using System; using System.Collections.Generic; using System.Text; namespace Camunda.Api.Client.Identity { public class IdentityVerifiedUser { /// /// The id of the user /// public string AuthenticatedUser; /// /// Verification successful or not /// public bool Authenticated; } } ================================================ FILE: Camunda.Api.Client/Incident/IIncidentRestService.cs ================================================ using Refit; using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.Incident { internal interface IIncidentRestService { [Get("/incident")] Task> GetList(QueryDictionary query, int? firstResult, int? maxResults); [Get("/incident/count")] Task GetListCount(QueryDictionary query); } } ================================================ FILE: Camunda.Api.Client/Incident/IncidentInfo.cs ================================================ using System; namespace Camunda.Api.Client.Incident { public class IncidentInfo { /// /// The id of the incident. /// public string Id; /// /// The id of the process definition this incident is associated with. /// public string ProcessDefinitionId; /// /// The key of the process definition this incident is associated with. /// public string ProcessInstanceId; /// /// The id of the execution this incident is associated with. /// public string ExecutionId; /// /// The time this incident happened. Has the format yyyy-MM-dd'T'HH:mm:ss. /// public DateTime IncidentTimestamp; /// /// The type of incident, for example: failedJobs will be returned in case of an incident which identified a failed job during the execution of a process instance. /// public string IncidentType; /// /// The id of the activity this incident is associated with. /// public string ActivityId; /// /// The id of the associated cause incident which has been triggered. /// public string CauseIncidentId; /// /// The id of the associated root cause incident which has been triggered. /// public string RootCauseIncidentId; /// /// The payload of this incident. /// public string Configuration; /// /// The message of this incident. /// public string IncidentMessage; /// /// The id of the tenant this incident is associated with. /// public string TenantId; /// /// The job definition id the incident is associated with. /// public string JobDefinitionId; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/Incident/IncidentQuery.cs ================================================ using Newtonsoft.Json; using System.Collections.Generic; namespace Camunda.Api.Client.Incident { public class IncidentQuery : QueryParameters { /// /// Restricts to incidents that have the given id. /// public string IncidentId; /// /// Restricts to incidents that belong to the given incident type. /// public string IncidentType; /// /// Restricts to incidents that have the given incident message. /// public string IncidentMessage; /// /// Restricts to incidents that belong to a process definition with the given id. /// public string ProcessDefinitionId; /// /// Restricts to incidents that belong to a process instance with the given id. /// public string ProcessInstanceId; /// /// Restricts to incidents that belong to an execution with the given id. /// public string ExecutionId; /// /// Restricts to incidents that belong to an activity with the given id. /// public string ActivityId; /// /// Restricts to incidents that have the given incident id as cause incident. /// public string CauseIncidentId; /// /// Restricts to incidents that have the given incident id as root cause incident. /// public string RootCauseIncidentId; /// /// Restricts to incidents that have the given parameter set as configuration. /// public string Configuration; /// /// Restricts to incidents that have one of the given tenant ids. /// [JsonProperty("tenantIdIn")] public List TenantIds = new List(); /// /// Restricts to incidents that have one of the given job definition ids. /// [JsonProperty("jobDefinitionIdIn")] public List JobDefinitionIds = new List(); /// /// Sort the results lexicographically by a given criterion. Must be used in conjunction with the . /// public IncidentSorting SortBy; /// /// Sort the results in a given order. Must be used in conjunction with the . /// public SortOrder SortOrder; } public enum IncidentSorting { IncidentId, IncidentTimestamp, IncidentType, ExecutionId, ActivityId, ProcessInstanceId, ProcessDefinitionId, CauseIncidentId, RootCauseIncidentId, Configuration, TenantId } } ================================================ FILE: Camunda.Api.Client/Incident/IncidentService.cs ================================================ namespace Camunda.Api.Client.Incident { public class IncidentService { private IIncidentRestService _api; internal IncidentService(IIncidentRestService api) { _api = api; } public QueryResource Query(IncidentQuery query = null) => new QueryResource( query, (q, f, m) => _api.GetList(q, f, m), q => _api.GetListCount(q)); } } ================================================ FILE: Camunda.Api.Client/Job/IJobRestService.cs ================================================ using Camunda.Api.Client.Batch; using Refit; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.Job { internal interface IJobRestService { [Get("/job/{jobId}")] Task Get(string jobId); [Post("/job")] Task> GetList([Body] JobQuery query, int? firstResult, int? maxResults); [Post("/job/count")] Task GetListCount([Body] JobQuery query); [Get("/job/{jobId}/stacktrace")] Task GetStacktrace(string jobId); [Post("/job/{jobId}/execute")] Task ExecuteJob(string jobId); [Put("/job/{jobId}/duedate")] Task SetJobDuedate(string jobId, [Body] JobDuedateInfo duedate); [Put("/job/{jobId}/suspended")] Task UpdateSuspensionStateForId(string jobId, [Body] SuspensionState state); [Put("/job/suspended")] Task UpdateSuspensionState([Body] JobSuspensionState state); [Put("/job/{jobId}/priority")] Task SetJobPriority(string jobId, [Body] PriorityInfo priority); [Put("/job/{jobId}/retries")] Task SetJobRetries(string jobId, [Body] RetriesInfo retries); [Delete("/job/{jobId}")] Task DeleteJob(string jobId); [Post("/job/retries")] Task SetJobRetriesAsync([Body] JobRetries retries); } } ================================================ FILE: Camunda.Api.Client/Job/JobDuedateInfo.cs ================================================ using System; namespace Camunda.Api.Client.Job { internal class JobDuedateInfo { /// /// The date to set when the job has the next execution. /// public DateTime Duedate; } } ================================================ FILE: Camunda.Api.Client/Job/JobInfo.cs ================================================ using System; namespace Camunda.Api.Client.Job { public class JobInfo { /// /// The id of the job. /// public string Id; /// /// The id of the associated job definition. /// public string JobDefinitionId; /// /// The id of the process instance which execution created the job. /// public string ProcessInstanceId; /// /// The id of the process definition which this job belongs to. /// public string ProcessDefinitionId; /// /// The key of the process definition which this job belongs to. /// public string ProcessDefinitionKey; /// /// The specific execution id on which the job was created. /// public string ExecutionId; /// /// The message of the exception that occurred, the last time the job was executed. Is null when no exception occurred. /// public string ExceptionMessage; /// /// The number of retries this job has left. /// public int Retries; /// /// The date on which this job is supposed to be processed. /// public DateTime? DueDate; /// /// A flag indicating whether the job is suspended or not. /// public bool Suspended; /// /// The job's priority for execution. /// public long Priority; /// /// The id of the tenant which this job belongs to. /// public string TenantId; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/Job/JobQuery.cs ================================================ using Newtonsoft.Json; using System.Collections.Generic; namespace Camunda.Api.Client.Job { public class JobQuery : SortableQuery { /// /// Only select jobs which exist for an activity with the given id. /// public string ActivityId; /// /// Filter by job id. /// public string JobId; /// /// Only select jobs which exist for the given execution. /// public string ExecutionId; /// /// Only select jobs which exist for the given process instance. /// public string ProcessInstanceId; /// /// Filter by the id of the process definition the jobs run on. /// public string ProcessDefinitionId; /// /// Filter by the key of the process definition the jobs run on. /// public string ProcessDefinitionKey; /// /// Only select jobs which have retries left. Value may only be true, as false is the default behavior. /// public bool WithRetriesLeft; /// /// Only select jobs which are executable, ie. retries > 0 and due date is null or due date is in the past. Value may only be true, as /// public bool Executable; /// /// Only select jobs that are timers. Cannot be used together with messages. Value may only be true, as false is the default behavior. /// public bool Timers; /// /// Only select jobs that are messages. Cannot be used together with timers. Value may only be true, as false is the default behavior. /// public bool Messages; /// /// Only select jobs that failed due to an exception. Value may only be true, as false is the default behavior. /// public bool WithException; /// /// Only select jobs that failed due to an exception with the given message. /// public string ExceptionMessage; /// /// Only select jobs which have no retries left. Value may only be true, as false is the default behavior. /// public bool NoRetriesLeft; /// /// Only include active jobs. Value may only be true, as false is the default behavior. /// public bool Active; /// /// Only include suspended jobs. Value may only be true, as false is the default behavior. /// public bool Suspended; /// /// Only include jobs with a priority higher than or equal to the given value. Value must be a valid long value. /// public long? PriorityHigherThanOrEquals; /// /// Only include jobs with a priority lower than or equal to the given value. Value must be a valid long value. /// public long? PriorityLowerThanOrEquals; /// /// Only select jobs which exist for the given job definition. /// public string JobDefinitionId; /// /// Only include jobs which belong to one of the passed and comma-separated tenant ids. /// [JsonProperty("tenantIdIn")] public List TenantIds = new List(); /// /// Only include jobs which belongs to no tenant. Value may only be true, as false is the default behavior. /// public bool WithoutTenantId; /// /// Include jobs which belongs to no tenant. Can be used in combination with tenantIdIn. Value may only be true, as /// public bool IncludeJobsWithoutTenantId; /// /// Only select jobs where the due date is lower or higher than the given date. /// public List DueDates = new List(); } public enum JobQuerySorting { JobId, ExecutionId, ProcessInstanceId, ProcessDefinitionId, ProcessDefinitionKey, JobRetries, JobDueDate, JobPriority, TenantId } } ================================================ FILE: Camunda.Api.Client/Job/JobResource.cs ================================================ using System; using System.Threading.Tasks; namespace Camunda.Api.Client.Job { public class JobResource { private IJobRestService _api; private string _jobId; internal JobResource(IJobRestService api, string jobId) { _api = api; _jobId = jobId; } /// /// Retrieves a single job according to the Job interface in the engine. /// public Task Get() => _api.Get(_jobId); /// /// Retrieves the corresponding exception stacktrace to the passed job id. /// public async Task GetStacktrace() => await (await _api.GetStacktrace(_jobId)).Content.ReadAsStringAsync(); /// /// Executes the job. The execution of the job happens synchronously in the same thread. /// public Task Execute() => _api.ExecuteJob(_jobId); /// /// Updates the due date of a job. /// public Task SetDuedate(DateTime duedate) => _api.SetJobDuedate(_jobId, new JobDuedateInfo() { Duedate = duedate }); /// /// Activate or suspend a given job by id. /// public Task UpdateSuspensionState(bool suspended) => _api.UpdateSuspensionStateForId(_jobId, new SuspensionState() { Suspended = suspended }); /// /// Sets the execution priority of a job. /// public Task SetPriority(long priority) => _api.SetJobPriority(_jobId, new PriorityInfo() { Priority = priority }); /// /// Sets the retries of the job to the given number of retries. /// public Task SetRetries(long retries) => _api.SetJobRetries(_jobId, new RetriesInfo() { Retries = retries }); /// /// Deletes a job. /// public Task Delete() => _api.DeleteJob(_jobId); public override string ToString() => _jobId; } } ================================================ FILE: Camunda.Api.Client/Job/JobRetries.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client.Job { public class JobRetries { /// /// A list of job ids to set retries for. /// public List JobIds = new List(); /// /// A job query like the request body for . /// public JobQuery JobQuery = new JobQuery(); /// /// An integer representing the number of retries. /// public int Retries; } } ================================================ FILE: Camunda.Api.Client/Job/JobService.cs ================================================ using Camunda.Api.Client.Batch; using System.Threading.Tasks; namespace Camunda.Api.Client.Job { public class JobService { private IJobRestService _api; internal JobService(IJobRestService api) { _api = api; } public QueryResource Query(JobQuery query = null) => new QueryResource(query, _api.GetList, _api.GetListCount); /// The id of the job to be retrieved. public JobResource this[string jobId] => new JobResource(_api, jobId); /// /// Activate or suspend jobs with the given job definition id, process definition id, process definition key or process instance id. /// public Task UpdateSuspensionState(JobSuspensionState state) => _api.UpdateSuspensionState(state); /// /// Create a batch to set retries of jobs asynchronously. /// public Task SetJobRetries(JobRetries retries) => _api.SetJobRetriesAsync(retries); } } ================================================ FILE: Camunda.Api.Client/Job/JobSuspensionState.cs ================================================ namespace Camunda.Api.Client.Job { public class JobSuspensionState : SuspensionState { /// /// The job definition id of the jobs to activate or suspend. /// public string JobDefinitionId; /// /// The process instance id of the jobs to activate or suspend. /// public string ProcessInstanceId; /// /// The process definition id of the jobs to activate or suspend. /// public string ProcessDefinitionId; /// /// The process definition key of the jobs to activate or suspend. /// public string ProcessDefinitionKey; /// /// Only activate or suspend jobs of a process definition which belongs to a tenant with the given id. /// public string ProcessDefinitionTenantId; /// /// Only activate or suspend jobs of a process definition which belongs to no tenant. /// public bool ProcessDefinitionWithoutTenantId; } } ================================================ FILE: Camunda.Api.Client/JobDefinition/IJobDefinitionRestService.cs ================================================ using Refit; using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.JobDefinition { internal interface IJobDefinitionRestService { [Get("/job-definition/{jobDefinitionId}")] Task Get(string jobDefinitionId); [Post("/job-definition")] Task> GetList([Body] JobDefinitionQuery query, int? firstResult, int? maxResults); [Post("/job-definition/count")] Task GetListCount([Body] JobDefinitionQuery query); [Put("/job-definition/suspended")] Task UpdateSuspensionState([Body]JobDefinitionSuspensionState state); [Put("/job-definition/{jobDefinitionId}/suspended")] Task UpdateSuspensionStateForId(string jobDefinitionId, [Body] SuspensionState suspensionState); [Put("/job-definition/{jobDefinitionId}/retries")] Task SetJobRetries(string jobDefinitionId, [Body] RetriesInfo retries); [Put("/job-definition/{jobDefinitionId}/jobPriority")] Task SetJobPriority(string jobDefinitionId, [Body] JobDefinitionPriority priority); } } ================================================ FILE: Camunda.Api.Client/JobDefinition/JobDefinitionInfo.cs ================================================ namespace Camunda.Api.Client.JobDefinition { public class JobDefinitionInfo { /// /// The id of the job definition. /// public string Id; /// /// The id of the process definition this job definition is associated with. /// public string ProcessDefinitionId; /// /// The key of the process definition this job definition is associated with. /// public string ProcessDefinitionKey; /// /// The type of the job which is running for this job definition, for example: asynchronous continuation, timer etc. /// public string JobType; /// /// The configuration of a job definition provides details about the jobs which will be created, for example: for timer jobs it is the timer configuration. /// public string JobConfiguration; /// /// The id of the activity this job definition is associated with. /// public string ActivityId; /// /// Indicates whether this job definition is suspended or not. /// public bool Suspended; /// /// The execution priority defined for jobs that are created based on this definition. May be null when the priority has not been overridden on the job definition level. /// public long? OverridingJobPriority; /// /// The id of the tenant this job definition is associated with. /// public string TenantId; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/JobDefinition/JobDefinitionPriority.cs ================================================ namespace Camunda.Api.Client.JobDefinition { public class JobDefinitionPriority { /// /// The new execution priority number for jobs of the given definition. /// The definition's priority can be reset by using the value null. In that case, the job definition's priority no longer applies but a new job's priority is determined as specified in the process model. /// public long? Priority; /// /// A boolean value indicating whether existing jobs of the given definition should receive the priority as well. Can only be true when is not null. /// public bool IncludeJobs; } } ================================================ FILE: Camunda.Api.Client/JobDefinition/JobDefinitionQuery.cs ================================================ using Newtonsoft.Json; using System.Collections.Generic; namespace Camunda.Api.Client.JobDefinition { public class JobDefinitionQuery : SortableQuery { /// /// Filter by job definition id. /// public string JobDefinitionId; /// /// Only include job definitions which belong to one of the passed activity ids. /// [JsonProperty("activityIdIn")] public List ActivityIds = new List(); /// /// Only include job definitions which exist for the given process definition id. /// public string ProcessDefinitionId; /// /// Only include job definitions which exist for the given process definition key. /// public string ProcessDefinitionKey; /// /// Only include job definitions which exist for the given job type. /// public string JobType; /// /// Only include job definitions which exist for the given job configuration. /// public string JobConfiguration; /// /// Only include active job definitions. /// public bool Active; /// /// Only include suspended job definitions. /// public bool Suspended; /// /// Only include job definitions that have an overriding job priority defined. /// public bool WithOverridingJobPriority; /// /// Only include job definitions which belong to one of the passed and comma-separated tenant ids. /// [JsonProperty("tenantIdIn")] public List TenantIds = new List(); /// /// Only include job definitions which belongs to no tenant. /// public bool WithoutTenantId; /// /// Include job definitions which belongs to no tenant. Can be used in combination with tenantIdIn. Value may only be true, as false is the default behavior. /// public bool IncludeJobDefinitionsWithoutTenantId; } public enum JobDefinitionSorting { JobDefinitionId, ActivityId, ProcessDefinitionId, ProcessDefinitionKey, JobType, JobConfiguration, TenantId } } ================================================ FILE: Camunda.Api.Client/JobDefinition/JobDefinitionResource.cs ================================================ using System.Threading.Tasks; namespace Camunda.Api.Client.JobDefinition { public class JobDefinitionResource { private string _jobDefinitionId; private IJobDefinitionRestService _api; internal JobDefinitionResource(IJobDefinitionRestService api, string jobDefinitionId) { _api = api; _jobDefinitionId = jobDefinitionId; } /// /// Retrieves a single job definition according to the JobDefinition interface in the engine. /// public Task Get() => _api.Get(_jobDefinitionId); /// /// Activate or suspend a given job definition by id. /// public Task UpdateSuspensionState(bool suspended) => _api.UpdateSuspensionStateForId(_jobDefinitionId, new SuspensionState() { Suspended = suspended }); /// /// Set the number of retries of all failed jobs associated with the given job definition id. /// public Task SetRetries(long retries) => _api.SetJobRetries(_jobDefinitionId, new RetriesInfo() { Retries = retries }); /// /// Set an overriding execution priority for jobs with the given definition id. /// Optionally, the priorities of all the definition’s existing jobs are updated accordingly. /// The priority can be reset by setting it to null, meaning that a new job’s priority will not be determined based on its definition’s priority any longer. /// /// /// public Task SetPriority(JobDefinitionPriority priority) => _api.SetJobPriority(_jobDefinitionId, priority); public override string ToString() => _jobDefinitionId; } } ================================================ FILE: Camunda.Api.Client/JobDefinition/JobDefinitionService.cs ================================================ using System.Threading.Tasks; namespace Camunda.Api.Client.JobDefinition { public class JobDefinitionService { private IJobDefinitionRestService _api; internal JobDefinitionService(IJobDefinitionRestService api) { _api = api; } public QueryResource Query(JobDefinitionQuery query = null) => new QueryResource(query, _api.GetList, _api.GetListCount); /// The id of the job to be retrieved. public JobDefinitionResource this[string jobDefinitionId] => new JobDefinitionResource(_api, jobDefinitionId); /// /// Activate or suspend jobs with the given job definition id, process definition id, process definition key or process instance id. /// public Task UpdateSuspensionState(JobDefinitionSuspensionState state) => _api.UpdateSuspensionState(state); } } ================================================ FILE: Camunda.Api.Client/JobDefinition/JobDefinitionSuspensionState.cs ================================================ using System; namespace Camunda.Api.Client.JobDefinition { public class JobDefinitionSuspensionState : SuspensionState { /// /// The date on which the given job definition will be activated or suspended. If null, the suspension state of the given job definition is updated immediately /// public DateTime? ExecutionDate; /// /// A Boolean value which indicates whether to activate or suspend also all jobs of the given job definition. /// When the value is set to true, all jobs of the provided job definition will be activated or suspended and when the value is set to false, the suspension state of all jobs of the provided job definition will not be updated. /// public bool IncludeJobs; /// /// The process definition id of the job definitions to activate or suspend. /// public string ProcessDefinitionId; /// /// The process definition key of the job definitions to activate or suspend. /// public string ProcessDefinitionKey; /// /// Only activate or suspend job definitions of a process definition which belongs to a tenant with the given id. /// public string ProcessDefinitionTenantId; /// /// Only activate or suspend job definitions of a process definition which belongs to no tenant. /// public bool ProcessDefinitionWithoutTenantId; } } ================================================ FILE: Camunda.Api.Client/MediaTypes.cs ================================================ using System; namespace Iana { public class MediaTypes { /// /// Encapsulates the media subtypes registered under the application type. /// public class Application { /// application/1d-interleaved-parityfec public const string _1dInterleavedParityfec = "application/1d-interleaved-parityfec"; /// application/3gpdash-qoe-report+xml public const string _3gpdashQoeReportXml = "application/3gpdash-qoe-report+xml"; /// application/3gpp-ims+xml public const string _3gppImsXml = "application/3gpp-ims+xml"; /// application/activemessage public const string Activemessage = "application/activemessage"; /// application/alto-costmap+json public const string AltoCostmapJson = "application/alto-costmap+json"; /// application/alto-costmapfilter+json public const string AltoCostmapfilterJson = "application/alto-costmapfilter+json"; /// application/alto-directory+json public const string AltoDirectoryJson = "application/alto-directory+json"; /// application/alto-endpointprop+json public const string AltoEndpointpropJson = "application/alto-endpointprop+json"; /// application/alto-endpointpropparams+json public const string AltoEndpointpropparamsJson = "application/alto-endpointpropparams+json"; /// application/alto-endpointcost+json public const string AltoEndpointcostJson = "application/alto-endpointcost+json"; /// application/alto-endpointcostparams+json public const string AltoEndpointcostparamsJson = "application/alto-endpointcostparams+json"; /// application/alto-error+json public const string AltoErrorJson = "application/alto-error+json"; /// application/alto-networkmapfilter+json public const string AltoNetworkmapfilterJson = "application/alto-networkmapfilter+json"; /// application/alto-networkmap+json public const string AltoNetworkmapJson = "application/alto-networkmap+json"; /// application/andrew-inset public const string AndrewInset = "application/andrew-inset"; /// application/applefile public const string Applefile = "application/applefile"; /// application/atom+xml public const string AtomXml = "application/atom+xml"; /// application/atomcat+xml public const string AtomcatXml = "application/atomcat+xml"; /// application/atomdeleted+xml public const string AtomdeletedXml = "application/atomdeleted+xml"; /// application/atomicmail public const string Atomicmail = "application/atomicmail"; /// application/atomsvc+xml public const string AtomsvcXml = "application/atomsvc+xml"; /// application/auth-policy+xml public const string AuthPolicyXml = "application/auth-policy+xml"; /// application/bacnet-xdd+zip public const string BacnetXddZip = "application/bacnet-xdd+zip"; /// application/batch-SMTP public const string BatchSmtp = "application/batch-SMTP"; /// application/beep+xml public const string BeepXml = "application/beep+xml"; /// application/calendar+json public const string CalendarJson = "application/calendar+json"; /// application/calendar+xml public const string CalendarXml = "application/calendar+xml"; /// application/call-completion public const string CallCompletion = "application/call-completion"; /// application/cals-1840 public const string Cals1840 = "application/cals-1840"; /// application/cbor public const string Cbor = "application/cbor"; /// application/ccmp+xml public const string CcmpXml = "application/ccmp+xml"; /// application/ccxml+xml public const string CcxmlXml = "application/ccxml+xml"; /// application/cdmi-capability public const string CdmiCapability = "application/cdmi-capability"; /// application/cdmi-container public const string CdmiContainer = "application/cdmi-container"; /// application/cdmi-domain public const string CdmiDomain = "application/cdmi-domain"; /// application/cdmi-object public const string CdmiObject = "application/cdmi-object"; /// application/cdmi-queue public const string CdmiQueue = "application/cdmi-queue"; /// application/cea-2018+xml public const string Cea2018Xml = "application/cea-2018+xml"; /// application/cellml+xml public const string CellmlXml = "application/cellml+xml"; /// application/cfw public const string Cfw = "application/cfw"; /// application/cms public const string Cms = "application/cms"; /// application/cnrp+xml public const string CnrpXml = "application/cnrp+xml"; /// application/commonground public const string Commonground = "application/commonground"; /// application/conference-info+xml public const string ConferenceInfoXml = "application/conference-info+xml"; /// application/cpl+xml public const string CplXml = "application/cpl+xml"; /// application/csrattrs public const string Csrattrs = "application/csrattrs"; /// application/csta+xml public const string CstaXml = "application/csta+xml"; /// application/CSTAdata+xml public const string CstadataXml = "application/CSTAdata+xml"; /// application/cybercash public const string Cybercash = "application/cybercash"; /// application/dash+xml public const string DashXml = "application/dash+xml"; /// application/dashdelta public const string Dashdelta = "application/dashdelta"; /// application/davmount+xml public const string DavmountXml = "application/davmount+xml"; /// application/dca-rft public const string DcaRft = "application/dca-rft"; /// application/dec-dx public const string DecDx = "application/dec-dx"; /// application/dialog-info+xml public const string DialogInfoXml = "application/dialog-info+xml"; /// application/dicom public const string Dicom = "application/dicom"; /// application/dns public const string Dns = "application/dns"; /// application/dskpp+xml public const string DskppXml = "application/dskpp+xml"; /// application/dssc+der public const string DsscDer = "application/dssc+der"; /// application/dssc+xml public const string DsscXml = "application/dssc+xml"; /// application/dvcs public const string Dvcs = "application/dvcs"; /// application/ecmascript public const string Ecmascript = "application/ecmascript"; /// application/EDI-consent public const string EdiConsent = "application/EDI-consent"; /// application/EDIFACT public const string Edifact = "application/EDIFACT"; /// application/EDI-X12 public const string EdiX12 = "application/EDI-X12"; /// application/emma+xml public const string EmmaXml = "application/emma+xml"; /// application/emotionml+xml public const string EmotionmlXml = "application/emotionml+xml"; /// application/encaprtp public const string Encaprtp = "application/encaprtp"; /// application/epp+xml public const string EppXml = "application/epp+xml"; /// application/eshop public const string Eshop = "application/eshop"; /// application/example public const string Example = "application/example"; /// application/exi public const string Exi = "application/exi"; /// application/fastinfoset public const string Fastinfoset = "application/fastinfoset"; /// application/fastsoap public const string Fastsoap = "application/fastsoap"; /// application/fdt+xml public const string FdtXml = "application/fdt+xml"; /// application/fits public const string Fits = "application/fits"; /// application/font-sfnt public const string FontSfnt = "application/font-sfnt"; /// application/font-tdpfr public const string FontTdpfr = "application/font-tdpfr"; /// application/font-woff public const string FontWoff = "application/font-woff"; /// application/framework-attributes+xml public const string FrameworkAttributesXml = "application/framework-attributes+xml"; /// application/gzip public const string Gzip = "application/gzip"; /// application/H224 public const string H224 = "application/H224"; /// application/held+xml public const string HeldXml = "application/held+xml"; /// application/http public const string Http = "application/http"; /// application/hyperstudio public const string Hyperstudio = "application/hyperstudio"; /// application/ibe-key-request+xml public const string IbeKeyRequestXml = "application/ibe-key-request+xml"; /// application/ibe-pkg-reply+xml public const string IbePkgReplyXml = "application/ibe-pkg-reply+xml"; /// application/ibe-pp-data public const string IbePpData = "application/ibe-pp-data"; /// application/iges public const string Iges = "application/iges"; /// application/im-iscomposing+xml public const string ImIscomposingXml = "application/im-iscomposing+xml"; /// application/index public const string Index = "application/index"; /// application/index.cmd public const string IndexCmd = "application/index.cmd"; /// application/index.obj public const string IndexObj = "application/index.obj"; /// application/index.response public const string IndexResponse = "application/index.response"; /// application/index.vnd public const string IndexVnd = "application/index.vnd"; /// application/inkml+xml public const string InkmlXml = "application/inkml+xml"; /// application/iotp public const string Iotp = "application/iotp"; /// application/ipfix public const string Ipfix = "application/ipfix"; /// application/ipp public const string Ipp = "application/ipp"; /// application/isup public const string Isup = "application/isup"; /// application/its+xml public const string ItsXml = "application/its+xml"; /// application/javascript public const string Javascript = "application/javascript"; /// application/jrd+json public const string JrdJson = "application/jrd+json"; /// application/json public const string Json = "application/json"; /// application/json-patch+json public const string JsonPatchJson = "application/json-patch+json"; /// application/kpml-request+xml public const string KpmlRequestXml = "application/kpml-request+xml"; /// application/kpml-response+xml public const string KpmlResponseXml = "application/kpml-response+xml"; /// application/ld+json public const string LdJson = "application/ld+json"; /// application/link-format public const string LinkFormat = "application/link-format"; /// application/load-control+xml public const string LoadControlXml = "application/load-control+xml"; /// application/lost+xml public const string LostXml = "application/lost+xml"; /// application/lostsync+xml public const string LostsyncXml = "application/lostsync+xml"; /// application/mac-binhex40 public const string MacBinhex40 = "application/mac-binhex40"; /// application/macwriteii public const string Macwriteii = "application/macwriteii"; /// application/mads+xml public const string MadsXml = "application/mads+xml"; /// application/marc public const string Marc = "application/marc"; /// application/marcxml+xml public const string MarcxmlXml = "application/marcxml+xml"; /// application/mathematica public const string Mathematica = "application/mathematica"; /// application/mathml-content+xml public const string MathmlContentXml = "application/mathml-content+xml"; /// application/mathml-presentation+xml public const string MathmlPresentationXml = "application/mathml-presentation+xml"; /// application/mathml+xml public const string MathmlXml = "application/mathml+xml"; /// application/mbms-associated-procedure-description+xml public const string MbmsAssociatedProcedureDescriptionXml = "application/mbms-associated-procedure-description+xml"; /// application/mbms-deregister+xml public const string MbmsDeregisterXml = "application/mbms-deregister+xml"; /// application/mbms-envelope+xml public const string MbmsEnvelopeXml = "application/mbms-envelope+xml"; /// application/mbms-msk-response+xml public const string MbmsMskResponseXml = "application/mbms-msk-response+xml"; /// application/mbms-msk+xml public const string MbmsMskXml = "application/mbms-msk+xml"; /// application/mbms-protection-description+xml public const string MbmsProtectionDescriptionXml = "application/mbms-protection-description+xml"; /// application/mbms-reception-report+xml public const string MbmsReceptionReportXml = "application/mbms-reception-report+xml"; /// application/mbms-register-response+xml public const string MbmsRegisterResponseXml = "application/mbms-register-response+xml"; /// application/mbms-register+xml public const string MbmsRegisterXml = "application/mbms-register+xml"; /// application/mbms-schedule+xml public const string MbmsScheduleXml = "application/mbms-schedule+xml"; /// application/mbms-user-service-description+xml public const string MbmsUserServiceDescriptionXml = "application/mbms-user-service-description+xml"; /// application/mbox public const string Mbox = "application/mbox"; /// application/media_control+xml public const string MediaControlXml = "application/media_control+xml"; /// application/media-policy-dataset+xml public const string MediaPolicyDatasetXml = "application/media-policy-dataset+xml"; /// application/mediaservercontrol+xml public const string MediaservercontrolXml = "application/mediaservercontrol+xml"; /// application/metalink4+xml public const string Metalink4Xml = "application/metalink4+xml"; /// application/mets+xml public const string MetsXml = "application/mets+xml"; /// application/mikey public const string Mikey = "application/mikey"; /// application/mods+xml public const string ModsXml = "application/mods+xml"; /// application/moss-keys public const string MossKeys = "application/moss-keys"; /// application/moss-signature public const string MossSignature = "application/moss-signature"; /// application/mosskey-data public const string MosskeyData = "application/mosskey-data"; /// application/mosskey-request public const string MosskeyRequest = "application/mosskey-request"; /// application/mp21 public const string Mp21 = "application/mp21"; /// application/mp4 public const string Mp4 = "application/mp4"; /// application/mpeg4-generic public const string Mpeg4Generic = "application/mpeg4-generic"; /// application/mpeg4-iod public const string Mpeg4Iod = "application/mpeg4-iod"; /// application/mpeg4-iod-xmt public const string Mpeg4IodXmt = "application/mpeg4-iod-xmt"; /// application/mrb-consumer+xml public const string MrbConsumerXml = "application/mrb-consumer+xml"; /// application/mrb-publish+xml public const string MrbPublishXml = "application/mrb-publish+xml"; /// application/msc-ivr+xml public const string MscIvrXml = "application/msc-ivr+xml"; /// application/msc-mixer+xml public const string MscMixerXml = "application/msc-mixer+xml"; /// application/msword public const string Msword = "application/msword"; /// application/mxf public const string Mxf = "application/mxf"; /// application/nasdata public const string Nasdata = "application/nasdata"; /// application/news-checkgroups public const string NewsCheckgroups = "application/news-checkgroups"; /// application/news-groupinfo public const string NewsGroupinfo = "application/news-groupinfo"; /// application/news-transmission public const string NewsTransmission = "application/news-transmission"; /// application/nlsml+xml public const string NlsmlXml = "application/nlsml+xml"; /// application/nss public const string Nss = "application/nss"; /// application/ocsp-request public const string OcspRequest = "application/ocsp-request"; /// application/ocsp-response public const string OcspResponse = "application/ocsp-response"; /// application/octet-stream public const string OctetStream = "application/octet-stream"; /// application/oda public const string Oda = "application/oda"; /// application/ODX public const string Odx = "application/ODX"; /// application/oebps-package+xml public const string OebpsPackageXml = "application/oebps-package+xml"; /// application/ogg public const string Ogg = "application/ogg"; /// application/oxps public const string Oxps = "application/oxps"; /// application/p2p-overlay+xml public const string P2pOverlayXml = "application/p2p-overlay+xml"; /// application/parityfec public const string Parityfec = "application/parityfec"; /// application/patch-ops-error+xml public const string PatchOpsErrorXml = "application/patch-ops-error+xml"; /// application/pdf public const string Pdf = "application/pdf"; /// application/PDX public const string Pdx = "application/PDX"; /// application/pgp-encrypted public const string PgpEncrypted = "application/pgp-encrypted"; /// application/pgp-keys public const string PgpKeys = "application/pgp-keys"; /// application/pgp-signature public const string PgpSignature = "application/pgp-signature"; /// application/pidf-diff+xml public const string PidfDiffXml = "application/pidf-diff+xml"; /// application/pidf+xml public const string PidfXml = "application/pidf+xml"; /// application/pkcs10 public const string Pkcs10 = "application/pkcs10"; /// application/pkcs7-mime public const string Pkcs7Mime = "application/pkcs7-mime"; /// application/pkcs7-signature public const string Pkcs7Signature = "application/pkcs7-signature"; /// application/pkcs8 public const string Pkcs8 = "application/pkcs8"; /// application/pkix-attr-cert public const string PkixAttrCert = "application/pkix-attr-cert"; /// application/pkix-cert public const string PkixCert = "application/pkix-cert"; /// application/pkix-crl public const string PkixCrl = "application/pkix-crl"; /// application/pkix-pkipath public const string PkixPkipath = "application/pkix-pkipath"; /// application/pkixcmp public const string Pkixcmp = "application/pkixcmp"; /// application/pls+xml public const string PlsXml = "application/pls+xml"; /// application/poc-settings+xml public const string PocSettingsXml = "application/poc-settings+xml"; /// application/postscript public const string Postscript = "application/postscript"; /// application/provenance+xml public const string ProvenanceXml = "application/provenance+xml"; /// application/prs.alvestrand.titrax-sheet public const string PrsAlvestrandTitraxSheet = "application/prs.alvestrand.titrax-sheet"; /// application/prs.cww public const string PrsCww = "application/prs.cww"; /// application/prs.hpub+zip public const string PrsHpubZip = "application/prs.hpub+zip"; /// application/prs.nprend public const string PrsNprend = "application/prs.nprend"; /// application/prs.plucker public const string PrsPlucker = "application/prs.plucker"; /// application/prs.rdf-xml-crypt public const string PrsRdfXmlCrypt = "application/prs.rdf-xml-crypt"; /// application/prs.xsf+xml public const string PrsXsfXml = "application/prs.xsf+xml"; /// application/pskc+xml public const string PskcXml = "application/pskc+xml"; /// application/rdf+xml public const string RdfXml = "application/rdf+xml"; /// application/qsig public const string Qsig = "application/qsig"; /// application/raptorfec public const string Raptorfec = "application/raptorfec"; /// application/reginfo+xml public const string ReginfoXml = "application/reginfo+xml"; /// application/relax-ng-compact-syntax public const string RelaxNgCompactSyntax = "application/relax-ng-compact-syntax"; /// application/remote-printing public const string RemotePrinting = "application/remote-printing"; /// application/reputon+json public const string ReputonJson = "application/reputon+json"; /// application/resource-lists-diff+xml public const string ResourceListsDiffXml = "application/resource-lists-diff+xml"; /// application/resource-lists+xml public const string ResourceListsXml = "application/resource-lists+xml"; /// application/riscos public const string Riscos = "application/riscos"; /// application/rlmi+xml public const string RlmiXml = "application/rlmi+xml"; /// application/rls-services+xml public const string RlsServicesXml = "application/rls-services+xml"; /// application/rpki-ghostbusters public const string RpkiGhostbusters = "application/rpki-ghostbusters"; /// application/rpki-manifest public const string RpkiManifest = "application/rpki-manifest"; /// application/rpki-roa public const string RpkiRoa = "application/rpki-roa"; /// application/rpki-updown public const string RpkiUpdown = "application/rpki-updown"; /// application/rtf public const string Rtf = "application/rtf"; /// application/rtploopback public const string Rtploopback = "application/rtploopback"; /// application/rtx public const string Rtx = "application/rtx"; /// application/samlassertion+xml public const string SamlassertionXml = "application/samlassertion+xml"; /// application/samlmetadata+xml public const string SamlmetadataXml = "application/samlmetadata+xml"; /// application/sbml+xml public const string SbmlXml = "application/sbml+xml"; /// application/scaip+xml public const string ScaipXml = "application/scaip+xml"; /// application/scvp-cv-request public const string ScvpCvRequest = "application/scvp-cv-request"; /// application/scvp-cv-response public const string ScvpCvResponse = "application/scvp-cv-response"; /// application/scvp-vp-request public const string ScvpVpRequest = "application/scvp-vp-request"; /// application/scvp-vp-response public const string ScvpVpResponse = "application/scvp-vp-response"; /// application/sdp public const string Sdp = "application/sdp"; /// application/sep-exi public const string SepExi = "application/sep-exi"; /// application/sep+xml public const string SepXml = "application/sep+xml"; /// application/session-info public const string SessionInfo = "application/session-info"; /// application/set-payment public const string SetPayment = "application/set-payment"; /// application/set-payment-initiation public const string SetPaymentInitiation = "application/set-payment-initiation"; /// application/set-registration public const string SetRegistration = "application/set-registration"; /// application/set-registration-initiation public const string SetRegistrationInitiation = "application/set-registration-initiation"; /// application/sgml public const string Sgml = "application/sgml"; /// application/sgml-open-catalog public const string SgmlOpenCatalog = "application/sgml-open-catalog"; /// application/shf+xml public const string ShfXml = "application/shf+xml"; /// application/sieve public const string Sieve = "application/sieve"; /// application/simple-filter+xml public const string SimpleFilterXml = "application/simple-filter+xml"; /// application/simple-message-summary public const string SimpleMessageSummary = "application/simple-message-summary"; /// application/simpleSymbolContainer public const string Simplesymbolcontainer = "application/simpleSymbolContainer"; /// application/slate public const string Slate = "application/slate"; /// application/smil [Obsolete("OBSOLETE")] public const string Smil = "application/smil"; /// application/smil+xml public const string SmilXml = "application/smil+xml"; /// application/smpte336m public const string Smpte336m = "application/smpte336m"; /// application/soap+fastinfoset public const string SoapFastinfoset = "application/soap+fastinfoset"; /// application/soap+xml public const string SoapXml = "application/soap+xml"; /// application/sparql-query public const string SparqlQuery = "application/sparql-query"; /// application/sparql-results+xml public const string SparqlResultsXml = "application/sparql-results+xml"; /// application/spirits-event+xml public const string SpiritsEventXml = "application/spirits-event+xml"; /// application/sql public const string Sql = "application/sql"; /// application/srgs public const string Srgs = "application/srgs"; /// application/srgs+xml public const string SrgsXml = "application/srgs+xml"; /// application/sru+xml public const string SruXml = "application/sru+xml"; /// application/ssml+xml public const string SsmlXml = "application/ssml+xml"; /// application/tamp-apex-update public const string TampApexUpdate = "application/tamp-apex-update"; /// application/tamp-apex-update-confirm public const string TampApexUpdateConfirm = "application/tamp-apex-update-confirm"; /// application/tamp-community-update public const string TampCommunityUpdate = "application/tamp-community-update"; /// application/tamp-community-update-confirm public const string TampCommunityUpdateConfirm = "application/tamp-community-update-confirm"; /// application/tamp-error public const string TampError = "application/tamp-error"; /// application/tamp-sequence-adjust public const string TampSequenceAdjust = "application/tamp-sequence-adjust"; /// application/tamp-sequence-adjust-confirm public const string TampSequenceAdjustConfirm = "application/tamp-sequence-adjust-confirm"; /// application/tamp-status-query public const string TampStatusQuery = "application/tamp-status-query"; /// application/tamp-status-response public const string TampStatusResponse = "application/tamp-status-response"; /// application/tamp-update public const string TampUpdate = "application/tamp-update"; /// application/tamp-update-confirm public const string TampUpdateConfirm = "application/tamp-update-confirm"; /// application/tei+xml public const string TeiXml = "application/tei+xml"; /// application/thraud+xml public const string ThraudXml = "application/thraud+xml"; /// application/timestamp-query public const string TimestampQuery = "application/timestamp-query"; /// application/timestamp-reply public const string TimestampReply = "application/timestamp-reply"; /// application/timestamped-data public const string TimestampedData = "application/timestamped-data"; /// application/ttml+xml public const string TtmlXml = "application/ttml+xml"; /// application/tve-trigger public const string TveTrigger = "application/tve-trigger"; /// application/ulpfec public const string Ulpfec = "application/ulpfec"; /// application/urc-grpsheet+xml public const string UrcGrpsheetXml = "application/urc-grpsheet+xml"; /// application/urc-ressheet+xml public const string UrcRessheetXml = "application/urc-ressheet+xml"; /// application/urc-targetdesc+xml public const string UrcTargetdescXml = "application/urc-targetdesc+xml"; /// application/urc-uisocketdesc+xml public const string UrcUisocketdescXml = "application/urc-uisocketdesc+xml"; /// application/vcard+json public const string VcardJson = "application/vcard+json"; /// application/vcard+xml public const string VcardXml = "application/vcard+xml"; /// application/vemmi public const string Vemmi = "application/vemmi"; /// application/vnd.3gpp.bsf+xml public const string Vnd3gppBsfXml = "application/vnd.3gpp.bsf+xml"; /// application/vnd.3gpp.pic-bw-large public const string Vnd3gppPicBwLarge = "application/vnd.3gpp.pic-bw-large"; /// application/vnd.3gpp.pic-bw-small public const string Vnd3gppPicBwSmall = "application/vnd.3gpp.pic-bw-small"; /// application/vnd.3gpp.pic-bw-var public const string Vnd3gppPicBwVar = "application/vnd.3gpp.pic-bw-var"; /// application/vnd.3gpp.sms public const string Vnd3gppSms = "application/vnd.3gpp.sms"; /// application/vnd.3gpp2.bcmcsinfo+xml public const string Vnd3gpp2BcmcsinfoXml = "application/vnd.3gpp2.bcmcsinfo+xml"; /// application/vnd.3gpp2.sms public const string Vnd3gpp2Sms = "application/vnd.3gpp2.sms"; /// application/vnd.3gpp2.tcap public const string Vnd3gpp2Tcap = "application/vnd.3gpp2.tcap"; /// application/vnd.3M.Post-it-Notes public const string Vnd3mPostItNotes = "application/vnd.3M.Post-it-Notes"; /// application/vnd.accpac.simply.aso public const string VndAccpacSimplyAso = "application/vnd.accpac.simply.aso"; /// application/vnd.accpac.simply.imp public const string VndAccpacSimplyImp = "application/vnd.accpac.simply.imp"; /// application/vnd.acucobol public const string VndAcucobol = "application/vnd.acucobol"; /// application/vnd.acucorp public const string VndAcucorp = "application/vnd.acucorp"; /// application/vnd.adobe.flash.movie public const string VndAdobeFlashMovie = "application/vnd.adobe.flash.movie"; /// application/vnd.adobe.formscentral.fcdt public const string VndAdobeFormscentralFcdt = "application/vnd.adobe.formscentral.fcdt"; /// application/vnd.adobe.fxp public const string VndAdobeFxp = "application/vnd.adobe.fxp"; /// application/vnd.adobe.partial-upload public const string VndAdobePartialUpload = "application/vnd.adobe.partial-upload"; /// application/vnd.adobe.xdp+xml public const string VndAdobeXdpXml = "application/vnd.adobe.xdp+xml"; /// application/vnd.adobe.xfdf public const string VndAdobeXfdf = "application/vnd.adobe.xfdf"; /// application/vnd.aether.imp public const string VndAetherImp = "application/vnd.aether.imp"; /// application/vnd.ah-barcode public const string VndAhBarcode = "application/vnd.ah-barcode"; /// application/vnd.ahead.space public const string VndAheadSpace = "application/vnd.ahead.space"; /// application/vnd.airzip.filesecure.azf public const string VndAirzipFilesecureAzf = "application/vnd.airzip.filesecure.azf"; /// application/vnd.airzip.filesecure.azs public const string VndAirzipFilesecureAzs = "application/vnd.airzip.filesecure.azs"; /// application/vnd.americandynamics.acc public const string VndAmericandynamicsAcc = "application/vnd.americandynamics.acc"; /// application/vnd.amiga.ami public const string VndAmigaAmi = "application/vnd.amiga.ami"; /// application/vnd.amundsen.maze+xml public const string VndAmundsenMazeXml = "application/vnd.amundsen.maze+xml"; /// application/vnd.anser-web-certificate-issue-initiation public const string VndAnserWebCertificateIssueInitiation = "application/vnd.anser-web-certificate-issue-initiation"; /// application/vnd.antix.game-component public const string VndAntixGameComponent = "application/vnd.antix.game-component"; /// application/vnd.api+json public const string VndApiJson = "application/vnd.api+json"; /// application/vnd.apple.mpegurl public const string VndAppleMpegurl = "application/vnd.apple.mpegurl"; /// application/vnd.apple.installer+xml public const string VndAppleInstallerXml = "application/vnd.apple.installer+xml"; /// application/vnd.arastra.swi [Obsolete("OBSOLETED in favor of application/vnd.aristanetworks.swi")] public const string VndArastraSwi = "application/vnd.arastra.swi"; /// application/vnd.aristanetworks.swi public const string VndAristanetworksSwi = "application/vnd.aristanetworks.swi"; /// application/vnd.artsquare public const string VndArtsquare = "application/vnd.artsquare"; /// application/vnd.astraea-software.iota public const string VndAstraeaSoftwareIota = "application/vnd.astraea-software.iota"; /// application/vnd.audiograph public const string VndAudiograph = "application/vnd.audiograph"; /// application/vnd.autopackage public const string VndAutopackage = "application/vnd.autopackage"; /// application/vnd.avistar+xml public const string VndAvistarXml = "application/vnd.avistar+xml"; /// application/vnd.balsamiq.bmml+xml public const string VndBalsamiqBmmlXml = "application/vnd.balsamiq.bmml+xml"; /// application/vnd.bekitzur-stech+json public const string VndBekitzurStechJson = "application/vnd.bekitzur-stech+json"; /// application/vnd.blueice.multipass public const string VndBlueiceMultipass = "application/vnd.blueice.multipass"; /// application/vnd.bluetooth.ep.oob public const string VndBluetoothEpOob = "application/vnd.bluetooth.ep.oob"; /// application/vnd.bluetooth.le.oob public const string VndBluetoothLeOob = "application/vnd.bluetooth.le.oob"; /// application/vnd.bmi public const string VndBmi = "application/vnd.bmi"; /// application/vnd.businessobjects public const string VndBusinessobjects = "application/vnd.businessobjects"; /// application/vnd.cab-jscript public const string VndCabJscript = "application/vnd.cab-jscript"; /// application/vnd.canon-cpdl public const string VndCanonCpdl = "application/vnd.canon-cpdl"; /// application/vnd.canon-lips public const string VndCanonLips = "application/vnd.canon-lips"; /// application/vnd.cendio.thinlinc.clientconf public const string VndCendioThinlincClientconf = "application/vnd.cendio.thinlinc.clientconf"; /// application/vnd.century-systems.tcp_stream public const string VndCenturySystemsTcpStream = "application/vnd.century-systems.tcp_stream"; /// application/vnd.chemdraw+xml public const string VndChemdrawXml = "application/vnd.chemdraw+xml"; /// application/vnd.chipnuts.karaoke-mmd public const string VndChipnutsKaraokeMmd = "application/vnd.chipnuts.karaoke-mmd"; /// application/vnd.cinderella public const string VndCinderella = "application/vnd.cinderella"; /// application/vnd.cirpack.isdn-ext public const string VndCirpackIsdnExt = "application/vnd.cirpack.isdn-ext"; /// application/vnd.claymore public const string VndClaymore = "application/vnd.claymore"; /// application/vnd.cloanto.rp9 public const string VndCloantoRp9 = "application/vnd.cloanto.rp9"; /// application/vnd.clonk.c4group public const string VndClonkC4group = "application/vnd.clonk.c4group"; /// application/vnd.cluetrust.cartomobile-config public const string VndCluetrustCartomobileConfig = "application/vnd.cluetrust.cartomobile-config"; /// application/vnd.cluetrust.cartomobile-config-pkg public const string VndCluetrustCartomobileConfigPkg = "application/vnd.cluetrust.cartomobile-config-pkg"; /// application/vnd.collection.doc+json public const string VndCollectionDocJson = "application/vnd.collection.doc+json"; /// application/vnd.collection+json public const string VndCollectionJson = "application/vnd.collection+json"; /// application/vnd.collection.next+json public const string VndCollectionNextJson = "application/vnd.collection.next+json"; /// application/vnd.commerce-battelle public const string VndCommerceBattelle = "application/vnd.commerce-battelle"; /// application/vnd.commonspace public const string VndCommonspace = "application/vnd.commonspace"; /// application/vnd.cosmocaller public const string VndCosmocaller = "application/vnd.cosmocaller"; /// application/vnd.contact.cmsg public const string VndContactCmsg = "application/vnd.contact.cmsg"; /// application/vnd.crick.clicker public const string VndCrickClicker = "application/vnd.crick.clicker"; /// application/vnd.crick.clicker.keyboard public const string VndCrickClickerKeyboard = "application/vnd.crick.clicker.keyboard"; /// application/vnd.crick.clicker.palette public const string VndCrickClickerPalette = "application/vnd.crick.clicker.palette"; /// application/vnd.crick.clicker.template public const string VndCrickClickerTemplate = "application/vnd.crick.clicker.template"; /// application/vnd.crick.clicker.wordbank public const string VndCrickClickerWordbank = "application/vnd.crick.clicker.wordbank"; /// application/vnd.criticaltools.wbs+xml public const string VndCriticaltoolsWbsXml = "application/vnd.criticaltools.wbs+xml"; /// application/vnd.ctc-posml public const string VndCtcPosml = "application/vnd.ctc-posml"; /// application/vnd.ctct.ws+xml public const string VndCtctWsXml = "application/vnd.ctct.ws+xml"; /// application/vnd.cups-pdf public const string VndCupsPdf = "application/vnd.cups-pdf"; /// application/vnd.cups-postscript public const string VndCupsPostscript = "application/vnd.cups-postscript"; /// application/vnd.cups-ppd public const string VndCupsPpd = "application/vnd.cups-ppd"; /// application/vnd.cups-raster public const string VndCupsRaster = "application/vnd.cups-raster"; /// application/vnd.cups-raw public const string VndCupsRaw = "application/vnd.cups-raw"; /// application/vnd.curl public const string VndCurl = "application/vnd.curl"; /// application/vnd.cyan.dean.root+xml public const string VndCyanDeanRootXml = "application/vnd.cyan.dean.root+xml"; /// application/vnd.cybank public const string VndCybank = "application/vnd.cybank"; /// application/vnd.dart public const string VndDart = "application/vnd.dart"; /// application/vnd.data-vision.rdz public const string VndDataVisionRdz = "application/vnd.data-vision.rdz"; /// application/vnd.debian.binary-package public const string VndDebianBinaryPackage = "application/vnd.debian.binary-package"; /// application/vnd.dece.data public const string VndDeceData = "application/vnd.dece.data"; /// application/vnd.dece.ttml+xml public const string VndDeceTtmlXml = "application/vnd.dece.ttml+xml"; /// application/vnd.dece.unspecified public const string VndDeceUnspecified = "application/vnd.dece.unspecified"; /// application/vnd.dece.zip public const string VndDeceZip = "application/vnd.dece.zip"; /// application/vnd.denovo.fcselayout-link public const string VndDenovoFcselayoutLink = "application/vnd.denovo.fcselayout-link"; /// application/vnd.desmume.movie public const string VndDesmumeMovie = "application/vnd.desmume.movie"; /// application/vnd.dir-bi.plate-dl-nosuffix public const string VndDirBiPlateDlNosuffix = "application/vnd.dir-bi.plate-dl-nosuffix"; /// application/vnd.dm.delegation+xml public const string VndDmDelegationXml = "application/vnd.dm.delegation+xml"; /// application/vnd.dna public const string VndDna = "application/vnd.dna"; /// application/vnd.document+json public const string VndDocumentJson = "application/vnd.document+json"; /// application/vnd.dolby.mobile.1 public const string VndDolbyMobile1 = "application/vnd.dolby.mobile.1"; /// application/vnd.dolby.mobile.2 public const string VndDolbyMobile2 = "application/vnd.dolby.mobile.2"; /// application/vnd.doremir.scorecloud-binary-document public const string VndDoremirScorecloudBinaryDocument = "application/vnd.doremir.scorecloud-binary-document"; /// application/vnd.dpgraph public const string VndDpgraph = "application/vnd.dpgraph"; /// application/vnd.dreamfactory public const string VndDreamfactory = "application/vnd.dreamfactory"; /// application/vnd.dtg.local public const string VndDtgLocal = "application/vnd.dtg.local"; /// application/vnd.dtg.local.flash public const string VndDtgLocalFlash = "application/vnd.dtg.local.flash"; /// application/vnd.dtg.local.html public const string VndDtgLocalHtml = "application/vnd.dtg.local.html"; /// application/vnd.dvb.ait public const string VndDvbAit = "application/vnd.dvb.ait"; /// application/vnd.dvb.dvbj public const string VndDvbDvbj = "application/vnd.dvb.dvbj"; /// application/vnd.dvb.esgcontainer public const string VndDvbEsgcontainer = "application/vnd.dvb.esgcontainer"; /// application/vnd.dvb.ipdcdftnotifaccess public const string VndDvbIpdcdftnotifaccess = "application/vnd.dvb.ipdcdftnotifaccess"; /// application/vnd.dvb.ipdcesgaccess public const string VndDvbIpdcesgaccess = "application/vnd.dvb.ipdcesgaccess"; /// application/vnd.dvb.ipdcesgaccess2 public const string VndDvbIpdcesgaccess2 = "application/vnd.dvb.ipdcesgaccess2"; /// application/vnd.dvb.ipdcesgpdd public const string VndDvbIpdcesgpdd = "application/vnd.dvb.ipdcesgpdd"; /// application/vnd.dvb.ipdcroaming public const string VndDvbIpdcroaming = "application/vnd.dvb.ipdcroaming"; /// application/vnd.dvb.iptv.alfec-base public const string VndDvbIptvAlfecBase = "application/vnd.dvb.iptv.alfec-base"; /// application/vnd.dvb.iptv.alfec-enhancement public const string VndDvbIptvAlfecEnhancement = "application/vnd.dvb.iptv.alfec-enhancement"; /// application/vnd.dvb.notif-aggregate-root+xml public const string VndDvbNotifAggregateRootXml = "application/vnd.dvb.notif-aggregate-root+xml"; /// application/vnd.dvb.notif-container+xml public const string VndDvbNotifContainerXml = "application/vnd.dvb.notif-container+xml"; /// application/vnd.dvb.notif-generic+xml public const string VndDvbNotifGenericXml = "application/vnd.dvb.notif-generic+xml"; /// application/vnd.dvb.notif-ia-msglist+xml public const string VndDvbNotifIaMsglistXml = "application/vnd.dvb.notif-ia-msglist+xml"; /// application/vnd.dvb.notif-ia-registration-request+xml public const string VndDvbNotifIaRegistrationRequestXml = "application/vnd.dvb.notif-ia-registration-request+xml"; /// application/vnd.dvb.notif-ia-registration-response+xml public const string VndDvbNotifIaRegistrationResponseXml = "application/vnd.dvb.notif-ia-registration-response+xml"; /// application/vnd.dvb.notif-init+xml public const string VndDvbNotifInitXml = "application/vnd.dvb.notif-init+xml"; /// application/vnd.dvb.pfr public const string VndDvbPfr = "application/vnd.dvb.pfr"; /// application/vnd.dvb.service public const string VndDvbService = "application/vnd.dvb.service"; /// application/vnd.dxr public const string VndDxr = "application/vnd.dxr"; /// application/vnd.dynageo public const string VndDynageo = "application/vnd.dynageo"; /// application/vnd.dzr public const string VndDzr = "application/vnd.dzr"; /// application/vnd.easykaraoke.cdgdownload public const string VndEasykaraokeCdgdownload = "application/vnd.easykaraoke.cdgdownload"; /// application/vnd.ecdis-update public const string VndEcdisUpdate = "application/vnd.ecdis-update"; /// application/vnd.ecowin.chart public const string VndEcowinChart = "application/vnd.ecowin.chart"; /// application/vnd.ecowin.filerequest public const string VndEcowinFilerequest = "application/vnd.ecowin.filerequest"; /// application/vnd.ecowin.fileupdate public const string VndEcowinFileupdate = "application/vnd.ecowin.fileupdate"; /// application/vnd.ecowin.series public const string VndEcowinSeries = "application/vnd.ecowin.series"; /// application/vnd.ecowin.seriesrequest public const string VndEcowinSeriesrequest = "application/vnd.ecowin.seriesrequest"; /// application/vnd.ecowin.seriesupdate public const string VndEcowinSeriesupdate = "application/vnd.ecowin.seriesupdate"; /// application/vnd.emclient.accessrequest+xml public const string VndEmclientAccessrequestXml = "application/vnd.emclient.accessrequest+xml"; /// application/vnd.enliven public const string VndEnliven = "application/vnd.enliven"; /// application/vnd.eprints.data+xml public const string VndEprintsDataXml = "application/vnd.eprints.data+xml"; /// application/vnd.epson.esf public const string VndEpsonEsf = "application/vnd.epson.esf"; /// application/vnd.epson.msf public const string VndEpsonMsf = "application/vnd.epson.msf"; /// application/vnd.epson.quickanime public const string VndEpsonQuickanime = "application/vnd.epson.quickanime"; /// application/vnd.epson.salt public const string VndEpsonSalt = "application/vnd.epson.salt"; /// application/vnd.epson.ssf public const string VndEpsonSsf = "application/vnd.epson.ssf"; /// application/vnd.ericsson.quickcall public const string VndEricssonQuickcall = "application/vnd.ericsson.quickcall"; /// application/vnd.eszigno3+xml public const string VndEszigno3Xml = "application/vnd.eszigno3+xml"; /// application/vnd.etsi.aoc+xml public const string VndEtsiAocXml = "application/vnd.etsi.aoc+xml"; /// application/vnd.etsi.asic-s+zip public const string VndEtsiAsicSZip = "application/vnd.etsi.asic-s+zip"; /// application/vnd.etsi.asic-e+zip public const string VndEtsiAsicEZip = "application/vnd.etsi.asic-e+zip"; /// application/vnd.etsi.cug+xml public const string VndEtsiCugXml = "application/vnd.etsi.cug+xml"; /// application/vnd.etsi.iptvcommand+xml public const string VndEtsiIptvcommandXml = "application/vnd.etsi.iptvcommand+xml"; /// application/vnd.etsi.iptvdiscovery+xml public const string VndEtsiIptvdiscoveryXml = "application/vnd.etsi.iptvdiscovery+xml"; /// application/vnd.etsi.iptvprofile+xml public const string VndEtsiIptvprofileXml = "application/vnd.etsi.iptvprofile+xml"; /// application/vnd.etsi.iptvsad-bc+xml public const string VndEtsiIptvsadBcXml = "application/vnd.etsi.iptvsad-bc+xml"; /// application/vnd.etsi.iptvsad-cod+xml public const string VndEtsiIptvsadCodXml = "application/vnd.etsi.iptvsad-cod+xml"; /// application/vnd.etsi.iptvsad-npvr+xml public const string VndEtsiIptvsadNpvrXml = "application/vnd.etsi.iptvsad-npvr+xml"; /// application/vnd.etsi.iptvservice+xml public const string VndEtsiIptvserviceXml = "application/vnd.etsi.iptvservice+xml"; /// application/vnd.etsi.iptvsync+xml public const string VndEtsiIptvsyncXml = "application/vnd.etsi.iptvsync+xml"; /// application/vnd.etsi.iptvueprofile+xml public const string VndEtsiIptvueprofileXml = "application/vnd.etsi.iptvueprofile+xml"; /// application/vnd.etsi.mcid+xml public const string VndEtsiMcidXml = "application/vnd.etsi.mcid+xml"; /// application/vnd.etsi.mheg5 public const string VndEtsiMheg5 = "application/vnd.etsi.mheg5"; /// application/vnd.etsi.overload-control-policy-dataset+xml public const string VndEtsiOverloadControlPolicyDatasetXml = "application/vnd.etsi.overload-control-policy-dataset+xml"; /// application/vnd.etsi.pstn+xml public const string VndEtsiPstnXml = "application/vnd.etsi.pstn+xml"; /// application/vnd.etsi.sci+xml public const string VndEtsiSciXml = "application/vnd.etsi.sci+xml"; /// application/vnd.etsi.simservs+xml public const string VndEtsiSimservsXml = "application/vnd.etsi.simservs+xml"; /// application/vnd.etsi.timestamp-token public const string VndEtsiTimestampToken = "application/vnd.etsi.timestamp-token"; /// application/vnd.etsi.tsl+xml public const string VndEtsiTslXml = "application/vnd.etsi.tsl+xml"; /// application/vnd.etsi.tsl.der public const string VndEtsiTslDer = "application/vnd.etsi.tsl.der"; /// application/vnd.eudora.data public const string VndEudoraData = "application/vnd.eudora.data"; /// application/vnd.ezpix-album public const string VndEzpixAlbum = "application/vnd.ezpix-album"; /// application/vnd.ezpix-package public const string VndEzpixPackage = "application/vnd.ezpix-package"; /// application/vnd.f-secure.mobile public const string VndFSecureMobile = "application/vnd.f-secure.mobile"; /// application/vnd.fdf public const string VndFdf = "application/vnd.fdf"; /// application/vnd.fdsn.mseed public const string VndFdsnMseed = "application/vnd.fdsn.mseed"; /// application/vnd.fdsn.seed public const string VndFdsnSeed = "application/vnd.fdsn.seed"; /// application/vnd.ffsns public const string VndFfsns = "application/vnd.ffsns"; /// application/vnd.fints public const string VndFints = "application/vnd.fints"; /// application/vnd.FloGraphIt public const string VndFlographit = "application/vnd.FloGraphIt"; /// application/vnd.fluxtime.clip public const string VndFluxtimeClip = "application/vnd.fluxtime.clip"; /// application/vnd.font-fontforge-sfd public const string VndFontFontforgeSfd = "application/vnd.font-fontforge-sfd"; /// application/vnd.framemaker public const string VndFramemaker = "application/vnd.framemaker"; /// application/vnd.frogans.fnc public const string VndFrogansFnc = "application/vnd.frogans.fnc"; /// application/vnd.frogans.ltf public const string VndFrogansLtf = "application/vnd.frogans.ltf"; /// application/vnd.fsc.weblaunch public const string VndFscWeblaunch = "application/vnd.fsc.weblaunch"; /// application/vnd.fujitsu.oasys public const string VndFujitsuOasys = "application/vnd.fujitsu.oasys"; /// application/vnd.fujitsu.oasys2 public const string VndFujitsuOasys2 = "application/vnd.fujitsu.oasys2"; /// application/vnd.fujitsu.oasys3 public const string VndFujitsuOasys3 = "application/vnd.fujitsu.oasys3"; /// application/vnd.fujitsu.oasysgp public const string VndFujitsuOasysgp = "application/vnd.fujitsu.oasysgp"; /// application/vnd.fujitsu.oasysprs public const string VndFujitsuOasysprs = "application/vnd.fujitsu.oasysprs"; /// application/vnd.fujixerox.ART4 public const string VndFujixeroxArt4 = "application/vnd.fujixerox.ART4"; /// application/vnd.fujixerox.ART-EX public const string VndFujixeroxArtEx = "application/vnd.fujixerox.ART-EX"; /// application/vnd.fujixerox.ddd public const string VndFujixeroxDdd = "application/vnd.fujixerox.ddd"; /// application/vnd.fujixerox.docuworks public const string VndFujixeroxDocuworks = "application/vnd.fujixerox.docuworks"; /// application/vnd.fujixerox.docuworks.binder public const string VndFujixeroxDocuworksBinder = "application/vnd.fujixerox.docuworks.binder"; /// application/vnd.fujixerox.docuworks.container public const string VndFujixeroxDocuworksContainer = "application/vnd.fujixerox.docuworks.container"; /// application/vnd.fujixerox.HBPL public const string VndFujixeroxHbpl = "application/vnd.fujixerox.HBPL"; /// application/vnd.fut-misnet public const string VndFutMisnet = "application/vnd.fut-misnet"; /// application/vnd.fuzzysheet public const string VndFuzzysheet = "application/vnd.fuzzysheet"; /// application/vnd.genomatix.tuxedo public const string VndGenomatixTuxedo = "application/vnd.genomatix.tuxedo"; /// application/vnd.geo+json public const string VndGeoJson = "application/vnd.geo+json"; /// application/vnd.geocube+xml [Obsolete("OBSOLETED by request")] public const string VndGeocubeXml = "application/vnd.geocube+xml"; /// application/vnd.geogebra.file public const string VndGeogebraFile = "application/vnd.geogebra.file"; /// application/vnd.geogebra.tool public const string VndGeogebraTool = "application/vnd.geogebra.tool"; /// application/vnd.geometry-explorer public const string VndGeometryExplorer = "application/vnd.geometry-explorer"; /// application/vnd.geonext public const string VndGeonext = "application/vnd.geonext"; /// application/vnd.geoplan public const string VndGeoplan = "application/vnd.geoplan"; /// application/vnd.geospace public const string VndGeospace = "application/vnd.geospace"; /// application/vnd.globalplatform.card-content-mgt public const string VndGlobalplatformCardContentMgt = "application/vnd.globalplatform.card-content-mgt"; /// application/vnd.globalplatform.card-content-mgt-response public const string VndGlobalplatformCardContentMgtResponse = "application/vnd.globalplatform.card-content-mgt-response"; /// application/vnd.gmx [Obsolete("DEPRECATED")] public const string VndGmx = "application/vnd.gmx"; /// application/vnd.google-earth.kml+xml public const string VndGoogleEarthKmlXml = "application/vnd.google-earth.kml+xml"; /// application/vnd.google-earth.kmz public const string VndGoogleEarthKmz = "application/vnd.google-earth.kmz"; /// application/vnd.grafeq public const string VndGrafeq = "application/vnd.grafeq"; /// application/vnd.gridmp public const string VndGridmp = "application/vnd.gridmp"; /// application/vnd.groove-account public const string VndGrooveAccount = "application/vnd.groove-account"; /// application/vnd.groove-help public const string VndGrooveHelp = "application/vnd.groove-help"; /// application/vnd.groove-identity-message public const string VndGrooveIdentityMessage = "application/vnd.groove-identity-message"; /// application/vnd.groove-injector public const string VndGrooveInjector = "application/vnd.groove-injector"; /// application/vnd.groove-tool-message public const string VndGrooveToolMessage = "application/vnd.groove-tool-message"; /// application/vnd.groove-tool-template public const string VndGrooveToolTemplate = "application/vnd.groove-tool-template"; /// application/vnd.groove-vcard public const string VndGrooveVcard = "application/vnd.groove-vcard"; /// application/vnd.hal+json public const string VndHalJson = "application/vnd.hal+json"; /// application/vnd.hal+xml public const string VndHalXml = "application/vnd.hal+xml"; /// application/vnd.HandHeld-Entertainment+xml public const string VndHandheldEntertainmentXml = "application/vnd.HandHeld-Entertainment+xml"; /// application/vnd.hbci public const string VndHbci = "application/vnd.hbci"; /// application/vnd.hcl-bireports public const string VndHclBireports = "application/vnd.hcl-bireports"; /// application/vnd.heroku+json public const string VndHerokuJson = "application/vnd.heroku+json"; /// application/vnd.hhe.lesson-player public const string VndHheLessonPlayer = "application/vnd.hhe.lesson-player"; /// application/vnd.hp-HPGL public const string VndHpHpgl = "application/vnd.hp-HPGL"; /// application/vnd.hp-hpid public const string VndHpHpid = "application/vnd.hp-hpid"; /// application/vnd.hp-hps public const string VndHpHps = "application/vnd.hp-hps"; /// application/vnd.hp-jlyt public const string VndHpJlyt = "application/vnd.hp-jlyt"; /// application/vnd.hp-PCL public const string VndHpPcl = "application/vnd.hp-PCL"; /// application/vnd.hp-PCLXL public const string VndHpPclxl = "application/vnd.hp-PCLXL"; /// application/vnd.httphone public const string VndHttphone = "application/vnd.httphone"; /// application/vnd.hydrostatix.sof-data public const string VndHydrostatixSofData = "application/vnd.hydrostatix.sof-data"; /// application/vnd.hzn-3d-crossword public const string VndHzn3dCrossword = "application/vnd.hzn-3d-crossword"; /// application/vnd.ibm.afplinedata public const string VndIbmAfplinedata = "application/vnd.ibm.afplinedata"; /// application/vnd.ibm.electronic-media public const string VndIbmElectronicMedia = "application/vnd.ibm.electronic-media"; /// application/vnd.ibm.MiniPay public const string VndIbmMinipay = "application/vnd.ibm.MiniPay"; /// application/vnd.ibm.modcap public const string VndIbmModcap = "application/vnd.ibm.modcap"; /// application/vnd.ibm.rights-management public const string VndIbmRightsManagement = "application/vnd.ibm.rights-management"; /// application/vnd.ibm.secure-container public const string VndIbmSecureContainer = "application/vnd.ibm.secure-container"; /// application/vnd.iccprofile public const string VndIccprofile = "application/vnd.iccprofile"; /// application/vnd.ieee.1905 public const string VndIeee1905 = "application/vnd.ieee.1905"; /// application/vnd.igloader public const string VndIgloader = "application/vnd.igloader"; /// application/vnd.immervision-ivp public const string VndImmervisionIvp = "application/vnd.immervision-ivp"; /// application/vnd.immervision-ivu public const string VndImmervisionIvu = "application/vnd.immervision-ivu"; /// application/vnd.ims.lis.v2.result+json public const string VndImsLisV2ResultJson = "application/vnd.ims.lis.v2.result+json"; /// application/vnd.ims.lti.v2.toolconsumerprofile+json public const string VndImsLtiV2ToolconsumerprofileJson = "application/vnd.ims.lti.v2.toolconsumerprofile+json"; /// application/vnd.ims.lti.v2.toolproxy.id+json public const string VndImsLtiV2ToolproxyIdJson = "application/vnd.ims.lti.v2.toolproxy.id+json"; /// application/vnd.ims.lti.v2.toolproxy+json public const string VndImsLtiV2ToolproxyJson = "application/vnd.ims.lti.v2.toolproxy+json"; /// application/vnd.ims.lti.v2.toolsettings+json public const string VndImsLtiV2ToolsettingsJson = "application/vnd.ims.lti.v2.toolsettings+json"; /// application/vnd.ims.lti.v2.toolsettings.simple+json public const string VndImsLtiV2ToolsettingsSimpleJson = "application/vnd.ims.lti.v2.toolsettings.simple+json"; /// application/vnd.informedcontrol.rms+xml public const string VndInformedcontrolRmsXml = "application/vnd.informedcontrol.rms+xml"; /// application/vnd.infotech.project public const string VndInfotechProject = "application/vnd.infotech.project"; /// application/vnd.infotech.project+xml public const string VndInfotechProjectXml = "application/vnd.infotech.project+xml"; /// application/vnd.informix-visionary [Obsolete("OBSOLETED in favor of application/vnd.visionary")] public const string VndInformixVisionary = "application/vnd.informix-visionary"; /// application/vnd.innopath.wamp.notification public const string VndInnopathWampNotification = "application/vnd.innopath.wamp.notification"; /// application/vnd.insors.igm public const string VndInsorsIgm = "application/vnd.insors.igm"; /// application/vnd.intercon.formnet public const string VndInterconFormnet = "application/vnd.intercon.formnet"; /// application/vnd.intergeo public const string VndIntergeo = "application/vnd.intergeo"; /// application/vnd.intertrust.digibox public const string VndIntertrustDigibox = "application/vnd.intertrust.digibox"; /// application/vnd.intertrust.nncp public const string VndIntertrustNncp = "application/vnd.intertrust.nncp"; /// application/vnd.intu.qbo public const string VndIntuQbo = "application/vnd.intu.qbo"; /// application/vnd.intu.qfx public const string VndIntuQfx = "application/vnd.intu.qfx"; /// application/vnd.iptc.g2.catalogitem+xml public const string VndIptcG2CatalogitemXml = "application/vnd.iptc.g2.catalogitem+xml"; /// application/vnd.iptc.g2.conceptitem+xml public const string VndIptcG2ConceptitemXml = "application/vnd.iptc.g2.conceptitem+xml"; /// application/vnd.iptc.g2.knowledgeitem+xml public const string VndIptcG2KnowledgeitemXml = "application/vnd.iptc.g2.knowledgeitem+xml"; /// application/vnd.iptc.g2.newsitem+xml public const string VndIptcG2NewsitemXml = "application/vnd.iptc.g2.newsitem+xml"; /// application/vnd.iptc.g2.newsmessage+xml public const string VndIptcG2NewsmessageXml = "application/vnd.iptc.g2.newsmessage+xml"; /// application/vnd.iptc.g2.packageitem+xml public const string VndIptcG2PackageitemXml = "application/vnd.iptc.g2.packageitem+xml"; /// application/vnd.iptc.g2.planningitem+xml public const string VndIptcG2PlanningitemXml = "application/vnd.iptc.g2.planningitem+xml"; /// application/vnd.ipunplugged.rcprofile public const string VndIpunpluggedRcprofile = "application/vnd.ipunplugged.rcprofile"; /// application/vnd.irepository.package+xml public const string VndIrepositoryPackageXml = "application/vnd.irepository.package+xml"; /// application/vnd.is-xpr public const string VndIsXpr = "application/vnd.is-xpr"; /// application/vnd.isac.fcs public const string VndIsacFcs = "application/vnd.isac.fcs"; /// application/vnd.jam public const string VndJam = "application/vnd.jam"; /// application/vnd.japannet-directory-service public const string VndJapannetDirectoryService = "application/vnd.japannet-directory-service"; /// application/vnd.japannet-jpnstore-wakeup public const string VndJapannetJpnstoreWakeup = "application/vnd.japannet-jpnstore-wakeup"; /// application/vnd.japannet-payment-wakeup public const string VndJapannetPaymentWakeup = "application/vnd.japannet-payment-wakeup"; /// application/vnd.japannet-registration public const string VndJapannetRegistration = "application/vnd.japannet-registration"; /// application/vnd.japannet-registration-wakeup public const string VndJapannetRegistrationWakeup = "application/vnd.japannet-registration-wakeup"; /// application/vnd.japannet-setstore-wakeup public const string VndJapannetSetstoreWakeup = "application/vnd.japannet-setstore-wakeup"; /// application/vnd.japannet-verification public const string VndJapannetVerification = "application/vnd.japannet-verification"; /// application/vnd.japannet-verification-wakeup public const string VndJapannetVerificationWakeup = "application/vnd.japannet-verification-wakeup"; /// application/vnd.jcp.javame.midlet-rms public const string VndJcpJavameMidletRms = "application/vnd.jcp.javame.midlet-rms"; /// application/vnd.jisp public const string VndJisp = "application/vnd.jisp"; /// application/vnd.joost.joda-archive public const string VndJoostJodaArchive = "application/vnd.joost.joda-archive"; /// application/vnd.jsk.isdn-ngn public const string VndJskIsdnNgn = "application/vnd.jsk.isdn-ngn"; /// application/vnd.kahootz public const string VndKahootz = "application/vnd.kahootz"; /// application/vnd.kde.karbon public const string VndKdeKarbon = "application/vnd.kde.karbon"; /// application/vnd.kde.kchart public const string VndKdeKchart = "application/vnd.kde.kchart"; /// application/vnd.kde.kformula public const string VndKdeKformula = "application/vnd.kde.kformula"; /// application/vnd.kde.kivio public const string VndKdeKivio = "application/vnd.kde.kivio"; /// application/vnd.kde.kontour public const string VndKdeKontour = "application/vnd.kde.kontour"; /// application/vnd.kde.kpresenter public const string VndKdeKpresenter = "application/vnd.kde.kpresenter"; /// application/vnd.kde.kspread public const string VndKdeKspread = "application/vnd.kde.kspread"; /// application/vnd.kde.kword public const string VndKdeKword = "application/vnd.kde.kword"; /// application/vnd.kenameaapp public const string VndKenameaapp = "application/vnd.kenameaapp"; /// application/vnd.kidspiration public const string VndKidspiration = "application/vnd.kidspiration"; /// application/vnd.Kinar public const string VndKinar = "application/vnd.Kinar"; /// application/vnd.koan public const string VndKoan = "application/vnd.koan"; /// application/vnd.kodak-descriptor public const string VndKodakDescriptor = "application/vnd.kodak-descriptor"; /// application/vnd.las.las+xml public const string VndLasLasXml = "application/vnd.las.las+xml"; /// application/vnd.liberty-request+xml public const string VndLibertyRequestXml = "application/vnd.liberty-request+xml"; /// application/vnd.llamagraphics.life-balance.desktop public const string VndLlamagraphicsLifeBalanceDesktop = "application/vnd.llamagraphics.life-balance.desktop"; /// application/vnd.llamagraphics.life-balance.exchange+xml public const string VndLlamagraphicsLifeBalanceExchangeXml = "application/vnd.llamagraphics.life-balance.exchange+xml"; /// application/vnd.lotus-1-2-3 public const string VndLotus123 = "application/vnd.lotus-1-2-3"; /// application/vnd.lotus-approach public const string VndLotusApproach = "application/vnd.lotus-approach"; /// application/vnd.lotus-freelance public const string VndLotusFreelance = "application/vnd.lotus-freelance"; /// application/vnd.lotus-notes public const string VndLotusNotes = "application/vnd.lotus-notes"; /// application/vnd.lotus-organizer public const string VndLotusOrganizer = "application/vnd.lotus-organizer"; /// application/vnd.lotus-screencam public const string VndLotusScreencam = "application/vnd.lotus-screencam"; /// application/vnd.lotus-wordpro public const string VndLotusWordpro = "application/vnd.lotus-wordpro"; /// application/vnd.macports.portpkg public const string VndMacportsPortpkg = "application/vnd.macports.portpkg"; /// application/vnd.marlin.drm.actiontoken+xml public const string VndMarlinDrmActiontokenXml = "application/vnd.marlin.drm.actiontoken+xml"; /// application/vnd.marlin.drm.conftoken+xml public const string VndMarlinDrmConftokenXml = "application/vnd.marlin.drm.conftoken+xml"; /// application/vnd.marlin.drm.license+xml public const string VndMarlinDrmLicenseXml = "application/vnd.marlin.drm.license+xml"; /// application/vnd.marlin.drm.mdcf public const string VndMarlinDrmMdcf = "application/vnd.marlin.drm.mdcf"; /// application/vnd.mason+json public const string VndMasonJson = "application/vnd.mason+json"; /// application/vnd.maxmind.maxmind-db public const string VndMaxmindMaxmindDb = "application/vnd.maxmind.maxmind-db"; /// application/vnd.mcd public const string VndMcd = "application/vnd.mcd"; /// application/vnd.medcalcdata public const string VndMedcalcdata = "application/vnd.medcalcdata"; /// application/vnd.mediastation.cdkey public const string VndMediastationCdkey = "application/vnd.mediastation.cdkey"; /// application/vnd.meridian-slingshot public const string VndMeridianSlingshot = "application/vnd.meridian-slingshot"; /// application/vnd.MFER public const string VndMfer = "application/vnd.MFER"; /// application/vnd.mfmp public const string VndMfmp = "application/vnd.mfmp"; /// application/vnd.micrografx.flo public const string VndMicrografxFlo = "application/vnd.micrografx.flo"; /// application/vnd.micrografx.igx public const string VndMicrografxIgx = "application/vnd.micrografx.igx"; /// application/vnd.miele+json public const string VndMieleJson = "application/vnd.miele+json"; /// application/vnd.mif public const string VndMif = "application/vnd.mif"; /// application/vnd.minisoft-hp3000-save public const string VndMinisoftHp3000Save = "application/vnd.minisoft-hp3000-save"; /// application/vnd.mitsubishi.misty-guard.trustweb public const string VndMitsubishiMistyGuardTrustweb = "application/vnd.mitsubishi.misty-guard.trustweb"; /// application/vnd.Mobius.DAF public const string VndMobiusDaf = "application/vnd.Mobius.DAF"; /// application/vnd.Mobius.DIS public const string VndMobiusDis = "application/vnd.Mobius.DIS"; /// application/vnd.Mobius.MBK public const string VndMobiusMbk = "application/vnd.Mobius.MBK"; /// application/vnd.Mobius.MQY public const string VndMobiusMqy = "application/vnd.Mobius.MQY"; /// application/vnd.Mobius.MSL public const string VndMobiusMsl = "application/vnd.Mobius.MSL"; /// application/vnd.Mobius.PLC public const string VndMobiusPlc = "application/vnd.Mobius.PLC"; /// application/vnd.Mobius.TXF public const string VndMobiusTxf = "application/vnd.Mobius.TXF"; /// application/vnd.mophun.application public const string VndMophunApplication = "application/vnd.mophun.application"; /// application/vnd.mophun.certificate public const string VndMophunCertificate = "application/vnd.mophun.certificate"; /// application/vnd.motorola.flexsuite public const string VndMotorolaFlexsuite = "application/vnd.motorola.flexsuite"; /// application/vnd.motorola.flexsuite.adsi public const string VndMotorolaFlexsuiteAdsi = "application/vnd.motorola.flexsuite.adsi"; /// application/vnd.motorola.flexsuite.fis public const string VndMotorolaFlexsuiteFis = "application/vnd.motorola.flexsuite.fis"; /// application/vnd.motorola.flexsuite.gotap public const string VndMotorolaFlexsuiteGotap = "application/vnd.motorola.flexsuite.gotap"; /// application/vnd.motorola.flexsuite.kmr public const string VndMotorolaFlexsuiteKmr = "application/vnd.motorola.flexsuite.kmr"; /// application/vnd.motorola.flexsuite.ttc public const string VndMotorolaFlexsuiteTtc = "application/vnd.motorola.flexsuite.ttc"; /// application/vnd.motorola.flexsuite.wem public const string VndMotorolaFlexsuiteWem = "application/vnd.motorola.flexsuite.wem"; /// application/vnd.motorola.iprm public const string VndMotorolaIprm = "application/vnd.motorola.iprm"; /// application/vnd.mozilla.xul+xml public const string VndMozillaXulXml = "application/vnd.mozilla.xul+xml"; /// application/vnd.ms-artgalry public const string VndMsArtgalry = "application/vnd.ms-artgalry"; /// application/vnd.ms-asf public const string VndMsAsf = "application/vnd.ms-asf"; /// application/vnd.ms-cab-compressed public const string VndMsCabCompressed = "application/vnd.ms-cab-compressed"; /// application/vnd.mseq public const string VndMseq = "application/vnd.mseq"; /// application/vnd.ms-3mfdocument public const string VndMs3mfdocument = "application/vnd.ms-3mfdocument"; /// application/vnd.ms-excel public const string VndMsExcel = "application/vnd.ms-excel"; /// application/vnd.ms-excel.addin.macroEnabled.12 public const string VndMsExcelAddinMacroenabled12 = "application/vnd.ms-excel.addin.macroEnabled.12"; /// application/vnd.ms-excel.sheet.binary.macroEnabled.12 public const string VndMsExcelSheetBinaryMacroenabled12 = "application/vnd.ms-excel.sheet.binary.macroEnabled.12"; /// application/vnd.ms-excel.sheet.macroEnabled.12 public const string VndMsExcelSheetMacroenabled12 = "application/vnd.ms-excel.sheet.macroEnabled.12"; /// application/vnd.ms-excel.template.macroEnabled.12 public const string VndMsExcelTemplateMacroenabled12 = "application/vnd.ms-excel.template.macroEnabled.12"; /// application/vnd.ms-fontobject public const string VndMsFontobject = "application/vnd.ms-fontobject"; /// application/vnd.ms-htmlhelp public const string VndMsHtmlhelp = "application/vnd.ms-htmlhelp"; /// application/vnd.ms-ims public const string VndMsIms = "application/vnd.ms-ims"; /// application/vnd.ms-lrm public const string VndMsLrm = "application/vnd.ms-lrm"; /// application/vnd.ms-office.activeX+xml public const string VndMsOfficeActivexXml = "application/vnd.ms-office.activeX+xml"; /// application/vnd.ms-officetheme public const string VndMsOfficetheme = "application/vnd.ms-officetheme"; /// application/vnd.ms-playready.initiator+xml public const string VndMsPlayreadyInitiatorXml = "application/vnd.ms-playready.initiator+xml"; /// application/vnd.ms-powerpoint public const string VndMsPowerpoint = "application/vnd.ms-powerpoint"; /// application/vnd.ms-powerpoint.addin.macroEnabled.12 public const string VndMsPowerpointAddinMacroenabled12 = "application/vnd.ms-powerpoint.addin.macroEnabled.12"; /// application/vnd.ms-powerpoint.presentation.macroEnabled.12 public const string VndMsPowerpointPresentationMacroenabled12 = "application/vnd.ms-powerpoint.presentation.macroEnabled.12"; /// application/vnd.ms-powerpoint.slide.macroEnabled.12 public const string VndMsPowerpointSlideMacroenabled12 = "application/vnd.ms-powerpoint.slide.macroEnabled.12"; /// application/vnd.ms-powerpoint.slideshow.macroEnabled.12 public const string VndMsPowerpointSlideshowMacroenabled12 = "application/vnd.ms-powerpoint.slideshow.macroEnabled.12"; /// application/vnd.ms-powerpoint.template.macroEnabled.12 public const string VndMsPowerpointTemplateMacroenabled12 = "application/vnd.ms-powerpoint.template.macroEnabled.12"; /// application/vnd.ms-project public const string VndMsProject = "application/vnd.ms-project"; /// application/vnd.ms-tnef public const string VndMsTnef = "application/vnd.ms-tnef"; /// application/vnd.ms-windows.printerpairing public const string VndMsWindowsPrinterpairing = "application/vnd.ms-windows.printerpairing"; /// application/vnd.ms-wmdrm.lic-chlg-req public const string VndMsWmdrmLicChlgReq = "application/vnd.ms-wmdrm.lic-chlg-req"; /// application/vnd.ms-wmdrm.lic-resp public const string VndMsWmdrmLicResp = "application/vnd.ms-wmdrm.lic-resp"; /// application/vnd.ms-wmdrm.meter-chlg-req public const string VndMsWmdrmMeterChlgReq = "application/vnd.ms-wmdrm.meter-chlg-req"; /// application/vnd.ms-wmdrm.meter-resp public const string VndMsWmdrmMeterResp = "application/vnd.ms-wmdrm.meter-resp"; /// application/vnd.ms-word.document.macroEnabled.12 public const string VndMsWordDocumentMacroenabled12 = "application/vnd.ms-word.document.macroEnabled.12"; /// application/vnd.ms-word.template.macroEnabled.12 public const string VndMsWordTemplateMacroenabled12 = "application/vnd.ms-word.template.macroEnabled.12"; /// application/vnd.ms-works public const string VndMsWorks = "application/vnd.ms-works"; /// application/vnd.ms-wpl public const string VndMsWpl = "application/vnd.ms-wpl"; /// application/vnd.ms-xpsdocument public const string VndMsXpsdocument = "application/vnd.ms-xpsdocument"; /// application/vnd.msign public const string VndMsign = "application/vnd.msign"; /// application/vnd.multiad.creator public const string VndMultiadCreator = "application/vnd.multiad.creator"; /// application/vnd.multiad.creator.cif public const string VndMultiadCreatorCif = "application/vnd.multiad.creator.cif"; /// application/vnd.musician public const string VndMusician = "application/vnd.musician"; /// application/vnd.music-niff public const string VndMusicNiff = "application/vnd.music-niff"; /// application/vnd.muvee.style public const string VndMuveeStyle = "application/vnd.muvee.style"; /// application/vnd.mynfc public const string VndMynfc = "application/vnd.mynfc"; /// application/vnd.ncd.control public const string VndNcdControl = "application/vnd.ncd.control"; /// application/vnd.ncd.reference public const string VndNcdReference = "application/vnd.ncd.reference"; /// application/vnd.nervana public const string VndNervana = "application/vnd.nervana"; /// application/vnd.netfpx public const string VndNetfpx = "application/vnd.netfpx"; /// application/vnd.neurolanguage.nlu public const string VndNeurolanguageNlu = "application/vnd.neurolanguage.nlu"; /// application/vnd.nintendo.snes.rom public const string VndNintendoSnesRom = "application/vnd.nintendo.snes.rom"; /// application/vnd.nintendo.nitro.rom public const string VndNintendoNitroRom = "application/vnd.nintendo.nitro.rom"; /// application/vnd.nitf public const string VndNitf = "application/vnd.nitf"; /// application/vnd.noblenet-directory public const string VndNoblenetDirectory = "application/vnd.noblenet-directory"; /// application/vnd.noblenet-sealer public const string VndNoblenetSealer = "application/vnd.noblenet-sealer"; /// application/vnd.noblenet-web public const string VndNoblenetWeb = "application/vnd.noblenet-web"; /// application/vnd.nokia.catalogs public const string VndNokiaCatalogs = "application/vnd.nokia.catalogs"; /// application/vnd.nokia.conml+wbxml public const string VndNokiaConmlWbxml = "application/vnd.nokia.conml+wbxml"; /// application/vnd.nokia.conml+xml public const string VndNokiaConmlXml = "application/vnd.nokia.conml+xml"; /// application/vnd.nokia.iptv.config+xml public const string VndNokiaIptvConfigXml = "application/vnd.nokia.iptv.config+xml"; /// application/vnd.nokia.iSDS-radio-presets public const string VndNokiaIsdsRadioPresets = "application/vnd.nokia.iSDS-radio-presets"; /// application/vnd.nokia.landmark+wbxml public const string VndNokiaLandmarkWbxml = "application/vnd.nokia.landmark+wbxml"; /// application/vnd.nokia.landmark+xml public const string VndNokiaLandmarkXml = "application/vnd.nokia.landmark+xml"; /// application/vnd.nokia.landmarkcollection+xml public const string VndNokiaLandmarkcollectionXml = "application/vnd.nokia.landmarkcollection+xml"; /// application/vnd.nokia.ncd public const string VndNokiaNcd = "application/vnd.nokia.ncd"; /// application/vnd.nokia.n-gage.ac+xml public const string VndNokiaNGageAcXml = "application/vnd.nokia.n-gage.ac+xml"; /// application/vnd.nokia.n-gage.data public const string VndNokiaNGageData = "application/vnd.nokia.n-gage.data"; /// application/vnd.nokia.n-gage.symbian.install [Obsolete("OBSOLETE; no replacement given")] public const string VndNokiaNGageSymbianInstall = "application/vnd.nokia.n-gage.symbian.install"; /// application/vnd.nokia.pcd+wbxml public const string VndNokiaPcdWbxml = "application/vnd.nokia.pcd+wbxml"; /// application/vnd.nokia.pcd+xml public const string VndNokiaPcdXml = "application/vnd.nokia.pcd+xml"; /// application/vnd.nokia.radio-preset public const string VndNokiaRadioPreset = "application/vnd.nokia.radio-preset"; /// application/vnd.nokia.radio-presets public const string VndNokiaRadioPresets = "application/vnd.nokia.radio-presets"; /// application/vnd.novadigm.EDM public const string VndNovadigmEdm = "application/vnd.novadigm.EDM"; /// application/vnd.novadigm.EDX public const string VndNovadigmEdx = "application/vnd.novadigm.EDX"; /// application/vnd.novadigm.EXT public const string VndNovadigmExt = "application/vnd.novadigm.EXT"; /// application/vnd.ntt-local.content-share public const string VndNttLocalContentShare = "application/vnd.ntt-local.content-share"; /// application/vnd.ntt-local.file-transfer public const string VndNttLocalFileTransfer = "application/vnd.ntt-local.file-transfer"; /// application/vnd.ntt-local.ogw_remote-access public const string VndNttLocalOgwRemoteAccess = "application/vnd.ntt-local.ogw_remote-access"; /// application/vnd.ntt-local.sip-ta_remote public const string VndNttLocalSipTaRemote = "application/vnd.ntt-local.sip-ta_remote"; /// application/vnd.ntt-local.sip-ta_tcp_stream public const string VndNttLocalSipTaTcpStream = "application/vnd.ntt-local.sip-ta_tcp_stream"; /// application/vnd.oasis.opendocument.chart public const string VndOasisOpendocumentChart = "application/vnd.oasis.opendocument.chart"; /// application/vnd.oasis.opendocument.chart-template public const string VndOasisOpendocumentChartTemplate = "application/vnd.oasis.opendocument.chart-template"; /// application/vnd.oasis.opendocument.database public const string VndOasisOpendocumentDatabase = "application/vnd.oasis.opendocument.database"; /// application/vnd.oasis.opendocument.formula public const string VndOasisOpendocumentFormula = "application/vnd.oasis.opendocument.formula"; /// application/vnd.oasis.opendocument.formula-template public const string VndOasisOpendocumentFormulaTemplate = "application/vnd.oasis.opendocument.formula-template"; /// application/vnd.oasis.opendocument.graphics public const string VndOasisOpendocumentGraphics = "application/vnd.oasis.opendocument.graphics"; /// application/vnd.oasis.opendocument.graphics-template public const string VndOasisOpendocumentGraphicsTemplate = "application/vnd.oasis.opendocument.graphics-template"; /// application/vnd.oasis.opendocument.image public const string VndOasisOpendocumentImage = "application/vnd.oasis.opendocument.image"; /// application/vnd.oasis.opendocument.image-template public const string VndOasisOpendocumentImageTemplate = "application/vnd.oasis.opendocument.image-template"; /// application/vnd.oasis.opendocument.presentation public const string VndOasisOpendocumentPresentation = "application/vnd.oasis.opendocument.presentation"; /// application/vnd.oasis.opendocument.presentation-template public const string VndOasisOpendocumentPresentationTemplate = "application/vnd.oasis.opendocument.presentation-template"; /// application/vnd.oasis.opendocument.spreadsheet public const string VndOasisOpendocumentSpreadsheet = "application/vnd.oasis.opendocument.spreadsheet"; /// application/vnd.oasis.opendocument.spreadsheet-template public const string VndOasisOpendocumentSpreadsheetTemplate = "application/vnd.oasis.opendocument.spreadsheet-template"; /// application/vnd.oasis.opendocument.text public const string VndOasisOpendocumentText = "application/vnd.oasis.opendocument.text"; /// application/vnd.oasis.opendocument.text-master public const string VndOasisOpendocumentTextMaster = "application/vnd.oasis.opendocument.text-master"; /// application/vnd.oasis.opendocument.text-template public const string VndOasisOpendocumentTextTemplate = "application/vnd.oasis.opendocument.text-template"; /// application/vnd.oasis.opendocument.text-web public const string VndOasisOpendocumentTextWeb = "application/vnd.oasis.opendocument.text-web"; /// application/vnd.obn public const string VndObn = "application/vnd.obn"; /// application/vnd.oftn.l10n+json public const string VndOftnL10nJson = "application/vnd.oftn.l10n+json"; /// application/vnd.oipf.contentaccessdownload+xml public const string VndOipfContentaccessdownloadXml = "application/vnd.oipf.contentaccessdownload+xml"; /// application/vnd.oipf.contentaccessstreaming+xml public const string VndOipfContentaccessstreamingXml = "application/vnd.oipf.contentaccessstreaming+xml"; /// application/vnd.oipf.cspg-hexbinary public const string VndOipfCspgHexbinary = "application/vnd.oipf.cspg-hexbinary"; /// application/vnd.oipf.dae.svg+xml public const string VndOipfDaeSvgXml = "application/vnd.oipf.dae.svg+xml"; /// application/vnd.oipf.dae.xhtml+xml public const string VndOipfDaeXhtmlXml = "application/vnd.oipf.dae.xhtml+xml"; /// application/vnd.oipf.mippvcontrolmessage+xml public const string VndOipfMippvcontrolmessageXml = "application/vnd.oipf.mippvcontrolmessage+xml"; /// application/vnd.oipf.pae.gem public const string VndOipfPaeGem = "application/vnd.oipf.pae.gem"; /// application/vnd.oipf.spdiscovery+xml public const string VndOipfSpdiscoveryXml = "application/vnd.oipf.spdiscovery+xml"; /// application/vnd.oipf.spdlist+xml public const string VndOipfSpdlistXml = "application/vnd.oipf.spdlist+xml"; /// application/vnd.oipf.ueprofile+xml public const string VndOipfUeprofileXml = "application/vnd.oipf.ueprofile+xml"; /// application/vnd.oipf.userprofile+xml public const string VndOipfUserprofileXml = "application/vnd.oipf.userprofile+xml"; /// application/vnd.olpc-sugar public const string VndOlpcSugar = "application/vnd.olpc-sugar"; /// application/vnd.oma.bcast.associated-procedure-parameter+xml public const string VndOmaBcastAssociatedProcedureParameterXml = "application/vnd.oma.bcast.associated-procedure-parameter+xml"; /// application/vnd.oma.bcast.drm-trigger+xml public const string VndOmaBcastDrmTriggerXml = "application/vnd.oma.bcast.drm-trigger+xml"; /// application/vnd.oma.bcast.imd+xml public const string VndOmaBcastImdXml = "application/vnd.oma.bcast.imd+xml"; /// application/vnd.oma.bcast.ltkm public const string VndOmaBcastLtkm = "application/vnd.oma.bcast.ltkm"; /// application/vnd.oma.bcast.notification+xml public const string VndOmaBcastNotificationXml = "application/vnd.oma.bcast.notification+xml"; /// application/vnd.oma.bcast.provisioningtrigger public const string VndOmaBcastProvisioningtrigger = "application/vnd.oma.bcast.provisioningtrigger"; /// application/vnd.oma.bcast.sgboot public const string VndOmaBcastSgboot = "application/vnd.oma.bcast.sgboot"; /// application/vnd.oma.bcast.sgdd+xml public const string VndOmaBcastSgddXml = "application/vnd.oma.bcast.sgdd+xml"; /// application/vnd.oma.bcast.sgdu public const string VndOmaBcastSgdu = "application/vnd.oma.bcast.sgdu"; /// application/vnd.oma.bcast.simple-symbol-container public const string VndOmaBcastSimpleSymbolContainer = "application/vnd.oma.bcast.simple-symbol-container"; /// application/vnd.oma.bcast.smartcard-trigger+xml public const string VndOmaBcastSmartcardTriggerXml = "application/vnd.oma.bcast.smartcard-trigger+xml"; /// application/vnd.oma.bcast.sprov+xml public const string VndOmaBcastSprovXml = "application/vnd.oma.bcast.sprov+xml"; /// application/vnd.oma.bcast.stkm public const string VndOmaBcastStkm = "application/vnd.oma.bcast.stkm"; /// application/vnd.oma.cab-address-book+xml public const string VndOmaCabAddressBookXml = "application/vnd.oma.cab-address-book+xml"; /// application/vnd.oma.cab-feature-handler+xml public const string VndOmaCabFeatureHandlerXml = "application/vnd.oma.cab-feature-handler+xml"; /// application/vnd.oma.cab-pcc+xml public const string VndOmaCabPccXml = "application/vnd.oma.cab-pcc+xml"; /// application/vnd.oma.cab-subs-invite+xml public const string VndOmaCabSubsInviteXml = "application/vnd.oma.cab-subs-invite+xml"; /// application/vnd.oma.cab-user-prefs+xml public const string VndOmaCabUserPrefsXml = "application/vnd.oma.cab-user-prefs+xml"; /// application/vnd.oma.dcd public const string VndOmaDcd = "application/vnd.oma.dcd"; /// application/vnd.oma.dcdc public const string VndOmaDcdc = "application/vnd.oma.dcdc"; /// application/vnd.oma.dd2+xml public const string VndOmaDd2Xml = "application/vnd.oma.dd2+xml"; /// application/vnd.oma.drm.risd+xml public const string VndOmaDrmRisdXml = "application/vnd.oma.drm.risd+xml"; /// application/vnd.oma.group-usage-list+xml public const string VndOmaGroupUsageListXml = "application/vnd.oma.group-usage-list+xml"; /// application/vnd.oma.pal+xml public const string VndOmaPalXml = "application/vnd.oma.pal+xml"; /// application/vnd.oma.poc.detailed-progress-report+xml public const string VndOmaPocDetailedProgressReportXml = "application/vnd.oma.poc.detailed-progress-report+xml"; /// application/vnd.oma.poc.final-report+xml public const string VndOmaPocFinalReportXml = "application/vnd.oma.poc.final-report+xml"; /// application/vnd.oma.poc.groups+xml public const string VndOmaPocGroupsXml = "application/vnd.oma.poc.groups+xml"; /// application/vnd.oma.poc.invocation-descriptor+xml public const string VndOmaPocInvocationDescriptorXml = "application/vnd.oma.poc.invocation-descriptor+xml"; /// application/vnd.oma.poc.optimized-progress-report+xml public const string VndOmaPocOptimizedProgressReportXml = "application/vnd.oma.poc.optimized-progress-report+xml"; /// application/vnd.oma.push public const string VndOmaPush = "application/vnd.oma.push"; /// application/vnd.oma.scidm.messages+xml public const string VndOmaScidmMessagesXml = "application/vnd.oma.scidm.messages+xml"; /// application/vnd.oma.xcap-directory+xml public const string VndOmaXcapDirectoryXml = "application/vnd.oma.xcap-directory+xml"; /// application/vnd.omads-email+xml public const string VndOmadsEmailXml = "application/vnd.omads-email+xml"; /// application/vnd.omads-file+xml public const string VndOmadsFileXml = "application/vnd.omads-file+xml"; /// application/vnd.omads-folder+xml public const string VndOmadsFolderXml = "application/vnd.omads-folder+xml"; /// application/vnd.omaloc-supl-init public const string VndOmalocSuplInit = "application/vnd.omaloc-supl-init"; /// application/vnd.oma-scws-config public const string VndOmaScwsConfig = "application/vnd.oma-scws-config"; /// application/vnd.oma-scws-http-request public const string VndOmaScwsHttpRequest = "application/vnd.oma-scws-http-request"; /// application/vnd.oma-scws-http-response public const string VndOmaScwsHttpResponse = "application/vnd.oma-scws-http-response"; /// application/vnd.openeye.oeb public const string VndOpeneyeOeb = "application/vnd.openeye.oeb"; /// application/vnd.openxmlformats-officedocument.custom-properties+xml public const string VndOpenxmlformatsOfficedocumentCustomPropertiesXml = "application/vnd.openxmlformats-officedocument.custom-properties+xml"; /// application/vnd.openxmlformats-officedocument.customXmlProperties+xml public const string VndOpenxmlformatsOfficedocumentCustomxmlpropertiesXml = "application/vnd.openxmlformats-officedocument.customXmlProperties+xml"; /// application/vnd.openxmlformats-officedocument.drawing+xml public const string VndOpenxmlformatsOfficedocumentDrawingXml = "application/vnd.openxmlformats-officedocument.drawing+xml"; /// application/vnd.openxmlformats-officedocument.drawingml.chart+xml public const string VndOpenxmlformatsOfficedocumentDrawingmlChartXml = "application/vnd.openxmlformats-officedocument.drawingml.chart+xml"; /// application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml public const string VndOpenxmlformatsOfficedocumentDrawingmlChartshapesXml = "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml"; /// application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml public const string VndOpenxmlformatsOfficedocumentDrawingmlDiagramcolorsXml = "application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml"; /// application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml public const string VndOpenxmlformatsOfficedocumentDrawingmlDiagramdataXml = "application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml"; /// application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml public const string VndOpenxmlformatsOfficedocumentDrawingmlDiagramlayoutXml = "application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml"; /// application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml public const string VndOpenxmlformatsOfficedocumentDrawingmlDiagramstyleXml = "application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml"; /// application/vnd.openxmlformats-officedocument.extended-properties+xml public const string VndOpenxmlformatsOfficedocumentExtendedPropertiesXml = "application/vnd.openxmlformats-officedocument.extended-properties+xml"; /// application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml public const string VndOpenxmlformatsOfficedocumentPresentationmlCommentauthorsXml = "application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml"; /// application/vnd.openxmlformats-officedocument.presentationml.comments+xml public const string VndOpenxmlformatsOfficedocumentPresentationmlCommentsXml = "application/vnd.openxmlformats-officedocument.presentationml.comments+xml"; /// application/vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml public const string VndOpenxmlformatsOfficedocumentPresentationmlHandoutmasterXml = "application/vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml"; /// application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml public const string VndOpenxmlformatsOfficedocumentPresentationmlNotesmasterXml = "application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml"; /// application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml public const string VndOpenxmlformatsOfficedocumentPresentationmlNotesslideXml = "application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml"; /// application/vnd.openxmlformats-officedocument.presentationml.presentation public const string VndOpenxmlformatsOfficedocumentPresentationmlPresentation = "application/vnd.openxmlformats-officedocument.presentationml.presentation"; /// application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml public const string VndOpenxmlformatsOfficedocumentPresentationmlPresentationMainXml = "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml"; /// application/vnd.openxmlformats-officedocument.presentationml.presProps+xml public const string VndOpenxmlformatsOfficedocumentPresentationmlPrespropsXml = "application/vnd.openxmlformats-officedocument.presentationml.presProps+xml"; /// application/vnd.openxmlformats-officedocument.presentationml.slide public const string VndOpenxmlformatsOfficedocumentPresentationmlSlide = "application/vnd.openxmlformats-officedocument.presentationml.slide"; /// application/vnd.openxmlformats-officedocument.presentationml.slide+xml public const string VndOpenxmlformatsOfficedocumentPresentationmlSlideXml = "application/vnd.openxmlformats-officedocument.presentationml.slide+xml"; /// application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml public const string VndOpenxmlformatsOfficedocumentPresentationmlSlidelayoutXml = "application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml"; /// application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml public const string VndOpenxmlformatsOfficedocumentPresentationmlSlidemasterXml = "application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml"; /// application/vnd.openxmlformats-officedocument.presentationml.slideshow public const string VndOpenxmlformatsOfficedocumentPresentationmlSlideshow = "application/vnd.openxmlformats-officedocument.presentationml.slideshow"; /// application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml public const string VndOpenxmlformatsOfficedocumentPresentationmlSlideshowMainXml = "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml"; /// application/vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml public const string VndOpenxmlformatsOfficedocumentPresentationmlSlideupdateinfoXml = "application/vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml"; /// application/vnd.openxmlformats-officedocument.presentationml.tableStyles+xml public const string VndOpenxmlformatsOfficedocumentPresentationmlTablestylesXml = "application/vnd.openxmlformats-officedocument.presentationml.tableStyles+xml"; /// application/vnd.openxmlformats-officedocument.presentationml.tags+xml public const string VndOpenxmlformatsOfficedocumentPresentationmlTagsXml = "application/vnd.openxmlformats-officedocument.presentationml.tags+xml"; /// application/vnd.openxmlformats-officedocument.presentationml.template public const string VndOpenxmlformatsOfficedocumentPresentationmlTemplate = "application/vnd.openxmlformats-officedocument.presentationml.template"; /// application/vnd.openxmlformats-officedocument.presentationml.template.main+xml public const string VndOpenxmlformatsOfficedocumentPresentationmlTemplateMainXml = "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml"; /// application/vnd.openxmlformats-officedocument.presentationml.viewProps+xml public const string VndOpenxmlformatsOfficedocumentPresentationmlViewpropsXml = "application/vnd.openxmlformats-officedocument.presentationml.viewProps+xml"; /// application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml public const string VndOpenxmlformatsOfficedocumentSpreadsheetmlCalcchainXml = "application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml"; /// application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml public const string VndOpenxmlformatsOfficedocumentSpreadsheetmlChartsheetXml = "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml"; /// application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml public const string VndOpenxmlformatsOfficedocumentSpreadsheetmlCommentsXml = "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml"; /// application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml public const string VndOpenxmlformatsOfficedocumentSpreadsheetmlConnectionsXml = "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml"; /// application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml public const string VndOpenxmlformatsOfficedocumentSpreadsheetmlDialogsheetXml = "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml"; /// application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml public const string VndOpenxmlformatsOfficedocumentSpreadsheetmlExternallinkXml = "application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml"; /// application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml public const string VndOpenxmlformatsOfficedocumentSpreadsheetmlPivotcachedefinitionXml = "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml"; /// application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml public const string VndOpenxmlformatsOfficedocumentSpreadsheetmlPivotcacherecordsXml = "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml"; /// application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml public const string VndOpenxmlformatsOfficedocumentSpreadsheetmlPivottableXml = "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml"; /// application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml public const string VndOpenxmlformatsOfficedocumentSpreadsheetmlQuerytableXml = "application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml"; /// application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml public const string VndOpenxmlformatsOfficedocumentSpreadsheetmlRevisionheadersXml = "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml"; /// application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml public const string VndOpenxmlformatsOfficedocumentSpreadsheetmlRevisionlogXml = "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml"; /// application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml public const string VndOpenxmlformatsOfficedocumentSpreadsheetmlSharedstringsXml = "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"; /// application/vnd.openxmlformats-officedocument.spreadsheetml.sheet public const string VndOpenxmlformatsOfficedocumentSpreadsheetmlSheet = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; /// application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml public const string VndOpenxmlformatsOfficedocumentSpreadsheetmlSheetMainXml = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"; /// application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml public const string VndOpenxmlformatsOfficedocumentSpreadsheetmlSheetmetadataXml = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml"; /// application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml public const string VndOpenxmlformatsOfficedocumentSpreadsheetmlStylesXml = "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"; /// application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml public const string VndOpenxmlformatsOfficedocumentSpreadsheetmlTableXml = "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml"; /// application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml public const string VndOpenxmlformatsOfficedocumentSpreadsheetmlTablesinglecellsXml = "application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml"; /// application/vnd.openxmlformats-officedocument.spreadsheetml.template public const string VndOpenxmlformatsOfficedocumentSpreadsheetmlTemplate = "application/vnd.openxmlformats-officedocument.spreadsheetml.template"; /// application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml public const string VndOpenxmlformatsOfficedocumentSpreadsheetmlTemplateMainXml = "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"; /// application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml public const string VndOpenxmlformatsOfficedocumentSpreadsheetmlUsernamesXml = "application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml"; /// application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml public const string VndOpenxmlformatsOfficedocumentSpreadsheetmlVolatiledependenciesXml = "application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml"; /// application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml public const string VndOpenxmlformatsOfficedocumentSpreadsheetmlWorksheetXml = "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"; /// application/vnd.openxmlformats-officedocument.theme+xml public const string VndOpenxmlformatsOfficedocumentThemeXml = "application/vnd.openxmlformats-officedocument.theme+xml"; /// application/vnd.openxmlformats-officedocument.themeOverride+xml public const string VndOpenxmlformatsOfficedocumentThemeoverrideXml = "application/vnd.openxmlformats-officedocument.themeOverride+xml"; /// application/vnd.openxmlformats-officedocument.vmlDrawing public const string VndOpenxmlformatsOfficedocumentVmldrawing = "application/vnd.openxmlformats-officedocument.vmlDrawing"; /// application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml public const string VndOpenxmlformatsOfficedocumentWordprocessingmlCommentsXml = "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml"; /// application/vnd.openxmlformats-officedocument.wordprocessingml.document public const string VndOpenxmlformatsOfficedocumentWordprocessingmlDocument = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; /// application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml public const string VndOpenxmlformatsOfficedocumentWordprocessingmlDocumentGlossaryXml = "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml"; /// application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml public const string VndOpenxmlformatsOfficedocumentWordprocessingmlDocumentMainXml = "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"; /// application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml public const string VndOpenxmlformatsOfficedocumentWordprocessingmlEndnotesXml = "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml"; /// application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml public const string VndOpenxmlformatsOfficedocumentWordprocessingmlFonttableXml = "application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml"; /// application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml public const string VndOpenxmlformatsOfficedocumentWordprocessingmlFooterXml = "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml"; /// application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml public const string VndOpenxmlformatsOfficedocumentWordprocessingmlFootnotesXml = "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml"; /// application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml public const string VndOpenxmlformatsOfficedocumentWordprocessingmlNumberingXml = "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml"; /// application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml public const string VndOpenxmlformatsOfficedocumentWordprocessingmlSettingsXml = "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml"; /// application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml public const string VndOpenxmlformatsOfficedocumentWordprocessingmlStylesXml = "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml"; /// application/vnd.openxmlformats-officedocument.wordprocessingml.template public const string VndOpenxmlformatsOfficedocumentWordprocessingmlTemplate = "application/vnd.openxmlformats-officedocument.wordprocessingml.template"; /// application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml public const string VndOpenxmlformatsOfficedocumentWordprocessingmlTemplateMainXml = "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml"; /// application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml public const string VndOpenxmlformatsOfficedocumentWordprocessingmlWebsettingsXml = "application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml"; /// application/vnd.openxmlformats-package.core-properties+xml public const string VndOpenxmlformatsPackageCorePropertiesXml = "application/vnd.openxmlformats-package.core-properties+xml"; /// application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml public const string VndOpenxmlformatsPackageDigitalSignatureXmlsignatureXml = "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml"; /// application/vnd.openxmlformats-package.relationships+xml public const string VndOpenxmlformatsPackageRelationshipsXml = "application/vnd.openxmlformats-package.relationships+xml"; /// application/vnd.orange.indata public const string VndOrangeIndata = "application/vnd.orange.indata"; /// application/vnd.osa.netdeploy public const string VndOsaNetdeploy = "application/vnd.osa.netdeploy"; /// application/vnd.osgeo.mapguide.package public const string VndOsgeoMapguidePackage = "application/vnd.osgeo.mapguide.package"; /// application/vnd.osgi.bundle public const string VndOsgiBundle = "application/vnd.osgi.bundle"; /// application/vnd.osgi.dp public const string VndOsgiDp = "application/vnd.osgi.dp"; /// application/vnd.osgi.subsystem public const string VndOsgiSubsystem = "application/vnd.osgi.subsystem"; /// application/vnd.otps.ct-kip+xml public const string VndOtpsCtKipXml = "application/vnd.otps.ct-kip+xml"; /// application/vnd.palm public const string VndPalm = "application/vnd.palm"; /// application/vnd.panoply public const string VndPanoply = "application/vnd.panoply"; /// application/vnd.paos.xml public const string VndPaosXml = "application/vnd.paos.xml"; /// application/vnd.pawaafile public const string VndPawaafile = "application/vnd.pawaafile"; /// application/vnd.pcos public const string VndPcos = "application/vnd.pcos"; /// application/vnd.pg.format public const string VndPgFormat = "application/vnd.pg.format"; /// application/vnd.pg.osasli public const string VndPgOsasli = "application/vnd.pg.osasli"; /// application/vnd.piaccess.application-licence public const string VndPiaccessApplicationLicence = "application/vnd.piaccess.application-licence"; /// application/vnd.picsel public const string VndPicsel = "application/vnd.picsel"; /// application/vnd.pmi.widget public const string VndPmiWidget = "application/vnd.pmi.widget"; /// application/vnd.poc.group-advertisement+xml public const string VndPocGroupAdvertisementXml = "application/vnd.poc.group-advertisement+xml"; /// application/vnd.pocketlearn public const string VndPocketlearn = "application/vnd.pocketlearn"; /// application/vnd.powerbuilder6 public const string VndPowerbuilder6 = "application/vnd.powerbuilder6"; /// application/vnd.powerbuilder6-s public const string VndPowerbuilder6S = "application/vnd.powerbuilder6-s"; /// application/vnd.powerbuilder7 public const string VndPowerbuilder7 = "application/vnd.powerbuilder7"; /// application/vnd.powerbuilder75 public const string VndPowerbuilder75 = "application/vnd.powerbuilder75"; /// application/vnd.powerbuilder75-s public const string VndPowerbuilder75S = "application/vnd.powerbuilder75-s"; /// application/vnd.powerbuilder7-s public const string VndPowerbuilder7S = "application/vnd.powerbuilder7-s"; /// application/vnd.preminet public const string VndPreminet = "application/vnd.preminet"; /// application/vnd.previewsystems.box public const string VndPreviewsystemsBox = "application/vnd.previewsystems.box"; /// application/vnd.proteus.magazine public const string VndProteusMagazine = "application/vnd.proteus.magazine"; /// application/vnd.publishare-delta-tree public const string VndPublishareDeltaTree = "application/vnd.publishare-delta-tree"; /// application/vnd.pvi.ptid1 public const string VndPviPtid1 = "application/vnd.pvi.ptid1"; /// application/vnd.pwg-multiplexed public const string VndPwgMultiplexed = "application/vnd.pwg-multiplexed"; /// application/vnd.pwg-xhtml-print+xml public const string VndPwgXhtmlPrintXml = "application/vnd.pwg-xhtml-print+xml"; /// application/vnd.qualcomm.brew-app-res public const string VndQualcommBrewAppRes = "application/vnd.qualcomm.brew-app-res"; /// application/vnd.Quark.QuarkXPress public const string VndQuarkQuarkxpress = "application/vnd.Quark.QuarkXPress"; /// application/vnd.quobject-quoxdocument public const string VndQuobjectQuoxdocument = "application/vnd.quobject-quoxdocument"; /// application/vnd.radisys.moml+xml public const string VndRadisysMomlXml = "application/vnd.radisys.moml+xml"; /// application/vnd.radisys.msml-audit-conf+xml public const string VndRadisysMsmlAuditConfXml = "application/vnd.radisys.msml-audit-conf+xml"; /// application/vnd.radisys.msml-audit-conn+xml public const string VndRadisysMsmlAuditConnXml = "application/vnd.radisys.msml-audit-conn+xml"; /// application/vnd.radisys.msml-audit-dialog+xml public const string VndRadisysMsmlAuditDialogXml = "application/vnd.radisys.msml-audit-dialog+xml"; /// application/vnd.radisys.msml-audit-stream+xml public const string VndRadisysMsmlAuditStreamXml = "application/vnd.radisys.msml-audit-stream+xml"; /// application/vnd.radisys.msml-audit+xml public const string VndRadisysMsmlAuditXml = "application/vnd.radisys.msml-audit+xml"; /// application/vnd.radisys.msml-conf+xml public const string VndRadisysMsmlConfXml = "application/vnd.radisys.msml-conf+xml"; /// application/vnd.radisys.msml-dialog-base+xml public const string VndRadisysMsmlDialogBaseXml = "application/vnd.radisys.msml-dialog-base+xml"; /// application/vnd.radisys.msml-dialog-fax-detect+xml public const string VndRadisysMsmlDialogFaxDetectXml = "application/vnd.radisys.msml-dialog-fax-detect+xml"; /// application/vnd.radisys.msml-dialog-fax-sendrecv+xml public const string VndRadisysMsmlDialogFaxSendrecvXml = "application/vnd.radisys.msml-dialog-fax-sendrecv+xml"; /// application/vnd.radisys.msml-dialog-group+xml public const string VndRadisysMsmlDialogGroupXml = "application/vnd.radisys.msml-dialog-group+xml"; /// application/vnd.radisys.msml-dialog-speech+xml public const string VndRadisysMsmlDialogSpeechXml = "application/vnd.radisys.msml-dialog-speech+xml"; /// application/vnd.radisys.msml-dialog-transform+xml public const string VndRadisysMsmlDialogTransformXml = "application/vnd.radisys.msml-dialog-transform+xml"; /// application/vnd.radisys.msml-dialog+xml public const string VndRadisysMsmlDialogXml = "application/vnd.radisys.msml-dialog+xml"; /// application/vnd.radisys.msml+xml public const string VndRadisysMsmlXml = "application/vnd.radisys.msml+xml"; /// application/vnd.rainstor.data public const string VndRainstorData = "application/vnd.rainstor.data"; /// application/vnd.rapid public const string VndRapid = "application/vnd.rapid"; /// application/vnd.realvnc.bed public const string VndRealvncBed = "application/vnd.realvnc.bed"; /// application/vnd.recordare.musicxml public const string VndRecordareMusicxml = "application/vnd.recordare.musicxml"; /// application/vnd.recordare.musicxml+xml public const string VndRecordareMusicxmlXml = "application/vnd.recordare.musicxml+xml"; /// application/vnd.RenLearn.rlprint public const string VndRenlearnRlprint = "application/vnd.RenLearn.rlprint"; /// application/vnd.rig.cryptonote public const string VndRigCryptonote = "application/vnd.rig.cryptonote"; /// application/vnd.route66.link66+xml public const string VndRoute66Link66Xml = "application/vnd.route66.link66+xml"; /// application/vnd.rs-274x public const string VndRs274x = "application/vnd.rs-274x"; /// application/vnd.ruckus.download public const string VndRuckusDownload = "application/vnd.ruckus.download"; /// application/vnd.s3sms public const string VndS3sms = "application/vnd.s3sms"; /// application/vnd.sailingtracker.track public const string VndSailingtrackerTrack = "application/vnd.sailingtracker.track"; /// application/vnd.sbm.cid public const string VndSbmCid = "application/vnd.sbm.cid"; /// application/vnd.sbm.mid2 public const string VndSbmMid2 = "application/vnd.sbm.mid2"; /// application/vnd.scribus public const string VndScribus = "application/vnd.scribus"; /// application/vnd.sealed.3df public const string VndSealed3df = "application/vnd.sealed.3df"; /// application/vnd.sealed.csf public const string VndSealedCsf = "application/vnd.sealed.csf"; /// application/vnd.sealed.doc public const string VndSealedDoc = "application/vnd.sealed.doc"; /// application/vnd.sealed.eml public const string VndSealedEml = "application/vnd.sealed.eml"; /// application/vnd.sealed.mht public const string VndSealedMht = "application/vnd.sealed.mht"; /// application/vnd.sealed.net public const string VndSealedNet = "application/vnd.sealed.net"; /// application/vnd.sealed.ppt public const string VndSealedPpt = "application/vnd.sealed.ppt"; /// application/vnd.sealed.tiff public const string VndSealedTiff = "application/vnd.sealed.tiff"; /// application/vnd.sealed.xls public const string VndSealedXls = "application/vnd.sealed.xls"; /// application/vnd.sealedmedia.softseal.html public const string VndSealedmediaSoftsealHtml = "application/vnd.sealedmedia.softseal.html"; /// application/vnd.sealedmedia.softseal.pdf public const string VndSealedmediaSoftsealPdf = "application/vnd.sealedmedia.softseal.pdf"; /// application/vnd.seemail public const string VndSeemail = "application/vnd.seemail"; /// application/vnd.sema public const string VndSema = "application/vnd.sema"; /// application/vnd.semd public const string VndSemd = "application/vnd.semd"; /// application/vnd.semf public const string VndSemf = "application/vnd.semf"; /// application/vnd.shana.informed.formdata public const string VndShanaInformedFormdata = "application/vnd.shana.informed.formdata"; /// application/vnd.shana.informed.formtemplate public const string VndShanaInformedFormtemplate = "application/vnd.shana.informed.formtemplate"; /// application/vnd.shana.informed.interchange public const string VndShanaInformedInterchange = "application/vnd.shana.informed.interchange"; /// application/vnd.shana.informed.package public const string VndShanaInformedPackage = "application/vnd.shana.informed.package"; /// application/vnd.SimTech-MindMapper public const string VndSimtechMindmapper = "application/vnd.SimTech-MindMapper"; /// application/vnd.siren+json public const string VndSirenJson = "application/vnd.siren+json"; /// application/vnd.smaf public const string VndSmaf = "application/vnd.smaf"; /// application/vnd.smart.notebook public const string VndSmartNotebook = "application/vnd.smart.notebook"; /// application/vnd.smart.teacher public const string VndSmartTeacher = "application/vnd.smart.teacher"; /// application/vnd.software602.filler.form+xml public const string VndSoftware602FillerFormXml = "application/vnd.software602.filler.form+xml"; /// application/vnd.software602.filler.form-xml-zip public const string VndSoftware602FillerFormXmlZip = "application/vnd.software602.filler.form-xml-zip"; /// application/vnd.solent.sdkm+xml public const string VndSolentSdkmXml = "application/vnd.solent.sdkm+xml"; /// application/vnd.spotfire.dxp public const string VndSpotfireDxp = "application/vnd.spotfire.dxp"; /// application/vnd.spotfire.sfs public const string VndSpotfireSfs = "application/vnd.spotfire.sfs"; /// application/vnd.sss-cod public const string VndSssCod = "application/vnd.sss-cod"; /// application/vnd.sss-dtf public const string VndSssDtf = "application/vnd.sss-dtf"; /// application/vnd.sss-ntf public const string VndSssNtf = "application/vnd.sss-ntf"; /// application/vnd.stepmania.package public const string VndStepmaniaPackage = "application/vnd.stepmania.package"; /// application/vnd.stepmania.stepchart public const string VndStepmaniaStepchart = "application/vnd.stepmania.stepchart"; /// application/vnd.street-stream public const string VndStreetStream = "application/vnd.street-stream"; /// application/vnd.sun.wadl+xml public const string VndSunWadlXml = "application/vnd.sun.wadl+xml"; /// application/vnd.sus-calendar public const string VndSusCalendar = "application/vnd.sus-calendar"; /// application/vnd.svd public const string VndSvd = "application/vnd.svd"; /// application/vnd.swiftview-ics public const string VndSwiftviewIcs = "application/vnd.swiftview-ics"; /// application/vnd.syncml.dm.notification public const string VndSyncmlDmNotification = "application/vnd.syncml.dm.notification"; /// application/vnd.syncml.dmddf+xml public const string VndSyncmlDmddfXml = "application/vnd.syncml.dmddf+xml"; /// application/vnd.syncml.dmtnds+wbxml public const string VndSyncmlDmtndsWbxml = "application/vnd.syncml.dmtnds+wbxml"; /// application/vnd.syncml.dmtnds+xml public const string VndSyncmlDmtndsXml = "application/vnd.syncml.dmtnds+xml"; /// application/vnd.syncml.dmddf+wbxml public const string VndSyncmlDmddfWbxml = "application/vnd.syncml.dmddf+wbxml"; /// application/vnd.syncml.dm+wbxml public const string VndSyncmlDmWbxml = "application/vnd.syncml.dm+wbxml"; /// application/vnd.syncml.dm+xml public const string VndSyncmlDmXml = "application/vnd.syncml.dm+xml"; /// application/vnd.syncml.ds.notification public const string VndSyncmlDsNotification = "application/vnd.syncml.ds.notification"; /// application/vnd.syncml+xml public const string VndSyncmlXml = "application/vnd.syncml+xml"; /// application/vnd.tao.intent-module-archive public const string VndTaoIntentModuleArchive = "application/vnd.tao.intent-module-archive"; /// application/vnd.tcpdump.pcap public const string VndTcpdumpPcap = "application/vnd.tcpdump.pcap"; /// application/vnd.tmobile-livetv public const string VndTmobileLivetv = "application/vnd.tmobile-livetv"; /// application/vnd.trid.tpt public const string VndTridTpt = "application/vnd.trid.tpt"; /// application/vnd.triscape.mxs public const string VndTriscapeMxs = "application/vnd.triscape.mxs"; /// application/vnd.trueapp public const string VndTrueapp = "application/vnd.trueapp"; /// application/vnd.truedoc public const string VndTruedoc = "application/vnd.truedoc"; /// application/vnd.ubisoft.webplayer public const string VndUbisoftWebplayer = "application/vnd.ubisoft.webplayer"; /// application/vnd.ufdl public const string VndUfdl = "application/vnd.ufdl"; /// application/vnd.uiq.theme public const string VndUiqTheme = "application/vnd.uiq.theme"; /// application/vnd.umajin public const string VndUmajin = "application/vnd.umajin"; /// application/vnd.unity public const string VndUnity = "application/vnd.unity"; /// application/vnd.uoml+xml public const string VndUomlXml = "application/vnd.uoml+xml"; /// application/vnd.uplanet.alert public const string VndUplanetAlert = "application/vnd.uplanet.alert"; /// application/vnd.uplanet.alert-wbxml public const string VndUplanetAlertWbxml = "application/vnd.uplanet.alert-wbxml"; /// application/vnd.uplanet.bearer-choice public const string VndUplanetBearerChoice = "application/vnd.uplanet.bearer-choice"; /// application/vnd.uplanet.bearer-choice-wbxml public const string VndUplanetBearerChoiceWbxml = "application/vnd.uplanet.bearer-choice-wbxml"; /// application/vnd.uplanet.cacheop public const string VndUplanetCacheop = "application/vnd.uplanet.cacheop"; /// application/vnd.uplanet.cacheop-wbxml public const string VndUplanetCacheopWbxml = "application/vnd.uplanet.cacheop-wbxml"; /// application/vnd.uplanet.channel public const string VndUplanetChannel = "application/vnd.uplanet.channel"; /// application/vnd.uplanet.channel-wbxml public const string VndUplanetChannelWbxml = "application/vnd.uplanet.channel-wbxml"; /// application/vnd.uplanet.list public const string VndUplanetList = "application/vnd.uplanet.list"; /// application/vnd.uplanet.listcmd public const string VndUplanetListcmd = "application/vnd.uplanet.listcmd"; /// application/vnd.uplanet.listcmd-wbxml public const string VndUplanetListcmdWbxml = "application/vnd.uplanet.listcmd-wbxml"; /// application/vnd.uplanet.list-wbxml public const string VndUplanetListWbxml = "application/vnd.uplanet.list-wbxml"; /// application/vnd.uplanet.signal public const string VndUplanetSignal = "application/vnd.uplanet.signal"; /// application/vnd.valve.source.material public const string VndValveSourceMaterial = "application/vnd.valve.source.material"; /// application/vnd.vcx public const string VndVcx = "application/vnd.vcx"; /// application/vnd.vd-study public const string VndVdStudy = "application/vnd.vd-study"; /// application/vnd.vectorworks public const string VndVectorworks = "application/vnd.vectorworks"; /// application/vnd.verimatrix.vcas public const string VndVerimatrixVcas = "application/vnd.verimatrix.vcas"; /// application/vnd.vidsoft.vidconference public const string VndVidsoftVidconference = "application/vnd.vidsoft.vidconference"; /// application/vnd.visio public const string VndVisio = "application/vnd.visio"; /// application/vnd.visionary public const string VndVisionary = "application/vnd.visionary"; /// application/vnd.vividence.scriptfile public const string VndVividenceScriptfile = "application/vnd.vividence.scriptfile"; /// application/vnd.vsf public const string VndVsf = "application/vnd.vsf"; /// application/vnd.wap.sic public const string VndWapSic = "application/vnd.wap.sic"; /// application/vnd.wap.slc public const string VndWapSlc = "application/vnd.wap.slc"; /// application/vnd.wap.wbxml public const string VndWapWbxml = "application/vnd.wap.wbxml"; /// application/vnd.wap.wmlc public const string VndWapWmlc = "application/vnd.wap.wmlc"; /// application/vnd.wap.wmlscriptc public const string VndWapWmlscriptc = "application/vnd.wap.wmlscriptc"; /// application/vnd.webturbo public const string VndWebturbo = "application/vnd.webturbo"; /// application/vnd.wfa.p2p public const string VndWfaP2p = "application/vnd.wfa.p2p"; /// application/vnd.wfa.wsc public const string VndWfaWsc = "application/vnd.wfa.wsc"; /// application/vnd.windows.devicepairing public const string VndWindowsDevicepairing = "application/vnd.windows.devicepairing"; /// application/vnd.wmc public const string VndWmc = "application/vnd.wmc"; /// application/vnd.wmf.bootstrap public const string VndWmfBootstrap = "application/vnd.wmf.bootstrap"; /// application/vnd.wolfram.mathematica public const string VndWolframMathematica = "application/vnd.wolfram.mathematica"; /// application/vnd.wolfram.mathematica.package public const string VndWolframMathematicaPackage = "application/vnd.wolfram.mathematica.package"; /// application/vnd.wolfram.player public const string VndWolframPlayer = "application/vnd.wolfram.player"; /// application/vnd.wordperfect public const string VndWordperfect = "application/vnd.wordperfect"; /// application/vnd.wqd public const string VndWqd = "application/vnd.wqd"; /// application/vnd.wrq-hp3000-labelled public const string VndWrqHp3000Labelled = "application/vnd.wrq-hp3000-labelled"; /// application/vnd.wt.stf public const string VndWtStf = "application/vnd.wt.stf"; /// application/vnd.wv.csp+xml public const string VndWvCspXml = "application/vnd.wv.csp+xml"; /// application/vnd.wv.csp+wbxml public const string VndWvCspWbxml = "application/vnd.wv.csp+wbxml"; /// application/vnd.wv.ssp+xml public const string VndWvSspXml = "application/vnd.wv.ssp+xml"; /// application/vnd.xacml+json public const string VndXacmlJson = "application/vnd.xacml+json"; /// application/vnd.xara public const string VndXara = "application/vnd.xara"; /// application/vnd.xfdl public const string VndXfdl = "application/vnd.xfdl"; /// application/vnd.xfdl.webform public const string VndXfdlWebform = "application/vnd.xfdl.webform"; /// application/vnd.xmi+xml public const string VndXmiXml = "application/vnd.xmi+xml"; /// application/vnd.xmpie.cpkg public const string VndXmpieCpkg = "application/vnd.xmpie.cpkg"; /// application/vnd.xmpie.dpkg public const string VndXmpieDpkg = "application/vnd.xmpie.dpkg"; /// application/vnd.xmpie.plan public const string VndXmpiePlan = "application/vnd.xmpie.plan"; /// application/vnd.xmpie.ppkg public const string VndXmpiePpkg = "application/vnd.xmpie.ppkg"; /// application/vnd.xmpie.xlim public const string VndXmpieXlim = "application/vnd.xmpie.xlim"; /// application/vnd.yamaha.hv-dic public const string VndYamahaHvDic = "application/vnd.yamaha.hv-dic"; /// application/vnd.yamaha.hv-script public const string VndYamahaHvScript = "application/vnd.yamaha.hv-script"; /// application/vnd.yamaha.hv-voice public const string VndYamahaHvVoice = "application/vnd.yamaha.hv-voice"; /// application/vnd.yamaha.openscoreformat.osfpvg+xml public const string VndYamahaOpenscoreformatOsfpvgXml = "application/vnd.yamaha.openscoreformat.osfpvg+xml"; /// application/vnd.yamaha.openscoreformat public const string VndYamahaOpenscoreformat = "application/vnd.yamaha.openscoreformat"; /// application/vnd.yamaha.remote-setup public const string VndYamahaRemoteSetup = "application/vnd.yamaha.remote-setup"; /// application/vnd.yamaha.smaf-audio public const string VndYamahaSmafAudio = "application/vnd.yamaha.smaf-audio"; /// application/vnd.yamaha.smaf-phrase public const string VndYamahaSmafPhrase = "application/vnd.yamaha.smaf-phrase"; /// application/vnd.yamaha.through-ngn public const string VndYamahaThroughNgn = "application/vnd.yamaha.through-ngn"; /// application/vnd.yamaha.tunnel-udpencap public const string VndYamahaTunnelUdpencap = "application/vnd.yamaha.tunnel-udpencap"; /// application/vnd.yaoweme public const string VndYaoweme = "application/vnd.yaoweme"; /// application/vnd.yellowriver-custom-menu public const string VndYellowriverCustomMenu = "application/vnd.yellowriver-custom-menu"; /// application/vnd.zul public const string VndZul = "application/vnd.zul"; /// application/vnd.zzazz.deck+xml public const string VndZzazzDeckXml = "application/vnd.zzazz.deck+xml"; /// application/voicexml+xml public const string VoicexmlXml = "application/voicexml+xml"; /// application/vq-rtcpxr public const string VqRtcpxr = "application/vq-rtcpxr"; /// application/watcherinfo+xml public const string WatcherinfoXml = "application/watcherinfo+xml"; /// application/whoispp-query public const string WhoisppQuery = "application/whoispp-query"; /// application/whoispp-response public const string WhoisppResponse = "application/whoispp-response"; /// application/widget public const string Widget = "application/widget"; /// application/wita public const string Wita = "application/wita"; /// application/wordperfect5.1 public const string Wordperfect51 = "application/wordperfect5.1"; /// application/wsdl+xml public const string WsdlXml = "application/wsdl+xml"; /// application/wspolicy+xml public const string WspolicyXml = "application/wspolicy+xml"; /// application/x-www-form-urlencoded public const string XWwwFormUrlencoded = "application/x-www-form-urlencoded"; /// application/x400-bp public const string X400Bp = "application/x400-bp"; /// application/xacml+xml public const string XacmlXml = "application/xacml+xml"; /// application/xcap-att+xml public const string XcapAttXml = "application/xcap-att+xml"; /// application/xcap-caps+xml public const string XcapCapsXml = "application/xcap-caps+xml"; /// application/xcap-diff+xml public const string XcapDiffXml = "application/xcap-diff+xml"; /// application/xcap-el+xml public const string XcapElXml = "application/xcap-el+xml"; /// application/xcap-error+xml public const string XcapErrorXml = "application/xcap-error+xml"; /// application/xcap-ns+xml public const string XcapNsXml = "application/xcap-ns+xml"; /// application/xcon-conference-info-diff+xml public const string XconConferenceInfoDiffXml = "application/xcon-conference-info-diff+xml"; /// application/xcon-conference-info+xml public const string XconConferenceInfoXml = "application/xcon-conference-info+xml"; /// application/xenc+xml public const string XencXml = "application/xenc+xml"; /// application/xhtml-voice+xml [Obsolete("OBSOLETE; no replacement given")] public const string XhtmlVoiceXml = "application/xhtml-voice+xml"; /// application/xhtml+xml public const string XhtmlXml = "application/xhtml+xml"; /// application/xml public const string Xml = "application/xml"; /// application/xml-dtd public const string XmlDtd = "application/xml-dtd"; /// application/xml-external-parsed-entity public const string XmlExternalParsedEntity = "application/xml-external-parsed-entity"; /// application/xml-patch+xml public const string XmlPatchXml = "application/xml-patch+xml"; /// application/xmpp+xml public const string XmppXml = "application/xmpp+xml"; /// application/xop+xml public const string XopXml = "application/xop+xml"; /// application/xslt+xml public const string XsltXml = "application/xslt+xml"; /// application/xv+xml public const string XvXml = "application/xv+xml"; /// application/yang public const string Yang = "application/yang"; /// application/yin+xml public const string YinXml = "application/yin+xml"; /// application/zip public const string Zip = "application/zip"; /// application/zlib public const string Zlib = "application/zlib"; } /// /// Encapsulates the media subtypes registered under the audio type. /// public class Audio { /// audio/1d-interleaved-parityfec public const string _1dInterleavedParityfec = "audio/1d-interleaved-parityfec"; /// audio/32kadpcm public const string _32kadpcm = "audio/32kadpcm"; /// audio/3gpp public const string _3gpp = "audio/3gpp"; /// audio/3gpp2 public const string _3gpp2 = "audio/3gpp2"; /// audio/ac3 public const string Ac3 = "audio/ac3"; /// audio/AMR public const string Amr = "audio/AMR"; /// audio/AMR-WB public const string AmrWb1 = "audio/AMR-WB"; /// audio/amr-wb+ public const string AmrWb2 = "audio/amr-wb+"; /// audio/aptx public const string Aptx = "audio/aptx"; /// audio/asc public const string Asc = "audio/asc"; /// audio/ATRAC-ADVANCED-LOSSLESS public const string AtracAdvancedLossless = "audio/ATRAC-ADVANCED-LOSSLESS"; /// audio/ATRAC-X public const string AtracX = "audio/ATRAC-X"; /// audio/ATRAC3 public const string Atrac3 = "audio/ATRAC3"; /// audio/basic public const string Basic = "audio/basic"; /// audio/BV16 public const string Bv16 = "audio/BV16"; /// audio/BV32 public const string Bv32 = "audio/BV32"; /// audio/clearmode public const string Clearmode = "audio/clearmode"; /// audio/CN public const string Cn = "audio/CN"; /// audio/DAT12 public const string Dat12 = "audio/DAT12"; /// audio/dls public const string Dls = "audio/dls"; /// audio/dsr-es201108 public const string DsrEs201108 = "audio/dsr-es201108"; /// audio/dsr-es202050 public const string DsrEs202050 = "audio/dsr-es202050"; /// audio/dsr-es202211 public const string DsrEs202211 = "audio/dsr-es202211"; /// audio/dsr-es202212 public const string DsrEs202212 = "audio/dsr-es202212"; /// audio/DV public const string Dv = "audio/DV"; /// audio/DVI4 public const string Dvi4 = "audio/DVI4"; /// audio/eac3 public const string Eac3 = "audio/eac3"; /// audio/encaprtp public const string Encaprtp = "audio/encaprtp"; /// audio/EVRC public const string Evrc = "audio/EVRC"; /// audio/EVRC-QCP public const string EvrcQcp = "audio/EVRC-QCP"; /// audio/EVRC0 public const string Evrc0 = "audio/EVRC0"; /// audio/EVRC1 public const string Evrc1 = "audio/EVRC1"; /// audio/EVRCB public const string Evrcb = "audio/EVRCB"; /// audio/EVRCB0 public const string Evrcb0 = "audio/EVRCB0"; /// audio/EVRCB1 public const string Evrcb1 = "audio/EVRCB1"; /// audio/EVRCNW public const string Evrcnw = "audio/EVRCNW"; /// audio/EVRCNW0 public const string Evrcnw0 = "audio/EVRCNW0"; /// audio/EVRCNW1 public const string Evrcnw1 = "audio/EVRCNW1"; /// audio/EVRCWB public const string Evrcwb = "audio/EVRCWB"; /// audio/EVRCWB0 public const string Evrcwb0 = "audio/EVRCWB0"; /// audio/EVRCWB1 public const string Evrcwb1 = "audio/EVRCWB1"; /// audio/example public const string Example = "audio/example"; /// audio/fwdred public const string Fwdred = "audio/fwdred"; /// audio/G719 public const string G719 = "audio/G719"; /// audio/G7221 public const string G7221 = "audio/G7221"; /// audio/G722 public const string G722 = "audio/G722"; /// audio/G723 public const string G723 = "audio/G723"; /// audio/G726-16 public const string G72616 = "audio/G726-16"; /// audio/G726-24 public const string G72624 = "audio/G726-24"; /// audio/G726-32 public const string G72632 = "audio/G726-32"; /// audio/G726-40 public const string G72640 = "audio/G726-40"; /// audio/G728 public const string G728 = "audio/G728"; /// audio/G729 public const string G729 = "audio/G729"; /// audio/G7291 public const string G7291 = "audio/G7291"; /// audio/G729D public const string G729d = "audio/G729D"; /// audio/G729E public const string G729e = "audio/G729E"; /// audio/GSM public const string Gsm = "audio/GSM"; /// audio/GSM-EFR public const string GsmEfr = "audio/GSM-EFR"; /// audio/GSM-HR-08 public const string GsmHr08 = "audio/GSM-HR-08"; /// audio/iLBC public const string Ilbc = "audio/iLBC"; /// audio/ip-mr_v2.5 public const string IpMrV25 = "audio/ip-mr_v2.5"; /// audio/L8 public const string L8 = "audio/L8"; /// audio/L16 public const string L16 = "audio/L16"; /// audio/L20 public const string L20 = "audio/L20"; /// audio/L24 public const string L24 = "audio/L24"; /// audio/LPC public const string Lpc = "audio/LPC"; /// audio/mobile-xmf public const string MobileXmf = "audio/mobile-xmf"; /// audio/MPA public const string Mpa = "audio/MPA"; /// audio/mp4 public const string Mp4 = "audio/mp4"; /// audio/MP4A-LATM public const string Mp4aLatm = "audio/MP4A-LATM"; /// audio/mpa-robust public const string MpaRobust = "audio/mpa-robust"; /// audio/mpeg public const string Mpeg = "audio/mpeg"; /// audio/mpeg4-generic public const string Mpeg4Generic = "audio/mpeg4-generic"; /// audio/ogg public const string Ogg = "audio/ogg"; /// audio/parityfec public const string Parityfec = "audio/parityfec"; /// audio/PCMA public const string Pcma = "audio/PCMA"; /// audio/PCMA-WB public const string PcmaWb = "audio/PCMA-WB"; /// audio/PCMU public const string Pcmu = "audio/PCMU"; /// audio/PCMU-WB public const string PcmuWb = "audio/PCMU-WB"; /// audio/prs.sid public const string PrsSid = "audio/prs.sid"; /// audio/QCELP public const string Qcelp = "audio/QCELP"; /// audio/raptorfec public const string Raptorfec = "audio/raptorfec"; /// audio/RED public const string Red = "audio/RED"; /// audio/rtp-enc-aescm128 public const string RtpEncAescm128 = "audio/rtp-enc-aescm128"; /// audio/rtploopback public const string Rtploopback = "audio/rtploopback"; /// audio/rtp-midi public const string RtpMidi = "audio/rtp-midi"; /// audio/rtx public const string Rtx = "audio/rtx"; /// audio/SMV public const string Smv = "audio/SMV"; /// audio/SMV0 public const string Smv0 = "audio/SMV0"; /// audio/SMV-QCP public const string SmvQcp = "audio/SMV-QCP"; /// audio/sp-midi public const string SpMidi = "audio/sp-midi"; /// audio/speex public const string Speex = "audio/speex"; /// audio/t140c public const string T140c = "audio/t140c"; /// audio/t38 public const string T38 = "audio/t38"; /// audio/telephone-event public const string TelephoneEvent = "audio/telephone-event"; /// audio/tone public const string Tone = "audio/tone"; /// audio/UEMCLIP public const string Uemclip = "audio/UEMCLIP"; /// audio/ulpfec public const string Ulpfec = "audio/ulpfec"; /// audio/VDVI public const string Vdvi = "audio/VDVI"; /// audio/VMR-WB public const string VmrWb = "audio/VMR-WB"; /// audio/vnd.3gpp.iufp public const string Vnd3gppIufp = "audio/vnd.3gpp.iufp"; /// audio/vnd.4SB public const string Vnd4sb = "audio/vnd.4SB"; /// audio/vnd.audiokoz public const string VndAudiokoz = "audio/vnd.audiokoz"; /// audio/vnd.CELP public const string VndCelp = "audio/vnd.CELP"; /// audio/vnd.cisco.nse public const string VndCiscoNse = "audio/vnd.cisco.nse"; /// audio/vnd.cmles.radio-events public const string VndCmlesRadioEvents = "audio/vnd.cmles.radio-events"; /// audio/vnd.cns.anp1 public const string VndCnsAnp1 = "audio/vnd.cns.anp1"; /// audio/vnd.cns.inf1 public const string VndCnsInf1 = "audio/vnd.cns.inf1"; /// audio/vnd.dece.audio public const string VndDeceAudio = "audio/vnd.dece.audio"; /// audio/vnd.digital-winds public const string VndDigitalWinds = "audio/vnd.digital-winds"; /// audio/vnd.dlna.adts public const string VndDlnaAdts = "audio/vnd.dlna.adts"; /// audio/vnd.dolby.heaac.1 public const string VndDolbyHeaac1 = "audio/vnd.dolby.heaac.1"; /// audio/vnd.dolby.heaac.2 public const string VndDolbyHeaac2 = "audio/vnd.dolby.heaac.2"; /// audio/vnd.dolby.mlp public const string VndDolbyMlp = "audio/vnd.dolby.mlp"; /// audio/vnd.dolby.mps public const string VndDolbyMps = "audio/vnd.dolby.mps"; /// audio/vnd.dolby.pl2 public const string VndDolbyPl2 = "audio/vnd.dolby.pl2"; /// audio/vnd.dolby.pl2x public const string VndDolbyPl2x = "audio/vnd.dolby.pl2x"; /// audio/vnd.dolby.pl2z public const string VndDolbyPl2z = "audio/vnd.dolby.pl2z"; /// audio/vnd.dolby.pulse.1 public const string VndDolbyPulse1 = "audio/vnd.dolby.pulse.1"; /// audio/vnd.dra public const string VndDra = "audio/vnd.dra"; /// audio/vnd.dts public const string VndDts = "audio/vnd.dts"; /// audio/vnd.dts.hd public const string VndDtsHd = "audio/vnd.dts.hd"; /// audio/vnd.dvb.file public const string VndDvbFile = "audio/vnd.dvb.file"; /// audio/vnd.everad.plj public const string VndEveradPlj = "audio/vnd.everad.plj"; /// audio/vnd.hns.audio public const string VndHnsAudio = "audio/vnd.hns.audio"; /// audio/vnd.lucent.voice public const string VndLucentVoice = "audio/vnd.lucent.voice"; /// audio/vnd.ms-playready.media.pya public const string VndMsPlayreadyMediaPya = "audio/vnd.ms-playready.media.pya"; /// audio/vnd.nokia.mobile-xmf public const string VndNokiaMobileXmf = "audio/vnd.nokia.mobile-xmf"; /// audio/vnd.nortel.vbk public const string VndNortelVbk = "audio/vnd.nortel.vbk"; /// audio/vnd.nuera.ecelp4800 public const string VndNueraEcelp4800 = "audio/vnd.nuera.ecelp4800"; /// audio/vnd.nuera.ecelp7470 public const string VndNueraEcelp7470 = "audio/vnd.nuera.ecelp7470"; /// audio/vnd.nuera.ecelp9600 public const string VndNueraEcelp9600 = "audio/vnd.nuera.ecelp9600"; /// audio/vnd.octel.sbc public const string VndOctelSbc = "audio/vnd.octel.sbc"; /// audio/vnd.qcelp [Obsolete("DEPRECATED in favor of audio/qcelp")] public const string VndQcelp = "audio/vnd.qcelp"; /// audio/vnd.rhetorex.32kadpcm public const string VndRhetorex32kadpcm = "audio/vnd.rhetorex.32kadpcm"; /// audio/vnd.rip public const string VndRip = "audio/vnd.rip"; /// audio/vnd.sealedmedia.softseal.mpeg public const string VndSealedmediaSoftsealMpeg = "audio/vnd.sealedmedia.softseal.mpeg"; /// audio/vnd.vmx.cvsd public const string VndVmxCvsd = "audio/vnd.vmx.cvsd"; /// audio/vorbis public const string Vorbis = "audio/vorbis"; /// audio/vorbis-config public const string VorbisConfig = "audio/vorbis-config"; } /// /// Encapsulates the media subtypes registered under the image type. /// public class Image { /// image/cgm public const string Cgm = "image/cgm"; /// image/example public const string Example = "image/example"; /// image/fits public const string Fits = "image/fits"; /// image/g3fax public const string G3fax = "image/g3fax"; /// image/gif public const string Gif = "image/gif"; /// image/ief public const string Ief = "image/ief"; /// image/jp2 public const string Jp2 = "image/jp2"; /// image/jpeg public const string Jpeg = "image/jpeg"; /// image/jpm public const string Jpm = "image/jpm"; /// image/jpx public const string Jpx = "image/jpx"; /// image/ktx public const string Ktx = "image/ktx"; /// image/naplps public const string Naplps = "image/naplps"; /// image/png public const string Png = "image/png"; /// image/prs.btif public const string PrsBtif = "image/prs.btif"; /// image/prs.pti public const string PrsPti = "image/prs.pti"; /// image/pwg-raster public const string PwgRaster = "image/pwg-raster"; /// image/svg+xml public const string SvgXml = "image/svg+xml"; /// image/t38 public const string T38 = "image/t38"; /// image/tiff public const string Tiff = "image/tiff"; /// image/tiff-fx public const string TiffFx = "image/tiff-fx"; /// image/vnd.adobe.photoshop public const string VndAdobePhotoshop = "image/vnd.adobe.photoshop"; /// image/vnd.airzip.accelerator.azv public const string VndAirzipAcceleratorAzv = "image/vnd.airzip.accelerator.azv"; /// image/vnd.cns.inf2 public const string VndCnsInf2 = "image/vnd.cns.inf2"; /// image/vnd.dece.graphic public const string VndDeceGraphic = "image/vnd.dece.graphic"; /// image/vnd.djvu public const string VndDjvu = "image/vnd.djvu"; /// image/vnd.dwg public const string VndDwg = "image/vnd.dwg"; /// image/vnd.dxf public const string VndDxf = "image/vnd.dxf"; /// image/vnd.dvb.subtitle public const string VndDvbSubtitle = "image/vnd.dvb.subtitle"; /// image/vnd.fastbidsheet public const string VndFastbidsheet = "image/vnd.fastbidsheet"; /// image/vnd.fpx public const string VndFpx = "image/vnd.fpx"; /// image/vnd.fst public const string VndFst = "image/vnd.fst"; /// image/vnd.fujixerox.edmics-mmr public const string VndFujixeroxEdmicsMmr = "image/vnd.fujixerox.edmics-mmr"; /// image/vnd.fujixerox.edmics-rlc public const string VndFujixeroxEdmicsRlc = "image/vnd.fujixerox.edmics-rlc"; /// image/vnd.globalgraphics.pgb public const string VndGlobalgraphicsPgb = "image/vnd.globalgraphics.pgb"; /// image/vnd.microsoft.icon public const string VndMicrosoftIcon = "image/vnd.microsoft.icon"; /// image/vnd.mix public const string VndMix = "image/vnd.mix"; /// image/vnd.ms-modi public const string VndMsModi = "image/vnd.ms-modi"; /// image/vnd.net-fpx public const string VndNetFpx = "image/vnd.net-fpx"; /// image/vnd.radiance public const string VndRadiance = "image/vnd.radiance"; /// image/vnd.sealed.png public const string VndSealedPng = "image/vnd.sealed.png"; /// image/vnd.sealedmedia.softseal.gif public const string VndSealedmediaSoftsealGif = "image/vnd.sealedmedia.softseal.gif"; /// image/vnd.sealedmedia.softseal.jpg public const string VndSealedmediaSoftsealJpg = "image/vnd.sealedmedia.softseal.jpg"; /// image/vnd.svf public const string VndSvf = "image/vnd.svf"; /// image/vnd.valve.source.texture public const string VndValveSourceTexture = "image/vnd.valve.source.texture"; /// image/vnd.wap.wbmp public const string VndWapWbmp = "image/vnd.wap.wbmp"; /// image/vnd.xiff public const string VndXiff = "image/vnd.xiff"; } /// /// Encapsulates the media subtypes registered under the message type. /// public class Message { /// message/CPIM public const string Cpim = "message/CPIM"; /// message/delivery-status public const string DeliveryStatus = "message/delivery-status"; /// message/disposition-notification public const string DispositionNotification = "message/disposition-notification"; /// message/example public const string Example = "message/example"; /// message/external-body public const string ExternalBody = "message/external-body"; /// message/feedback-report public const string FeedbackReport = "message/feedback-report"; /// message/global public const string Global = "message/global"; /// message/global-delivery-status public const string GlobalDeliveryStatus = "message/global-delivery-status"; /// message/global-disposition-notification public const string GlobalDispositionNotification = "message/global-disposition-notification"; /// message/global-headers public const string GlobalHeaders = "message/global-headers"; /// message/http public const string Http = "message/http"; /// message/imdn+xml public const string ImdnXml = "message/imdn+xml"; /// message/news [Obsolete("OBSOLETED by RFC5537")] public const string News = "message/news"; /// message/partial public const string Partial = "message/partial"; /// message/rfc822 public const string Rfc822 = "message/rfc822"; /// message/s-http public const string SHttp = "message/s-http"; /// message/sip public const string Sip = "message/sip"; /// message/sipfrag public const string Sipfrag = "message/sipfrag"; /// message/tracking-status public const string TrackingStatus = "message/tracking-status"; /// message/vnd.si.simp [Obsolete("OBSOLETED by request")] public const string VndSiSimp = "message/vnd.si.simp"; /// message/vnd.wfa.wsc public const string VndWfaWsc = "message/vnd.wfa.wsc"; } /// /// Encapsulates the media subtypes registered under the model type. /// public class Model { /// model/example public const string Example = "model/example"; /// model/iges public const string Iges = "model/iges"; /// model/mesh public const string Mesh = "model/mesh"; /// model/vnd.collada+xml public const string VndColladaXml = "model/vnd.collada+xml"; /// model/vnd.dwf public const string VndDwf = "model/vnd.dwf"; /// model/vnd.flatland.3dml public const string VndFlatland3dml = "model/vnd.flatland.3dml"; /// model/vnd.gdl public const string VndGdl = "model/vnd.gdl"; /// model/vnd.gs-gdl public const string VndGsGdl = "model/vnd.gs-gdl"; /// model/vnd.gtw public const string VndGtw = "model/vnd.gtw"; /// model/vnd.moml+xml public const string VndMomlXml = "model/vnd.moml+xml"; /// model/vnd.mts public const string VndMts = "model/vnd.mts"; /// model/vnd.opengex public const string VndOpengex = "model/vnd.opengex"; /// model/vnd.parasolid.transmit.binary public const string VndParasolidTransmitBinary = "model/vnd.parasolid.transmit.binary"; /// model/vnd.parasolid.transmit.text public const string VndParasolidTransmitText = "model/vnd.parasolid.transmit.text"; /// model/vnd.valve.source.compiled-map public const string VndValveSourceCompiledMap = "model/vnd.valve.source.compiled-map"; /// model/vnd.vtu public const string VndVtu = "model/vnd.vtu"; /// model/vrml public const string Vrml = "model/vrml"; /// model/x3d-vrml public const string X3dVrml = "model/x3d-vrml"; /// model/x3d+fastinfoset public const string X3dFastinfoset = "model/x3d+fastinfoset"; /// model/x3d+xml public const string X3dXml = "model/x3d+xml"; } /// /// Encapsulates the media subtypes registered under the multipart type. /// public class Multipart { /// multipart/alternative public const string Alternative = "multipart/alternative"; /// multipart/appledouble public const string Appledouble = "multipart/appledouble"; /// multipart/byteranges public const string Byteranges = "multipart/byteranges"; /// multipart/digest public const string Digest = "multipart/digest"; /// multipart/encrypted public const string Encrypted = "multipart/encrypted"; /// multipart/example public const string Example = "multipart/example"; /// multipart/form-data public const string FormData = "multipart/form-data"; /// multipart/header-set public const string HeaderSet = "multipart/header-set"; /// multipart/mixed public const string Mixed = "multipart/mixed"; /// multipart/parallel public const string Parallel = "multipart/parallel"; /// multipart/related public const string Related = "multipart/related"; /// multipart/report public const string Report = "multipart/report"; /// multipart/signed public const string Signed = "multipart/signed"; /// multipart/voice-message public const string VoiceMessage = "multipart/voice-message"; } /// /// Encapsulates the media subtypes registered under the text type. /// public class Text { /// text/1d-interleaved-parityfec public const string _1dInterleavedParityfec = "text/1d-interleaved-parityfec"; /// text/cache-manifest public const string CacheManifest = "text/cache-manifest"; /// text/calendar public const string Calendar = "text/calendar"; /// text/css public const string Css = "text/css"; /// text/csv public const string Csv = "text/csv"; /// text/directory [Obsolete("DEPRECATED by RFC6350")] public const string Directory = "text/directory"; /// text/dns public const string Dns = "text/dns"; /// text/ecmascript [Obsolete("OBSOLETED in favor of application/ecmascript")] public const string Ecmascript = "text/ecmascript"; /// text/encaprtp public const string Encaprtp = "text/encaprtp"; /// text/enriched public const string Enriched = "text/enriched"; /// text/example public const string Example = "text/example"; /// text/fwdred public const string Fwdred = "text/fwdred"; /// text/grammar-ref-list public const string GrammarRefList = "text/grammar-ref-list"; /// text/html /// This is that web stuff. public const string Html = "text/html"; /// text/javascript [Obsolete("OBSOLETED in favor of application/javascript")] public const string Javascript = "text/javascript"; /// text/jcr-cnd public const string JcrCnd = "text/jcr-cnd"; /// text/mizar public const string Mizar = "text/mizar"; /// text/n3 public const string N3 = "text/n3"; /// text/parameters public const string Parameters = "text/parameters"; /// text/parityfec public const string Parityfec = "text/parityfec"; /// text/plain public const string Plain = "text/plain"; /// text/provenance-notation public const string ProvenanceNotation = "text/provenance-notation"; /// text/prs.fallenstein.rst public const string PrsFallensteinRst = "text/prs.fallenstein.rst"; /// text/prs.lines.tag public const string PrsLinesTag = "text/prs.lines.tag"; /// text/raptorfec public const string Raptorfec = "text/raptorfec"; /// text/RED public const string Red = "text/RED"; /// text/rfc822-headers public const string Rfc822Headers = "text/rfc822-headers"; /// text/richtext public const string Richtext = "text/richtext"; /// text/rtf public const string Rtf = "text/rtf"; /// text/rtp-enc-aescm128 public const string RtpEncAescm128 = "text/rtp-enc-aescm128"; /// text/rtploopback public const string Rtploopback = "text/rtploopback"; /// text/rtx public const string Rtx = "text/rtx"; /// text/sgml public const string Sgml = "text/sgml"; /// text/t140 public const string T140 = "text/t140"; /// text/tab-separated-values public const string TabSeparatedValues = "text/tab-separated-values"; /// text/troff public const string Troff = "text/troff"; /// text/turtle public const string Turtle = "text/turtle"; /// text/ulpfec public const string Ulpfec = "text/ulpfec"; /// text/uri-list public const string UriList = "text/uri-list"; /// text/vcard public const string Vcard = "text/vcard"; /// text/vnd.a public const string VndA = "text/vnd.a"; /// text/vnd.abc public const string VndAbc = "text/vnd.abc"; /// text/vnd.curl public const string VndCurl = "text/vnd.curl"; /// text/vnd.debian.copyright public const string VndDebianCopyright = "text/vnd.debian.copyright"; /// text/vnd.DMClientScript public const string VndDmclientscript = "text/vnd.DMClientScript"; /// text/vnd.dvb.subtitle public const string VndDvbSubtitle = "text/vnd.dvb.subtitle"; /// text/vnd.esmertec.theme-descriptor public const string VndEsmertecThemeDescriptor = "text/vnd.esmertec.theme-descriptor"; /// text/vnd.fly public const string VndFly = "text/vnd.fly"; /// text/vnd.fmi.flexstor public const string VndFmiFlexstor = "text/vnd.fmi.flexstor"; /// text/vnd.graphviz public const string VndGraphviz = "text/vnd.graphviz"; /// text/vnd.in3d.3dml public const string VndIn3d3dml = "text/vnd.in3d.3dml"; /// text/vnd.in3d.spot public const string VndIn3dSpot = "text/vnd.in3d.spot"; /// text/vnd.IPTC.NewsML public const string VndIptcNewsml = "text/vnd.IPTC.NewsML"; /// text/vnd.IPTC.NITF public const string VndIptcNitf = "text/vnd.IPTC.NITF"; /// text/vnd.latex-z public const string VndLatexZ = "text/vnd.latex-z"; /// text/vnd.motorola.reflex public const string VndMotorolaReflex = "text/vnd.motorola.reflex"; /// text/vnd.ms-mediapackage public const string VndMsMediapackage = "text/vnd.ms-mediapackage"; /// text/vnd.net2phone.commcenter.command public const string VndNet2phoneCommcenterCommand = "text/vnd.net2phone.commcenter.command"; /// text/vnd.radisys.msml-basic-layout public const string VndRadisysMsmlBasicLayout = "text/vnd.radisys.msml-basic-layout"; /// text/vnd.si.uricatalogue [Obsolete("OBSOLETED by request")] public const string VndSiUricatalogue = "text/vnd.si.uricatalogue"; /// text/vnd.sun.j2me.app-descriptor public const string VndSunJ2meAppDescriptor = "text/vnd.sun.j2me.app-descriptor"; /// text/vnd.trolltech.linguist public const string VndTrolltechLinguist = "text/vnd.trolltech.linguist"; /// text/vnd.wap.si public const string VndWapSi = "text/vnd.wap.si"; /// text/vnd.wap.sl public const string VndWapSl = "text/vnd.wap.sl"; /// text/vnd.wap.wml public const string VndWapWml = "text/vnd.wap.wml"; /// text/vnd.wap.wmlscript public const string VndWapWmlscript = "text/vnd.wap.wmlscript"; /// text/xml public const string Xml = "text/xml"; /// text/xml-external-parsed-entity public const string XmlExternalParsedEntity = "text/xml-external-parsed-entity"; } /// /// Encapsulates the media subtypes registered under the video type. /// public class Video { /// video/1d-interleaved-parityfec public const string _1dInterleavedParityfec = "video/1d-interleaved-parityfec"; /// video/3gpp public const string _3gpp = "video/3gpp"; /// video/3gpp2 public const string _3gpp2 = "video/3gpp2"; /// video/3gpp-tt public const string _3gppTt = "video/3gpp-tt"; /// video/BMPEG public const string Bmpeg = "video/BMPEG"; /// video/BT656 public const string Bt656 = "video/BT656"; /// video/CelB public const string Celb = "video/CelB"; /// video/DV public const string Dv = "video/DV"; /// video/encaprtp public const string Encaprtp = "video/encaprtp"; /// video/example public const string Example = "video/example"; /// video/H261 public const string H261 = "video/H261"; /// video/H263 public const string H263 = "video/H263"; /// video/H263-1998 public const string H2631998 = "video/H263-1998"; /// video/H263-2000 public const string H2632000 = "video/H263-2000"; /// video/H264 public const string H264 = "video/H264"; /// video/H264-RCDO public const string H264Rcdo = "video/H264-RCDO"; /// video/H264-SVC public const string H264Svc = "video/H264-SVC"; /// video/iso.segment public const string IsoSegment = "video/iso.segment"; /// video/JPEG public const string Jpeg = "video/JPEG"; /// video/jpeg2000 public const string Jpeg2000 = "video/jpeg2000"; /// video/mj2 public const string Mj2 = "video/mj2"; /// video/MP1S public const string Mp1s = "video/MP1S"; /// video/MP2P public const string Mp2p = "video/MP2P"; /// video/MP2T public const string Mp2t = "video/MP2T"; /// video/mp4 public const string Mp4 = "video/mp4"; /// video/MP4V-ES public const string Mp4vEs = "video/MP4V-ES"; /// video/MPV public const string Mpv = "video/MPV"; /// video/mpeg public const string Mpeg = "video/mpeg"; /// video/mpeg4-generic public const string Mpeg4Generic = "video/mpeg4-generic"; /// video/nv public const string Nv = "video/nv"; /// video/ogg public const string Ogg = "video/ogg"; /// video/parityfec public const string Parityfec = "video/parityfec"; /// video/pointer public const string Pointer = "video/pointer"; /// video/quicktime public const string Quicktime = "video/quicktime"; /// video/raptorfec public const string Raptorfec = "video/raptorfec"; /// video/raw public const string Raw = "video/raw"; /// video/rtp-enc-aescm128 public const string RtpEncAescm128 = "video/rtp-enc-aescm128"; /// video/rtploopback public const string Rtploopback = "video/rtploopback"; /// video/rtx public const string Rtx = "video/rtx"; /// video/SMPTE292M public const string Smpte292m = "video/SMPTE292M"; /// video/ulpfec public const string Ulpfec = "video/ulpfec"; /// video/vc1 public const string Vc1 = "video/vc1"; /// video/vnd.CCTV public const string VndCctv = "video/vnd.CCTV"; /// video/vnd.dece.hd public const string VndDeceHd = "video/vnd.dece.hd"; /// video/vnd.dece.mobile public const string VndDeceMobile = "video/vnd.dece.mobile"; /// video/vnd.dece.mp4 public const string VndDeceMp4 = "video/vnd.dece.mp4"; /// video/vnd.dece.pd public const string VndDecePd = "video/vnd.dece.pd"; /// video/vnd.dece.sd public const string VndDeceSd = "video/vnd.dece.sd"; /// video/vnd.dece.video public const string VndDeceVideo = "video/vnd.dece.video"; /// video/vnd.directv.mpeg public const string VndDirectvMpeg = "video/vnd.directv.mpeg"; /// video/vnd.directv.mpeg-tts public const string VndDirectvMpegTts = "video/vnd.directv.mpeg-tts"; /// video/vnd.dlna.mpeg-tts public const string VndDlnaMpegTts = "video/vnd.dlna.mpeg-tts"; /// video/vnd.dvb.file public const string VndDvbFile = "video/vnd.dvb.file"; /// video/vnd.fvt public const string VndFvt = "video/vnd.fvt"; /// video/vnd.hns.video public const string VndHnsVideo = "video/vnd.hns.video"; /// video/vnd.iptvforum.1dparityfec-1010 public const string VndIptvforum1dparityfec1010 = "video/vnd.iptvforum.1dparityfec-1010"; /// video/vnd.iptvforum.1dparityfec-2005 public const string VndIptvforum1dparityfec2005 = "video/vnd.iptvforum.1dparityfec-2005"; /// video/vnd.iptvforum.2dparityfec-1010 public const string VndIptvforum2dparityfec1010 = "video/vnd.iptvforum.2dparityfec-1010"; /// video/vnd.iptvforum.2dparityfec-2005 public const string VndIptvforum2dparityfec2005 = "video/vnd.iptvforum.2dparityfec-2005"; /// video/vnd.iptvforum.ttsavc public const string VndIptvforumTtsavc = "video/vnd.iptvforum.ttsavc"; /// video/vnd.iptvforum.ttsmpeg2 public const string VndIptvforumTtsmpeg2 = "video/vnd.iptvforum.ttsmpeg2"; /// video/vnd.motorola.video public const string VndMotorolaVideo = "video/vnd.motorola.video"; /// video/vnd.motorola.videop public const string VndMotorolaVideop = "video/vnd.motorola.videop"; /// video/vnd.mpegurl public const string VndMpegurl = "video/vnd.mpegurl"; /// video/vnd.ms-playready.media.pyv public const string VndMsPlayreadyMediaPyv = "video/vnd.ms-playready.media.pyv"; /// video/vnd.nokia.interleaved-multimedia public const string VndNokiaInterleavedMultimedia = "video/vnd.nokia.interleaved-multimedia"; /// video/vnd.nokia.videovoip public const string VndNokiaVideovoip = "video/vnd.nokia.videovoip"; /// video/vnd.objectvideo public const string VndObjectvideo = "video/vnd.objectvideo"; /// video/vnd.radgamettools.bink public const string VndRadgamettoolsBink = "video/vnd.radgamettools.bink"; /// video/vnd.radgamettools.smacker public const string VndRadgamettoolsSmacker = "video/vnd.radgamettools.smacker"; /// video/vnd.sealed.mpeg1 public const string VndSealedMpeg1 = "video/vnd.sealed.mpeg1"; /// video/vnd.sealed.mpeg4 public const string VndSealedMpeg4 = "video/vnd.sealed.mpeg4"; /// video/vnd.sealed.swf public const string VndSealedSwf = "video/vnd.sealed.swf"; /// video/vnd.sealedmedia.softseal.mov public const string VndSealedmediaSoftsealMov = "video/vnd.sealedmedia.softseal.mov"; /// video/vnd.uvvu.mp4 public const string VndUvvuMp4 = "video/vnd.uvvu.mp4"; /// video/vnd.vivo public const string VndVivo = "video/vnd.vivo"; } } } ================================================ FILE: Camunda.Api.Client/Message/CorrelationMessage.cs ================================================ using Newtonsoft.Json; using Newtonsoft.Json.Serialization; using System.Collections.Generic; namespace Camunda.Api.Client.Message { [JsonObject(NamingStrategyType = typeof(CamelCaseNamingStrategy))] public class CorrelationMessage { /// /// The name of the message to deliver. /// public string MessageName; /// /// Used for correlation of process instances that wait for incoming messages. Will only correlate to executions that belong to a process instance with the provided business key. /// public string BusinessKey = ""; /// /// Used for correlation of process instances that wait for incoming messages. Has to be an object containing key-value pairs that are matched against process instance variables during correlation. /// public Dictionary CorrelationKeys = new Dictionary(); /// /// A map of variables that is injected into the triggered execution or process instance after the message has been delivered. /// public Dictionary ProcessVariables = new Dictionary(); /// /// Used to correlate the message for a tenant with the given id. Will only correlate to executions and process definitions which belongs to the tenant. /// public string TenantId; /// /// A Boolean value that indicates whether the message should only be correlated to executions and process definitions which belongs to no tenant. Value may only be true, as false is the default behavior. /// public bool WithoutTenantId; /// /// Used to correlate the message to the process instance with the given id. Must not be supplied in conjunction with a tenantId. /// public string ProcessInstanceId; /// /// A Boolean value that indicates whether the message should be correlated to exactly one entity or multiple entities. /// If the value is set to false the message will be correlated to exactly one entity (execution or process definition). /// If the value is set to true the message will be correlated to multiple executions and a process definition that can be instantiated by this message in one go. /// public bool All = false; /// /// A Boolean value that indicates whether the result of the correlation should be returned or not. /// If this property is set to true, there will be returned a list of message correlation result objects. /// Depending on the all property, there will be either one ore more returned results in the list. /// public bool ResultEnabled; public CorrelationMessage SetVariable(string name, object value) { ProcessVariables = (ProcessVariables ?? new Dictionary()).Set(name, value); return this; } public CorrelationMessage SetCorrelationKey(string name, object value) { CorrelationKeys = (CorrelationKeys ?? new Dictionary()).Set(name, value); return this; } } } ================================================ FILE: Camunda.Api.Client/Message/CorrelationResult.cs ================================================ using Camunda.Api.Client.Execution; using Camunda.Api.Client.ProcessInstance; using System.Runtime.Serialization; namespace Camunda.Api.Client.Message { public class CorrelationResult { /// /// Indicates if the message was correlated to a message start event or an intermediate message catching event. /// In the first case, the is and otherwise . /// public MessageCorrelationResultType ResultType; /// /// This property only has a value if the is set to . /// public ExecutionInfo Execution; /// /// This property only has a value if the is set to /// public ProcessInstanceInfo ProcessInstance; } public enum MessageCorrelationResultType { [EnumMember(Value = nameof(ProcessDefinition))] ProcessDefinition, [EnumMember(Value = nameof(Execution))] Execution, } } ================================================ FILE: Camunda.Api.Client/Message/IMessageRestService.cs ================================================ using Refit; using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.Message { internal interface IMessageRestService { [Post("/message")] Task> DeliverMessage([Body] CorrelationMessage message); } } ================================================ FILE: Camunda.Api.Client/Message/MessageService.cs ================================================ using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.Message { public class MessageService { private IMessageRestService _api; internal MessageService(IMessageRestService api) { _api = api; } /// /// Deliver a message to the process engine to either trigger a message start event or an intermediate message catching event. /// Internally this maps to the engine’s message correlation builder methods MessageCorrelationBuilder#correlate() and MessageCorrelationBuilder#correlateAll() /// public Task> DeliverMessage(CorrelationMessage message) => _api.DeliverMessage(message); } } ================================================ FILE: Camunda.Api.Client/Migration/IMigrationRestService.cs ================================================ using System.Collections.Generic; using System.Threading.Tasks; using Camunda.Api.Client.Batch; using Refit; namespace Camunda.Api.Client.Migration { internal interface IMigrationRestService { [Post("/migration/generate")] Task Generate([Body] MigrationPlanGeneration request); [Post("/migration/validate")] Task Validate([Body] MigrationPlan plan); [Post("/migration/execute")] Task Execute([Body] MigrationExecution request); [Post("/migration/executeAsync")] Task ExecuteAsync([Body] MigrationExecution request); } } ================================================ FILE: Camunda.Api.Client/Migration/MigrationExecution.cs ================================================ using System.Collections.Generic; using Camunda.Api.Client.ProcessInstance; using Newtonsoft.Json; namespace Camunda.Api.Client.Migration { public class MigrationExecution { /// /// The migration plan to execute. /// [JsonProperty("migrationPlan")] public MigrationPlan MigrationPlan; /// /// A list of process instance ids to migrate. /// [JsonProperty("processInstanceIds")] public List ProcessInstanceIds; /// /// A process instance query. /// [JsonProperty("processInstanceQuery")] public ProcessInstanceQuery ProcessInstanceQuery; /// /// A boolean value to control whether execution listeners should be invoked during migration. /// [JsonProperty("skipCustomListeners")] public bool SkipCustomListeners; /// /// A boolean value to control whether input/output mappings should be executed during migration. /// [JsonProperty("skipIoMappings")] public bool SkipIoMappings; } } ================================================ FILE: Camunda.Api.Client/Migration/MigrationInstruction.cs ================================================ using System.Collections.Generic; using Newtonsoft.Json; namespace Camunda.Api.Client.Migration { public class MigrationInstruction { /// /// The activity ids from the source process definition being mapped. /// [JsonProperty("sourceActivityIds")] public List SourceActivityIds; /// /// The activity ids from the target process definition being mapped. /// [JsonProperty("targetActivityIds")] public List TargetActivityIds; /// /// Configuration flag whether event triggers defined are going to be updated during migration. /// [JsonProperty("updateEventTrigger")] public bool UpdateEventTrigger; } } ================================================ FILE: Camunda.Api.Client/Migration/MigrationInstructionValidationReport.cs ================================================ using System.Collections.Generic; using Newtonsoft.Json; namespace Camunda.Api.Client.Migration { public class MigrationInstructionValidationReport { /// /// A migration instruction object. /// [JsonProperty("instruction")] public MigrationInstruction Instruction; /// /// A list of instruction validation report messages. /// [JsonProperty("failures")] public List Failures; } } ================================================ FILE: Camunda.Api.Client/Migration/MigrationPlan.cs ================================================ using System.Collections.Generic; using Newtonsoft.Json; namespace Camunda.Api.Client.Migration { public class MigrationPlan { /// /// The id of the source process definition for the migration. /// [JsonProperty("sourceProcessDefinitionId")] public string SourceProcessDefinitionId; /// /// The id of the target process definition for the migration. /// [JsonProperty("targetProcessDefinitionId")] public string TargetProcessDefinitionId; /// /// A list of migration instructions which map equal activities. /// [JsonProperty("instructions")] public List Instructions; } } ================================================ FILE: Camunda.Api.Client/Migration/MigrationPlanGeneration.cs ================================================ using Newtonsoft.Json; namespace Camunda.Api.Client.Migration { public class MigrationPlanGeneration { /// /// The id of the source process definition for the migration. /// [JsonProperty("sourceProcessDefinitionId")] public string SourceProcessDefinitionId; /// /// The id of the target process definition for the migration. /// [JsonProperty("targetProcessDefinitionId")] public string TargetProcessDefinitionId; /// /// A boolean flag indicating whether instructions between events should be configured to update the event triggers. /// [JsonProperty("updateEventTriggers")] public bool UpdateEventTriggers; } } ================================================ FILE: Camunda.Api.Client/Migration/MigrationPlanReport.cs ================================================ using System; using System.Collections.Generic; using System.Text; using Newtonsoft.Json; using Newtonsoft.Json.Serialization; namespace Camunda.Api.Client.Migration { public class MigrationPlanReport { /// /// The list of instruction validation reports. If no validation errors are detected it is an empty list. /// [JsonProperty("instructionReports")] public List InstructionReports; } } ================================================ FILE: Camunda.Api.Client/Migration/MigrationService.cs ================================================ using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; using Camunda.Api.Client.Batch; namespace Camunda.Api.Client.Migration { public class MigrationService { private IMigrationRestService _api; internal MigrationService(IMigrationRestService api) { _api = api; } /// /// Generates a migration plan for two process definitions. The generated migration plan contains migration instructions which map equal activities between the two process definitions. /// /// /// public Task Generate(MigrationPlanGeneration request) => _api.Generate(request); /// /// Validates a migration plan statically without executing it. /// /// /// public Task Validate(MigrationPlan plan) => _api.Validate(plan); /// /// Executes a migration plan synchronously for multiple process instances. /// /// /// public Task Execute(MigrationExecution request) => _api.Execute(request); /// /// Executes a migration plan asynchronously (batch) for multiple process instances. /// /// /// public Task ExecuteAsync(MigrationExecution request) => _api.ExecuteAsync(request); } } ================================================ FILE: Camunda.Api.Client/NamedVariableValue.cs ================================================  namespace Camunda.Api.Client { public class NamedVariableValue : VariableValue { public string Name; protected NamedVariableValue() { } public static NamedVariableValue FromObject(string name, object value) { var val = new NamedVariableValue(); val.Name = name; val.SetTypedValue(value); return val; } public override string ToString() => $"{Name} = {base.ToString()}"; } } ================================================ FILE: Camunda.Api.Client/PatchVariables.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client { public class PatchVariables { /// /// A object containing variable key-value pairs. /// public Dictionary Modifications; /// /// An array of String keys of variables to be deleted. /// public List Deletions; } } ================================================ FILE: Camunda.Api.Client/PlainTextContent.cs ================================================ using Iana; using System.Net.Http; using System.Net.Http.Headers; namespace Camunda.Api.Client { internal class PlainTextContent : StringContent { public PlainTextContent(string partName, string text) : base(text ?? "") { Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data") { Name = partName }; Headers.ContentType = new MediaTypeHeaderValue(MediaTypes.Text.Plain) { CharSet = "UTF-8" }; Headers.Add("Content-Transfer-Encoding", "8bit"); } } } ================================================ FILE: Camunda.Api.Client/PriorityInfo.cs ================================================  namespace Camunda.Api.Client { internal class PriorityInfo { public long Priority; } } ================================================ FILE: Camunda.Api.Client/ProcessDefinition/FormInfo.cs ================================================ namespace Camunda.Api.Client.ProcessDefinition { public class FormInfo { /// /// The form key for the process definition. /// public string Key; public string ContextPath; public override string ToString() => Key; } } ================================================ FILE: Camunda.Api.Client/ProcessDefinition/IProcessDefinitionRestService.cs ================================================ using Camunda.Api.Client.ProcessInstance; using Refit; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.ProcessDefinition { internal interface IProcessDefinitionRestService { [Get("/process-definition")] Task> GetList(QueryDictionary query, int? firstResult, int? maxResults); [Get("/process-definition/count")] Task GetListCount(QueryDictionary query); [Get("/process-definition/statistics")] Task> GetProcessInstanceStatistics(bool failedJobs, bool? incidents, string incidentsForType); [Delete("/process-definition/{id}")] Task Delete(string id, bool cascade, bool skipCustomListeners, bool skipIoMappings); [Delete("/process-definition/key/{key}/delete")] Task DeleteByKey(string key, bool cascade, bool skipCustomListeners, bool skipIoMappings); [Delete("/process-definition/key/{key}/tenant-id/{tenantId}/delete")] Task DeleteByKeyAndTenantId(string key, string tenantId, bool cascade, bool skipCustomListeners, bool skipIoMappings); [Put("/process-definition/{id}/suspended")] Task UpdateSuspensionStateById(string id, [Body] ProcessDefinitionSuspensionState state); [Put("/process-definition/key/{key}/suspended")] Task UpdateSuspensionStateByKey(string key, [Body] ProcessDefinitionSuspensionState state); [Put("/process-definition/key/{key}/tenant-id/{tenantId}/suspended")] Task UpdateSuspensionStateByKeyAndTenantId(string key, string tenantId, [Body] ProcessDefinitionSuspensionState state); [Get("/process-definition/{id}")] Task GetById(string id); [Get("/process-definition/key/{key}")] Task GetByKey(string key); [Get("/process-definition/key/{key}/tenant-id/{tenantId}")] Task GetByKeyAndTenantId(string key, string tenantId); [Get("/process-definition/{id}/xml")] Task GetXmlById(string id); [Get("/process-definition/key/{key}/xml")] Task GetXmlByKey(string key); [Get("/process-definition/key/{key}/tenant-id/{tenantId}/xml")] Task GetXmlByKeyAndTenantId(string key, string tenantId); [Get("/process-definition/{id}/diagram")] Task GetDiagramById(string id); [Get("/process-definition/key/{key}/diagram")] Task GetDiagramByKey(string key); [Get("/process-definition/key/{key}/tenant-id/{tenantId}/diagram")] Task GetDiagramByKeyAndTenantId(string key, string tenantId); [Get("/process-definition/{id}/form-variables")] Task> GetFormVariablesById(string id, string variableNames, bool deserializeValues = true); [Get("/process-definition/key/{key}/form-variables")] Task> GetFormVariablesByKey(string key, string variableNames, bool deserializeValues = true); [Get("/process-definition/key/{key}/tenant-id/{tenantId}/form-variables")] Task> GetFormVariablesByKeyAndTenantId(string key, string tenantId, string variableNames, bool deserializeValues = true); [Get("/process-definition/{id}/startForm")] Task GetStartFormById(string id); [Get("/process-definition/key/{key}/startForm")] Task GetStartFormByKey(string key); [Get("/process-definition/key/{key}/tenant-id/{tenantId}/startForm")] Task GetStartFormByKeyAndTenantId(string key, string tenantId); [Get("/process-definition/{id}/rendered-form")] Task GetRenderedFormById(string id); [Get("/process-definition/key/{key}/rendered-form")] Task GetRenderedFormByKey(string key); [Get("/process-definition/key/{key}/tenant-id/{tenantId}/rendered-form")] Task GetRenderedFormByKeyAndTenantId(string key, string tenantId); [Get("/process-definition/{id}/statistics")] Task> GetActivityStatisticsById(string id, bool failedJobs, bool? incidents, string incidentsForType); [Get("/process-definition/key/{key}/statistics")] Task> GetActivityStatisticsByKey(string key, bool failedJobs, bool? incidents, string incidentsForType); [Get("/process-definition/key/{key}/tenant-id/{tenantId}/statistics")] Task> GetActivityStatisticsByKeyAndTenantId(string key, string tenantId, bool failedJobs, bool? incidents, string incidentsForType); [Post("/process-definition/{id}/submit-form")] Task SubmitStartFormById(string id, [Body] SubmitStartForm parameters); [Post("/process-definition/key/{key}/submit-form")] Task SubmitStartFormByKey(string key, [Body] SubmitStartForm parameters); [Post("/process-definition/key/{key}/tenant-id/{tenantId}/submit-form")] Task SubmitStartFormByKeyAndTenantId(string key, string tenantId, [Body] SubmitStartForm parameters); [Post("/process-definition/{id}/start")] Task StartProcessInstanceById(string id, [Body] StartProcessInstance parameters); [Post("/process-definition/key/{key}/start")] Task StartProcessInstanceByKey(string key, [Body] StartProcessInstance parameters); [Post("/process-definition/key/{key}/tenant-id/{tenantId}/start")] Task StartProcessInstanceByKeyAndTenantId(string key, string tenantId, [Body] StartProcessInstance parameters); } } ================================================ FILE: Camunda.Api.Client/ProcessDefinition/IncidentStatisticsResult.cs ================================================  namespace Camunda.Api.Client.ProcessDefinition { public class IncidentStatisticsResult { /// /// The type of the incident the number of incidents is aggregated for. /// public string IncidentType; /// /// The total number of incidents for the corresponding incident type. /// public int IncidentCount; public override string ToString() => $"{IncidentType} ({IncidentCount})"; } } ================================================ FILE: Camunda.Api.Client/ProcessDefinition/ProcessDefinitionDiagram.cs ================================================ namespace Camunda.Api.Client.ProcessDefinition { public class ProcessDefinitionDiagram { /// /// The id of the process definition. /// public string Id; /// /// XML string containing the XML that this definition was deployed with. /// public string Bpmn20Xml; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/ProcessDefinition/ProcessDefinitionInfo.cs ================================================  namespace Camunda.Api.Client.ProcessDefinition { public class ProcessDefinitionInfo { /// /// The id of the process definition. /// public string Id; /// /// The key of the process definition, i.e. the id of the BPMN 2.0 XML process definition. /// public string Key; /// /// The category of the process definition. /// public string Category; /// /// The description of the process definition. /// public string Description; /// /// The name of the process definition. /// public string Name; /// /// The version of the process definition that the engine assigned to it. /// public int Version; /// /// The file name of the process definition. /// public string Resource; /// /// The deployment id of the process definition. /// public string DeploymentId; /// /// The file name of the process definition diagram, if it exists. /// public string Diagram; /// /// A flag indicating whether the definition is suspended or not. /// public bool Suspended; /// /// The tenant id of the process definition. /// public string TenantId; /// /// The version tag of the process definition. /// public string VersionTag; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/ProcessDefinition/ProcessDefinitionQuery.cs ================================================ using Newtonsoft.Json; using System.Collections.Generic; namespace Camunda.Api.Client.ProcessDefinition { public class ProcessDefinitionQuery : QueryParameters { /// /// Filter by process definition id. /// public string ProcessDefinitionId; /// /// Filter by process definition ids. /// [JsonProperty("processDefinitionIdIn")] public List ProcessDefinitionIds = new List(); /// /// Filter by process definition category. Exact match. /// public string Category; /// /// Filter by process definition categories that the parameter is a substring of. /// public string CategoryLike; /// /// Filter by process definition name. /// public string Name; /// /// Filter by process definition names that the parameter is a substring of. /// public string NameLike; /// /// Filter by the deployment the id belongs to. /// public string DeploymentId; /// /// Filter by process definition key, i.e. the id in the BPMN 2.0 XML. Exact match. /// public string Key; /// /// Filter by process definition keys that the parameter is a substring of. /// public string KeyLike; /// /// Filter by the name of the process definition resource. Exact match. /// public string ResourceName; /// /// Filter by names of those process definition resources that the parameter is a substring of. /// public string ResourceNameLike; /// /// Filter by process definition version. /// public int? Version; /// /// Only include those process definitions that are latest versions. Value may only be true, as false is the default behavior. /// /// /// Can only be used in combination with Key or KeyLike. Can also be used without any other criteria which will then give all the latest versions of all the deployed process definitions. /// For multi-tenancy: select the latest deployed process definitions for each tenant. If a process definition is deployed for multiple tenants then all process definitions are selected. /// public bool LatestVersion = false; /// /// Only include suspended process definitions. Value may only be true, as false is the default behavior. /// public bool Suspended = false; /// /// Only selects process definitions with the given incident type. /// public string IncidentType; /// /// Only selects process definitions with the given incident id. /// public string IncidentId; /// /// Only selects process definitions with the given incident message. /// public string IncidentMessage; /// /// Only selects process definitions with an incident message like the given. /// public string IncidentMessageLike; /// /// Filter by a comma-separated list of tenant ids. A process definition must have one of the given tenant ids. /// [JsonProperty("tenantIdIn")] public List TenantIds = new List(); /// /// Include process definitions which belongs to no tenant. Can be used in combination with tenantIdIn. Value may only be true, as false is the default behavior. /// [JsonProperty("includeProcessDefinitionsWithoutTenantId")] public bool IncludeDefinitionsWithoutTenantId = false; /// /// Filter by the version tag. /// public string VersionTag; /// /// Filter by the version tag that the parameter is a substring of. /// public string VersionTagLike; /// /// Sort the results lexicographically by a given criterion. Must be used in conjunction with the parameter. Note: Sorting by is string based. The version will not be interpreted. As an example, the sorting could return v0.1.0, v0.10.0, v0.2.0. /// public ProcessDefinitionSorting SortBy; /// /// Sort the results in a given order. Must be used in conjunction with the parameter. /// public SortOrder SortOrder; } public enum ProcessDefinitionSorting { Id, Key, Category, Name, Version, DeploymentId, TenantId, VersionTag } } ================================================ FILE: Camunda.Api.Client/ProcessDefinition/ProcessDefinitionResource.cs ================================================ using Camunda.Api.Client.ProcessInstance; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.ProcessDefinition { public abstract class ProcessDefinitionResource { /// /// Retrieves a single process definition according to the ProcessDefinition interface in the engine. /// public abstract Task Get(); /// /// Deletes process definition(s). /// /// public abstract Task Delete(bool cascade, bool skipCustomListeners, bool skipIoMappings); /// /// Retrieves the BPMN 2.0 XML of this process definition. /// public abstract Task GetXml(); /// /// Retrieves the diagram of a process definition. /// /// Retrieves the diagram of a process definition. public abstract Task GetDiagram(); /// /// Instantiates a given process definition. Process variables and business key may be supplied in the request body. /// public abstract Task StartProcessInstance(StartProcessInstance parameters); /// /// Start a process instance using a set of process variables and the business key. /// If the start event has Form Field Metadata defined, the process engine will perform backend validation for any form fields which have validators defined. /// public abstract Task SubmitForm(SubmitStartForm parameters); protected abstract Task> GetActivityStatistics(bool includeFailedJobs, bool? includeIncidents, string includeIncidentsForType); /// /// Retrieves runtime statistics of a given process definition grouped by activities. These statistics include the number of running activity instances, optionally the number of failed jobs and also optionally the number of incidents either grouped by incident types or for a specific incident type. /// /// Whether to include the number of failed jobs in the result or not. /// If this property has been set to true the result will include the corresponding number of incidents for each occurred incident type. If it is set to false, the incidents will not be included in the result. public Task> GetActivityStatistics(bool includeFailedJobs, bool includeIncidents) => GetActivityStatistics(includeFailedJobs, includeIncidents, null); /// /// Retrieves runtime statistics of a given process definition grouped by activities. These statistics include the number of running activity instances, optionally the number of failed jobs and also optionally the number of incidents either grouped by incident types or for a specific incident type. /// /// Whether to include the number of failed jobs in the result or not. /// If this property has been set with any incident type (i.e. a String value) the result will only include the number of incidents for the assigned incident type. public Task> GetActivityStatistics(bool includeFailedJobs, string includeIncidentsForType) => GetActivityStatistics(includeFailedJobs, null, includeIncidentsForType); /// /// Retrieves runtime statistics of a given process definition grouped by activities. These statistics include the number of running activity instances, optionally the number of failed jobs and also optionally the number of incidents either grouped by incident types or for a specific incident type. /// /// Whether to include the number of failed jobs in the result or not. public Task> GetActivityStatistics(bool includeFailedJobs) => GetActivityStatistics(includeFailedJobs, false, null); /// /// Retrieves the key of the start form for a process definition. The form key corresponds to the FormData#formKey property in the engine. /// public abstract Task GetStartForm(); /// /// Retrieves the rendered form for a process definition. This method can be used for getting the HTML rendering of a Generated Task Form. /// public abstract Task GetRenderedForm(); /// /// Activate or suspend a given process definition by id or by latest version of process definition key. /// public abstract Task UpdateSuspensionState(ProcessDefinitionSuspensionState state); /// /// Retrieves the start form variables for a process definition. The start form variables take form data specified on the start event into account. /// If form fields are defined, the variable types and default values of the form fields are taken into account. /// public abstract Task> GetFormVariables(params string[] variableNames); /// /// Retrieves the start form variables for a process definition. The start form variables take form data specified on the start event into account. /// If form fields are defined, the variable types and default values of the form fields are taken into account. /// /// Allows restricting the list of requested variables to the variable names in the list. /// It is best practice to restrict the list of variables to the variables actually required by the form in order to minimize fetching of data. /// If the query parameter is ommitted all variables are fetched. If the query parameter contains non-existent variable names, the variable names are ignored. /// Determines whether serializable variable values (typically variables that store custom Java objects) should be deserialized on server side. public abstract Task> GetFormVariables(string[] variableNames, bool deserializeValues = true); } } ================================================ FILE: Camunda.Api.Client/ProcessDefinition/ProcessDefinitionResourceById.cs ================================================  using Camunda.Api.Client.ProcessInstance; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.ProcessDefinition { public class ProcessDefinitionResourceById : ProcessDefinitionResource { private IProcessDefinitionRestService _api; private string _processDefinitionId; internal ProcessDefinitionResourceById(IProcessDefinitionRestService api, string processDefinitionId) { _api = api; _processDefinitionId = processDefinitionId; } public override Task Get() => _api.GetById(_processDefinitionId); public override Task Delete(bool cascade, bool skipCustomListeners, bool skipIoMappings = true) => _api.Delete(_processDefinitionId, cascade, skipCustomListeners, skipIoMappings); public override Task GetXml() => _api.GetXmlById(_processDefinitionId); public override async Task GetDiagram() => (await _api.GetDiagramById(_processDefinitionId)).Content; public override Task StartProcessInstance(StartProcessInstance parameters) => _api.StartProcessInstanceById(_processDefinitionId, parameters); public override Task SubmitForm(SubmitStartForm parameters) => _api.SubmitStartFormById(_processDefinitionId, parameters); protected override Task> GetActivityStatistics(bool includeFailedJobs, bool? includeIncidents, string includeIncidentsForType) => _api.GetActivityStatisticsById(_processDefinitionId, includeFailedJobs, includeIncidents, includeIncidentsForType); public override Task GetStartForm() => _api.GetStartFormById(_processDefinitionId); public override Task GetRenderedForm() => _api.GetRenderedFormById(_processDefinitionId); public override Task UpdateSuspensionState(ProcessDefinitionSuspensionState state) => _api.UpdateSuspensionStateById(_processDefinitionId, state); public override Task> GetFormVariables(params string[] variableNames) => _api.GetFormVariablesById(_processDefinitionId, variableNames.Join()); public override Task> GetFormVariables(string[] variableNames, bool deserializeValues = true) => _api.GetFormVariablesById(_processDefinitionId, variableNames.Join(), deserializeValues); public override string ToString() => _processDefinitionId; } } ================================================ FILE: Camunda.Api.Client/ProcessDefinition/ProcessDefinitionResourceByKey.cs ================================================  using Camunda.Api.Client.ProcessInstance; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; using System; namespace Camunda.Api.Client.ProcessDefinition { public class ProcessDefinitionResourceByKey : ProcessDefinitionResource { private IProcessDefinitionRestService _api; private string _processDefinitionKey; internal ProcessDefinitionResourceByKey(IProcessDefinitionRestService api, string processDefinitionKey) { _api = api; _processDefinitionKey = processDefinitionKey; } public override Task Get() => _api.GetByKey(_processDefinitionKey); public override Task Delete(bool cascade, bool skipCustomListeners, bool skipIoMappings = true) => _api.DeleteByKey(_processDefinitionKey, cascade, skipCustomListeners, skipIoMappings); public override Task GetXml() => _api.GetXmlByKey(_processDefinitionKey); public override async Task GetDiagram() => (await _api.GetDiagramByKey(_processDefinitionKey)).Content; public override Task StartProcessInstance(StartProcessInstance parameters) => _api.StartProcessInstanceByKey(_processDefinitionKey, parameters); public override Task SubmitForm(SubmitStartForm parameters) => _api.SubmitStartFormByKey(_processDefinitionKey, parameters); protected override Task> GetActivityStatistics(bool includeFailedJobs, bool? includeIncidents, string includeIncidentsForType) => _api.GetActivityStatisticsByKey(_processDefinitionKey, includeFailedJobs, includeIncidents, includeIncidentsForType); public override Task GetStartForm() => _api.GetStartFormByKey(_processDefinitionKey); public override Task GetRenderedForm() => _api.GetRenderedFormByKey(_processDefinitionKey); public override Task UpdateSuspensionState(ProcessDefinitionSuspensionState state) => _api.UpdateSuspensionStateByKey(_processDefinitionKey, state); public override Task> GetFormVariables(params string[] variableNames) => _api.GetFormVariablesByKey(_processDefinitionKey, variableNames.Join()); public override Task> GetFormVariables(string[] variableNames, bool deserializeValues = true) => _api.GetFormVariablesByKey(_processDefinitionKey, variableNames.Join(), deserializeValues); public override string ToString() => _processDefinitionKey; } } ================================================ FILE: Camunda.Api.Client/ProcessDefinition/ProcessDefinitionResourceByKeyAndTenantId.cs ================================================  using Camunda.Api.Client.ProcessInstance; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; using System; namespace Camunda.Api.Client.ProcessDefinition { public class ProcessDefinitionResourceByKeyAndTenantId : ProcessDefinitionResource { private IProcessDefinitionRestService _api; private string _processDefinitionKey, _tenantId; internal ProcessDefinitionResourceByKeyAndTenantId(IProcessDefinitionRestService api, string processDefinitionKey, string tenantId) { _api = api; _processDefinitionKey = processDefinitionKey; _tenantId = tenantId; } public override Task Get() => _api.GetByKeyAndTenantId(_processDefinitionKey, _tenantId); public override Task Delete(bool cascade, bool skipCustomListeners, bool skipIoMappings) => _api.DeleteByKeyAndTenantId(_processDefinitionKey, _tenantId, cascade, skipCustomListeners, skipIoMappings); public override Task GetXml() => _api.GetXmlByKeyAndTenantId(_processDefinitionKey, _tenantId); public override async Task GetDiagram() => (await _api.GetDiagramByKeyAndTenantId(_processDefinitionKey, _tenantId)).Content; public override Task StartProcessInstance(StartProcessInstance parameters) => _api.StartProcessInstanceByKeyAndTenantId(_processDefinitionKey, _tenantId, parameters); public override Task SubmitForm(SubmitStartForm parameters) => _api.SubmitStartFormByKeyAndTenantId(_processDefinitionKey, _tenantId, parameters); protected override Task> GetActivityStatistics(bool includeFailedJobs, bool? includeIncidents, string includeIncidentsForType) => _api.GetActivityStatisticsByKeyAndTenantId(_processDefinitionKey, _tenantId, includeFailedJobs, includeIncidents, includeIncidentsForType); public override Task GetStartForm() => _api.GetStartFormByKeyAndTenantId(_processDefinitionKey, _tenantId); public override Task GetRenderedForm() => _api.GetRenderedFormByKeyAndTenantId(_processDefinitionKey, _tenantId); public override Task UpdateSuspensionState(ProcessDefinitionSuspensionState state) => _api.UpdateSuspensionStateByKeyAndTenantId(_processDefinitionKey, _tenantId, state); public override Task> GetFormVariables(params string[] variableNames) => _api.GetFormVariablesByKeyAndTenantId(_processDefinitionKey, _tenantId, variableNames.Join()); public override Task> GetFormVariables(string[] variableNames, bool deserializeValues = true) => _api.GetFormVariablesByKeyAndTenantId(_processDefinitionKey, _tenantId, variableNames.Join(), deserializeValues); public override string ToString() => _processDefinitionKey; } } ================================================ FILE: Camunda.Api.Client/ProcessDefinition/ProcessDefinitionService.cs ================================================ using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.ProcessDefinition { public class ProcessDefinitionService { private IProcessDefinitionRestService _api; internal ProcessDefinitionService(IProcessDefinitionRestService api) { _api = api; } public ProcessDefinitionResource this[string processDefinitionId] => new ProcessDefinitionResourceById(_api, processDefinitionId); public ProcessDefinitionResource ByKey(string processDefinitionKey) => new ProcessDefinitionResourceByKey(_api, processDefinitionKey); public ProcessDefinitionResource ByKey(string processDefinitionKey, string tenantId) => new ProcessDefinitionResourceByKeyAndTenantId(_api, processDefinitionKey, tenantId); public QueryResource Query(ProcessDefinitionQuery query = null) => new QueryResource( query, (q, f, m) => _api.GetList(q, f, m), q => _api.GetListCount(q)); /// /// Retrieves runtime statistics of the process engine grouped by process definitions. These statistics include the number of running process instances, optionally the number of failed jobs and also optionally the number of incidents either grouped by incident types or for a specific incident type. /// /// Whether to include the number of failed jobs in the result or not. /// If this property has been set to true the result will include the corresponding number of incidents for each occurred incident type. If it is set to false, the incidents will not be included in the result. /// This does not include historic data. public Task> GetStatistics(bool includeFailedJobs, bool includeIncidents) => _api.GetProcessInstanceStatistics(includeFailedJobs, includeIncidents, null); /// /// Retrieves runtime statistics of the process engine grouped by process definitions. These statistics include the number of running process instances, optionally the number of failed jobs and also optionally the number of incidents either grouped by incident types or for a specific incident type. /// /// Whether to include the number of failed jobs in the result or not. /// If this property has been set with any incident type (i.e. a string value) the result will only include the number of incidents for the assigned incident type. /// This does not include historic data. public Task> GetStatistics(bool includeFailedJobs, string includeIncidentsForType) => _api.GetProcessInstanceStatistics(includeFailedJobs, null, includeIncidentsForType); /// /// Retrieves runtime statistics of the process engine grouped by process definitions. These statistics include the number of running process instances, optionally the number of failed jobs and also optionally the number of incidents either grouped by incident types or for a specific incident type. /// /// Whether to include the number of failed jobs in the result or not. /// This does not include historic data. public Task> GetStatistics(bool includeFailedJobs) => GetStatistics(includeFailedJobs, false); /// /// Deletes a process definition from a deployment by id. /// /// /// true, if all process instances, historic process instances and jobs for this process definition should be deleted. /// true, if only the built-in ExecutionListeners should be notified with the end event. /// true, if input/output mappings should not be invoked. /// public Task Delete(string processDefinitionId, bool cascade, bool skipCustomListeners, bool skipIoMappings = true) => _api.Delete(processDefinitionId, cascade, skipCustomListeners, skipIoMappings); } } ================================================ FILE: Camunda.Api.Client/ProcessDefinition/ProcessDefinitionStatisticsResult.cs ================================================ namespace Camunda.Api.Client.ProcessDefinition { public class ProcessDefinitionStatisticsResult : StatisticsResult { /// /// The process definition. /// public ProcessDefinitionInfo Definition; } } ================================================ FILE: Camunda.Api.Client/ProcessDefinition/ProcessDefinitionSuspensionState.cs ================================================ using Camunda.Api.Client.ProcessInstance; using System; namespace Camunda.Api.Client.ProcessDefinition { public class ProcessDefinitionSuspensionState : SuspensionState { /// /// The date on which the given process definition will be activated or suspended. If null, the suspension state of the given process definition is updated immediately. /// public DateTime? ExecutionDate; /// /// A Boolean value which indicates whether to activate or suspend also all process instances of the given process definition. /// When the value is set to true, all process instances of the provided process definition will be activated or suspended and when the value is set to false, /// the suspension state of all process instances of the provided process definition will not be updated. /// public bool IncludeProcessInstances; } } ================================================ FILE: Camunda.Api.Client/ProcessDefinition/StartProcessInstance.cs ================================================ using Camunda.Api.Client.ProcessInstance; using System.Collections.Generic; namespace Camunda.Api.Client.ProcessDefinition { public class StartProcessInstance : SubmitStartForm { /// /// The case instance id the process instance is to be initialized with. /// public string CaseInstanceId; /// /// Skip execution listener invocation for activities that are started or ended as part of this request. /// /// /// This option is currently only respected when start instructions are submitted via the startInstructions property. /// public bool SkipCustomListeners; /// /// Skip execution of input/output variable mappings for activities that are started or ended as part of this request. /// /// /// This option is currently only respected when start instructions are submitted via the startInstructions property. /// public bool SkipIoMappings; /// /// Array of instructions that specify which activities to start the process instance at. If this property is omitted, the process instance starts at its default blank start event. /// The instructions are executed in the order they are in. /// public List StartInstructions; /// /// Indicates if the variables, which was used by the process instance during execution, should be returned. /// public bool WithVariablesInReturn; public new StartProcessInstance SetVariable(string name, object value) { base.SetVariable(name, value); return this; } } } ================================================ FILE: Camunda.Api.Client/ProcessDefinition/StatisticsResult.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client.ProcessDefinition { public class StatisticsResult { /// /// The id of the process definition the results are aggregated for. /// public string Id; /// /// The total number of running process instances of this process definition. /// public int Instances; /// /// The total number of failed jobs for the running instances. /// public int FailedJobs; public List Incidents; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/ProcessDefinition/SubmitStartForm.cs ================================================ using Camunda.Api.Client.ProcessInstance; using System.Collections.Generic; namespace Camunda.Api.Client.ProcessDefinition { public class SubmitStartForm { /// /// Object containing the variables the process is to be initialized with. Each key corresponds to a variable name and each value to a variable value. /// public Dictionary Variables = new Dictionary(); /// /// The business key the process instance is to be initialized with. The business key uniquely identifies the process instance in the context of the given process definition. /// public string BusinessKey; public SubmitStartForm SetVariable(string name, object value) { Variables = (Variables ?? new Dictionary()).Set(name, value); return this; } } } ================================================ FILE: Camunda.Api.Client/ProcessInstance/ActivityInstanceInfo.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client.ProcessInstance { public class ActivityInstanceInfo { /// /// The id of the activity instance. /// public string Id; /// /// The id of the parent activity. /// public string ParentActivityInstanceId; /// /// The id of the activity. /// public string ActivityId; /// /// The name of the activity. /// public string ActivityName; /// /// The type of activity (corresponds to the XML element name in the BPMN 2.0, e.g. 'userTask'). /// public string ActivityType; /// /// The id of the process instance this activity instance is part of. /// public string ProcessInstanceId; /// /// The id of the process definition. /// public string ProcessDefinitionId; /// /// A list of child activity instances. /// public List ChildActivityInstances; /// /// A list of child transition instances. A transition instance represents an execution waiting in an asynchronous continuation. /// public List ChildTransitionInstances; /// /// A list of execution ids. /// public List ExecutionIds; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/ProcessInstance/DeleteProcessInstances.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client.ProcessInstance { public class DeleteProcessInstances { /// /// A list process instance ids to delete. /// public List ProcessInstanceIds; /// /// A process instance query like the request body for . /// public ProcessInstanceQuery ProcessInstanceQuery; /// /// A string with delete reason. /// public string DeleteReason; } } ================================================ FILE: Camunda.Api.Client/ProcessInstance/IProcessInstanceRestService.cs ================================================ using Camunda.Api.Client.Batch; using Refit; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.ProcessInstance { internal interface IProcessInstanceRestService { [Get("/process-instance/{processInstanceId}")] Task Get(string processInstanceId); [Post("/process-instance")] Task> GetList([Body] ProcessInstanceQuery query, int? firstResult, int? maxResults); [Post("/process-instance/count")] Task GetListCount([Body] ProcessInstanceQuery query); [Get("/process-instance/{processInstanceId}/activity-instances")] Task GetActivityInstanceTree(string processInstanceId); [Delete("/process-instance/{processInstanceId}")] Task DeleteProcessInstance(string processInstanceId, bool skipCustomListeners, bool skipIoMappings, bool skipSubprocesses); [Put("/process-instance/suspended")] Task UpdateSuspensionState([Body] ProcessInstanceSuspensionState state); [Put("/process-instance/{processInstanceId}/suspended")] Task UpdateSuspensionStateForId(string processInstanceId, [Body] SuspensionState state); [Post("/process-instance/{processInstanceId}/modification")] Task ModifyProcessInstance(string processInstanceId, [Body] ProcessInstanceModification modification); [Post("/process-instance/job-retries")] Task SetRetriesByProcess([Body] JobRetriesByProcess retries); [Post("/process-instance/delete")] Task DeleteProcessInstanceAsync([Body] DeleteProcessInstances deleteProcessInstances); #region Variables [Delete("/process-instance/{id}/variables/{varName}")] Task DeleteVariable(string id, string varName); [Get("/process-instance/{id}/variables/{varName}")] Task GetVariable(string id, string varName, bool deserializeValue = true); [Get("/process-instance/{id}/variables")] Task> GetVariables(string id, bool deserializeValues = true); [Get("/process-instance/{id}/variables/{varName}/data")] Task GetBinaryVariable(string id, string varName); [Post("/process-instance/{id}/variables/{varName}/data"), Multipart] Task SetBinaryVariable(string id, string varName, BinaryDataContent data, ValueTypeContent valueType); [Post("/process-instance/{id}/variables")] Task ModifyVariables(string id, PatchVariables patch); [Put("/process-instance/{id}/variables/{varName}")] Task PutVariable(string id, string varName, [Body] VariableValue variable); #endregion } } ================================================ FILE: Camunda.Api.Client/ProcessInstance/JobRetriesByProcess.cs ================================================ using Newtonsoft.Json; using System.Collections.Generic; namespace Camunda.Api.Client.ProcessInstance { public class JobRetriesByProcess { /// /// A list of process instance ids to fetch jobs, for which retries will be set. /// [JsonProperty("processInstances")] public List ProcessInstanceIds = new List(); /// /// A process instance query like the request body for . /// public ProcessInstanceQuery ProcessInstanceQuery = new ProcessInstanceQuery(); /// /// An integer representing the number of retries. /// public int Retries; } } ================================================ FILE: Camunda.Api.Client/ProcessInstance/ProcessInstanceInfo.cs ================================================  namespace Camunda.Api.Client.ProcessInstance { public class ProcessInstanceInfo { /// /// The id of the process instance. /// public string Id; /// /// The id of the process definition this instance belongs to. /// public string DefinitionId; /// /// The business key of the process instance. /// public string BusinessKey; /// /// The id of the case instance associated with the process instance. /// public string CaseInstanceId; /// /// A flag indicating whether the process instance has ended or not. Deprecated: will always be false! /// public bool Ended; /// /// A flag indicating whether the process instance is suspended or not. /// public bool Suspended; /// /// The tenant id of the process instance. /// public string TenantId; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/ProcessInstance/ProcessInstanceModification.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client.ProcessInstance { public class ProcessInstanceModification { /// /// Skip execution listener invocation for activities that are started or ended as part of this request. /// public bool SkipCustomListeners = false; /// /// Skip execution of input/output variable mappings for activities that are started or ended as part of this request. /// public bool SkipIoMappings = false; /// /// An array of modification instructions. The instructions are executed in the order they are in. /// public List Instructions = new List(); } } ================================================ FILE: Camunda.Api.Client/ProcessInstance/ProcessInstanceModificationInstruction.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client.ProcessInstance { public class ProcessInstanceModificationInstruction { /// /// Mandatory. /// public InstructionType Type; /// /// Can be used with instructions of types startBeforeActivity, startAfterActivity, and cancel. Specifies the activity the instruction targets. /// public string ActivityId; /// /// Can be used with instructions of types startTransition. Specifies the sequence flow to start. /// public string TransitionId; /// /// Can be used with instructions of type cancel. Specifies the activity instance to cancel. /// Valid values are the activity instance IDs supplied by the request. /// public string ActivityInstanceId; /// /// Can be used with instructions of type cancel. Specifies the transition instance to cancel. Valid values are the transition instance IDs supplied by the request. /// public string TransitionInstanceId; /// /// Can be used with instructions of type startBeforeActivity, startAfterActivity, and startTransition. Valid values are the activity instance IDs supplied by the request. /// /// /// If there are multiple parent activity instances of the targeted activity, this specifies the ancestor scope in which hierarchy the activity/transition is to be instantiated. /// Example: When there are two instances of a subprocess and an activity contained in the subprocess is to be started, this parameter allows to specifiy under which subprocess instance the activity should be started. /// public string AncestorActivityInstanceId; /// /// Can be used with instructions of type startBeforeActivity, startAfterActivity, and startTransition. An object containing variable key-value pairs. /// public Dictionary Variables = new Dictionary(); } public enum InstructionType { /// /// A cancel instruction requests cancellation of a single activity instance or all instances of one activity. /// Cancel, /// /// A startBeforeActivity instruction requests to enter a given activity. /// StartBeforeActivity, /// /// A startAfterActivity instruction requests to execute the single outgoing sequence flow of a given activity. /// StartAfterActivity, /// /// A startTransition instruction requests to execute a specific sequence flow. /// StartTransition, } } ================================================ FILE: Camunda.Api.Client/ProcessInstance/ProcessInstanceQuery.cs ================================================ using Newtonsoft.Json; using System.Collections.Generic; namespace Camunda.Api.Client.ProcessInstance { public class ProcessInstanceQuery : SortableQuery { /// /// Filter by the deployment the id belongs to. /// public string DeploymentId; /// /// Filter by the key of the process definition the instances run on. /// public string ProcessDefinitionKey; /// /// Filter by process instance business key. /// public string BusinessKey; /// /// Filter by case instance id. /// public string CaseInstanceId; /// /// Filter by the process definition the instances run on. /// public string ProcessDefinitionId; /// /// Restrict query to all process instances that are sub process instances of the given process instance. Takes a process instance id. /// public string SuperProcessInstance; /// /// Restrict query to all process instances that have the given process instance as a sub process instance. Takes a process instance id. /// public string SubProcessInstance; /// /// Restrict query to all process instances that are sub process instances of the given case instance. Takes a case instance id. /// public string SuperCaseInstance; /// /// Restrict query to all process instances that have the given case instance as a sub case instance. Takes a case instance id. /// public string SubCaseInstance; /// /// Only include active process instances. Value may only be true, as false is the default behavior. /// public bool Active; /// /// Only include suspended process instances. Value may only be true, as false is the default behavior. /// public bool Suspended; /// /// Filter by a list of process instance ids. Must be an array of Strings. /// public List ProcessInstanceIds; /// /// Filter by the incident id. /// public string IncidentId; /// /// Filter by the incident type. /// public string IncidentType; /// /// Filter by the incident message. Exact match. /// public string IncidentMessage; /// /// Filter by the incident message that the parameter is a substring of. /// public string IncidentMessageLike; /// /// Filter by a list of tenant ids. A process instance must have one of the given tenant ids. Must be a JSON array of Strings. /// [JsonProperty("tenantIdIn")] public List TenantIds = new List(); /// /// Only include process instances which belongs to no tenant. Value may only be true, as false is the default behavior. /// public bool WithoutTenantId; /// /// Filter by a list of activity ids. A process instance must currently wait in a leaf activity with one of the given activity ids. /// [JsonProperty("activityIdIn")] public List ActivityIds = new List(); /// /// An array to only include process instances that have variables with certain values. /// The array consists of objects with the three properties name, operator and value. /// Name(String) is the variable name, operator is the comparison operator to be used and value the variable value. /// Value may be String, Number or Boolean. /// public List Variables = new List(); } public enum ProcessInstanceSorting { InstanceId, DefinitionKey, DefinitionId, TenantId, } } ================================================ FILE: Camunda.Api.Client/ProcessInstance/ProcessInstanceResource.cs ================================================ using System.Threading.Tasks; namespace Camunda.Api.Client.ProcessInstance { public class ProcessInstanceResource { private string _processInstanceId; private IProcessInstanceRestService _api; internal ProcessInstanceResource(IProcessInstanceRestService api, string processInstanceId) { _api = api; _processInstanceId = processInstanceId; } /// /// Retrieves a single process instance according to the ProcessInstance interface in the engine. /// public Task Get() => _api.Get(_processInstanceId); /// /// Deletes a running process instance. /// /// If set to true, the custom listeners will be skipped. /// If set to true, the input/output mappings will be skipped. /// If set to true, subprocesses related to deleted processes will be skipped. public Task Delete(bool skipCustomListeners = false, bool skipIoMappings = false, bool skipSubprocesses = false) => _api.DeleteProcessInstance(_processInstanceId, skipCustomListeners, skipIoMappings, skipSubprocesses); /// /// Retrieves an Activity Instance (Tree) for a given process instance. /// public Task GetActivityInstance() => _api.GetActivityInstanceTree(_processInstanceId); public Task UpdateSuspensionState(bool suspended) => _api.UpdateSuspensionStateForId(_processInstanceId, new SuspensionState() { Suspended = suspended }); /// /// Submits a list of modification instructions to change a process instance's execution state. /// /// /// /// /// A modification instruction is one of the following: /// * Starting execution before an activity /// * Starting execution after an activity on its single outgoing sequence flow /// * Starting execution on a specific sequence flow /// * Cancelling an activity instance, transition instance, or all instances (activity or transition) for an activity /// /// Instructions are executed immediately and in the order they are provided in this request's body. Variables can be provided with every starting instruction. /// public Task ModifyProcessInstance(ProcessInstanceModification modification) => _api.ModifyProcessInstance(_processInstanceId, modification); public VariableResource Variables => new VariableResource(_api, _processInstanceId); public override string ToString() => _processInstanceId; } } ================================================ FILE: Camunda.Api.Client/ProcessInstance/ProcessInstanceService.cs ================================================ using Camunda.Api.Client.Batch; using System.Threading.Tasks; namespace Camunda.Api.Client.ProcessInstance { public class ProcessInstanceService { private IProcessInstanceRestService _api; internal ProcessInstanceService(IProcessInstanceRestService api) { _api = api; } public QueryResource Query(ProcessInstanceQuery query = null) => new QueryResource(query, _api.GetList, _api.GetListCount); /// The id of the process instance to be retrieved. public ProcessInstanceResource this[string processInstanceId] => new ProcessInstanceResource(_api, processInstanceId); /// /// Activate or suspend process instances with the given process definition id or process definition key. /// public Task UpdateSuspensionState(ProcessInstanceSuspensionState state) => _api.UpdateSuspensionState(state); /// /// Deletes multiple process instances asynchronously (batch). /// public Task Delete(DeleteProcessInstances deleteProcessInstances) => _api.DeleteProcessInstanceAsync(deleteProcessInstances); /// /// Create a batch to set retries of jobs associated with given processes asynchronously. /// public Task SetRetriesByProcess(JobRetriesByProcess setJobRetries) => _api.SetRetriesByProcess(setJobRetries); } } ================================================ FILE: Camunda.Api.Client/ProcessInstance/ProcessInstanceSuspensionState.cs ================================================ namespace Camunda.Api.Client.ProcessInstance { public class ProcessInstanceSuspensionState : SuspensionState { /// /// The process definition id of the process instances to activate or suspend. /// public string ProcessDefinitionId; /// /// The process definition key of the process instances to activate or suspend. /// public string ProcessDefinitionKey; /// /// Only activate or suspend process instances of a process definition which belongs to a tenant with the given id. /// public string ProcessDefinitionTenantId; /// /// Only activate or suspend process instances of a process definition which belongs to no tenant. Value may only be true, as false is the default behavior. /// public bool ProcessDefinitionWithoutTenantId; } } ================================================ FILE: Camunda.Api.Client/ProcessInstance/ProcessInstanceWithVariables.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client.ProcessInstance { public class ProcessInstanceWithVariables : ProcessInstanceInfo { /// /// Object containing a property for each of the latest variables. /// public Dictionary Variables; } } ================================================ FILE: Camunda.Api.Client/ProcessInstance/TransitionInstanceInfo.cs ================================================ namespace Camunda.Api.Client.ProcessInstance { public class TransitionInstanceInfo { /// /// The id of the transition instance. /// public string Id; /// /// The id of the parent activity. /// public string ParentActivityInstanceId; /// /// The id of the process instance. /// public string ProcessInstanceId; /// /// The id of the process definition. /// public string ProcessDefinitionId; /// /// The id of the activity that this instance enters (asyncBefore job) or leaves (asyncAfter job) /// public string ActivityId; /// /// The name of the activity that this instance enters (asyncBefore job) or leaves (asyncAfter job) /// public string ActivityName; /// /// The type of the activity that this instance enters (asyncBefore job) or leaves (asyncAfter job). Corresponds to the XML element name in the BPMN 2.0, e.g. 'userTask'. /// public string ActivityType; /// /// A list of execution ids. /// public string ExecutionId; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/ProcessInstance/TriggerVariableValue.cs ================================================  namespace Camunda.Api.Client.ProcessInstance { public class TriggerVariableValue : VariableValue { /// /// Indicates whether the variable should be a local variable or not. If set to true, the variable becomes a local variable of the execution entering the target activity. /// public bool Local; protected TriggerVariableValue() { } /// The variable's value. /// Indicates whether the variable should be a local variable or not. If set to true, the variable becomes a local variable of the execution entering the target activity. public static TriggerVariableValue FromObject(object value, bool local) { var val = new TriggerVariableValue(); val.Local = local; val.SetTypedValue(value); return val; } } } ================================================ FILE: Camunda.Api.Client/ProcessInstance/VariableResource.cs ================================================ using System.Collections.Generic; using System.IO; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.ProcessInstance { public class VariableResource : IVariableResource { private string _processInstanceId; private IProcessInstanceRestService _api; internal VariableResource(IProcessInstanceRestService api, string processInstanceId) { _api = api; _processInstanceId = processInstanceId; } /// /// Retrieves all variables of a given process instance. /// /// Determines whether serializable variable values (typically variables that store custom Java objects) should be deserialized on server side. public Task> GetAll(bool deserializeValues = true) => _api.GetVariables(_processInstanceId, deserializeValues); /// /// Retrieves a variable of a given process instance. /// /// The name of the variable to get. /// Determines whether serializable variable values (typically variables that store custom Java objects) should be deserialized on server side. public Task Get(string variableName, bool deserializeValue = true) => _api.GetVariable(_processInstanceId, variableName, deserializeValue); /// /// Retrieves the serialized value for a binary variable or the binary value for a file variable. /// /// The name of the variable to get. public async Task GetBinary(string variableName) => (await _api.GetBinaryVariable(_processInstanceId, variableName)).Content; /// /// Sets a variable of a given process instance. /// /// The name of the variable to set. /// public Task Set(string variableName, VariableValue variable) => _api.PutVariable(_processInstanceId, variableName, variable); /// /// Sets the serialized value for a binary variable or the binary value for a file variable. /// /// The name of the variable to set. /// The binary data to be set. /// The name of the variable type. Either Bytes for a byte array variable or File for a file variable. public Task SetBinary(string variableName, BinaryDataContent data, BinaryVariableType valueType) => _api.SetBinaryVariable(_processInstanceId, variableName, data, new ValueTypeContent(valueType.ToString())); /// /// Deletes a variable of a given process instance. /// /// The name of the variable to delete. public Task Delete(string variableName) => _api.DeleteVariable(_processInstanceId, variableName); /// /// Updates or deletes the variables of a process instance. Updates precede deletions. So, if a variable is updated AND deleted, the deletion overrides the update. /// public Task Modify(PatchVariables patch) => _api.ModifyVariables(_processInstanceId, patch); public override string ToString() => _processInstanceId; } } ================================================ FILE: Camunda.Api.Client/QueryParameters.cs ================================================ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; namespace Camunda.Api.Client { public abstract class QueryParameters { public static implicit operator QueryDictionary(QueryParameters query) { QueryDictionary result = new QueryDictionary(); var json = JsonConvert.DeserializeObject>(JsonConvert.SerializeObject(query, CamundaClient.JsonSerializerSettings), CamundaClient.JsonSerializerSettings); foreach (var item in json) { string value; if (item.Value is JArray) // separate array items by comma value = string.Join(",", item.Value.ToObject()); else if (item.Value.Type == JTokenType.Boolean) // True/False convert to lowercase value = item.Value.ToObject().ToLower(); else if (item.Value.Type == JTokenType.Date) value = item.Value.Value().ToJavaISO8601(); else value = item.Value.ToObject(); if (!string.IsNullOrEmpty(value)) result.Add(item.Key, value); } return result; } } public class QueryDictionary : Dictionary { } } ================================================ FILE: Camunda.Api.Client/QueryResource.cs ================================================ using System; using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client { public class QueryResource where TQuery: new() { private readonly TQuery _query; private readonly Func>> _getList; private readonly Func> _getCount; internal QueryResource(TQuery query, Func>> getList, Func> getCount) { _query = query == null ? new TQuery() : query; _getList = getList ?? throw new ArgumentNullException(nameof(getList)); _getCount = getCount ?? throw new ArgumentNullException(nameof(getCount)); } /// /// Query for items that fulfill given parameters. /// public Task> List() => _getList(_query, null, null); /// /// Query for items that fulfill given parameters. /// /// Pagination of results. Specifies the index of the first result to return. /// Pagination of results. Specifies the maximum number of results to return. Will return less results if there are no more results left. public Task> List(int firstResult, int maxResults) => _getList(_query, firstResult, maxResults); /// /// Get number of items that fulfill given parameters. /// /// public async Task Count() => (await _getCount(_query)).Count; } } ================================================ FILE: Camunda.Api.Client/RestError.cs ================================================ namespace Camunda.Api.Client { public class RestError { public string Type { get; set; } public string Message { get; set; } } } ================================================ FILE: Camunda.Api.Client/RetriesInfo.cs ================================================ namespace Camunda.Api.Client { internal class RetriesInfo { public long Retries; } } ================================================ FILE: Camunda.Api.Client/Signal/ISignalRestService.cs ================================================ using Refit; using System.Threading.Tasks; namespace Camunda.Api.Client.Signal { internal interface ISignalRestService { [Post("/signal")] Task ThrowSignal([Body] Signal signal); } } ================================================ FILE: Camunda.Api.Client/Signal/Signal.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client.Signal { public class Signal { /// /// The name of the signal to deliver. /// public string Name { get; set; } /// /// Optionally specifies a single execution which is notified by the signal. /// public string ExecutionId { get; set; } /// /// A JSON object containing variable key-value pairs. Each key is a variable name and each value a JSON variable value object. /// public Dictionary Variables { get; set; } = new Dictionary(); /// /// Specifies a tenant to deliver the signal. The signal can only be received on executions or process definitions which belongs to the given tenant. /// public string TenantId { get; set; } /// /// If true the signal can only be received on executions or process definitions which belongs to no tenant. Value may not be false as this is the default behavior. /// public bool WithoutTenantId { get; set; } } } ================================================ FILE: Camunda.Api.Client/Signal/SignalService.cs ================================================ using System.Threading.Tasks; namespace Camunda.Api.Client.Signal { public class SignalService { private ISignalRestService _api; internal SignalService(ISignalRestService api) { _api = api; } /// /// A signal is an event of global scope (broadcast semantics) and is delivered to all active handlers. /// Internally this maps to the engine’s signal event received builder method RuntimeService#createSignalEvent(). /// public Task ThrowSignal(Signal signal) => _api.ThrowSignal(signal); } } ================================================ FILE: Camunda.Api.Client/SortOrder.cs ================================================ using System.Runtime.Serialization; namespace Camunda.Api.Client { public enum SortOrder { /// /// Ascending order /// [EnumMember(Value = "asc")] Ascending, /// /// Descending order /// [EnumMember(Value = "desc")] Descending } } ================================================ FILE: Camunda.Api.Client/SortableQuery.cs ================================================ using System; using System.Collections.Generic; namespace Camunda.Api.Client { public abstract class SortableQuery where TQuery: SortableQuery where TSortingEnum : struct, IConvertible { /// /// Array of criteria to sort the result by. The position in the array identifies the rank of an ordering, i.e. whether it is primary, secondary, etc. /// public List> Sorting = new List>(); public TQuery Sort(TSortingEnum sortBy, SortOrder sortOrder = SortOrder.Ascending) { Sorting.Add(new SortingInfo() { SortBy = sortBy, SortOrder = sortOrder }); return (TQuery)this; } } } ================================================ FILE: Camunda.Api.Client/SortingInfo.cs ================================================  using System; using System.Collections.Generic; namespace Camunda.Api.Client { public class SortingInfo where TEnum: struct, IConvertible { /// /// Mandatory. Sort the results lexicographically by a given criterion. /// public TEnum SortBy; /// /// Mandatory. Sort the results in a given order. Values may be asc for ascending order or desc for descending order. /// public SortOrder SortOrder; public Dictionary Parameters; public override string ToString() => SortBy.ToString() + " " + SortOrder; } } ================================================ FILE: Camunda.Api.Client/StringEnumConverter.cs ================================================ using Newtonsoft.Json.Serialization; namespace Camunda.Api.Client { internal class StringEnumConverter : Newtonsoft.Json.Converters.StringEnumConverter { private static CamelCaseNamingStrategy _camelCaseNamingStrategy = new CamelCaseNamingStrategy(); public StringEnumConverter() { NamingStrategy = _camelCaseNamingStrategy; AllowIntegerValues = false; // integer values are not allowed because they dont't have API origin } } } ================================================ FILE: Camunda.Api.Client/StringExtensions.cs ================================================ using System.Collections.Generic; using System.Linq; namespace Camunda.Api.Client { internal static class StringExtensions { public static string Join(this IEnumerable str) { if (str == null || str.Count() == 0) return null; else return string.Join(",", str); } } } ================================================ FILE: Camunda.Api.Client/SuspensionState.cs ================================================ namespace Camunda.Api.Client { public class SuspensionState { public bool Suspended; public override string ToString() => Suspended.ToString(); } } ================================================ FILE: Camunda.Api.Client/Tenant/ITenantRestService.cs ================================================ using Refit; using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.Tenant { internal interface ITenantRestService { [Get("/tenant")] Task> GetList(QueryDictionary query, int? firstResult, int? maxResults); [Get("/tenant/count")] Task GetListCount(QueryDictionary query); [Post("/tenant/create")] Task Create([Body] TenantInfo tenant); } } ================================================ FILE: Camunda.Api.Client/Tenant/TenantInfo.cs ================================================ namespace Camunda.Api.Client.Tenant { public class TenantInfo { /// /// The id of the tenant. /// public string Id; /// /// The name of the tenant. /// public string Name; } } ================================================ FILE: Camunda.Api.Client/Tenant/TenantQuery.cs ================================================ namespace Camunda.Api.Client.Tenant { public class TenantQuery : QueryParameters { // TODO } } ================================================ FILE: Camunda.Api.Client/Tenant/TenantService.cs ================================================ using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; namespace Camunda.Api.Client.Tenant { public class TenantService { private ITenantRestService _api; internal TenantService(ITenantRestService api) { _api = api; } public QueryResource Query(TenantQuery query = null) => new QueryResource( query, (q, f, m) => _api.GetList(q, f, m), q => _api.GetListCount(q)); public Task Create(TenantInfo tenant) => _api.Create(tenant); } } ================================================ FILE: Camunda.Api.Client/User/CreateUser.cs ================================================ namespace Camunda.Api.Client.User { internal class CreateUser { public UserProfileInfo Profile; public UserCredentialsInfo Credentials; } } ================================================ FILE: Camunda.Api.Client/User/IUserRestService.cs ================================================ using Refit; using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.User { internal interface IUserRestService { [Get("/user")] Task> GetList(QueryDictionary query, int? firstResult, int? maxResults); [Get("/user/count")] Task GetListCount(QueryDictionary query); [Get("/user/{id}/profile")] Task GetProfile(string id); [Put("/user/{id}/profile")] Task UpdateProfile(string id, [Body] UserProfileInfo profile); [Put("/user/{id}/credentials")] Task UpdateCredentials(string id, [Body] UserCredentialsInfo credentials); [Delete("/user/{id}")] Task Delete(string id); [Post("/user/create")] Task Create([Body] CreateUser createUser); } } ================================================ FILE: Camunda.Api.Client/User/UserCredentialsInfo.cs ================================================ namespace Camunda.Api.Client.User { internal class UserCredentialsInfo { /// /// The user's new password. /// public string Password; /// /// The password of the current authenticated user who changes the password of the user. /// public string AuthenticatedUserPassword; } } ================================================ FILE: Camunda.Api.Client/User/UserProfileInfo.cs ================================================ namespace Camunda.Api.Client.User { public class UserProfileInfo { /// /// The id of the user. /// public string Id; /// /// The firstname of the user. /// public string FirstName; /// /// The lastname of the user. /// public string LastName; /// /// The email of the user. /// public string Email; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/User/UserQuery.cs ================================================ namespace Camunda.Api.Client.User { public class UserQuery : QueryParameters { /// /// Filter by the id of the user. /// public string Id; /// /// Filter by the firstname of the user. /// public string FirstName; /// /// Filter by the firstname that the parameter is a substring of. /// public string FirstNameLike; /// /// Filter by the lastname of the user. /// public string LastName; /// /// Filter by the lastname that the parameter is a substring of. /// public string LastNameLike; /// /// Filter by the email of the user. /// public string Email; /// /// Filter by the email that the parameter is a substring of. /// public string EmailLike; /// /// Filter for users which are members of a group. /// public string MemberOfGroup; /// /// Filter for users which are members of the given tenant. /// public string MemberOfTenant; /// /// Sort the results lexicographically by a given criterion. Must be used in conjunction with the . /// public UserSorting SortBy; /// /// Sort the results in a given order. Must be used in conjunction with the . /// public SortOrder SortOrder; } public enum UserSorting { UserId, FirstName, LastName, Email, } } ================================================ FILE: Camunda.Api.Client/User/UserResource.cs ================================================ using System.Threading.Tasks; namespace Camunda.Api.Client.User { public class UserResource { private string _userId; private IUserRestService _api; internal UserResource(IUserRestService api, string userId) { _api = api; _userId = userId; } /// /// Retrieves a single user’s profile. /// public Task Get() => _api.GetProfile(_userId); /// /// Deletes a user by id. /// public Task Delete() => _api.Delete(_userId); /// /// Updates the profile information of an already existing user. /// public Task Update(UserProfileInfo profile) => _api.UpdateProfile(_userId, profile); /// /// Updates a user’s credentials (password). /// /// The user's new password. /// The password of the current authenticated user who changes the password of the user. public Task SetPassword(string password, string authenticatedUserPassword) => _api.UpdateCredentials(_userId, new UserCredentialsInfo() { AuthenticatedUserPassword = authenticatedUserPassword, Password = password }); public override string ToString() => _userId; } } ================================================ FILE: Camunda.Api.Client/User/UserService.cs ================================================ using System.Threading.Tasks; namespace Camunda.Api.Client.User { public class UserService { private IUserRestService _api; internal UserService(IUserRestService api) { _api = api; } public QueryResource Query(UserQuery query = null) => new QueryResource( query, (q, f, m) => _api.GetList(q, f, m), q => _api.GetListCount(q)); /// The id of the user to be retrieved. public UserResource this[string userId] => new UserResource(_api, userId); /// /// Create a new user. /// /// The user's profile /// The user's password. /// public Task Create(UserProfileInfo profile, string password) => _api.Create(new CreateUser() { Profile = profile, Credentials = new UserCredentialsInfo { Password = password } }); } } ================================================ FILE: Camunda.Api.Client/UserInfo.cs ================================================ namespace Camunda.Api.Client { internal class UserInfo { public string UserId; } } ================================================ FILE: Camunda.Api.Client/UserTask/AttachmentContent.cs ================================================ using Iana; using System.IO; using System.Net.Http; using System.Net.Http.Headers; namespace Camunda.Api.Client.UserTask { public class AttachmentContent : StreamContent { /// The binary data to be set. public AttachmentContent(Stream stream) : base(stream) { Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data") { Name = "content" }; Headers.ContentType = new MediaTypeHeaderValue(MediaTypes.Application.OctetStream); Headers.Add("Content-Transfer-Encoding", "binary"); } } } ================================================ FILE: Camunda.Api.Client/UserTask/AttachmentInfo.cs ================================================ namespace Camunda.Api.Client.UserTask { public class AttachmentInfo { public string Id; public string Name; public string Description; public string TaskId; public string Type; public string Url; public override string ToString() => Id; } } ================================================ FILE: Camunda.Api.Client/UserTask/Comment.cs ================================================ namespace Camunda.Api.Client.UserTask { public class Comment { /// /// The content of the comment. /// public string Message; public override string ToString() => Message; } } ================================================ FILE: Camunda.Api.Client/UserTask/CommentInfo.cs ================================================ using System; namespace Camunda.Api.Client.UserTask { public class CommentInfo : Comment { /// /// The id of the task comment. /// public string Id; /// /// The id of the user who created the comment. /// public string UserId; /// /// The time when the comment was created. /// public DateTime Time; /// /// The id of the task to which the comment belongs. /// public string TaskId; public override string ToString() => base.ToString() ?? Id; } } ================================================ FILE: Camunda.Api.Client/UserTask/CompleteTask.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client.UserTask { public class CompleteTask : ResolveTask { /// /// if set to true, API will return variables in response. Default behaviour is "false" /// public bool? WithVariablesInReturn { get; set; } = null; public new CompleteTask SetVariable(string name, object value) { base.SetVariable(name, value); return this; } } } ================================================ FILE: Camunda.Api.Client/UserTask/DelegationState.cs ================================================ using System.Runtime.Serialization; namespace Camunda.Api.Client.UserTask { public enum DelegationState { /// /// The owner delegated the task and wants to review the result after the assignee has resolved the task. /// When the assignee completes the task, the task is marked as RESOLVED and sent back to the owner. /// When that happens, the owner is set as the assignee so that the owner gets this task back in the ToDo. /// [EnumMember(Value = "PENDING")] Pending, /// /// The assignee has resolved the task, the assignee was set to the owner again and the owner now finds this task back in the ToDo list for review. /// The owner now is able to complete the task. /// [EnumMember(Value = "RESOLVED")] Resolved } } ================================================ FILE: Camunda.Api.Client/UserTask/IUserTaskRestService.cs ================================================ using Camunda.Api.Client.ProcessDefinition; using Refit; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.UserTask { internal interface IUserTaskRestService { [Get("/task/{id}")] Task Get(string id); [Post("/task")] Task> GetList([Body] TaskQuery query, int? firstResult, int? maxResults); [Post("/task/count")] Task GetListCount([Body] TaskQuery query); [Get("/task/{id}/form")] Task GetForm(string id); [Post("/task/{id}/complete")] Task CompleteTask(string id, [Body] CompleteTask completeTask); [Post("/task/{id}/complete")] Task> CompleteTaskAndFetchVariables(string id, [Body] CompleteTask completeTask); [Post("/task/{id}/resolve")] Task ResolveTask(string id, [Body] ResolveTask resolveTask); [Post("/task/{id}/submit-form")] Task SubmitFormTask(string id, [Body] CompleteTask completeTask); [Post("/task/{id}/submit-form")] Task> SubmitFormTaskAndFetchVariables(string id, [Body] CompleteTask completeTask); [Get("/task/{id}/rendered-form")] Task GetRenderedForm(string id); [Post("/task/{id}/claim")] Task ClaimTask(string id, [Body] UserInfo user); [Post("/task/{id}/assignee")] Task SetAssignee(string id, [Body] UserInfo user); [Post("/task/{id}/unclaim")] Task UnclaimTask(string id); [Post("/task/{id}/delegate")] Task DelegateTask(string id, [Body] UserInfo user); [Delete("/task/{id}")] Task DeleteTask(string id); [Get("/task/{id}/form-variables")] Task> GetFormVariables(string id, string variableNames, bool deserializeValues = true); [Post("/task/create")] Task CreateTask([Body] UserTask task); [Put("/task/{id}")] Task UpdateTask(string id, [Body] UserTask task); [Get("/task/{id}/comment")] Task> GetComments(string id); [Get("/task/{id}/comment/{commentId}")] Task GetComment(string id, string commentId); [Post("/task/{id}/comment/create")] Task CreateComment(string id, [Body] Comment comment); [Get("/task/{id}/attachment")] Task> GetAttachments(string id); [Get("/task/{id}/attachment/{attachmentId}")] Task GetAttachment(string id, string attachmentId); [Get("/task/{id}/attachment/{attachmentId}/data")] Task GetAttachmentData(string id, string attachmentId); [Delete("/task/{id}/attachment/{attachmentId}")] Task DeleteAttachment(string id, string attachmentId); [Post("/task/{id}/attachment/create"), Multipart] Task AddAttachment(string id, PlainTextContent attachmentName, PlainTextContent attachmentDescription, PlainTextContent attachmentType, PlainTextContent url, AttachmentContent content); #region Identity Link [Get("/task/{id}/identity-links")] Task> GetIdentityLinks(string id, string type); [Post("/task/{id}/identity-links")] Task AddIdentityLink(string id, [Body] IdentityLink identityLink); [Post("/task/{id}/identity-links/delete")] Task DeleteIdentityLink(string id, [Body] IdentityLink identityLink); #endregion #region Variables [Delete("/task/{id}/variables/{varName}")] Task DeleteVariable(string id, string varName); [Get("/task/{id}/variables/{varName}")] Task GetVariable(string id, string varName, bool deserializeValue = true); [Get("/task/{id}/variables")] Task> GetVariables(string id, bool deserializeValues = true); [Get("/task/{id}/variables/{varName}/data")] Task GetBinaryVariable(string id, string varName); [Post("/task/{id}/variables/{varName}/data"), Multipart] Task SetBinaryVariable(string id, string varName, BinaryDataContent data, ValueTypeContent valueType); [Post("/task/{id}/variables")] Task ModifyVariables(string id, PatchVariables patch); [Put("/task/{id}/variables/{varName}")] Task PutVariable(string id, string varName, [Body] VariableValue variable); #endregion #region Local Variables [Delete("/task/{id}/localVariables/{varName}")] Task DeleteLocalVariable(string id, string varName); [Get("/task/{id}/localVariables/{varName}")] Task GetLocalVariable(string id, string varName, bool deserializeValue = true); [Get("/task/{id}/localVariables")] Task> GetLocalVariables(string id, bool deserializeValues = true); [Get("/task/{id}/localVariables/{varName}/data")] Task GetBinaryLocalVariable(string id, string varName); [Post("/task/{id}/localVariables/{varName}/data"), Multipart] Task SetBinaryLocalVariable(string id, string varName, BinaryDataContent data, ValueTypeContent valueType); [Post("/task/{id}/localVariables")] Task ModifyLocalVariables(string id, PatchVariables patch); [Put("/task/{id}/localVariables/{varName}")] Task PutLocalVariable(string id, string varName, [Body] VariableValue variable); #endregion #region Report [Get("/task/report/candidate-group-count")] Task> GetTaskCountByCandidateGroup(); #endregion } } ================================================ FILE: Camunda.Api.Client/UserTask/IdentityLink.cs ================================================ using System; using System.ComponentModel; namespace Camunda.Api.Client.UserTask { public class IdentityLink { /// /// The id of the user to link to the task. If you set this parameter, you have to omit groupId. /// public string UserId; /// /// The id of the group to link to the task. If you set this parameter, you have to omit userId. /// public string GroupId; /// /// The type of the identity link. Can be any defined type. assignee and owner are reserved types for the task assignee and owner. /// /// public string Type; public override string ToString() { return UserId ?? GroupId ?? Type; } } /// /// Definícia typov pre /// public static class IdentityLinkType { public const string Assignee = "assignee"; public const string Candidate = "candidate"; public const string Owner = "owner"; } } ================================================ FILE: Camunda.Api.Client/UserTask/LocalVariableResource.cs ================================================ using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.UserTask { public class LocalVariableResource : IVariableResource { private string _taskId; private IUserTaskRestService _api; internal LocalVariableResource(IUserTaskRestService api, string taskId) { _api = api; _taskId = taskId; } /// /// Retrieves all variables of a given task. /// /// Determines whether serializable variable values (typically variables that store custom Java objects) should be deserialized on server side. public Task> GetAll(bool deserializeValues = true) => _api.GetLocalVariables(_taskId, deserializeValues); /// /// Retrieves a variable from the context of a given task. /// public Task Get(string variableName, bool deserializeValue = true) => _api.GetLocalVariable(_taskId, variableName, deserializeValue); /// /// Retrieves a binary variable from the context of a given task. Applicable for byte array and file variables. /// public async Task GetBinary(string variableName) => (await _api.GetBinaryLocalVariable(_taskId, variableName)).Content; /// /// Sets a variable in the context of a given task. /// public Task Set(string variableName, VariableValue variable) => _api.PutLocalVariable(_taskId, variableName, variable); /// /// Sets the serialized value for a binary variable or the binary value for a file variable. /// public Task SetBinary(string variableName, BinaryDataContent data, BinaryVariableType valueType) => _api.SetBinaryLocalVariable(_taskId, variableName, data, new ValueTypeContent(valueType.ToString())); /// /// Removes a variable from a task. /// public Task Delete(string variableName) => _api.DeleteLocalVariable(_taskId, variableName); /// /// Updates or deletes the variables in the context of a task. Updates precede deletions. So, if a variable is updated AND deleted, the deletion overrides the update. /// public Task Modify(PatchVariables patch) => _api.ModifyLocalVariables(_taskId, patch); public override string ToString() => _taskId; } } ================================================ FILE: Camunda.Api.Client/UserTask/ResolveTask.cs ================================================ using System.Collections.Generic; namespace Camunda.Api.Client.UserTask { public class ResolveTask { /// /// Object containing variable key-value pairs. /// public Dictionary Variables = new Dictionary(); public ResolveTask SetVariable(string name, object value) { Variables = (Variables ?? new Dictionary()).Set(name, value); return this; } } } ================================================ FILE: Camunda.Api.Client/UserTask/TaskAttachmentResource.cs ================================================ using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.UserTask { public class TaskAttachmentResource { private string _taskId; private IUserTaskRestService _api; internal TaskAttachmentResource(IUserTaskRestService api, string taskId) { _api = api; _taskId = taskId; } /// /// Gets the attachments for a task. /// public Task> GetAll() => _api.GetAttachments(_taskId); /// /// Retrieves a single task attachment by task id and attachment id. /// public Task Get(string attachmentId) => _api.GetAttachment(_taskId, attachmentId); /// /// Retrieves the binary content of a single task attachment by task id and attachment id. /// public async Task GetData(string attachmentId) => (await _api.GetAttachmentData(_taskId, attachmentId)).Content; /// /// Removes an attachment from a task. /// public Task Delete(string attachmentId) => _api.DeleteAttachment(_taskId, attachmentId); /// /// Create an attachment for a task. /// /// The name of the attachment. /// The description of the attachment. /// The type of the attachment. Can be MIME type or any other indication. /// The url to the remote content of the attachment. /// The content of the attachment. public Task Create(string name, string description, string type, string url, AttachmentContent content) => _api.AddAttachment(_taskId, new PlainTextContent("attachment-name", name), new PlainTextContent("attachment-description", description), new PlainTextContent("attachment-type", type), new PlainTextContent("url", url), content); public override string ToString() => _taskId; } } ================================================ FILE: Camunda.Api.Client/UserTask/TaskCommentResource.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Camunda.Api.Client.UserTask { public class TaskCommentResource { private string _taskId; private IUserTaskRestService _api; internal TaskCommentResource(IUserTaskRestService api, string taskId) { _api = api; _taskId = taskId; } /// /// Gets the comments for a task. /// public Task> GetAll() => _api.GetComments(_taskId); /// /// Retrieves a single task comment by task id and comment id. /// public Task Get(string commentId) => _api.GetComment(_taskId, commentId); /// /// Create a comment for a task. /// /// The message of the task comment to create. public Task Create(string message) => _api.CreateComment(_taskId, new Comment() { Message = message }); public override string ToString() => _taskId; } } ================================================ FILE: Camunda.Api.Client/UserTask/TaskCountByCandidateGroupResult.cs ================================================ namespace Camunda.Api.Client.UserTask { public class TaskCountByCandidateGroupResult { /// /// The name of the candidate group. If there are tasks without a group name, the value will be null. /// public string GroupName; /// /// The number of tasks which have the group name as candidate group. /// public int TaskCount; public override string ToString() { if (string.IsNullOrEmpty(GroupName)) return TaskCount.ToString(); else return $"{GroupName}: {TaskCount}"; } } } ================================================ FILE: Camunda.Api.Client/UserTask/TaskIdentityLinkResource.cs ================================================ using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.UserTask { public class TaskIdentityLinkResource { private string _taskId; private IUserTaskRestService _api; internal TaskIdentityLinkResource(IUserTaskRestService api, string taskId) { _api = api; _taskId = taskId; } /// /// Gets the identity links for a task, which are the users and groups that are in some relation to it (including assignee and owner). /// /// Filter by the type of links to include. public Task> GetAll(string type) => _api.GetIdentityLinks(_taskId, type); /// /// Gets the identity links for a task, which are the users and groups that are in some relation to it (including assignee and owner). /// public Task> GetAll() => GetAll(null); /// /// Adds an identity link to a task. Can be used to link any user or group to a task and specify and relation. /// public Task Add(IdentityLink identityLink) => _api.AddIdentityLink(_taskId, identityLink); /// /// Removes an identity link from a task. /// public Task Delete(IdentityLink identityLink) => _api.DeleteIdentityLink(_taskId, identityLink); public override string ToString() => _taskId; } } ================================================ FILE: Camunda.Api.Client/UserTask/TaskQuery.cs ================================================ using Newtonsoft.Json; using System; using System.Linq; using System.Collections.Generic; namespace Camunda.Api.Client.UserTask { public class TaskQuery { /// /// Restrict to tasks that belong to process instances with the given business key. /// public string ProcessInstanceBusinessKey; /// /// Restrict to tasks that belong to process instances with one of the give business keys. /// [JsonProperty("processInstanceBusinessKeyIn")] public List ProcessInstanceBusinessKeys = new List(); /// /// Restrict to tasks that have a process instance business key that has the parameter value as a substring. /// public string ProcessInstanceBusinessKeyLike; /// /// Restrict to tasks that belong to a process definition with the given key. /// public string ProcessDefinitionKey; /// /// Restrict to tasks that belong to a process definition with one of the given keys. /// [JsonProperty("processDefinitionKeyIn")] public List ProcessDefinitionKeys = new List(); /// /// Restrict to tasks that belong to a process definition with the given id. /// public string ProcessDefinitionId; /// /// Restrict to tasks that belong to an execution with the given id. /// public string ExecutionId; /// /// Only include tasks which belong to one of the passed activity instance ids. /// [JsonProperty("activityInstanceIdIn")] public List ActivityInstanceIds = new List(); /// /// Restrict to tasks that belong to a process definition with the given name. /// public string ProcessDefinitionName; /// /// Restrict to tasks that have a process definition name that has the parameter value as a substring. /// public string ProcessDefinitionNameLike; /// /// Restrict to tasks that belong to process instances with the given id. /// public string ProcessInstanceId; /// /// Restrict to tasks that the given user is assigned to. /// public string Assignee; /// /// Restrict to tasks that the user described by the given expression is assigned to. See the user guide for more information on available functions. /// public string AssigneeExpression; /// /// Restrict to tasks that have an assignee that has the parameter value as a substring. /// public string AssigneeLike; /// /// Restrict to tasks that have an assignee that has the parameter value described by the given expression as a substring. See the user guide for more information on available functions. /// public string AssigneeLikeExpression; /// /// Only include tasks that are offered to the given group. /// public string CandidateGroup; /// /// Only include tasks that are offered to the group described by the given expression. See the user guide for more information on available functions. /// public string CandidateGroupExpression; /// /// Only include tasks that are offered to the given user. /// public string CandidateUser; /// /// Only include tasks that are offered to the user described by the given expression. See the user guide for more information on available functions. /// public string CandidateUserExpression; /// /// Also include tasks that are assigned to users in candidate queries. Default is to only include tasks that are not assigned to any user if you query by candidate user or group(s). /// public bool? IncludeAssignedTasks; /// /// Restrict to tasks that have the given key. /// public string TaskDefinitionKey; /// /// Restrict to tasks that have one of the given keys. /// [JsonProperty("taskDefinitionKeyIn")] public List TaskDefinitionKeys = new List(); /// /// Restrict to tasks that have a key that has the parameter value as a substring. /// public string TaskDefinitionKeyLike; /// /// Restrict to tasks that have the given description. /// public string Description; /// /// Restrict to tasks that have a description that has the parameter value as a substring. /// public string DescriptionLike; /// /// Only include tasks that the given user is involved in. A user is involved in a task if an identity link exists between task and user (e.g., the user is the assignee). /// public string InvolvedUser; /// /// Only include tasks that the user described by the given expression is involved in. A user is involved in a task if an identity link exists between task and user (e.g., the user is the assignee). See the user guide for more information on available functions. /// public string InvolvedUserExpression; /// /// Restrict to tasks that have a lower or equal priority. /// public int? MaxPriority; /// /// Restrict to tasks that have a higher or equal priority. /// public int? MinPriority; /// /// Restrict to tasks that have the given name. /// public string Name; /// /// Restrict to tasks that have a name with the given parameter value as substring. /// public string NameLike; /// /// Restrict to tasks that the given user owns. /// public string Owner; /// /// Restrict to tasks that the user described by the given expression owns. See the user guide for more information on available functions. /// public string OwnerExpression; /// /// Restrict to tasks that have the given priority. /// public int? Priority; /// /// Restrict query to all tasks that are sub tasks of the given task. Takes a task id /// public string ParentTaskId; /// /// If set to true, restricts the query to all tasks that are unassigned. /// public bool? Unassigned; /// /// If set to true, restricts the query to all tasks that are assigned. /// public bool? Assigned; /// /// Only include active tasks. Value may only be true, as false is the default behavior. /// public bool? Active; /// /// Only include suspended tasks. Value may only be true, as false is the default behavior. /// public bool? Suspended; /// /// Restrict to tasks that belong to a case definition with the given key. /// public string CaseDefinitionKey; /// /// Restrict to tasks that belong to a case definition with the given id. /// public string CaseDefinitionId; /// /// Restrict to tasks that belong to a case definition with the given name. /// public string CaseDefinitionName; /// /// Restrict to tasks that have a case definition name that has the parameter value as a substring. /// public string CaseDefinitionNameLike; /// /// Restrict to tasks that belong to case instances with the given id. /// public string CaseInstanceId; /// /// Restrict to tasks that belong to case instances with the given business key. /// public string CaseInstanceBusinessKey; /// /// Restrict to tasks that have a case instance business key that has the parameter value as a substring. /// public string CaseInstanceBusinessKeyLike; /// /// Restrict to tasks that belong to a case execution with the given id. /// public string CaseExecutionId; /// /// Restrict to tasks that are due after the given date. The date must have the format yyyy-MM-dd'T'HH:mm:ss, e.g., 2013-01-23T14:42:45. /// public DateTime? DueAfter; /// /// Restrict to tasks that are due after the date described by the given expression. See the user guide for more information on available functions. The expression must evaluate to a java.util.Date or org.joda.time.DateTime object. /// public string DueAfterExpression; /// /// Restrict to tasks that are due before the given date. The date must have the format yyyy-MM-dd'T'HH:mm:ss, e.g., 2013-01-23T14:42:45. /// public DateTime? DueBefore; /// /// Restrict to tasks that are due before the date described by the given expression. See the user guide for more information on available functions. The expression must evaluate to a java.util.Date or org.joda.time.DateTime object. /// public string DueBeforeExpression; /// /// Restrict to tasks that are due on the given date. The date must have the format yyyy-MM-dd'T'HH:mm:ss, e.g., 2013-01-23T14:42:45. /// public DateTime? DueDate; /// /// Restrict to tasks that are due on the date described by the given expression. See the user guide for more information on available functions. The expression must evaluate to a java.util.Date or org.joda.time.DateTime object. /// public string DueDateExpression; /// /// Restrict to tasks that have a followUp date after the given date. The date must have the format yyyy-MM-dd'T'HH:mm:ss, e.g., 2013-01-23T14:42:45. /// public DateTime? FollowUpAfter; /// /// Restrict to tasks that have a followUp date after the date described by the given expression. See the user guide for more information on available functions. The expression must evaluate to a java.util.Date or org.joda.time.DateTime object. /// public string FollowUpAfterExpression; /// /// Restrict to tasks that have a followUp date before the given date. The date must have the format yyyy-MM-dd'T'HH:mm:ss, e.g., 2013-01-23T14:42:45. /// public DateTime? FollowUpBefore; /// /// Restrict to tasks that have a followUp date before the date described by the given expression. See the user guide for more information on available functions. The expression must evaluate to a java.util.Date or org.joda.time.DateTime object. /// public string FollowUpBeforeExpression; /// /// Restrict to tasks that have no followUp date or a followUp date before the given date. See the user guide for more information on available functions. The expression must evaluate to a java.util.Date or org.joda.time.DateTime object. /// public DateTime? FollowUpBeforeOrNotExistent; /// /// Restrict to tasks that have no followUp date or a followUp date before the date described by the given expression. See the user guide for more information on available functions. The expression must evaluate to a java.util.Date or org.joda.time.DateTime object. /// public string FollowUpBeforeOrNotExistentExpression; /// /// Restrict to tasks that have a followUp date on the given date. The date must have the format yyyy-MM-dd'T'HH:mm:ss, e.g., 2013-01-23T14:42:45. /// public DateTime? FollowUpDate; /// /// Restrict to tasks that have a followUp date on the date described by the given expression. See the user guide for more information on available functions. The expression must evaluate to a java.util.Date or org.joda.time.DateTime object. /// public string FollowUpDateExpression; /// /// Restrict to tasks that were created after the given date. /// public DateTime? CreatedAfter; /// /// Restrict to tasks that were created after the date described by the given expression. See the user guide for more information on available functions. The expression must evaluate to a java.util.Date or org.joda.time.DateTime object. /// public string CreatedAfterExpression; /// /// Restrict to tasks that were created before the given date. The date must have the format yyyy-MM-dd'T'HH:mm:ss, e.g., 2013-01-23T14:42:45. /// public DateTime? CreatedBefore; /// /// Restrict to tasks that were created before the date described by the given expression. See the user guide for more information on available functions. The expression must evaluate to a java.util.Date or org.joda.time.DateTime object. /// public string CreatedBeforeExpression; /// /// Restrict to tasks that were created on the given date. /// public DateTime? CreatedOn; /// /// Restrict to tasks that were created on the date described by the given expression. See the user guide for more information on available functions. The expression must evaluate to a java.util.Date or org.joda.time.DateTime object. /// public string CreatedOnExpression; /// /// Restrict to tasks that are in the given delegation state. /// public DelegationState? DelegationState; [JsonProperty("tenantIdIn")] public List TenantIds = new List(); /// /// Only include tasks which belongs to no tenant. Value may only be true, as false is the default behavior. /// public bool? WithoutTenantId; /// /// Restrict to tasks that are offered to any of the given candidate groups. /// public List CandidateGroups; /// /// Restrict to tasks that are offered to any of the candidate groups described by the given expression. See the user guide for more information on available functions. The expression must evaluate to java.util.List of Strings. /// public string CandidateGroupsExpression; /// /// Array to only include tasks that have variables with certain values. /// public List TaskVariables = new List(); /// /// Array to only include tasks that belong to a process instance with variables with certain values. /// public List ProcessVariables = new List(); /// /// Only include tasks that belong to case instances that have variables with certain values. /// public List CaseInstanceVariables = new List(); /// /// Only include tasks which have a candidate group. /// public bool? WithCandidateGroups; /// /// Only include tasks which have no candidate group. /// public bool? WithoutCandidateGroups; /// /// Array of criteria to sort the result by. The position in the array identifies the rank of an ordering, i.e. whether it is primary, secondary, etc. /// public List> Sorting = new List>(); /// /// /// /// Mandatory when is either /// , , , or /// public TaskQuery Sort(TaskSorting sortBy, SortOrder sortOrder = SortOrder.Ascending, VariableOrder variable = null) { Dictionary parameters = null; TaskSorting[] variableSorting = new[] { TaskSorting.ProcessVariable, TaskSorting.ExecutionVariable, TaskSorting.TaskVariable, TaskSorting.CaseExecutionVariable, TaskSorting.CaseInstanceVariable }; bool isVariableSorting = variableSorting.Contains(sortBy); if (isVariableSorting ^ variable != null) throw new ArgumentException("Variable is mandatory when sortBy is either processVariable, executionVariable, taskVariable, caseExecutionVariable or caseInstanceVariable.", nameof(variable)); if (variable != null) { parameters = new Dictionary() { ["variable"] = variable.VariableName, ["type"] = variable.Type.ToString(), }; } Sorting.Add(new SortingInfo() { SortBy = sortBy, SortOrder = sortOrder, Parameters = parameters }); return this; } } public enum TaskSorting { Id, InstanceId, CaseInstanceId, DueDate, ExecutionId, CaseExecutionId, Assignee, Created, Description, Name, NameCaseInsensitive, Priority, ProcessVariable, ExecutionVariable, TaskVariable, CaseExecutionVariable, CaseInstanceVariable } } ================================================ FILE: Camunda.Api.Client/UserTask/TaskResource.cs ================================================ using Camunda.Api.Client.ProcessDefinition; using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.UserTask { public class TaskResource { private string _taskId; private IUserTaskRestService _api; internal TaskResource(IUserTaskRestService api, string taskId) { _api = api; _taskId = taskId; } public TaskIdentityLinkResource IdentityLink => new TaskIdentityLinkResource(_api, _taskId); public TaskCommentResource Comment => new TaskCommentResource(_api, _taskId); public TaskAttachmentResource Attachment => new TaskAttachmentResource(_api, _taskId); public VariableResource Variables => new VariableResource(_api, _taskId); public LocalVariableResource LocalVariables => new LocalVariableResource(_api, _taskId); /// /// Retrieves a single task by its id. /// public Task Get() => _api.Get(_taskId); /// /// Retrieves the form key for a task. The form key corresponds to the FormData#formKey property in the engine. /// This key can be used to do task-specific form rendering in client applications. /// Additionally, the context path of the containing process application is returned. /// public Task GetForm() => _api.GetForm(_taskId); /// /// Complete a task and update process variables using a form submit. /// /// /// * If the task is in state PENDING - ie. has been delegated before, it is not completed but resolved. Otherwise it will be completed. /// * If the task has Form Field Metadata defined, the process engine will perform backend validation for any form fields which have validators defined. /// public Task SubmitForm(CompleteTask completeTask) => _api.SubmitFormTask(_taskId, completeTask); /// /// Complete a task and update process variables using a form submit, retrieving variables in response /// /// /// * If the task is in state PENDING - ie. has been delegated before, it is not completed but resolved. Otherwise it will be completed. /// * If the task has Form Field Metadata defined, the process engine will perform backend validation for any form fields which have validators defined. /// public Task> SubmitFormAndFetchVariables(CompleteTask completeTask) => _api.SubmitFormTaskAndFetchVariables(_taskId, completeTask); /// /// Retrieves the rendered form for a task. This method can be used for getting the HTML rendering of a Generated Task Form. /// public Task GetRenderedForm() => _api.GetRenderedForm(_taskId); /// /// Claim a task for a specific user. /// /// /// The difference with set a assignee is that here a check is performed to see if the task already has a user assigned to it. /// public Task Claim(string userId) => _api.ClaimTask(_taskId, new UserInfo() { UserId = userId }); /// /// Resets a task’s assignee. If successful, the task is not assigned to a user. /// public Task Unclaim() => _api.UnclaimTask(_taskId); /// /// Complete a task and update process variables. /// public Task Complete(CompleteTask completeTask) => _api.CompleteTask(_taskId, completeTask); /// /// Complete a task and update process variables, retrieving variables in response /// public Task> CompleteAndFetchVariables(CompleteTask completeTask) => _api.CompleteTaskAndFetchVariables(_taskId, completeTask); /// /// Resolve a task and update execution variables. /// public Task Resolve(ResolveTask resolveTask) => _api.ResolveTask(_taskId, resolveTask); /// /// Delegate a task to another user. /// public Task Delegate(string delegatedUser) => _api.DelegateTask(_taskId, new UserInfo() { UserId = delegatedUser }); /// /// Change the assignee of a task to a specific user. /// /// /// The difference with claim a task is that this method does not check if the task already has a user assigned to it. /// public Task SetAssignee(string userId) => _api.SetAssignee(_taskId, new UserInfo() { UserId = userId }); /// /// Retrieves the form variables for a task. /// The form variables take form data specified on the task into account. /// If form fields are defined, the variable types and default values of the form fields are taken into account. /// /// /// Allows restricting the list of requested variables to the variable names in the list. /// It is best practice to restrict the list of variables to the variables actually required by the form in order to minimize fetching of data. /// If the query parameter is ommitted all variables are fetched. If the query parameter contains non-existent variable names, the variable names are ignored. /// public Task> GetFormVariables(params string[] variableNames) => _api.GetFormVariables(_taskId, variableNames.Join()); /// /// Retrieves the form variables for a task. /// The form variables take form data specified on the task into account. /// If form fields are defined, the variable types and default values of the form fields are taken into account. /// /// /// Allows restricting the list of requested variables to the variable names in the list. /// It is best practice to restrict the list of variables to the variables actually required by the form in order to minimize fetching of data. /// If the query parameter is ommitted all variables are fetched. If the query parameter contains non-existent variable names, the variable names are ignored. /// /// Determines whether serializable variable values (typically variables that store custom Java objects) should be deserialized on server side. public Task> GetFormVariables(string[] variableNames, bool deserializeValues = true) => _api.GetFormVariables(_taskId, variableNames.Join(), deserializeValues); /// /// Updates a task. /// public Task Update(UserTask task) => _api.UpdateTask(_taskId, task); /// /// Delete a task. /// public Task Delete() => _api.DeleteTask(_taskId); public override string ToString() => _taskId; } } ================================================ FILE: Camunda.Api.Client/UserTask/UserTask.cs ================================================ using System; namespace Camunda.Api.Client.UserTask { public class UserTask { /// /// The task name. /// public string Name; /// /// The user assigned to this task. /// public string Assignee; /// /// The due date for the task. /// public DateTime? Due; /// /// The follow-up date for the task. /// public DateTime? FollowUp; /// /// The delegation state of the task. Possible values are RESOLVED and PENDING. /// public DelegationState DelegationState; /// /// The task description. /// public string Description; /// /// The owner of the task. /// public string Owner; /// /// The id of the parent task, if this task is a subtask. /// public string ParentTaskId; /// /// The priority of the task. /// public int Priority; /// /// The id of the case instance the task belongs to. /// public string CaseInstanceId; /// /// If not null, the tenantId for the task. /// /// The tenant id cannot be changed; only the existing tenant id can be passed. public string TenantId; public override string ToString() => Name; } } ================================================ FILE: Camunda.Api.Client/UserTask/UserTaskInfo.cs ================================================ using System; namespace Camunda.Api.Client.UserTask { public class UserTaskInfo : UserTask { /// /// The id of the task. /// public string Id; /// /// The time the task was created. /// public DateTime Created; /// /// The id of the execution the task belongs to. /// public string ExecutionId; /// /// The id of the process definition this task belongs to. /// public string ProcessDefinitionId; /// /// The id of the process instance this task belongs to. /// public string ProcessInstanceId; /// /// The task definition key. /// public string TaskDefinitionKey; /// /// The id of the case execution the task belongs to. /// public string CaseExecutionId; /// /// The id of the case definition the task belongs to. /// public string CaseDefinitionId; /// /// If not null, the form key for the task. /// public string FormKey; public override string ToString() => base.ToString() ?? Id; } } ================================================ FILE: Camunda.Api.Client/UserTask/UserTaskService.cs ================================================ using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.UserTask { public class UserTaskService { private IUserTaskRestService _api; internal UserTaskService(IUserTaskRestService api) { _api = api; } public TaskResource this[string taskId] => new TaskResource(_api, taskId); /// /// Retrieves the number of tasks for each candidate group. /// public Task> GetTaskCountByCandidateGroup() => _api.GetTaskCountByCandidateGroup(); public QueryResource Query(TaskQuery query = null) => new QueryResource(query, _api.GetList, _api.GetListCount); public Task Create(UserTask task) => _api.CreateTask(task); } } ================================================ FILE: Camunda.Api.Client/UserTask/VariableResource.cs ================================================ using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.UserTask { public class VariableResource : IVariableResource { private string _taskId; private IUserTaskRestService _api; internal VariableResource(IUserTaskRestService api, string taskId) { _api = api; _taskId = taskId; } /// /// Retrieves all variables of a given task. /// /// Determines whether serializable variable values (typically variables that store custom Java objects) should be deserialized on server side. public Task> GetAll(bool deserializeValues = true) => _api.GetVariables(_taskId, deserializeValues); /// /// Retrieves a variable from the context of a given task. /// public Task Get(string variableName, bool deserializeValue = true) => _api.GetVariable(_taskId, variableName, deserializeValue); /// /// Retrieves a binary variable from the context of a given task. Applicable for byte array and file variables. /// public async Task GetBinary(string variableName) => (await _api.GetBinaryVariable(_taskId, variableName)).Content; /// /// Sets a variable in the context of a given task. /// public Task Set(string variableName, VariableValue variable) => _api.PutVariable(_taskId, variableName, variable); /// /// Sets the serialized value for a binary variable or the binary value for a file variable. /// public Task SetBinary(string variableName, BinaryDataContent data, BinaryVariableType valueType) => _api.SetBinaryVariable(_taskId, variableName, data, new ValueTypeContent(valueType.ToString())); /// /// Removes a variable from a task. /// public Task Delete(string variableName) => _api.DeleteVariable(_taskId, variableName); /// /// Updates or deletes the variables in the context of a task. Updates precede deletions. So, if a variable is updated AND deleted, the deletion overrides the update. /// public Task Modify(PatchVariables patch) => _api.ModifyVariables(_taskId, patch); public override string ToString() => _taskId; } } ================================================ FILE: Camunda.Api.Client/ValueTypeContent.cs ================================================ using Iana; using System.Net.Http; using System.Net.Http.Headers; namespace Camunda.Api.Client { internal class ValueTypeContent : StringContent { public ValueTypeContent(string valueType) : base(valueType) { Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data") { Name = "valueType" }; Headers.ContentType = new MediaTypeHeaderValue(MediaTypes.Text.Plain) { CharSet = "US-ASCII" }; Headers.Add("Content-Transfer-Encoding", "8bit"); } } } ================================================ FILE: Camunda.Api.Client/VariableInstance/IVariableInstanceRestService.cs ================================================ using Refit; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.VariableInstance { internal interface IVariableInstanceRestService { [Get("/variable-instance/{variableInstanceId}")] Task Get(string variableInstanceId); [Post("/variable-instance")] Task> GetList([Body] VariableInstanceQuery query, int? firstResult, int? maxResults, bool deserializeValues = true); [Post("/variable-instance/count")] Task GetListCount([Body] VariableInstanceQuery query); [Get("/variable-instance/{variableInstanceId}/data")] Task GetBinaryVariable(string variableInstanceId); } } ================================================ FILE: Camunda.Api.Client/VariableInstance/VariableInstanceInfo.cs ================================================ namespace Camunda.Api.Client.VariableInstance { public class VariableInstanceInfo : NamedVariableValue { /// /// The id of the variable instance. /// public string Id; /// /// The id of the process instance that this variable instance belongs to. /// public string ProcessInstanceId; /// /// The id of the execution that this variable instance belongs to. /// public string ExecutionId; /// /// The id of the case instance that this variable instance belongs to. /// public string CaseInstanceId; /// /// The id of the case execution that this variable instance belongs to. /// public string CaseExecutionId; /// /// The id of the task that this variable instance belongs to. /// public string TaskId; /// /// The id of the activity instance that this variable instance belongs to. /// public string ActivityInstanceId; /// /// An error message in case a Java Serialized Object could not be de-serialized. /// public string ErrorMessage; /// /// The id of the tenant that this variable instance belongs to. /// public string TenantId; } } ================================================ FILE: Camunda.Api.Client/VariableInstance/VariableInstanceQuery.cs ================================================ using Newtonsoft.Json; using System.Collections.Generic; namespace Camunda.Api.Client.VariableInstance { public class VariableInstanceQuery : SortableQuery { /// /// Filter by variable instance name. /// public string VariableName; /// /// Filter by the variable instance name. The parameter can include the wildcard % to express like-strategy such as: starts with (%name), ends with (name%) or contains (%name%). /// public string VariableNameLike; /// /// An array to only include variable instances that have the certain values. /// public List VariableValues; /// /// Only include variable instances which belong to one of the passed execution ids. /// [JsonProperty("executionIdIn")] public List ExecutionId = new List(); /// /// Only include variable instances which belong to one of the passed process instance ids. /// [JsonProperty("processInstanceIdIn")] public List ProcessInstanceId = new List(); /// /// Only include variable instances which belong to one of the passed case execution ids. /// [JsonProperty("caseExecutionIdIn")] public List CaseExecutionId = new List(); /// /// Only include variable instances which belong to one of the passed case instance ids. /// [JsonProperty("caseInstanceIdIn")] public List CaseInstanceId = new List(); /// /// Only include variable instances which belong to one of the passed task ids. /// [JsonProperty("taskIdIn")] public List TaskId = new List(); /// /// Only select variables instances which have on of the variable scope ids. /// [JsonProperty("variableScopeIdIn")] public List VariableScopeId = new List(); /// /// Only include variable instances which belong to one of the passed activity instance ids. /// [JsonProperty("activityInstanceIdIn")] public List ActivityInstanceId = new List(); /// /// Only select variable instances with one of the given tenant ids. /// [JsonProperty("tenantIdIn")] public List TenantIds = new List(); } public enum VariableInstanceSorting { VariableName, VariableType, ActivityInstanceId, TenantId } } ================================================ FILE: Camunda.Api.Client/VariableInstance/VariableInstanceQueryResource.cs ================================================ using System.Collections.Generic; using System.Threading.Tasks; namespace Camunda.Api.Client.VariableInstance { public class VariableInstanceQueryResource { private IVariableInstanceRestService _api; private VariableInstanceQuery _query; internal VariableInstanceQueryResource(IVariableInstanceRestService api, VariableInstanceQuery query) { _api = api; _query = query; } /// /// Query for variable instances that fulfill given parameters. /// public Task> List() => _api.GetList(_query, null, null); /// /// Query for variable instances that fulfill given parameters. /// /// Pagination of results. Specifies the index of the first result to return. /// Pagination of results. Specifies the maximum number of results to return. Will return less results if there are no more results left. /// Determines whether serializable variable values (typically variables that store custom Java objects) should be deserialized on server side. public Task> List(int firstResult, int maxResults, bool deserializeValues = true) => _api.GetList(_query, firstResult, maxResults, deserializeValues); /// /// Get number of variable instances that fulfill given parameters. /// /// public async Task Count() => (await _api.GetListCount(_query)).Count; } } ================================================ FILE: Camunda.Api.Client/VariableInstance/VariableInstanceResource.cs ================================================ using System.Net.Http; using System.Threading.Tasks; namespace Camunda.Api.Client.VariableInstance { public class VariableInstanceResource { private string _variableInstanceId; private IVariableInstanceRestService _api; internal VariableInstanceResource(IVariableInstanceRestService api, string variableInstanceId) { _api = api; _variableInstanceId = variableInstanceId; } /// /// Retrieves a single variable by id. /// public Task Get() => _api.Get(_variableInstanceId); /// /// Retrieves the content of a single variable by id. /// Applicable for byte array and file variables. /// public async Task GetBinary() => (await _api.GetBinaryVariable(_variableInstanceId)).Content; public override string ToString() => _variableInstanceId; } } ================================================ FILE: Camunda.Api.Client/VariableInstance/VariableInstanceService.cs ================================================ namespace Camunda.Api.Client.VariableInstance { public class VariableInstanceService { private IVariableInstanceRestService _api; internal VariableInstanceService(IVariableInstanceRestService api) { _api = api; } /// The id of the variable instance. public VariableInstanceResource this[string variableInstanceId] => new VariableInstanceResource(_api, variableInstanceId); public VariableInstanceQueryResource Query(VariableInstanceQuery query = null) => new VariableInstanceQueryResource(_api, query ?? new VariableInstanceQuery()); } } ================================================ FILE: Camunda.Api.Client/VariableOrder.cs ================================================ namespace Camunda.Api.Client { public class VariableOrder { public string VariableName; public VariableType Type; public VariableOrder(string variableName, VariableType variableType) { VariableName = variableName; Type = variableType; } } } ================================================ FILE: Camunda.Api.Client/VariableQueryParameter.cs ================================================  namespace Camunda.Api.Client { public class VariableQueryParameter : ConditionQueryParameter { /// /// Variable name /// public string Name; } } ================================================ FILE: Camunda.Api.Client/VariableValue.cs ================================================ using Iana; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Globalization; using System.IO; using System.Reflection; namespace Camunda.Api.Client { [JsonObject] [JsonConverter(typeof(VariableValueJsonConverter))] [TypeConverter(typeof(VariableValueTypeConverter))] public class VariableValue : IConvertible { /// Identifies the file's name as specified on value creation. public const string ValueInfoFileName = "filename"; /// Identifies the file's mime type as specified on value creation. public const string ValueInfoFileMimeType = "mimeType"; /// Identifies the file's encoding as specified on value creation. public const string ValueInfoFileEncoding = "encoding"; /// Identifies the object's type name./// public const string ValueInfoObjectTypeName = "objectTypeName"; /// Identifies the format in which the object is serialized. public const string ValueInfoSerializationDataFormat = "serializationDataFormat"; private const string SerializedTypedObjectTypeName = "dto.SerializedTypedObject"; private const string JavaObjectTypeName = "java.lang.Object"; /// /// The value type of the variable. /// [JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] public VariableType Type; /// /// Object containing additional, value-type-dependent properties. /// /// /// For serialized variables of type Object, the following properties can be provided: /// objectTypeName: A string representation of the object's type name. /// serializationDataFormat: The serialization format used to store the variable. /// /// For serialized variables of type File, the following properties can be provided: /// filename: The name of the file.This is not the variable name but the name that will be used when downloading the file again. /// mimetype: The mime type of the file that is being uploaded. /// encoding: The encoding of the file that is being uploaded. /// public Dictionary ValueInfo; /// /// The variable's value. /// [JsonIgnore] public object Value; [JsonProperty("value"), DebuggerBrowsable(DebuggerBrowsableState.Never)] private object rawValue { get { if (Value != null) { if (IsSerializedTypedObject) { return JsonConvert.SerializeObject( // wrapping into SerializedTypedObject new SerializedTypedObject() { Data = JsonConvert.SerializeObject(Value, typeof(object), TypeAwareJsonSerializerSettings) }); } else if (Type == VariableType.Object) { // object serialize as a simple JSON return JsonConvert.SerializeObject(Value); } } return Value; } set { if (value != null) { if (IsSerializedTypedObject && value is JToken) { // this can throw exception when cannot find assembly... Value = JsonConvert.DeserializeObject(((SerializedTypedObject)GetValue(value, typeof(SerializedTypedObject))).Data, TypeAwareJsonSerializerSettings); } else { Value = value; } } } } private static readonly JsonSerializerSettings TypeAwareJsonSerializerSettings = new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.Auto }; private static readonly JsonSerializer TypeAwareJsonSerializer = JsonSerializer.Create(TypeAwareJsonSerializerSettings); protected VariableValue() { } // use FromObject method to instantiate [DebuggerBrowsable(DebuggerBrowsableState.Never)] private bool IsSerializedTypedObject => Type == VariableType.Object && ValueInfo != null && ValueInfo.ContainsKey(ValueInfoObjectTypeName) && ValueInfo.ContainsKey(ValueInfoSerializationDataFormat) && ValueInfo[ValueInfoObjectTypeName].Equals(SerializedTypedObjectTypeName) && ValueInfo[ValueInfoSerializationDataFormat].Equals(MediaTypes.Application.Json); private class VariableValueJsonConverter : JsonConverter { public override bool CanConvert(Type objectType) => objectType.IsAssignableFrom(typeof(VariableValue)); public override bool CanRead => true; public override bool CanWrite => false; // we are not handling serialization, use default converter public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var target = (VariableValue)Activator.CreateInstance(objectType, true); object rawValue = null; while (reader.Read() && reader.TokenType != JsonToken.EndObject) { if (reader.TokenType == JsonToken.PropertyName) { string property = (string)reader.Value; if (property.Equals(nameof(Value), StringComparison.OrdinalIgnoreCase)) { if (target.Type == VariableType.String) { // suppress JSON deserializer type guessing; string values read explicitly as string rawValue = reader.ReadAsString(); } else if (target.Type == VariableType.Date) { rawValue = reader.ReadAsDateTime(); } else if (target.Type == VariableType.Bytes || target.Type == VariableType.File) { rawValue = Convert.FromBase64String(reader.ReadAsString() ?? ""); } else { reader.Read(); rawValue = serializer.Deserialize(reader); } } else if (PopulateMember(property, reader, serializer, target)) { // property successfully filled } else { Debug.Assert(false, "Unknown JSON property: " + property); } } } target.rawValue = rawValue; return target; } protected virtual bool PopulateMember(string memberName, JsonReader reader, JsonSerializer serializer, object target) { BindingFlags bindingFlags = BindingFlags.Public | BindingFlags.Instance | BindingFlags.FlattenHierarchy | BindingFlags.IgnoreCase; Type targetType = target.GetType(); FieldInfo fieldInfo = targetType.GetField(memberName, bindingFlags); if (fieldInfo != null) { reader.Read(); fieldInfo.SetValue(target, serializer.Deserialize(reader, fieldInfo.FieldType)); return true; } else { PropertyInfo propInfo = targetType.GetProperty(memberName, bindingFlags); if (propInfo != null) { reader.Read(); propInfo.SetValue(target, serializer.Deserialize(reader, propInfo.PropertyType)); return true; } } return false; } public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { throw new NotImplementedException(); } private string StrToCamelCase(string str) { if (str?.Length > 1) return str.Substring(0, 1).ToLower() + str.Substring(1); else return str?.ToLower(); } } public override string ToString() { if (Value == null) return "null"; else if (Value is byte[]) return $"{{byte[{(Value as byte[]).Length}]}}"; return Value.ToString(); } /// /// Value instantiation. Underlying value can be primitive .NET type or any class serializable to JSON /// public static VariableValue FromObject(object value) { var val = new VariableValue(); val.SetTypedValue(value); return val; } /// /// Value instantiation. Creates file variable with content of file specified by /// /// Local path to the file. /// The MIME type of the file that is being uploaded. Use constant from /// The encoding of the file that is being uploaded. public static VariableValue FromFile(string path, string mimeType, string charset = null) { return FromFile(File.ReadAllBytes(path), Path.GetFileName(path), mimeType, charset); } /// /// Value instantiation. Creates file variable from /// /// The MIME type of the file that is being uploaded. Use constant from /// The name of the file. This is not the variable name but the name that will be used when downloading the file again. /// The encoding of the file that is being uploaded. /// Content of the file that is being uploaded. public static VariableValue FromFile(byte[] content, string fileName, string mimeType, string charset = null) { var val = new VariableValue() { Type = VariableType.File, Value = Convert.ToBase64String(content), ValueInfo = new Dictionary() { [ValueInfoFileName] = fileName, [ValueInfoFileMimeType] = mimeType, [ValueInfoFileEncoding] = charset ?? "", } }; return val; } /// /// Value instantiation. Creates text file variable with MIME text/plain /// /// Local path to the file. /// The encoding of the file that is being uploaded. public static VariableValue FromTextFile(string path, string charset = "utf-8") { return FromFile(File.ReadAllBytes(path), Path.GetFileName(path), MediaTypes.Text.Plain, charset); } /// /// Value instantiation. Creates binary file variable. /// /// Local path to the file. /// The MIME type of the file that is being uploaded. Use constant from public static VariableValue FromBinaryFile(string path, string mimeType = MediaTypes.Application.OctetStream) { return FromFile(File.ReadAllBytes(path), Path.GetFileName(path), mimeType, null); } /// /// Convert to desired type. /// public T GetValue() => (T)GetValue(typeof(T)); /// /// Convert to desired type. /// public object GetValue(Type type) { return GetValue(Value, type); } static object GetValue(object source, Type type) { var jval = source as JToken; if (jval != null) return jval.ToObject(type, TypeAwareJsonSerializer); else if (source != null && type.IsAssignableFrom(source.GetType())) return source; else return Convert.ChangeType(source, type, CultureInfo.InvariantCulture); } /// /// Set the , and according to the given value object. /// protected void SetTypedValue(object value) { Value = value; Type = VariableType.Object; if (value == null) Type = VariableType.Null; else if (value is string) Type = VariableType.String; else if (value is DateTime) Type = VariableType.Date; else if (value is byte[]) Type = VariableType.Bytes; else if (value is bool) Type = VariableType.Boolean; else if (value is byte || value is sbyte || value is char || value is short) Type = VariableType.Short; else if (value is int || value is ushort) Type = VariableType.Integer; else if (value is float || value is double) Type = VariableType.Double; else if (value is uint || value is long) Type = VariableType.Long; else if (value is ulong || value is decimal) Type = VariableType.Number; if (Type == VariableType.Object) { ValueInfo = new Dictionary() { [ValueInfoSerializationDataFormat] = MediaTypes.Application.Json, [ValueInfoObjectTypeName] = JavaObjectTypeName }; } } /// /// will be serialized with wrapper. /// JSON serialization uses setting resulting in JSON with $type /// public void EnableTypedObject() { ValueInfo = new Dictionary() { [ValueInfoSerializationDataFormat] = MediaTypes.Application.Json, [ValueInfoObjectTypeName] = SerializedTypedObjectTypeName }; } TypeCode IConvertible.GetTypeCode() => Convert.GetTypeCode(Value); bool IConvertible.ToBoolean(IFormatProvider provider) => Convert.ToBoolean(Value, provider); char IConvertible.ToChar(IFormatProvider provider) => Convert.ToChar(Value, provider); sbyte IConvertible.ToSByte(IFormatProvider provider) => Convert.ToSByte(Value, provider); byte IConvertible.ToByte(IFormatProvider provider) => Convert.ToByte(Value, provider); short IConvertible.ToInt16(IFormatProvider provider) => Convert.ToInt16(Value, provider); ushort IConvertible.ToUInt16(IFormatProvider provider) => Convert.ToUInt16(Value, provider); int IConvertible.ToInt32(IFormatProvider provider) => Convert.ToInt32(Value, provider); uint IConvertible.ToUInt32(IFormatProvider provider) => Convert.ToUInt32(Value, provider); long IConvertible.ToInt64(IFormatProvider provider) => Convert.ToInt64(Value, provider); ulong IConvertible.ToUInt64(IFormatProvider provider) => Convert.ToUInt64(Value, provider); float IConvertible.ToSingle(IFormatProvider provider) => Convert.ToSingle(Value, provider); double IConvertible.ToDouble(IFormatProvider provider) => Convert.ToDouble(Value, provider); decimal IConvertible.ToDecimal(IFormatProvider provider) => Convert.ToDecimal(Value, provider); DateTime IConvertible.ToDateTime(IFormatProvider provider) => Convert.ToDateTime(Value, provider); string IConvertible.ToString(IFormatProvider provider) => Convert.ToString(Value, provider); object IConvertible.ToType(Type conversionType, IFormatProvider provider) => GetValue(conversionType); private class SerializedTypedObject { [JsonProperty("data")] public string Data; } } /// https://docs.camunda.org/manual/7.9/user-guide/process-engine/variables/#supported-variable-values public enum VariableType { Boolean, Bytes, Short, Integer, Long, Double, Date, String, Number, Null, File, Object, Json, Xml } public enum BinaryVariableType { Bytes = VariableType.Bytes, File = VariableType.File } class VariableValueTypeConverter : System.ComponentModel.TypeConverter { public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) { return true; } public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { return true; } public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) { VariableValue vv = (VariableValue)value; return vv.GetValue(destinationType); } public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) { return VariableValue.FromObject(value); } } } ================================================ FILE: Camunda.Api.Client.Tests/Camunda.Api.Client.Tests.csproj ================================================  netcoreapp2.0 false true ..\Key.snk all runtime; build; native; contentfiles; analyzers; buildtransitive ================================================ FILE: Camunda.Api.Client.Tests/DateTimeTests.cs ================================================ using System; using System.Globalization; using System.Net; using System.Net.Http; using System.Threading; using System.Threading.Tasks; using Camunda.Api.Client.ProcessInstance; using Refit; using RichardSzalay.MockHttp; using Xunit; namespace Camunda.Api.Client.Tests { public class DateTimeTests { [Theory] [InlineData("2010-01-01T01:01:01", "2010-01-01T01:01:01.000+0000")] [InlineData("2010-05-01T01:01:01", "2010-05-01T01:01:01.000+0100")] public void GetDateTime(string testDateTimeString,string expectedDatetimeString) { var actualIso8601DateString = DateTime.Parse(testDateTimeString).ToJavaISO8601(); Assert.Equal(expectedDatetimeString, actualIso8601DateString); } } } ================================================ FILE: Camunda.Api.Client.Tests/ProcessInstanceTests.cs ================================================ using System; using System.Net; using System.Net.Http; using System.Threading.Tasks; using Camunda.Api.Client.ProcessInstance; using Refit; using RichardSzalay.MockHttp; using Xunit; namespace Camunda.Api.Client.Tests { public class ProcessInstanceTests { [Fact] public async Task GetList() { var mockHttp = new MockHttpMessageHandler(); mockHttp.Expect(HttpMethod.Post, "http://localhost:8080/engine-rest") .Respond(HttpStatusCode.OK, "text/html", "OK"); var client = CamundaClient.Create("http://localhost:8080/engine-rest", mockHttp); var process = await client.ProcessInstances.Query().List(); Assert.NotNull(process); } } } ================================================ FILE: Camunda.Api.Client.sln ================================================  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.29519.181 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Camunda.Api.Client", "Camunda.Api.Client\Camunda.Api.Client.csproj", "{647F2D5F-4B9C-4A36-AAB6-A787182B6083}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Camunda.Api.Client.Tests", "Camunda.Api.Client.Tests\Camunda.Api.Client.Tests.csproj", "{9EC88258-9A0B-448B-90F1-9FACA497228D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {647F2D5F-4B9C-4A36-AAB6-A787182B6083}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {647F2D5F-4B9C-4A36-AAB6-A787182B6083}.Debug|Any CPU.Build.0 = Debug|Any CPU {647F2D5F-4B9C-4A36-AAB6-A787182B6083}.Release|Any CPU.ActiveCfg = Release|Any CPU {647F2D5F-4B9C-4A36-AAB6-A787182B6083}.Release|Any CPU.Build.0 = Release|Any CPU {9EC88258-9A0B-448B-90F1-9FACA497228D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9EC88258-9A0B-448B-90F1-9FACA497228D}.Debug|Any CPU.Build.0 = Debug|Any CPU {9EC88258-9A0B-448B-90F1-9FACA497228D}.Release|Any CPU.ActiveCfg = Release|Any CPU {9EC88258-9A0B-448B-90F1-9FACA497228D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {ABBCFB4C-2216-41A4-84A7-870CC863F82F} EndGlobalSection EndGlobal ================================================ FILE: LICENSE ================================================ MIT License Copyright (c) 2016 Ján Lučanský Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: README.md ================================================ # Camunda REST API Client [![Build status](https://ci.appveyor.com/api/projects/status/l2ct8th9hwuwlqvf?svg=true)](https://ci.appveyor.com/project/jlucansky/camunda-api-client) [![NuGet](https://img.shields.io/nuget/v/Camunda.Api.Client.svg)](https://www.nuget.org/packages/Camunda.Api.Client) Camunda REST API Client for .NET platform - [x] .NET Framework 4.6.1 - [x] .NET Standard 2.0 ## Covered API Each part listed below is fully covered according to https://docs.camunda.org/manual/latest/reference/rest specification. - [x] [Case Definition](https://docs.camunda.org/manual/latest/reference/rest/case-definition/) - [x] [Case Execution](https://docs.camunda.org/manual/latest/reference/rest/case-execution/) - [x] [Case Instance](https://docs.camunda.org/manual/latest/reference/rest/case-instance/) - [x] [Decision Definition](https://docs.camunda.org/manual/latest/reference/rest/decision-definition/) - [x] [Decision Requirements Definition](https://docs.camunda.org/manual/latest/reference/rest/decision-requirements-definition/) - [x] [Deployment](https://docs.camunda.org/manual/latest/reference/rest/deployment/) - [x] [Execution](https://docs.camunda.org/manual/latest/reference/rest/execution/) - [x] [External Task](https://docs.camunda.org/manual/latest/reference/rest/external-task/) - [x] [Filter](https://docs.camunda.org/manual/latest/reference/rest/filter/) - [x] [Group](https://docs.camunda.org/manual/latest/reference/rest/group/) - [x] [History / Activity Instance](https://docs.camunda.org/manual/latest/reference/rest/history/activity-instance/) - [x] [History / Case Definition](https://docs.camunda.org/manual/latest/reference/rest/history/case-definition/) - [x] [History / Case Instance](https://docs.camunda.org/manual/latest/reference/rest/history/case-instance/) - [x] [History / Case Activity Instance](https://docs.camunda.org/manual/latest/reference/rest/history/case-activity-instance/) - [x] [History / Decision Instance](https://docs.camunda.org/manual/latest/reference/rest/history/decision-instance/) - [x] [History / Decision Requirements Definition](https://docs.camunda.org/manual/latest/reference/rest/history/decision-requirements-definition/) - [x] [History / Detail](https://docs.camunda.org/manual/latest/reference/rest/history/detail/) - [x] [History / External Task Log](https://docs.camunda.org/manual/latest/reference/rest/history/external-task-log/) - [x] [History / Incident](https://docs.camunda.org/manual/latest/reference/rest/history/incident/) - [x] [History / Job Log](https://docs.camunda.org/manual/latest/reference/rest/history/job-log/) - [x] [History / Process Definition](https://docs.camunda.org/manual/latest/reference/rest/history/process-definition/) - [x] [History / Process Instance](https://docs.camunda.org/manual/latest/reference/rest/history/process-instance/) - [x] [History / Task](https://docs.camunda.org/manual/latest/reference/rest/history/task/) - [x] [History / Variable Instance](https://docs.camunda.org/manual/latest/reference/rest/history/variable-instance/) - [x] [Incident](https://docs.camunda.org/manual/latest/reference/rest/incident/) - [X] [Job](https://docs.camunda.org/manual/latest/reference/rest/job/) - [x] [Job Definition](https://docs.camunda.org/manual/latest/reference/rest/job-definition/) - [x] [Message](https://docs.camunda.org/manual/latest/reference/rest/message/) - [x] [Migration](https://docs.camunda.org/manual/latest/reference/rest/migration/) - [x] [Process Definition](https://docs.camunda.org/manual/latest/reference/rest/process-definition/) - [x] [Process Instance](https://docs.camunda.org/manual/latest/reference/rest/process-instance/) - [x] [Signal](https://docs.camunda.org/manual/latest/reference/rest/signal/) - [x] [Task](https://docs.camunda.org/manual/latest/reference/rest/task/) - [x] [Tenant](https://docs.camunda.org/manual/latest/reference/rest/tenant/) - [x] [User](https://docs.camunda.org/manual/latest/reference/rest/user/) - [x] [Variable Instance](https://docs.camunda.org/manual/latest/reference/rest/variable-instance/) ## Install The Camunda REST API Client is available on [nuget.org](https://www.nuget.org/packages/Camunda.Api.Client) To install Camunda REST API Client, run the following command in the Package Manager Console ``` PM> Install-Package Camunda.Api.Client ``` ## Usage #### Initialize client ```cs CamundaClient camunda = CamundaClient.Create("http://localhost:8080/engine-rest"); ``` #### Basic Authentication ```cs HttpClient httpClient = new HttpClient(); httpClient.BaseAddress = new Uri("http://localhost:8080/engine-rest"); httpClient.DefaultRequestHeaders.Add("Authorization", "Basic ZGVtbzpkZW1v"); CamundaClient camunda = CamundaClient.Create(httpClient); ``` #### Filter external tasks ```cs // build query var externalTaskQuery = new ExternalTaskQuery() { Active = true, TopicName = "MyTask" }; // add some sorting externalTaskQuery .Sort(ExternalTaskSorting.TaskPriority, SortOrder.Descending) .Sort(ExternalTaskSorting.LockExpirationTime); // request external tasks according to query List tasks = await camunda.ExternalTasks.Query(externalTaskQuery).List(); ``` #### Get all external tasks ```cs // get all external tasks without specifying query List allTasks = await camunda.ExternalTasks.Query().List(); ``` #### Set process variable ```cs VariableResource vars = camunda.ProcessInstances["0ea218e8-9cfa-11e6-90a6-ac87a31e24fd"].Variables; // set integer variable await vars.Set("Var1", VariableValue.FromObject(123)); // set content of binary variable from file await vars.SetBinary("DocVar", new BinaryDataContent(File.OpenRead("document.doc")), BinaryVariableType.Bytes); ``` #### Load typed variables ```cs var executionId = "290a7fa2-8bc9-11e6-ab5b-ac87a31e24fd"; // load all variables of specified execution Dictionary allVariables = await camunda.Executions[executionId] .LocalVariables.GetAll(); // obtain strongly typed variable with name Var1 int myVar1 = allVariables["Var1"].GetValue(); ``` #### Save content of variable to file ```cs HttpContent fileContent = await camunda.Executions[executionId] .LocalVariables.GetBinary("file1"); using (fileContent) { using (var outStream = File.OpenWrite("file1.doc")) { (await fileContent.ReadAsStreamAsync()).CopyTo(outStream); } } ``` #### Message correlation ```cs var msg = new CorrelationMessage() { All = true, MessageName = "TestMsg" }; msg.ProcessVariables .Set("Date", DateTime.Today) .Set("ComplexVar", new { abc = "xyz", num = 123}); // correlate message with process variables await camunda.Messages.DeliverMessage(msg); ``` #### Deploy resources ```cs // deploy new bpmn diagram with some attachment await camunda.Deployments.Create("My Deployment 1", new ResourceDataContent(File.OpenRead("C:\\diagram.bpmn"), "diagram.bpmn"), new ResourceDataContent(File.OpenRead("C:\\document.doc"), "document.doc")); ``` #### Conditional query ```cs // get all jobs owned by Process_1 with DueDate in the future var jobQuery = new JobQuery() { ProcessDefinitionKey = "Process_1" }; jobQuery.DueDates.Add(new ConditionQueryParameter() { Operator = ConditionOperator.GreaterThan, Value = DateTime.Now }); var jobs = await camunda.Jobs.Query(jobQuery).List(); ``` ## License This project is made available under the MIT license. See [LICENSE](LICENSE) for details.