| Requires any of the roles: | Agent, Administrator |
| GET,OPTIONS | /v1/Rfp/{RfpDocumentUID}/Estimate/Revisions/{RevisionNo} |
|---|
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*
open class EstimateRevisionGetRequest
{
open var RfpDocumentUID:UUID? = null
open var RevisionNo:Int? = null
}
open class EstimateRevisionGetResponse
{
open var ResponseStatus:ResponseStatus? = null
open var Revision:EstimateRevision? = null
open var Snapshot:EstimateSnapshot? = null
}
open class EstimateRevision
{
open var EstimateRevisionID:Int? = null
open var RfpDocumentID:Int? = null
open var RevisionNo:Int? = null
open var Label:String? = null
open var Reason:String? = null
open var Trigger:String? = null
open var TotalAmount:BigDecimal? = null
open var LineCount:Int? = null
open var CreatedBy:String? = null
open var CreatedAt:Date? = null
open var SnapshotJson:String? = null
}
open class EstimateSnapshot
{
open var TakenAtUtc:Date? = null
open var Proposal:ProjectProposal? = null
open var View:EstimatingView? = null
}
open class ProjectProposal
{
open var RfpDocumentID:Int? = null
open var Mode:String? = null
open var ProjectID:Int? = null
open var ChangeOrderID:Int? = null
open var ProjectName:String? = null
open var ClientName:String? = null
open var ProjectType:String? = null
open var ProjectLocation:String? = null
open var Scope:String? = null
open var ProjectDescription:String? = null
open var ContractDurationDays:Int? = null
open var BidDueDate:String? = null
open var EstimatedStartDate:Date? = null
open var EstimatedEndDate:Date? = null
open var Tasks:ArrayList<ProposedTask> = ArrayList<ProposedTask>()
open var PendingAddendaDiffs:ArrayList<AddendaChangeSet> = ArrayList<AddendaChangeSet>()
open var WageDeterminations:ArrayList<WageDeterminationResult> = ArrayList<WageDeterminationResult>()
}
open class ProposedTask
{
open var Seq:Int? = null
open var Name:String? = null
open var Category:String? = null
open var Quantity:Double? = null
open var Unit:String? = null
open var SourceItemNumber:String? = null
open var SourceReference:String? = null
open var Notes:String? = null
open var Resourcing:TaskResourcing? = null
open var DurationDays:Double? = null
open var DependsOn:ArrayList<Int> = ArrayList<Int>()
open var EstimatedStartDate:Date? = null
open var EstimatedEndDate:Date? = null
open var WorkPackage:TaskWorkPackage? = null
open var CreatedJobID:Int? = null
}
open class TaskResourcing
{
open var Positions:ArrayList<ResourcedPosition> = ArrayList<ResourcedPosition>()
open var Equipment:ArrayList<ResourcedEquipment> = ArrayList<ResourcedEquipment>()
open var Materials:ArrayList<ResourcedMaterial> = ArrayList<ResourcedMaterial>()
open var ResourcedForQuantity:Double? = null
open var ProductionRatePerDay:Double? = null
open var FixedDays:Double? = null
}
open class ResourcedPosition
{
open var PositionTag:String? = null
open var Hours:Double? = null
open var CrewSize:Double? = null
open var Utilization:Double? = null
open var FixedDays:Double? = null
open var Headcount:Int? = null
open var SourceReference:String? = null
open var Notes:String? = null
open var IsInCatalog:Boolean? = null
open var ContactID:Int? = null
}
open class ResourcedEquipment
{
open var EquipmentID:Int? = null
open var EquipmentName:String? = null
open var MakeModel:String? = null
open var Quantity:Double? = null
open var DurationDays:Double? = null
open var Utilization:Double? = null
open var FixedDays:Double? = null
open var SourceReference:String? = null
open var Notes:String? = null
open var IsInCatalog:Boolean? = null
open var SuggestedEquipmentID:Int? = null
open var SuggestedEquipmentName:String? = null
}
open class ResourcedMaterial
{
open var MaterialID:Int? = null
open var MaterialName:String? = null
open var MakeModel:String? = null
open var Quantity:Double? = null
open var QuantityPerUnit:Double? = null
open var Unit:String? = null
open var SourceReference:String? = null
open var Notes:String? = null
open var IsInCatalog:Boolean? = null
open var SuggestedMaterialID:Int? = null
open var SuggestedMaterialName:String? = null
}
open class TaskWorkPackage
{
open var Scope:String? = null
open var LimitsOfWork:String? = null
open var SpecRefs:ArrayList<WorkPackageSpecRef> = ArrayList<WorkPackageSpecRef>()
open var Constraints:ArrayList<String> = ArrayList<String>()
open var HoldPoints:ArrayList<String> = ArrayList<String>()
open var DefinitionOfDone:ArrayList<String> = ArrayList<String>()
open var SafetyNote:String? = null
open var RfpRef:String? = null
open var Confidence:Int? = null
open var SpecBook:String? = null
open var UserScope:String? = null
open var DodRemoved:ArrayList<Int> = ArrayList<Int>()
open var DodExtra:ArrayList<String> = ArrayList<String>()
open var UserEdited:Boolean? = null
open var DodChecked:ArrayList<String> = ArrayList<String>()
open var RedraftNote:String? = null
}
open class WorkPackageSpecRef
{
open var Section:String? = null
open var Title:String? = null
}
open class AddendaChangeSet
{
open var ChangeSetId:String? = null
open var SourceRfpDocumentID:Int? = null
open var SourceFileName:String? = null
open var DocumentType:String? = null
open var ExtractedAtUtc:Date? = null
open var Summary:String? = null
open var Changes:ArrayList<AddendaChange> = ArrayList<AddendaChange>()
}
open class AddendaChange
{
open var ChangeId:String? = null
open var ChangeType:String? = null
open var TargetSeq:Int? = null
open var ItemNumber:String? = null
open var ItemName:String? = null
open var Field:String? = null
open var OldValue:String? = null
open var NewValue:String? = null
open var Description:String? = null
open var Status:String? = null
}
open class WageDeterminationResult
{
open var SourceRfpDocumentID:Int? = null
open var SourceFileName:String? = null
open var WdNumber:String? = null
open var ExtractedAtUtc:Date? = null
open var Classifications:ArrayList<WageClassification> = ArrayList<WageClassification>()
open var Source:String? = null
open var IsTrustworthy:Boolean? = null
open var ExecutiveOrderFloor:BigDecimal? = null
open var PublishedDate:String? = null
open var ProjectParish:String? = null
open var Warnings:ArrayList<String> = ArrayList<String>()
}
open class WageClassification
{
open var Title:String? = null
open var BaseRate:BigDecimal? = null
open var FringeRate:BigDecimal? = null
open var ParishNote:String? = null
open var SourceLine:String? = null
open var BenchmarkFringeRate:BigDecimal? = null
open var FringeCompareNote:String? = null
}
open class EstimatingView
{
open var RfpDocumentID:Int? = null
open var ProjectName:String? = null
open var ClientName:String? = null
open var BidDueDate:String? = null
open var ProjectType:String? = null
open var Settings:EstimateSettingsView? = null
open var Jobs:ArrayList<EstimateJobView> = ArrayList<EstimateJobView>()
open var Schedule:ArrayList<BidScheduleLine> = ArrayList<BidScheduleLine>()
open var ScheduleTotal:BigDecimal? = null
open var Variance:EstimateVarianceView? = null
open var Indicative:IndicativeBidView? = null
open var Ownership:BidOwnershipView? = null
open var Summary:EstimateSummaryView? = null
open var Timing:EstimateTimingView? = null
open var NeedsRateCount:Int? = null
open var NeedsRateKeys:ArrayList<String> = ArrayList<String>()
open var ReviewItems:ArrayList<EstimateReviewItemView> = ArrayList<EstimateReviewItemView>()
open var NeedsReviewCount:Int? = null
open var CanApprove:Boolean? = null
open var CanSeePay:Boolean? = null
}
open class EstimateSettingsView
{
open var RfpEstimateID:Int? = null
open var StartDate:Date? = null
open var DeadlineDate:Date? = null
open var WorkdaysPerWeek:Int? = null
open var HoursPerDay:BigDecimal? = null
open var WeatherPct:BigDecimal? = null
open var OhpPct:BigDecimal? = null
open var ContingencyPct:BigDecimal? = null
open var BondPct:BigDecimal? = null
open var Holidays:ArrayList<Date> = ArrayList<Date>()
open var AppliedStartDate:Date? = null
}
open class EstimateJobView
{
open var Seq:Int? = null
open var WorkPackage:WorkPackageView? = null
open var ItemNo:String? = null
open var Name:String? = null
open var Category:String? = null
open var SourceRef:String? = null
open var Unit:String? = null
open var Quantity:BigDecimal? = null
open var PatternCode:String? = null
open var Workdays:Int? = null
open var HoursPerDay:BigDecimal? = null
open var IsNight:Boolean? = null
open var WeeklyHours:BigDecimal? = null
open var OtFraction:BigDecimal? = null
open var Days:BigDecimal? = null
open var EffectiveProdPerDay:BigDecimal? = null
open var CrewPremiumApplied:Boolean? = null
open var CrewCost:BigDecimal? = null
open var FringeCost:BigDecimal? = null
open var EquipmentCost:BigDecimal? = null
open var MaterialCost:BigDecimal? = null
open var SubcontractCost:BigDecimal? = null
open var Direct:BigDecimal? = null
open var PricingBasis:String? = null
open var PricingRuleId:String? = null
open var PricingBandP25:BigDecimal? = null
open var PricingBandP75:BigDecimal? = null
open var PricingBandN:Int? = null
open var PricingBandLabel:String? = null
open var BenchmarkUnitPrice:BigDecimal? = null
open var ReferencePrice:BigDecimal? = null
open var ReferenceRangeMin:BigDecimal? = null
open var ReferenceRangeMax:BigDecimal? = null
open var ReferenceN:Int? = null
open var ReferenceDate:Date? = null
open var ReferenceBasis:String? = null
open var ReferenceUrl:String? = null
open var Crew:ArrayList<EstimateCrewLineView> = ArrayList<EstimateCrewLineView>()
open var Equipment:ArrayList<EstimateEquipmentLineView> = ArrayList<EstimateEquipmentLineView>()
open var Materials:ArrayList<EstimateMaterialLineView> = ArrayList<EstimateMaterialLineView>()
open var Subcontracts:ArrayList<EstimateSubcontractView> = ArrayList<EstimateSubcontractView>()
}
open class WorkPackageView
{
open var HasPackage:Boolean? = null
open var Scope:String? = null
open var LimitsOfWork:String? = null
open var SpecRefs:ArrayList<SpecRefView> = ArrayList<SpecRefView>()
open var Constraints:ArrayList<String> = ArrayList<String>()
open var HoldPoints:ArrayList<String> = ArrayList<String>()
open var Dod:ArrayList<DodItemView> = ArrayList<DodItemView>()
open var SafetyNote:String? = null
open var Provenance:String? = null
open var SpecBook:String? = null
open var UserEdited:Boolean? = null
open var RedraftNote:String? = null
}
open class SpecRefView
{
open var Section:String? = null
open var Title:String? = null
open var Url:String? = null
}
open class DodItemView
{
open var Key:String? = null
open var Text:String? = null
open var Checked:Boolean? = null
open var Source:String? = null
}
open class EstimateCrewLineView
{
open var Role:String? = null
open var Hours:BigDecimal? = null
open var StHours:BigDecimal? = null
open var OtHours:BigDecimal? = null
open var HasOt:Boolean? = null
open var PremiumApplied:Boolean? = null
open var NeedsRate:Boolean? = null
open var RateKey:String? = null
open var Chip:String? = null
open var Rrop:BigDecimal? = null
open var StCost:BigDecimal? = null
open var OtCost:BigDecimal? = null
open var Cost:BigDecimal? = null
open var FringeCost:BigDecimal? = null
}
open class EstimateEquipmentLineView
{
open var Name:String? = null
open var Quantity:BigDecimal? = null
open var Rate:BigDecimal? = null
open var NeedsRate:Boolean? = null
open var MobCost:BigDecimal? = null
open var Cost:BigDecimal? = null
open var IsAvailabilityTracked:Boolean? = null
open var IsOwned:Boolean? = null
open var AvailabilityLabel:String? = null
open var FreedFromProject:String? = null
open var AvailableFrom:Date? = null
open var RateKey:String? = null
open var Chip:String? = null
open var RentalExplain:String? = null
open var UsageDays:BigDecimal? = null
open var BilledDays:BigDecimal? = null
}
open class EstimateMaterialLineView
{
open var Name:String? = null
open var Quantity:BigDecimal? = null
open var Unit:String? = null
open var Rate:BigDecimal? = null
open var NeedsRate:Boolean? = null
open var Cost:BigDecimal? = null
open var RateKey:String? = null
open var Chip:String? = null
}
open class EstimateSubcontractView
{
open var EstimateSubcontractID:Int? = null
open var TaskSeq:Int? = null
open var Vendor:String? = null
open var Amount:BigDecimal? = null
open var Scope:String? = null
}
open class BidScheduleLine
{
open var ItemNo:String? = null
open var Description:String? = null
open var Unit:String? = null
open var Quantity:BigDecimal? = null
open var UnitPrice:BigDecimal? = null
open var Extension:BigDecimal? = null
open var PricingBasis:String? = null
open var PricingRuleId:String? = null
open var PricingBandP25:BigDecimal? = null
open var PricingBandP75:BigDecimal? = null
open var PricingBandN:Int? = null
open var PricingBandLabel:String? = null
open var BenchmarkDeltaPct:BigDecimal? = null
open var BenchmarkFlagged:Boolean? = null
open var BenchmarkBasis:String? = null
open var Provenance:String? = null
open var ProvenanceNote:String? = null
open var UnpricedResources:Int? = null
open var TotalResources:Int? = null
}
open class EstimateVarianceView
{
open var Lines:ArrayList<EstimateVarianceLine> = ArrayList<EstimateVarianceLine>()
open var ItemsTotal:Int? = null
open var ItemsBenchmarked:Int? = null
open var CoverageValuePct:BigDecimal? = null
open var OursTotal:BigDecimal? = null
open var MarketTotal:BigDecimal? = null
open var AggregateDeltaPct:BigDecimal? = null
open var FlooredCount:Int? = null
open var LumpCount:Int? = null
open var WatchCount:Int? = null
open var OutlierCount:Int? = null
open var CriticalCount:Int? = null
open var Note:String? = null
}
open class EstimateVarianceLine
{
open var Seq:Int? = null
open var ItemNo:String? = null
open var Name:String? = null
open var Unit:String? = null
open var Quantity:BigDecimal? = null
open var OurUnitPrice:BigDecimal? = null
open var OurTotal:BigDecimal? = null
open var BenchmarkUnitPrice:BigDecimal? = null
open var MarketTotal:BigDecimal? = null
open var DeltaPct:BigDecimal? = null
open var RateMin:BigDecimal? = null
open var RateMax:BigDecimal? = null
open var SampleSize:Int? = null
open var OutsideRange:Boolean? = null
open var IsFloor:Boolean? = null
open var IsLump:Boolean? = null
open var Severity:String? = null
open var Adopted:Boolean? = null
open var Note:String? = null
}
open class IndicativeBidView
{
open var Lines:ArrayList<IndicativeLine> = ArrayList<IndicativeLine>()
open var BottomUpCount:Int? = null
open var BottomUpTotal:BigDecimal? = null
open var BenchmarkCount:Int? = null
open var BenchmarkTotal:BigDecimal? = null
open var UncoveredCount:Int? = null
open var UncoveredFloorTotal:BigDecimal? = null
open var IndicativeTotal:BigDecimal? = null
open var FloorTotal:BigDecimal? = null
open var Note:String? = null
open var Posture:String? = null
open var AggressiveTotal:BigDecimal? = null
open var MarketTotal:BigDecimal? = null
open var PremiumTotal:BigDecimal? = null
open var NoDistributionCount:Int? = null
}
open class IndicativeLine
{
open var Seq:Int? = null
open var ItemNo:String? = null
open var Name:String? = null
open var Unit:String? = null
open var Quantity:BigDecimal? = null
open var Source:String? = null
open var UnitPrice:BigDecimal? = null
open var LineTotal:BigDecimal? = null
open var PricePoint:String? = null
}
open class BidOwnershipView
{
open var OwnTotal:BigDecimal? = null
open var BorrowedTotal:BigDecimal? = null
open var UnknownFloorTotal:BigDecimal? = null
open var ScheduleTotal:BigDecimal? = null
open var OwnCount:Int? = null
open var BorrowedCount:Int? = null
open var UnknownCount:Int? = null
open var OwnPct:BigDecimal? = null
open var TopExposure:ArrayList<BidExposureLine> = ArrayList<BidExposureLine>()
}
open class BidExposureLine
{
open var ItemNo:String? = null
open var Description:String? = null
open var Provenance:String? = null
open var Extension:BigDecimal? = null
open var CumulativePct:BigDecimal? = null
open var Note:String? = null
}
open class EstimateSummaryView
{
open var Direct:BigDecimal? = null
open var OhpPct:BigDecimal? = null
open var OhpAmount:BigDecimal? = null
open var BondPct:BigDecimal? = null
open var BondAmount:BigDecimal? = null
open var ContingencyPct:BigDecimal? = null
open var ContingencyAmount:BigDecimal? = null
open var BidTotal:BigDecimal? = null
open var LoadFactor:BigDecimal? = null
open var MarginPct:BigDecimal? = null
}
open class EstimateTimingView
{
open var TotalWorkdays:BigDecimal? = null
open var CalendarDays:Int? = null
open var Finish:Date? = null
open var Feasible:Boolean? = null
open var Deadline:Date? = null
}
open class EstimateReviewItemView
{
open var TaskSeq:Int? = null
open var TaskName:String? = null
open var Reason:String? = null
open var Status:String? = null
}
Kotlin EstimateRevisionGetRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /v1/Rfp/{RfpDocumentUID}/Estimate/Revisions/{RevisionNo} HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/csv
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length
{"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"Revision":{"EstimateRevisionID":0,"RfpDocumentID":0,"RevisionNo":0,"Label":"String","Reason":"String","Trigger":"String","TotalAmount":0,"LineCount":0,"CreatedBy":"String","CreatedAt":"0001-01-01T00:00:00.0000000","SnapshotJson":"String"},"Snapshot":{"TakenAtUtc":"0001-01-01T00:00:00.0000000","Proposal":{"RfpDocumentID":0,"Mode":"String","ProjectID":0,"ChangeOrderID":0,"ProjectName":"String","ClientName":"String","ProjectType":"String","ProjectLocation":"String","Scope":"String","ProjectDescription":"String","ContractDurationDays":0,"BidDueDate":"String","EstimatedStartDate":"0001-01-01T00:00:00.0000000","EstimatedEndDate":"0001-01-01T00:00:00.0000000","Tasks":[{"Seq":0,"Name":"String","Category":"String","Quantity":0,"Unit":"String","SourceItemNumber":"String","SourceReference":"String","Notes":"String","Resourcing":{"Positions":[{"PositionTag":"String","Hours":0,"CrewSize":0,"Utilization":0,"FixedDays":0,"Headcount":0,"SourceReference":"String","Notes":"String","IsInCatalog":false,"ContactID":0}],"Equipment":[{"EquipmentID":0,"EquipmentName":"String","MakeModel":"String","Quantity":0,"DurationDays":0,"Utilization":0,"FixedDays":0,"SourceReference":"String","Notes":"String","IsInCatalog":false,"SuggestedEquipmentID":0,"SuggestedEquipmentName":"String"}],"Materials":[{"MaterialID":0,"MaterialName":"String","MakeModel":"String","Quantity":0,"QuantityPerUnit":0,"Unit":"String","SourceReference":"String","Notes":"String","IsInCatalog":false,"SuggestedMaterialID":0,"SuggestedMaterialName":"String"}],"ResourcedForQuantity":0,"ProductionRatePerDay":0,"FixedDays":0},"DurationDays":0,"DependsOn":[0],"EstimatedStartDate":"0001-01-01T00:00:00.0000000","EstimatedEndDate":"0001-01-01T00:00:00.0000000","WorkPackage":{"Scope":"String","LimitsOfWork":"String","SpecRefs":[{"Section":"String","Title":"String"}],"Constraints":["String"],"HoldPoints":["String"],"DefinitionOfDone":["String"],"SafetyNote":"String","RfpRef":"String","Confidence":0,"SpecBook":"String","UserScope":"String","DodRemoved":[0],"DodExtra":["String"],"UserEdited":false,"DodChecked":["String"],"RedraftNote":"String"},"CreatedJobID":0}],"PendingAddendaDiffs":[{"ChangeSetId":"String","SourceRfpDocumentID":0,"SourceFileName":"String","DocumentType":"String","ExtractedAtUtc":"0001-01-01T00:00:00.0000000","Summary":"String","Changes":[{"ChangeId":"String","ChangeType":"String","TargetSeq":0,"ItemNumber":"String","ItemName":"String","Field":"String","OldValue":"String","NewValue":"String","Description":"String","Status":"String"}]}],"WageDeterminations":[{"SourceRfpDocumentID":0,"SourceFileName":"String","WdNumber":"String","ExtractedAtUtc":"0001-01-01T00:00:00.0000000","Classifications":[{"Title":"String","BaseRate":0,"FringeRate":0,"ParishNote":"String","SourceLine":"String","BenchmarkFringeRate":0,"FringeCompareNote":"String"}],"Source":"String","IsTrustworthy":false,"ExecutiveOrderFloor":0,"PublishedDate":"String","ProjectParish":"String","Warnings":["String"]}]},"View":{"RfpDocumentID":0,"ProjectName":"String","ClientName":"String","BidDueDate":"String","ProjectType":"String","Settings":{"RfpEstimateID":0,"StartDate":"0001-01-01T00:00:00.0000000","DeadlineDate":"0001-01-01T00:00:00.0000000","WorkdaysPerWeek":0,"HoursPerDay":0,"WeatherPct":0,"OhpPct":0,"ContingencyPct":0,"BondPct":0,"Holidays":["0001-01-01T00:00:00.0000000"],"AppliedStartDate":"0001-01-01T00:00:00.0000000"},"Jobs":[{"Seq":0,"WorkPackage":{"HasPackage":false,"Scope":"String","LimitsOfWork":"String","SpecRefs":[{"Section":"String","Title":"String","Url":"String"}],"Constraints":["String"],"HoldPoints":["String"],"Dod":[{"Key":"String","Text":"String","Checked":false,"Source":"String"}],"SafetyNote":"String","Provenance":"String","SpecBook":"String","UserEdited":false,"RedraftNote":"String"},"ItemNo":"String","Name":"String","Category":"String","SourceRef":"String","Unit":"String","Quantity":0,"PatternCode":"String","Workdays":0,"HoursPerDay":0,"IsNight":false,"WeeklyHours":0,"OtFraction":0,"Days":0,"EffectiveProdPerDay":0,"CrewPremiumApplied":false,"CrewCost":0,"FringeCost":0,"EquipmentCost":0,"MaterialCost":0,"SubcontractCost":0,"Direct":0,"PricingBasis":"String","PricingRuleId":"String","PricingBandP25":0,"PricingBandP75":0,"PricingBandN":0,"PricingBandLabel":"String","BenchmarkUnitPrice":0,"ReferencePrice":0,"ReferenceRangeMin":0,"ReferenceRangeMax":0,"ReferenceN":0,"ReferenceDate":"0001-01-01T00:00:00.0000000","ReferenceBasis":"String","ReferenceUrl":"String","Crew":[{"Role":"String","Hours":0,"StHours":0,"OtHours":0,"HasOt":false,"PremiumApplied":false,"NeedsRate":false,"RateKey":"String","Chip":"String","Rrop":0,"StCost":0,"OtCost":0,"Cost":0,"FringeCost":0}],"Equipment":[{"Name":"String","Quantity":0,"Rate":0,"NeedsRate":false,"MobCost":0,"Cost":0,"IsAvailabilityTracked":false,"IsOwned":false,"AvailabilityLabel":"String","FreedFromProject":"String","AvailableFrom":"0001-01-01T00:00:00.0000000","RateKey":"String","Chip":"String","RentalExplain":"String","UsageDays":0,"BilledDays":0}],"Materials":[{"Name":"String","Quantity":0,"Unit":"String","Rate":0,"NeedsRate":false,"Cost":0,"RateKey":"String","Chip":"String"}],"Subcontracts":[{"EstimateSubcontractID":0,"TaskSeq":0,"Vendor":"String","Amount":0,"Scope":"String"}]}],"Schedule":[{"ItemNo":"String","Description":"String","Unit":"String","Quantity":0,"UnitPrice":0,"Extension":0,"PricingBasis":"String","PricingRuleId":"String","PricingBandP25":0,"PricingBandP75":0,"PricingBandN":0,"PricingBandLabel":"String","BenchmarkDeltaPct":0,"BenchmarkFlagged":false,"BenchmarkBasis":"String","Provenance":"String","ProvenanceNote":"String","UnpricedResources":0,"TotalResources":0}],"ScheduleTotal":0,"Variance":{"Lines":[{"Seq":0,"ItemNo":"String","Name":"String","Unit":"String","Quantity":0,"OurUnitPrice":0,"OurTotal":0,"BenchmarkUnitPrice":0,"MarketTotal":0,"DeltaPct":0,"RateMin":0,"RateMax":0,"SampleSize":0,"OutsideRange":false,"IsFloor":false,"IsLump":false,"Severity":"String","Adopted":false,"Note":"String"}],"ItemsTotal":0,"ItemsBenchmarked":0,"CoverageValuePct":0,"OursTotal":0,"MarketTotal":0,"AggregateDeltaPct":0,"FlooredCount":0,"LumpCount":0,"WatchCount":0,"OutlierCount":0,"CriticalCount":0,"Note":"String"},"Indicative":{"Lines":[{"Seq":0,"ItemNo":"String","Name":"String","Unit":"String","Quantity":0,"Source":"String","UnitPrice":0,"LineTotal":0,"PricePoint":"String"}],"BottomUpCount":0,"BottomUpTotal":0,"BenchmarkCount":0,"BenchmarkTotal":0,"UncoveredCount":0,"UncoveredFloorTotal":0,"IndicativeTotal":0,"FloorTotal":0,"Note":"String","Posture":"String","AggressiveTotal":0,"MarketTotal":0,"PremiumTotal":0,"NoDistributionCount":0},"Ownership":{"OwnTotal":0,"BorrowedTotal":0,"UnknownFloorTotal":0,"ScheduleTotal":0,"OwnCount":0,"BorrowedCount":0,"UnknownCount":0,"OwnPct":0,"TopExposure":[{"ItemNo":"String","Description":"String","Provenance":"String","Extension":0,"CumulativePct":0,"Note":"String"}]},"Summary":{"Direct":0,"OhpPct":0,"OhpAmount":0,"BondPct":0,"BondAmount":0,"ContingencyPct":0,"ContingencyAmount":0,"BidTotal":0,"LoadFactor":0,"MarginPct":0},"Timing":{"TotalWorkdays":0,"CalendarDays":0,"Finish":"0001-01-01T00:00:00.0000000","Feasible":false,"Deadline":"0001-01-01T00:00:00.0000000"},"NeedsRateCount":0,"NeedsRateKeys":["String"],"ReviewItems":[{"TaskSeq":0,"TaskName":"String","Reason":"String","Status":"String"}],"NeedsReviewCount":0,"CanApprove":false,"CanSeePay":false}}}