Trendsic Platform Service

<back to all web services

RfpProposalRequest

Requires Authentication
Requires any of the roles:Agent, Administrator
The following routes are available for this service:
GET,OPTIONS/v1/Rfp/{RfpDocumentUID}/Proposal
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

    [<AllowNullLiteral>]
    type ResourcedPosition() = 
        member val PositionTag:String = null with get,set
        member val Hours:Nullable<Double> = new Nullable<Double>() with get,set
        member val CrewSize:Nullable<Double> = new Nullable<Double>() with get,set
        member val Utilization:Nullable<Double> = new Nullable<Double>() with get,set
        member val FixedDays:Nullable<Double> = new Nullable<Double>() with get,set
        member val Headcount:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val SourceReference:String = null with get,set
        member val Notes:String = null with get,set
        member val IsInCatalog:Boolean = new Boolean() with get,set
        member val ContactID:Nullable<Int32> = new Nullable<Int32>() with get,set

    [<AllowNullLiteral>]
    type ResourcedEquipment() = 
        member val EquipmentID:Int32 = new Int32() with get,set
        member val EquipmentName:String = null with get,set
        member val MakeModel:String = null with get,set
        member val Quantity:Nullable<Double> = new Nullable<Double>() with get,set
        member val DurationDays:Nullable<Double> = new Nullable<Double>() with get,set
        member val Utilization:Nullable<Double> = new Nullable<Double>() with get,set
        member val FixedDays:Nullable<Double> = new Nullable<Double>() with get,set
        member val SourceReference:String = null with get,set
        member val Notes:String = null with get,set
        member val IsInCatalog:Boolean = new Boolean() with get,set
        member val SuggestedEquipmentID:Int32 = new Int32() with get,set
        member val SuggestedEquipmentName:String = null with get,set

    [<AllowNullLiteral>]
    type ResourcedMaterial() = 
        member val MaterialID:Int32 = new Int32() with get,set
        member val MaterialName:String = null with get,set
        member val MakeModel:String = null with get,set
        member val Quantity:Nullable<Double> = new Nullable<Double>() with get,set
        member val QuantityPerUnit:Nullable<Double> = new Nullable<Double>() with get,set
        member val Unit:String = null with get,set
        member val SourceReference:String = null with get,set
        member val Notes:String = null with get,set
        member val IsInCatalog:Boolean = new Boolean() with get,set
        member val SuggestedMaterialID:Int32 = new Int32() with get,set
        member val SuggestedMaterialName:String = null with get,set

    [<AllowNullLiteral>]
    type TaskResourcing() = 
        member val Positions:ResizeArray<ResourcedPosition> = new ResizeArray<ResourcedPosition>() with get,set
        member val Equipment:ResizeArray<ResourcedEquipment> = new ResizeArray<ResourcedEquipment>() with get,set
        member val Materials:ResizeArray<ResourcedMaterial> = new ResizeArray<ResourcedMaterial>() with get,set
        member val ResourcedForQuantity:Nullable<Double> = new Nullable<Double>() with get,set
        member val ProductionRatePerDay:Nullable<Double> = new Nullable<Double>() with get,set
        member val FixedDays:Nullable<Double> = new Nullable<Double>() with get,set

    [<AllowNullLiteral>]
    type WorkPackageSpecRef() = 
        member val Section:String = null with get,set
        member val Title:String = null with get,set

    [<AllowNullLiteral>]
    type TaskWorkPackage() = 
        member val Scope:String = null with get,set
        member val LimitsOfWork:String = null with get,set
        member val SpecRefs:ResizeArray<WorkPackageSpecRef> = new ResizeArray<WorkPackageSpecRef>() with get,set
        member val Constraints:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val HoldPoints:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val DefinitionOfDone:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val SafetyNote:String = null with get,set
        member val RfpRef:String = null with get,set
        member val Confidence:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val SpecBook:String = null with get,set
        member val UserScope:String = null with get,set
        member val DodRemoved:ResizeArray<Int32> = new ResizeArray<Int32>() with get,set
        member val DodExtra:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val UserEdited:Boolean = new Boolean() with get,set
        member val DodChecked:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val RedraftNote:String = null with get,set

    [<AllowNullLiteral>]
    type ProposedTask() = 
        member val Seq:Int32 = new Int32() with get,set
        member val Name:String = null with get,set
        member val Category:String = null with get,set
        member val Quantity:Nullable<Double> = new Nullable<Double>() with get,set
        member val Unit:String = null with get,set
        member val SourceItemNumber:String = null with get,set
        member val SourceReference:String = null with get,set
        member val Notes:String = null with get,set
        member val Resourcing:TaskResourcing = null with get,set
        member val DurationDays:Nullable<Double> = new Nullable<Double>() with get,set
        member val DependsOn:ResizeArray<Int32> = new ResizeArray<Int32>() with get,set
        member val EstimatedStartDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val EstimatedEndDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val WorkPackage:TaskWorkPackage = null with get,set
        member val CreatedJobID:Nullable<Int32> = new Nullable<Int32>() with get,set

    [<AllowNullLiteral>]
    type AddendaChange() = 
        member val ChangeId:String = null with get,set
        member val ChangeType:String = null with get,set
        member val TargetSeq:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val ItemNumber:String = null with get,set
        member val ItemName:String = null with get,set
        member val Field:String = null with get,set
        member val OldValue:String = null with get,set
        member val NewValue:String = null with get,set
        member val Description:String = null with get,set
        member val Status:String = null with get,set

    [<AllowNullLiteral>]
    type AddendaChangeSet() = 
        member val ChangeSetId:String = null with get,set
        member val SourceRfpDocumentID:Int32 = new Int32() with get,set
        member val SourceFileName:String = null with get,set
        member val DocumentType:String = null with get,set
        member val ExtractedAtUtc:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Summary:String = null with get,set
        member val Changes:ResizeArray<AddendaChange> = new ResizeArray<AddendaChange>() with get,set

    [<AllowNullLiteral>]
    type WageClassification() = 
        member val Title:String = null with get,set
        member val BaseRate:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val FringeRate:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val ParishNote:String = null with get,set
        member val SourceLine:String = null with get,set
        member val BenchmarkFringeRate:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val FringeCompareNote:String = null with get,set

    [<AllowNullLiteral>]
    type WageDeterminationResult() = 
        member val SourceRfpDocumentID:Int32 = new Int32() with get,set
        member val SourceFileName:String = null with get,set
        member val WdNumber:String = null with get,set
        member val ExtractedAtUtc:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Classifications:ResizeArray<WageClassification> = new ResizeArray<WageClassification>() with get,set
        member val Source:String = null with get,set
        member val IsTrustworthy:Boolean = new Boolean() with get,set
        member val ExecutiveOrderFloor:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val PublishedDate:String = null with get,set
        member val ProjectParish:String = null with get,set
        member val Warnings:ResizeArray<String> = new ResizeArray<String>() with get,set

    [<AllowNullLiteral>]
    type ProjectProposal() = 
        member val RfpDocumentID:Int32 = new Int32() with get,set
        member val Mode:String = null with get,set
        member val ProjectID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val ChangeOrderID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val ProjectName:String = null with get,set
        member val ClientName:String = null with get,set
        member val ProjectType:String = null with get,set
        member val ProjectLocation:String = null with get,set
        member val Scope:String = null with get,set
        member val ProjectDescription:String = null with get,set
        member val ContractDurationDays:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val BidDueDate:String = null with get,set
        member val EstimatedStartDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val EstimatedEndDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Tasks:ResizeArray<ProposedTask> = new ResizeArray<ProposedTask>() with get,set
        member val PendingAddendaDiffs:ResizeArray<AddendaChangeSet> = new ResizeArray<AddendaChangeSet>() with get,set
        member val WageDeterminations:ResizeArray<WageDeterminationResult> = new ResizeArray<WageDeterminationResult>() with get,set

    [<AllowNullLiteral>]
    type CrewPlanLine() = 
        member val PositionTag:String = null with get,set
        member val Needed:Int32 = new Int32() with get,set
        member val NaiveTotal:Int32 = new Int32() with get,set
        member val TaskAssignments:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type RfpProposalResponse() = 
        member val ResponseStatus:ResponseStatus = null with get,set
        member val RfpDocumentID:Int32 = new Int32() with get,set
        member val Proposal:ProjectProposal = null with get,set
        member val CrewPlan:ResizeArray<CrewPlanLine> = new ResizeArray<CrewPlanLine>() with get,set

    [<AllowNullLiteral>]
    type RfpProposalRequest() = 
        member val RfpDocumentUID:Guid = new Guid() with get,set

F# RfpProposalRequest DTOs

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

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /v1/Rfp/{RfpDocumentUID}/Proposal HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
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,
	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,
							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-01,
				EstimatedEndDate: 0001-01-01,
				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-01,
				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-01,
				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
				]
			}
		]
	},
	CrewPlan: 
	[
		{
			PositionTag: String,
			Needed: 0,
			NaiveTotal: 0,
			TaskAssignments: 0
		}
	]
}