(* Options: Date: 2026-07-08 21:10:13 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.dev.dynamics.trendsic.com //GlobalNamespace: //MakeDataContractsExtensible: False //AddReturnMarker: True //AddDescriptionAsComments: True //AddDataContractAttributes: False //AddIndexesToDataMembers: False //AddGeneratedCodeAttributes: False //AddResponseStatus: False //AddImplicitVersion: //ExportValueTypes: False IncludeTypes: ProjectTimelineRequest.* //ExcludeTypes: //InitializeCollections: True //AddNamespaces: *) namespace CRM.AgencyPlatform.API.Internal open System open System.IO open System.Collections open System.Collections.Generic open System.Runtime.Serialization open ServiceStack open ServiceStack.DataAnnotations open System.Net [] type JobDependency() = member val JobDependencyID:Int32 = new Int32() with get,set member val TenantId:Guid = new Guid() with get,set member val ProjectID:Int32 = new Int32() with get,set member val PredecessorJobID:Int32 = new Int32() with get,set member val SuccessorJobID:Int32 = new Int32() with get,set member val DependencyType:String = null with get,set member val LagDays:Int32 = new Int32() with get,set member val CreatedBy:String = null with get,set member val CreatedAt:Nullable = new Nullable() with get,set member val UpdatedAt:Nullable = new Nullable() with get,set [] type TimelineCrew() = member val ProjectJobCrewMemberID:Int32 = new Int32() with get,set member val ContactID:Int32 = new Int32() with get,set member val ContactName:String = null with get,set member val BudgetedHours:Nullable = new Nullable() with get,set [] type TimelineEquipment() = member val ProjectJobEquipmentID:Int32 = new Int32() with get,set member val EquipmentID:Int32 = new Int32() with get,set member val EquipmentName:String = null with get,set [] type TimelineJob() = member val JobID:Int32 = new Int32() with get,set member val JobName:String = null with get,set member val ExpectedStartDate:Nullable = new Nullable() with get,set member val ExpectedCompletionDate:Nullable = new Nullable() with get,set member val ActualStartDate:Nullable = new Nullable() with get,set member val ActualEndDate:Nullable = new Nullable() with get,set member val PercentComplete:Decimal = new Decimal() with get,set member val StatusID:Nullable = new Nullable() with get,set member val JobCategory:String = null with get,set member val IsAgreementVisit:Boolean = new Boolean() with get,set member val OccurrenceDate:Nullable = new Nullable() with get,set member val Crew:ResizeArray = new ResizeArray() with get,set member val Equipment:ResizeArray = new ResizeArray() with get,set [] type ProjectTimeline() = member val ProjectID:Int32 = new Int32() with get,set member val Jobs:ResizeArray = new ResizeArray() with get,set member val Dependencies:ResizeArray = new ResizeArray() with get,set [] [] type ResponseStatus() = [] member val ErrorCode:String = null with get,set [] member val Message:String = null with get,set [] member val StackTrace:String = null with get,set [] member val Errors:ResizeArray = new ResizeArray() with get,set [] member val Meta:Dictionary = new Dictionary() with get,set [] type ProjectTimelineResponse() = member val ResponseStatus:ResponseStatus = null with get,set member val Timeline:ProjectTimeline = null with get,set [] [] type ProjectTimelineRequest() = interface IReturn member val ProjectID:Int32 = new Int32() with get,set