| Requires any of the roles: | Agent, Administrator |
| GET,OPTIONS | /v1/Rfp/{RfpDocumentUID}/Brief |
|---|
import 'package:servicestack/servicestack.dart';
class RfpLocation implements IConvertible
{
String? Description;
String? City;
String? State;
String? Identifier;
RfpLocation({this.Description,this.City,this.State,this.Identifier});
RfpLocation.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Description = json['Description'];
City = json['City'];
State = json['State'];
Identifier = json['Identifier'];
return this;
}
Map<String, dynamic> toJson() => {
'Description': Description,
'City': City,
'State': State,
'Identifier': Identifier
};
getTypeName() => "RfpLocation";
TypeContext? context = _ctx;
}
class RfpSchedule implements IConvertible
{
String? BidDueDate;
String? EstimatedStartDate;
String? QuestionsDueDate;
int? ContractDurationDays;
String? Notes;
RfpSchedule({this.BidDueDate,this.EstimatedStartDate,this.QuestionsDueDate,this.ContractDurationDays,this.Notes});
RfpSchedule.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
BidDueDate = json['BidDueDate'];
EstimatedStartDate = json['EstimatedStartDate'];
QuestionsDueDate = json['QuestionsDueDate'];
ContractDurationDays = json['ContractDurationDays'];
Notes = json['Notes'];
return this;
}
Map<String, dynamic> toJson() => {
'BidDueDate': BidDueDate,
'EstimatedStartDate': EstimatedStartDate,
'QuestionsDueDate': QuestionsDueDate,
'ContractDurationDays': ContractDurationDays,
'Notes': Notes
};
getTypeName() => "RfpSchedule";
TypeContext? context = _ctx;
}
class RfpLineItem implements IConvertible
{
String? ItemNumber;
String? Description;
double? Quantity;
String? Unit;
String? Category;
String? SourceReference;
RfpLineItem({this.ItemNumber,this.Description,this.Quantity,this.Unit,this.Category,this.SourceReference});
RfpLineItem.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ItemNumber = json['ItemNumber'];
Description = json['Description'];
Quantity = JsonConverters.toDouble(json['Quantity']);
Unit = json['Unit'];
Category = json['Category'];
SourceReference = json['SourceReference'];
return this;
}
Map<String, dynamic> toJson() => {
'ItemNumber': ItemNumber,
'Description': Description,
'Quantity': Quantity,
'Unit': Unit,
'Category': Category,
'SourceReference': SourceReference
};
getTypeName() => "RfpLineItem";
TypeContext? context = _ctx;
}
class RfpBidConstraint implements IConvertible
{
String? Constraint;
String? Detail;
RfpBidConstraint({this.Constraint,this.Detail});
RfpBidConstraint.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Constraint = json['Constraint'];
Detail = json['Detail'];
return this;
}
Map<String, dynamic> toJson() => {
'Constraint': Constraint,
'Detail': Detail
};
getTypeName() => "RfpBidConstraint";
TypeContext? context = _ctx;
}
class RfpBrief implements IConvertible
{
String? ProjectTitle;
String? SolicitationNumber;
String? IssuingOrganization;
String? ProjectType;
String? Summary;
List<RfpLocation>? Locations = [];
RfpSchedule? Schedule;
List<RfpLineItem>? LineItems = [];
List<RfpBidConstraint>? BidConstraints = [];
List<String>? SpecialRequirements = [];
RfpBrief({this.ProjectTitle,this.SolicitationNumber,this.IssuingOrganization,this.ProjectType,this.Summary,this.Locations,this.Schedule,this.LineItems,this.BidConstraints,this.SpecialRequirements});
RfpBrief.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ProjectTitle = json['ProjectTitle'];
SolicitationNumber = json['SolicitationNumber'];
IssuingOrganization = json['IssuingOrganization'];
ProjectType = json['ProjectType'];
Summary = json['Summary'];
Locations = JsonConverters.fromJson(json['Locations'],'List<RfpLocation>',context!);
Schedule = JsonConverters.fromJson(json['Schedule'],'RfpSchedule',context!);
LineItems = JsonConverters.fromJson(json['LineItems'],'List<RfpLineItem>',context!);
BidConstraints = JsonConverters.fromJson(json['BidConstraints'],'List<RfpBidConstraint>',context!);
SpecialRequirements = JsonConverters.fromJson(json['SpecialRequirements'],'List<String>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'ProjectTitle': ProjectTitle,
'SolicitationNumber': SolicitationNumber,
'IssuingOrganization': IssuingOrganization,
'ProjectType': ProjectType,
'Summary': Summary,
'Locations': JsonConverters.toJson(Locations,'List<RfpLocation>',context!),
'Schedule': JsonConverters.toJson(Schedule,'RfpSchedule',context!),
'LineItems': JsonConverters.toJson(LineItems,'List<RfpLineItem>',context!),
'BidConstraints': JsonConverters.toJson(BidConstraints,'List<RfpBidConstraint>',context!),
'SpecialRequirements': JsonConverters.toJson(SpecialRequirements,'List<String>',context!)
};
getTypeName() => "RfpBrief";
TypeContext? context = _ctx;
}
class RfpBriefResponse implements IConvertible
{
ResponseStatus? ResponseStatus;
int? RfpDocumentID;
RfpBrief? Brief;
RfpBriefResponse({this.ResponseStatus,this.RfpDocumentID,this.Brief});
RfpBriefResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
RfpDocumentID = json['RfpDocumentID'];
Brief = JsonConverters.fromJson(json['Brief'],'RfpBrief',context!);
return this;
}
Map<String, dynamic> toJson() => {
'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!),
'RfpDocumentID': RfpDocumentID,
'Brief': JsonConverters.toJson(Brief,'RfpBrief',context!)
};
getTypeName() => "RfpBriefResponse";
TypeContext? context = _ctx;
}
class RfpBriefRequest implements IConvertible
{
String? RfpDocumentUID;
RfpBriefRequest({this.RfpDocumentUID});
RfpBriefRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
RfpDocumentUID = json['RfpDocumentUID'];
return this;
}
Map<String, dynamic> toJson() => {
'RfpDocumentUID': RfpDocumentUID
};
getTypeName() => "RfpBriefRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
'RfpLocation': TypeInfo(TypeOf.Class, create:() => RfpLocation()),
'RfpSchedule': TypeInfo(TypeOf.Class, create:() => RfpSchedule()),
'RfpLineItem': TypeInfo(TypeOf.Class, create:() => RfpLineItem()),
'RfpBidConstraint': TypeInfo(TypeOf.Class, create:() => RfpBidConstraint()),
'RfpBrief': TypeInfo(TypeOf.Class, create:() => RfpBrief()),
'List<RfpLocation>': TypeInfo(TypeOf.Class, create:() => <RfpLocation>[]),
'List<RfpLineItem>': TypeInfo(TypeOf.Class, create:() => <RfpLineItem>[]),
'List<RfpBidConstraint>': TypeInfo(TypeOf.Class, create:() => <RfpBidConstraint>[]),
'RfpBriefResponse': TypeInfo(TypeOf.Class, create:() => RfpBriefResponse()),
'RfpBriefRequest': TypeInfo(TypeOf.Class, create:() => RfpBriefRequest()),
});
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/Rfp/{RfpDocumentUID}/Brief 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,
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
]
}
}