| GET,OPTIONS | /v1/pm/project/{Uid} |
|---|
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*
open class PmProjectDetailRequest
{
open var Uid:String? = null
}
open class PmProjectDetail
{
open var ProjectID:Int? = null
open var ProjectUID:String? = null
open var Name:String? = null
open var Client:String? = null
open var ProjectType:String? = null
open var Status:String? = null
open var Branch:String? = null
open var StartDate:String? = null
open var EndDate:String? = null
open var Description:String? = null
open var Finance:PmFinance? = null
open var Readiness:PmReadiness? = null
open var Jobs:ArrayList<PmJob> = ArrayList<PmJob>()
open var Equipment:ArrayList<PmEquipmentRow> = ArrayList<PmEquipmentRow>()
open var Materials:ArrayList<PmMaterialRow> = ArrayList<PmMaterialRow>()
open var Calendar:ArrayList<PmCalendarBar> = ArrayList<PmCalendarBar>()
open var ProjectStatuses:ArrayList<PmCatalogItem> = ArrayList<PmCatalogItem>()
open var ResponseStatus:ResponseStatus? = null
}
open class PmFinance
{
open var Budget:Double? = null
open var Spent:Double? = null
open var EstimatedCost:Double? = null
open var CrewCost:Double? = null
open var EquipCost:Double? = null
open var MatCost:Double? = null
open var Variance:Double? = null
open var HealthPct:Int? = null
open var SpentPct:Int? = null
open var ProgressPct:Int? = null
}
open class PmReadiness
{
open var JobsNoCrew:Int? = null
open var OpenRoles:Int? = null
open var EquipmentConflicts:Int? = null
open var MaterialGaps:Int? = null
open var TotalGaps:Int? = null
open var ReadyPct:Int? = null
}
open class PmJob
{
open var JobID:Int? = null
open var Name:String? = null
open var Description:String? = null
open var Status:String? = null
open var StartDate:String? = null
open var EndDate:String? = null
open var CrewCount:Int? = null
open var BudgetedHours:Double? = null
open var EquipmentCount:Int? = null
open var MaterialCount:Int? = null
open var CrewCost:Double? = null
open var EquipCost:Double? = null
open var MatCost:Double? = null
open var Cost:Double? = null
open var NoCrew:Boolean? = null
open var EquipConflict:Boolean? = null
open var MaterialGap:Boolean? = null
open var ReadyPct:Int? = null
open var Crew:ArrayList<PmJobCrew> = ArrayList<PmJobCrew>()
open var Equipment:ArrayList<PmJobResource> = ArrayList<PmJobResource>()
open var Materials:ArrayList<PmJobResource> = ArrayList<PmJobResource>()
}
open class PmJobCrew
{
open var ContactID:Int? = null
open var Name:String? = null
open var Rate:Double? = null
open var BudgetedHours:Double? = null
open var IsOpen:Boolean? = null
}
open class PmJobResource
{
open var Id:Int? = null
open var Name:String? = null
open var Amount:Double? = null
open var Qty:Int? = null
}
open class PmEquipmentRow
{
open var EquipmentID:Int? = null
open var Name:String? = null
open var EquipmentType:String? = null
open var SerialNumber:String? = null
open var UsedByJobs:String? = null
open var Available:Boolean? = null
open var Conflicts:ArrayList<PmConflict> = ArrayList<PmConflict>()
open var MaintenanceIntervalDays:Int? = null
open var LastServiceDate:String? = null
open var NextServiceDate:String? = null
open var MaintenanceState:String? = null
}
open class PmConflict
{
open var ProjectName:String? = null
open var JobName:String? = null
open var StartDate:String? = null
open var EndDate:String? = null
}
open class PmMaterialRow
{
open var MaterialID:Int? = null
open var Name:String? = null
open var MaterialType:String? = null
open var OnHand:Int? = null
open var NeededByJobs:Int? = null
open var QtyNeeded:Int? = null
open var ToOrder:Int? = null
open var UnitCost:Double? = null
open var LineCost:Double? = null
open var ProjectMaterialID:Int? = null
open var StatusID:Int? = null
open var Status:String? = null
open var Supplier:String? = null
open var OrderDate:String? = null
open var DeliveryDate:String? = null
open var Shortfall:Boolean? = null
}
open class PmCalendarBar
{
open var JobID:Int? = null
open var Name:String? = null
open var StartDate:String? = null
open var EndDate:String? = null
open var Status:String? = null
}
open class PmCatalogItem
{
open var Id:Int? = null
open var Name:String? = null
open var Amount:Double? = null
}
Kotlin PmProjectDetailRequest DTOs
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.
GET /v1/pm/project/{Uid} HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
ProjectID: 0,
ProjectUID: String,
Name: String,
Client: String,
ProjectType: String,
Status: String,
Branch: String,
StartDate: String,
EndDate: String,
Description: String,
Finance:
{
Budget: 0,
Spent: 0,
EstimatedCost: 0,
CrewCost: 0,
EquipCost: 0,
MatCost: 0,
Variance: 0,
HealthPct: 0,
SpentPct: 0,
ProgressPct: 0
},
Readiness:
{
JobsNoCrew: 0,
OpenRoles: 0,
EquipmentConflicts: 0,
MaterialGaps: 0,
TotalGaps: 0,
ReadyPct: 0
},
Jobs:
[
{
JobID: 0,
Name: String,
Description: String,
Status: String,
StartDate: String,
EndDate: String,
CrewCount: 0,
BudgetedHours: 0,
EquipmentCount: 0,
MaterialCount: 0,
CrewCost: 0,
EquipCost: 0,
MatCost: 0,
Cost: 0,
NoCrew: False,
EquipConflict: False,
MaterialGap: False,
ReadyPct: 0,
Crew:
[
{
ContactID: 0,
Name: String,
Rate: 0,
BudgetedHours: 0,
IsOpen: False
}
],
Equipment:
[
{
Id: 0,
Name: String,
Amount: 0,
Qty: 0
}
],
Materials:
[
{
Id: 0,
Name: String,
Amount: 0,
Qty: 0
}
]
}
],
Equipment:
[
{
EquipmentID: 0,
Name: String,
EquipmentType: String,
SerialNumber: String,
UsedByJobs: String,
Available: False,
Conflicts:
[
{
ProjectName: String,
JobName: String,
StartDate: String,
EndDate: String
}
],
MaintenanceIntervalDays: 0,
LastServiceDate: String,
NextServiceDate: String,
MaintenanceState: String
}
],
Materials:
[
{
MaterialID: 0,
Name: String,
MaterialType: String,
OnHand: 0,
NeededByJobs: 0,
QtyNeeded: 0,
ToOrder: 0,
UnitCost: 0,
LineCost: 0,
ProjectMaterialID: 0,
StatusID: 0,
Status: String,
Supplier: String,
OrderDate: String,
DeliveryDate: String,
Shortfall: False
}
],
Calendar:
[
{
JobID: 0,
Name: String,
StartDate: String,
EndDate: String,
Status: String
}
],
ProjectStatuses:
[
{
Id: 0,
Name: String,
Amount: 0
}
],
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
}
}