Trendsic Platform Service

<back to all web services

RfpRefineRequest

Requires Authentication
Requires any of the roles:Agent, Administrator
The following routes are available for this service:
POST,OPTIONS/v1/Rfp/{RfpDocumentUID}/Refine
import Foundation
import ServiceStack

public class RfpRefineRequest : Codable
{
    public var rfpDocumentUID:String
    public var layer:String
    public var mode:String
    public var instruction:String

    required public init(){}
}

public class RfpRefineResponse : Codable
{
    public var responseStatus:ResponseStatus
    public var rfpDocumentID:Int
    public var layer:String
    public var mode:String
    public var turnCount:Int
    public var brief:RfpBrief
    public var proposal:ProjectProposal
    public var pricing:PricedProposal
    public var crewPlan:[CrewPlanLine] = []
    public var cacheReadTokens:Int
    public var cacheCreationTokens:Int
    public var inputTokens:Int

    required public init(){}
}

public class RfpBrief : Codable
{
    public var projectTitle:String
    public var solicitationNumber:String
    public var issuingOrganization:String
    public var projectType:String
    public var summary:String
    public var locations:[RfpLocation] = []
    public var schedule:RfpSchedule
    public var lineItems:[RfpLineItem] = []
    public var bidConstraints:[RfpBidConstraint] = []
    public var specialRequirements:[String] = []

    required public init(){}
}

public class RfpLocation : Codable
{
    public var Description:String
    public var city:String
    public var state:String
    public var identifier:String

    required public init(){}
}

public class RfpSchedule : Codable
{
    public var bidDueDate:String
    public var estimatedStartDate:String
    public var questionsDueDate:String
    public var contractDurationDays:Int?
    public var notes:String

    required public init(){}
}

public class RfpLineItem : Codable
{
    public var itemNumber:String
    public var Description:String
    public var quantity:Double?
    public var unit:String
    public var category:String
    public var sourceReference:String

    required public init(){}
}

public class RfpBidConstraint : Codable
{
    public var constraint:String
    public var detail:String

    required public init(){}
}

public class ProjectProposal : Codable
{
    public var rfpDocumentID:Int
    public var mode:String
    public var projectID:Int?
    public var changeOrderID:Int?
    public var projectName:String
    public var clientName:String
    public var projectType:String
    public var projectLocation:String
    public var scope:String
    public var projectDescription:String
    public var contractDurationDays:Int?
    public var bidDueDate:String
    public var estimatedStartDate:Date?
    public var estimatedEndDate:Date?
    public var tasks:[ProposedTask] = []

    required public init(){}
}

public class ProposedTask : Codable
{
    public var seq:Int
    public var name:String
    public var category:String
    public var quantity:Double?
    public var unit:String
    public var sourceItemNumber:String
    public var sourceReference:String
    public var notes:String
    public var resourcing:TaskResourcing
    public var durationDays:Double?
    public var dependsOn:[Int] = []
    public var estimatedStartDate:Date?
    public var estimatedEndDate:Date?

    required public init(){}
}

public class TaskResourcing : Codable
{
    public var positions:[ResourcedPosition] = []
    public var equipment:[ResourcedEquipment] = []
    public var materials:[ResourcedMaterial] = []

    required public init(){}
}

public class ResourcedPosition : Codable
{
    public var positionTag:String
    public var hours:Double?
    public var headcount:Int?
    public var sourceReference:String
    public var notes:String
    public var isInCatalog:Bool
    public var contactID:Int?

    required public init(){}
}

public class ResourcedEquipment : Codable
{
    public var equipmentID:Int
    public var equipmentName:String
    public var makeModel:String
    public var quantity:Double?
    public var durationDays:Double?
    public var sourceReference:String
    public var notes:String
    public var isInCatalog:Bool
    public var suggestedEquipmentID:Int
    public var suggestedEquipmentName:String

    required public init(){}
}

public class ResourcedMaterial : Codable
{
    public var materialID:Int
    public var materialName:String
    public var makeModel:String
    public var quantity:Double?
    public var unit:String
    public var sourceReference:String
    public var notes:String
    public var isInCatalog:Bool
    public var suggestedMaterialID:Int
    public var suggestedMaterialName:String

    required public init(){}
}

public class PricedProposal : Codable
{
    public var rfpDocumentID:Int
    public var projectName:String
    public var currency:String
    public var tasks:[PricedTask] = []
    public var total:CostRange
    public var positionsNeedingRate:Int
    public var equipmentNotInCatalog:Int
    public var materialsNotInCatalog:Int
    public var positionsNotInCatalog:Int
    public var equipmentMargin:Double

    required public init(){}
}

public class PricedTask : Codable
{
    public var name:String
    public var category:String
    public var positions:[PricedPosition] = []
    public var equipment:[PricedEquipment] = []
    public var materials:[PricedMaterial] = []
    public var subtotal:CostRange

    required public init(){}
}

public class PricedPosition : Codable
{
    public var positionTag:String
    public var hours:Double
    public var hasInternalRate:Bool
    public var rateMin:Double?
    public var rateMax:Double?
    public var rateAvg:Double?
    public var contactCount:Int
    public var cost:CostRange
    public var marketRateReference:Double?

    required public init(){}
}

public class CostRange : Codable
{
    public var min:Double
    public var max:Double
    public var mid:Double

    required public init(){}
}

public class PricedEquipment : Codable
{
    public var equipmentID:Int
    public var equipmentName:String
    public var quantity:Double
    public var durationDays:Double?
    public var rateType:String
    public var billedRate:Double?
    public var costRate:Double?
    public var hasRate:Bool
    public var isInCatalog:Bool
    public var cost:Double
    public var companyCost:Double
    public var margin:Double

    required public init(){}
}

public class PricedMaterial : Codable
{
    public var materialID:Int
    public var materialName:String
    public var quantity:Double
    public var unitCost:Double?
    public var hasRate:Bool
    public var isInCatalog:Bool
    public var cost:Double

    required public init(){}
}

public class CrewPlanLine : Codable
{
    public var positionTag:String
    public var needed:Int
    public var naiveTotal:Int
    public var taskAssignments:Int

    required public init(){}
}


Swift RfpRefineRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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: application/json
Content-Type: application/json
Content-Length: length

{"RfpDocumentUID":"String","Layer":"String","Mode":"String","Instruction":"String"}
HTTP/1.1 200 OK
Content-Type: application/json
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-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,"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-01T00:00:00.0000000","EstimatedEndDate":"0001-01-01T00:00:00.0000000"}]},"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}