| Requires any of the roles: | Agent, Administrator |
| POST,OPTIONS | /v1/Rfp/{RfpDocumentUID}/Refine |
|---|
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*
open class RfpRefineRequest
{
open var RfpDocumentUID:String? = null
open var Layer:String? = null
open var Mode:String? = null
open var Instruction:String? = null
}
open class RfpRefineResponse
{
open var ResponseStatus:ResponseStatus? = null
open var RfpDocumentID:Int? = null
open var Layer:String? = null
open var Mode:String? = null
open var TurnCount:Int? = null
open var Brief:RfpBrief? = null
open var Proposal:ProjectProposal? = null
open var Pricing:PricedProposal? = null
open var CrewPlan:ArrayList<CrewPlanLine> = ArrayList<CrewPlanLine>()
open var CacheReadTokens:Long? = null
open var CacheCreationTokens:Long? = null
open var InputTokens:Long? = null
}
open class RfpBrief
{
open var ProjectTitle:String? = null
open var SolicitationNumber:String? = null
open var IssuingOrganization:String? = null
open var ProjectType:String? = null
open var Summary:String? = null
open var Locations:ArrayList<RfpLocation> = ArrayList<RfpLocation>()
open var Schedule:RfpSchedule? = null
open var LineItems:ArrayList<RfpLineItem> = ArrayList<RfpLineItem>()
open var BidConstraints:ArrayList<RfpBidConstraint> = ArrayList<RfpBidConstraint>()
open var SpecialRequirements:ArrayList<String> = ArrayList<String>()
}
open class RfpLocation
{
open var Description:String? = null
open var City:String? = null
open var State:String? = null
open var Identifier:String? = null
}
open class RfpSchedule
{
open var BidDueDate:String? = null
open var EstimatedStartDate:String? = null
open var QuestionsDueDate:String? = null
open var ContractDurationDays:Int? = null
open var Notes:String? = null
}
open class RfpLineItem
{
open var ItemNumber:String? = null
open var Description:String? = null
open var Quantity:Double? = null
open var Unit:String? = null
open var Category:String? = null
open var SourceReference:String? = null
}
open class RfpBidConstraint
{
open var Constraint:String? = null
open var Detail:String? = 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 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 class TaskResourcing
{
open var Positions:ArrayList<ResourcedPosition> = ArrayList<ResourcedPosition>()
open var Equipment:ArrayList<ResourcedEquipment> = ArrayList<ResourcedEquipment>()
open var Materials:ArrayList<ResourcedMaterial> = ArrayList<ResourcedMaterial>()
}
open class ResourcedPosition
{
open var PositionTag:String? = null
open var Hours: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 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 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 PricedProposal
{
open var RfpDocumentID:Int? = null
open var ProjectName:String? = null
open var Currency:String? = null
open var Tasks:ArrayList<PricedTask> = ArrayList<PricedTask>()
open var Total:CostRange? = null
open var PositionsNeedingRate:Int? = null
open var EquipmentNotInCatalog:Int? = null
open var MaterialsNotInCatalog:Int? = null
open var PositionsNotInCatalog:Int? = null
open var EquipmentMargin:Double? = null
}
open class PricedTask
{
open var Name:String? = null
open var Category:String? = null
open var Positions:ArrayList<PricedPosition> = ArrayList<PricedPosition>()
open var Equipment:ArrayList<PricedEquipment> = ArrayList<PricedEquipment>()
open var Materials:ArrayList<PricedMaterial> = ArrayList<PricedMaterial>()
open var Subtotal:CostRange? = null
}
open class PricedPosition
{
open var PositionTag:String? = null
open var Hours:Double? = null
open var HasInternalRate:Boolean? = null
open var RateMin:Double? = null
open var RateMax:Double? = null
open var RateAvg:Double? = null
open var ContactCount:Int? = null
open var Cost:CostRange? = null
open var MarketRateReference:Double? = null
}
open class CostRange
{
open var Min:Double? = null
open var Max:Double? = null
open var Mid:Double? = null
}
open class PricedEquipment
{
open var EquipmentID:Int? = null
open var EquipmentName:String? = null
open var Quantity:Double? = null
open var DurationDays:Double? = null
open var RateType:String? = null
open var BilledRate:Double? = null
open var CostRate:Double? = null
open var HasRate:Boolean? = null
open var IsInCatalog:Boolean? = null
open var Cost:Double? = null
open var CompanyCost:Double? = null
open var Margin:Double? = null
}
open class PricedMaterial
{
open var MaterialID:Int? = null
open var MaterialName:String? = null
open var Quantity:Double? = null
open var UnitCost:Double? = null
open var HasRate:Boolean? = null
open var IsInCatalog:Boolean? = null
open var Cost:Double? = null
}
open class CrewPlanLine
{
open var PositionTag:String? = null
open var Needed:Int? = null
open var NaiveTotal:Int? = null
open var TaskAssignments:Int? = null
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/Rfp/{RfpDocumentUID}/Refine HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
RfpDocumentUID: String,
Layer: String,
Mode: String,
Instruction: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
},
RfpDocumentID: 0,
Layer: String,
Mode: String,
TurnCount: 0,
Brief:
{
ProjectTitle: String,
SolicitationNumber: String,
IssuingOrganization: String,
ProjectType: String,
Summary: String,
Locations:
[
{
Description: String,
City: String,
State: String,
Identifier: String
}
],
Schedule:
{
BidDueDate: String,
EstimatedStartDate: String,
QuestionsDueDate: String,
ContractDurationDays: 0,
Notes: String
},
LineItems:
[
{
ItemNumber: String,
Description: String,
Quantity: 0,
Unit: String,
Category: String,
SourceReference: String
}
],
BidConstraints:
[
{
Constraint: String,
Detail: String
}
],
SpecialRequirements:
[
String
]
},
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-01,
EstimatedEndDate: 0001-01-01,
Tasks:
[
{
Seq: 0,
Name: String,
Category: String,
Quantity: 0,
Unit: String,
SourceItemNumber: String,
SourceReference: String,
Notes: String,
Resourcing:
{
Positions:
[
{
PositionTag: String,
Hours: 0,
Headcount: 0,
SourceReference: String,
Notes: String,
IsInCatalog: False,
ContactID: 0
}
],
Equipment:
[
{
EquipmentID: 0,
EquipmentName: String,
MakeModel: String,
Quantity: 0,
DurationDays: 0,
SourceReference: String,
Notes: String,
IsInCatalog: False,
SuggestedEquipmentID: 0,
SuggestedEquipmentName: String
}
],
Materials:
[
{
MaterialID: 0,
MaterialName: String,
MakeModel: String,
Quantity: 0,
Unit: String,
SourceReference: String,
Notes: String,
IsInCatalog: False,
SuggestedMaterialID: 0,
SuggestedMaterialName: String
}
]
},
DurationDays: 0,
DependsOn:
[
0
],
EstimatedStartDate: 0001-01-01,
EstimatedEndDate: 0001-01-01
}
]
},
Pricing:
{
RfpDocumentID: 0,
ProjectName: String,
Currency: String,
Tasks:
[
{
Name: String,
Category: String,
Positions:
[
{
PositionTag: String,
Hours: 0,
HasInternalRate: False,
RateMin: 0,
RateMax: 0,
RateAvg: 0,
ContactCount: 0,
Cost:
{
Min: 0,
Max: 0,
Mid: 0
},
MarketRateReference: 0
}
],
Equipment:
[
{
EquipmentID: 0,
EquipmentName: String,
Quantity: 0,
DurationDays: 0,
RateType: String,
BilledRate: 0,
CostRate: 0,
HasRate: False,
IsInCatalog: False,
Cost: 0,
CompanyCost: 0,
Margin: 0
}
],
Materials:
[
{
MaterialID: 0,
MaterialName: String,
Quantity: 0,
UnitCost: 0,
HasRate: False,
IsInCatalog: False,
Cost: 0
}
],
Subtotal:
{
Min: 0,
Max: 0,
Mid: 0
}
}
],
Total:
{
Min: 0,
Max: 0,
Mid: 0
},
PositionsNeedingRate: 0,
EquipmentNotInCatalog: 0,
MaterialsNotInCatalog: 0,
PositionsNotInCatalog: 0,
EquipmentMargin: 0
},
CrewPlan:
[
{
PositionTag: String,
Needed: 0,
NaiveTotal: 0,
TaskAssignments: 0
}
],
CacheReadTokens: 0,
CacheCreationTokens: 0,
InputTokens: 0
}