import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';
class RuleValidationResult implements IConvertible
{
String? RuleCode;
String? Message;
String? Key;
String? Tag;
String? ErrorCode;
RuleValidationResult({this.RuleCode,this.Message,this.Key,this.Tag,this.ErrorCode});
RuleValidationResult.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
RuleCode = json['RuleCode'];
Message = json['Message'];
Key = json['Key'];
Tag = json['Tag'];
ErrorCode = json['ErrorCode'];
return this;
}
Map<String, dynamic> toJson() => {
'RuleCode': RuleCode,
'Message': Message,
'Key': Key,
'Tag': Tag,
'ErrorCode': ErrorCode
};
getTypeName() => "RuleValidationResult";
TypeContext? context = _ctx;
}
class ValidationErrorList implements IConvertible
{
List<RuleValidationResult>? ValidationErrors;
ValidationErrorList({this.ValidationErrors});
ValidationErrorList.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ValidationErrors = JsonConverters.fromJson(json['ValidationErrors'],'List<RuleValidationResult>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'ValidationErrors': JsonConverters.toJson(ValidationErrors,'List<RuleValidationResult>',context!)
};
getTypeName() => "ValidationErrorList";
TypeContext? context = _ctx;
}
class SubscriptionLinkContact implements IConvertible
{
/**
* Guid of the contact object within Eros.
*/
// @ApiMember(DataType="Guid", Description="Guid of the contact object within Eros.", Name="ContactId", ParameterType="query")
String? ContactId;
/**
* The unique key that represents the contact on the external system.
*/
// @ApiMember(DataType="string", Description="The unique key that represents the contact on the external system.", IsRequired=true, Name="ContactAlternateKey", ParameterType="query")
String? ContactAlternateKey;
/**
* Guid of the Role List Item object within Eros.
*/
// @ApiMember(DataType="Guid", Description="Guid of the Role List Item object within Eros.", IsRequired=true, Name="RoleId", ParameterType="query")
String? RoleId;
/**
* The unique key that represents the role type on the external system. Note: Use of this is not currently implemented
*/
// @ApiMember(DataType="string", Description="The unique key that represents the role type on the external system. Note: Use of this is not currently implemented", Name="RoleAlternateKey", ParameterType="query")
String? RoleAlternateKey;
SubscriptionLinkContact({this.ContactId,this.ContactAlternateKey,this.RoleId,this.RoleAlternateKey});
SubscriptionLinkContact.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ContactId = json['ContactId'];
ContactAlternateKey = json['ContactAlternateKey'];
RoleId = json['RoleId'];
RoleAlternateKey = json['RoleAlternateKey'];
return this;
}
Map<String, dynamic> toJson() => {
'ContactId': ContactId,
'ContactAlternateKey': ContactAlternateKey,
'RoleId': RoleId,
'RoleAlternateKey': RoleAlternateKey
};
getTypeName() => "SubscriptionLinkContact";
TypeContext? context = _ctx;
}
class LocationCoordinatesModel implements IConvertible
{
/**
* The latitude of an address - geographic coordinates specifying the north-south position of a point on the Earth's surface.
*/
// @ApiMember(DataType="Double?", Description="The latitude of an address - geographic coordinates specifying the north-south position of a point on the Earth's surface.", IsRequired=true, Name="Latitude", ParameterType="query")
double? Latitude;
/**
* The longitude of an address - geographic coordinates specifying the east-west position of a point on the Earth's surface.
*/
// @ApiMember(DataType="Double?", Description="The longitude of an address - geographic coordinates specifying the east-west position of a point on the Earth's surface.", IsRequired=true, Name="Longitude", ParameterType="query")
double? Longitude;
/**
* The altitude of an address - the altitude above sea level.
*/
// @ApiMember(DataType="Double?", Description="The altitude of an address - the altitude above sea level.", Name="Altitude", ParameterType="query")
double? Altitude;
/**
* Accuracy of the latitude and longitude.
*/
// @ApiMember(DataType="Double?", Description="Accuracy of the latitude and longitude.", Name="Accuracy", ParameterType="query")
double? Accuracy;
/**
* Accurancy of the Altitude.
*/
// @ApiMember(DataType="Double?", Description="Accurancy of the Altitude.", Name="AltitudeAccuracy", ParameterType="query")
double? AltitudeAccuracy;
/**
* Direction you are heading.
*/
// @ApiMember(DataType="Double?", Description="Direction you are heading.", Name="Heading", ParameterType="query")
double? Heading;
/**
* Speed you are going.
*/
// @ApiMember(DataType="Double?", Description="Speed you are going.", Name="Speed", ParameterType="query")
double? Speed;
/**
* Speed your altitude is ascending/descending at.
*/
// @ApiMember(DataType="Double?", Description="Speed your altitude is ascending/descending at.", Name="VerticalSpeed", ParameterType="query")
double? VerticalSpeed;
LocationCoordinatesModel({this.Latitude,this.Longitude,this.Altitude,this.Accuracy,this.AltitudeAccuracy,this.Heading,this.Speed,this.VerticalSpeed});
LocationCoordinatesModel.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Latitude = JsonConverters.toDouble(json['Latitude']);
Longitude = JsonConverters.toDouble(json['Longitude']);
Altitude = JsonConverters.toDouble(json['Altitude']);
Accuracy = JsonConverters.toDouble(json['Accuracy']);
AltitudeAccuracy = JsonConverters.toDouble(json['AltitudeAccuracy']);
Heading = JsonConverters.toDouble(json['Heading']);
Speed = JsonConverters.toDouble(json['Speed']);
VerticalSpeed = JsonConverters.toDouble(json['VerticalSpeed']);
return this;
}
Map<String, dynamic> toJson() => {
'Latitude': Latitude,
'Longitude': Longitude,
'Altitude': Altitude,
'Accuracy': Accuracy,
'AltitudeAccuracy': AltitudeAccuracy,
'Heading': Heading,
'Speed': Speed,
'VerticalSpeed': VerticalSpeed
};
getTypeName() => "LocationCoordinatesModel";
TypeContext? context = _ctx;
}
class AddressModel implements IConvertible
{
/**
* The distance between this project and another specified set of gps coordinates.
*/
// @ApiMember(DataType="double", Description="The distance between this project and another specified set of gps coordinates.", Name="DistanceAway", ParameterType="query")
double? DistanceAway;
/**
* The latitude of an address - geographic coordinates specifying the north-south position of a point on the Earth's surface.
*/
// @ApiMember(DataType="Double?", Description="The latitude of an address - geographic coordinates specifying the north-south position of a point on the Earth's surface.", IsRequired=true, Name="Latitude", ParameterType="query")
double? Latitude;
/**
* The longitude of an address - geographic coordinates specifying the east-west position of a point on the Earth's surface.
*/
// @ApiMember(DataType="Double?", Description="The longitude of an address - geographic coordinates specifying the east-west position of a point on the Earth's surface.", IsRequired=true, Name="Longitude", ParameterType="query")
double? Longitude;
/**
* Address Format Id Guid - this will be determined by the service.
*/
// @ApiMember(DataType="Guid", Description="Address Format Id Guid - this will be determined by the service.", Name="AddressFormatId", ParameterType="query")
String? AddressFormatId;
/**
* Suburb Id Guid - this will attempt to be determined by the SuburbName, StateShortName and Postcode entered.
*/
// @ApiMember(DataType="Guid", Description="Suburb Id Guid - this will attempt to be determined by the SuburbName, StateShortName and Postcode entered.", Name="SuburbId", ParameterType="query")
String? SuburbId;
/**
* The suburb name.
*/
// @ApiMember(DataType="string", Description="The suburb name.", Name="SuburbName", ParameterType="query")
String? SuburbName;
/**
* The shortened State Name e.g Vic for Victoria.
*/
// @ApiMember(DataType="string", Description="The shortened State Name e.g Vic for Victoria.", Name="StateShortName", ParameterType="query")
String? StateShortName;
/**
* The suburb postcode.
*/
// @ApiMember(DataType="string", Description="The suburb postcode.", Name="PostCode", ParameterType="query")
String? PostCode;
/**
* Country Id Guid - this will be determined by the CountrName or ISOCountryCode entered.
*/
// @ApiMember(DataType="Guid", Description="Country Id Guid - this will be determined by the CountrName or ISOCountryCode entered.", Name="CountryId", ParameterType="query")
String? CountryId;
/**
* the name of the country the address is within.
*/
// @ApiMember(DataType="string", Description="the name of the country the address is within.", Name="CountryName", ParameterType="query")
String? CountryName;
/**
* A 2 digit ISO Country Code representing the country.
*/
// @ApiMember(DataType="string", Description="A 2 digit ISO Country Code representing the country.", Name="ISOCountryCode", ParameterType="query")
String? ISOCountryCode;
/**
* The address Lot number.
*/
// @ApiMember(DataType="string", Description="The address Lot number.", Name="LotNumber", ParameterType="query")
String? LotNumber;
/**
* The address Sub Unit number.
*/
// @ApiMember(DataType="string", Description="The address Sub Unit number.", Name="SubUnit", ParameterType="query")
String? SubUnit;
/**
* The address building number.
*/
// @ApiMember(DataType="string", Description="The address building number.", Name="BuildingNumber", ParameterType="query")
String? BuildingNumber;
/**
* The address street number.
*/
// @ApiMember(DataType="string", Description="The address street number.", Name="StreetNumber", ParameterType="query")
String? StreetNumber;
/**
* The address street name including street type.
*/
// @ApiMember(DataType="string", Description="The address street name including street type.", Name="StreetName", ParameterType="query")
String? StreetName;
/**
* A formatted address Line 1.
*/
// @ApiMember(DataType="string", Description="A formatted address Line 1.", Name="AddressLineOne", ParameterType="query")
String? AddressLineOne;
/**
* A formatted address Line 2.
*/
// @ApiMember(DataType="string", Description="A formatted address Line 2.", Name="AddressLineTwo", ParameterType="query")
String? AddressLineTwo;
/**
* The full address string.
*/
// @ApiMember(DataType="string", Description="The full address string.", Name="AddressFull", ParameterType="query")
String? AddressFull;
/**
* True if the address is a physical location.
*/
// @ApiMember(DataType="bool?", Description="True if the address is a physical location.", Name="IsPhysical", ParameterType="query")
bool? IsPhysical;
/**
* Notes about the address.
*/
// @ApiMember(DataType="string", Description="Notes about the address.", Name="Notes", ParameterType="query")
String? Notes;
/**
* If true, the address is eligible for having its coordinates calculated/updated.
*/
// @ApiMember(DataType="bool?", Description="If true, the address is eligible for having its coordinates calculated/updated.", Name="AutoMapCoordinates", ParameterType="query")
bool? AutoMapCoordinates;
/**
* Location Coordinates for the address.
*/
// @ApiMember(DataType="LocationCoordinates", Description="Location Coordinates for the address.", Name="LocationCoordinates", ParameterType="query")
LocationCoordinatesModel? LocationCoordinates;
AddressModel({this.DistanceAway,this.Latitude,this.Longitude,this.AddressFormatId,this.SuburbId,this.SuburbName,this.StateShortName,this.PostCode,this.CountryId,this.CountryName,this.ISOCountryCode,this.LotNumber,this.SubUnit,this.BuildingNumber,this.StreetNumber,this.StreetName,this.AddressLineOne,this.AddressLineTwo,this.AddressFull,this.IsPhysical,this.Notes,this.AutoMapCoordinates,this.LocationCoordinates});
AddressModel.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
DistanceAway = JsonConverters.toDouble(json['DistanceAway']);
Latitude = JsonConverters.toDouble(json['Latitude']);
Longitude = JsonConverters.toDouble(json['Longitude']);
AddressFormatId = json['AddressFormatId'];
SuburbId = json['SuburbId'];
SuburbName = json['SuburbName'];
StateShortName = json['StateShortName'];
PostCode = json['PostCode'];
CountryId = json['CountryId'];
CountryName = json['CountryName'];
ISOCountryCode = json['ISOCountryCode'];
LotNumber = json['LotNumber'];
SubUnit = json['SubUnit'];
BuildingNumber = json['BuildingNumber'];
StreetNumber = json['StreetNumber'];
StreetName = json['StreetName'];
AddressLineOne = json['AddressLineOne'];
AddressLineTwo = json['AddressLineTwo'];
AddressFull = json['AddressFull'];
IsPhysical = json['IsPhysical'];
Notes = json['Notes'];
AutoMapCoordinates = json['AutoMapCoordinates'];
LocationCoordinates = JsonConverters.fromJson(json['LocationCoordinates'],'LocationCoordinatesModel',context!);
return this;
}
Map<String, dynamic> toJson() => {
'DistanceAway': DistanceAway,
'Latitude': Latitude,
'Longitude': Longitude,
'AddressFormatId': AddressFormatId,
'SuburbId': SuburbId,
'SuburbName': SuburbName,
'StateShortName': StateShortName,
'PostCode': PostCode,
'CountryId': CountryId,
'CountryName': CountryName,
'ISOCountryCode': ISOCountryCode,
'LotNumber': LotNumber,
'SubUnit': SubUnit,
'BuildingNumber': BuildingNumber,
'StreetNumber': StreetNumber,
'StreetName': StreetName,
'AddressLineOne': AddressLineOne,
'AddressLineTwo': AddressLineTwo,
'AddressFull': AddressFull,
'IsPhysical': IsPhysical,
'Notes': Notes,
'AutoMapCoordinates': AutoMapCoordinates,
'LocationCoordinates': JsonConverters.toJson(LocationCoordinates,'LocationCoordinatesModel',context!)
};
getTypeName() => "AddressModel";
TypeContext? context = _ctx;
}
class SubscriptionObjectModel implements ISubscription, IConvertible
{
/**
* Guid representing the external systems datasource information.
*/
// @ApiMember(DataType="Guid", Description="Guid representing the external systems datasource information.", IsRequired=true, Name="SuiteDataSourceInstanceId", ParameterType="query")
String? SuiteDataSourceInstanceId;
/**
* The unique key that represents the object on the external system.
*/
// @ApiMember(DataType="string", Description="The unique key that represents the object on the external system.", IsRequired=true, Name="AlternateKey", ParameterType="query")
String? AlternateKey;
/**
* Guid of the object within Eros. If ObjectId is known, the external system may pass this instead of the alternate key.
*/
// @ApiMember(DataType="Guid", Description="Guid of the object within Eros. If ObjectId is known, the external system may pass this instead of the alternate key.", Name="ObjectId", ParameterType="query")
String? ObjectId;
/**
* Guid of the RmsTableCtx within Eros. This is used if the alternate key is provided to identify the object to update.
*/
// @ApiMember(DataType="Guid", Description="Guid of the RmsTableCtx within Eros. This is used if the alternate key is provided to identify the object to update.", Name="RmsTableCtxId", ParameterType="query")
String? RmsTableCtxId;
/**
* Validation ensures that this object has a value in alternateKey or ObjectId, ignoring validation skips this requirement.
*/
// @ApiMember(DataType="bool", Description="Validation ensures that this object has a value in alternateKey or ObjectId, ignoring validation skips this requirement.", Name="IgnoreValidation", ParameterType="query")
bool? IgnoreValidation;
SubscriptionObjectModel({this.SuiteDataSourceInstanceId,this.AlternateKey,this.ObjectId,this.RmsTableCtxId,this.IgnoreValidation});
SubscriptionObjectModel.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
SuiteDataSourceInstanceId = json['SuiteDataSourceInstanceId'];
AlternateKey = json['AlternateKey'];
ObjectId = json['ObjectId'];
RmsTableCtxId = json['RmsTableCtxId'];
IgnoreValidation = json['IgnoreValidation'];
return this;
}
Map<String, dynamic> toJson() => {
'SuiteDataSourceInstanceId': SuiteDataSourceInstanceId,
'AlternateKey': AlternateKey,
'ObjectId': ObjectId,
'RmsTableCtxId': RmsTableCtxId,
'IgnoreValidation': IgnoreValidation
};
getTypeName() => "SubscriptionObjectModel";
TypeContext? context = _ctx;
}
class DimensionValueModel implements IConvertible
{
String? DimensionValueId;
String? DimensionId;
String? Name;
String? Description;
String? ShortName;
String? TrafficLightId;
String? TrafficLightColour;
String? ObjectConnectionId;
String? OwnerContactId;
String? RecordStatus;
DimensionValueModel({this.DimensionValueId,this.DimensionId,this.Name,this.Description,this.ShortName,this.TrafficLightId,this.TrafficLightColour,this.ObjectConnectionId,this.OwnerContactId,this.RecordStatus});
DimensionValueModel.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
DimensionValueId = json['DimensionValueId'];
DimensionId = json['DimensionId'];
Name = json['Name'];
Description = json['Description'];
ShortName = json['ShortName'];
TrafficLightId = json['TrafficLightId'];
TrafficLightColour = json['TrafficLightColour'];
ObjectConnectionId = json['ObjectConnectionId'];
OwnerContactId = json['OwnerContactId'];
RecordStatus = json['RecordStatus'];
return this;
}
Map<String, dynamic> toJson() => {
'DimensionValueId': DimensionValueId,
'DimensionId': DimensionId,
'Name': Name,
'Description': Description,
'ShortName': ShortName,
'TrafficLightId': TrafficLightId,
'TrafficLightColour': TrafficLightColour,
'ObjectConnectionId': ObjectConnectionId,
'OwnerContactId': OwnerContactId,
'RecordStatus': RecordStatus
};
getTypeName() => "DimensionValueModel";
TypeContext? context = _ctx;
}
class SubscriptionCommonProjectModel implements IConvertible
{
/**
* A reference number used for identifying the project in the external system.
*/
// @ApiMember(DataType="string", Description="A reference number used for identifying the project in the external system.", Name="Reference", ParameterType="query")
String? Reference;
/**
* A name for the project.
*/
// @ApiMember(DataType="string", Description="A name for the project.", IsRequired=true, Name="Name", ParameterType="query")
String? Name;
/**
* A description for the project.
*/
// @ApiMember(DataType="string", Description="A description for the project.", IsRequired=true, Name="Description", ParameterType="query")
String? Description;
/**
* A list of ProjectContact records that link contacts (and their role in the project) to the project.
*/
// @ApiMember(DataType="List<SubscriptionLinkContact>", Description="A list of ProjectContact records that link contacts (and their role in the project) to the project.", Name="ProjectContacts", ParameterType="query")
List<SubscriptionLinkContact>? ProjectContacts;
/**
* An address for the project.
*/
// @ApiMember(DataType="AddressModel", Description="An address for the project.", Name="ProjectAddress", ParameterType="query")
AddressModel? ProjectAddress;
/**
* A link to the Customer Contact Group.
*/
// @ApiMember(DataType="SubscriptionObjectModel", Description="A link to the Customer Contact Group.", Name="CustomerContactGroup", ParameterType="query")
SubscriptionObjectModel? CustomerContactGroup;
/**
* Project Group Name.
*/
// @ApiMember(DataType="string", Description="Project Group Name.", Name="GroupName", ParameterType="query")
String? GroupName;
/**
* Stage Name.
*/
// @ApiMember(DataType="string", Description="Stage Name.", Name="StageName", ParameterType="query")
String? StageName;
/**
* Guid of the Media Object representing the projects primary image.
*/
// @ApiMember(DataType="Guid", Description="Guid of the Media Object representing the projects primary image.", Name="PrimaryProjectImageId", ParameterType="query")
String? PrimaryProjectImageId;
/**
* URL to the projects primary full image.
*/
// @ApiMember(DataType="string", Description="URL to the projects primary full image.", Name="PrimaryProjectPhotoUrl", ParameterType="query")
String? PrimaryProjectPhotoUrl;
/**
* URL to the projects primary thumbnail image.
*/
// @ApiMember(DataType="string", Description="URL to the projects primary thumbnail image.", Name="PrimaryProjectThumbnailUrl", ParameterType="query")
String? PrimaryProjectThumbnailUrl;
/**
* Image height of the projects logo.
*/
// @ApiMember(DataType="int", Description="Image height of the projects logo.", Name="PrimaryProjectPhotoHeight", ParameterType="query")
int? PrimaryProjectPhotoHeight;
/**
* Image height of the projects logo.
*/
// @ApiMember(DataType="int", Description="Image height of the projects logo.", Name="PrimaryProjectPhotoWidth", ParameterType="query")
int? PrimaryProjectPhotoWidth;
/**
* Dynamically linked content.
*/
// @ApiMember(DataType="string", Description="Dynamically linked content.", Name="DynamicContent", ParameterType="query")
String? DynamicContent;
/**
* If this is 'A' then a documentable ObjectConnection will be created. If this is 'D' then a documentable ObjectConnection will be removed if it exists. Any other value will be ignored.
*/
// @ApiMember(DataType="char", Description="If this is 'A' then a documentable ObjectConnection will be created. If this is 'D' then a documentable ObjectConnection will be removed if it exists. Any other value will be ignored.", Name="DocumentableObjectConnection", ParameterType="query")
String? DocumentableObjectConnection;
/**
* Dimension values linked to the project.
*/
// @ApiMember(DataType="List<DimensionValueModel>", Description="Dimension values linked to the project.", Name="DimensionValues", ParameterType="query")
List<DimensionValueModel>? DimensionValues;
/**
* Dimension values linked to the project.
*/
// @ApiMember(DataType="List<Guid>", Description="Dimension values linked to the project.", Name="Calendars", ParameterType="query")
List<String>? Calendars;
/**
* The Document Site ID.
*/
// @ApiMember(DataType="Guid", Description="The Document Site ID.", Name="DocumentSiteId", ParameterType="query")
String? DocumentSiteId;
String? ObjectSubscriptionId;
String? ObjectHash;
SubscriptionCommonProjectModel({this.Reference,this.Name,this.Description,this.ProjectContacts,this.ProjectAddress,this.CustomerContactGroup,this.GroupName,this.StageName,this.PrimaryProjectImageId,this.PrimaryProjectPhotoUrl,this.PrimaryProjectThumbnailUrl,this.PrimaryProjectPhotoHeight,this.PrimaryProjectPhotoWidth,this.DynamicContent,this.DocumentableObjectConnection,this.DimensionValues,this.Calendars,this.DocumentSiteId,this.ObjectSubscriptionId,this.ObjectHash});
SubscriptionCommonProjectModel.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Reference = json['Reference'];
Name = json['Name'];
Description = json['Description'];
ProjectContacts = JsonConverters.fromJson(json['ProjectContacts'],'List<SubscriptionLinkContact>',context!);
ProjectAddress = JsonConverters.fromJson(json['ProjectAddress'],'AddressModel',context!);
CustomerContactGroup = JsonConverters.fromJson(json['CustomerContactGroup'],'SubscriptionObjectModel',context!);
GroupName = json['GroupName'];
StageName = json['StageName'];
PrimaryProjectImageId = json['PrimaryProjectImageId'];
PrimaryProjectPhotoUrl = json['PrimaryProjectPhotoUrl'];
PrimaryProjectThumbnailUrl = json['PrimaryProjectThumbnailUrl'];
PrimaryProjectPhotoHeight = json['PrimaryProjectPhotoHeight'];
PrimaryProjectPhotoWidth = json['PrimaryProjectPhotoWidth'];
DynamicContent = json['DynamicContent'];
DocumentableObjectConnection = json['DocumentableObjectConnection'];
DimensionValues = JsonConverters.fromJson(json['DimensionValues'],'List<DimensionValueModel>',context!);
Calendars = JsonConverters.fromJson(json['Calendars'],'List<String>',context!);
DocumentSiteId = json['DocumentSiteId'];
ObjectSubscriptionId = json['ObjectSubscriptionId'];
ObjectHash = json['ObjectHash'];
return this;
}
Map<String, dynamic> toJson() => {
'Reference': Reference,
'Name': Name,
'Description': Description,
'ProjectContacts': JsonConverters.toJson(ProjectContacts,'List<SubscriptionLinkContact>',context!),
'ProjectAddress': JsonConverters.toJson(ProjectAddress,'AddressModel',context!),
'CustomerContactGroup': JsonConverters.toJson(CustomerContactGroup,'SubscriptionObjectModel',context!),
'GroupName': GroupName,
'StageName': StageName,
'PrimaryProjectImageId': PrimaryProjectImageId,
'PrimaryProjectPhotoUrl': PrimaryProjectPhotoUrl,
'PrimaryProjectThumbnailUrl': PrimaryProjectThumbnailUrl,
'PrimaryProjectPhotoHeight': PrimaryProjectPhotoHeight,
'PrimaryProjectPhotoWidth': PrimaryProjectPhotoWidth,
'DynamicContent': DynamicContent,
'DocumentableObjectConnection': DocumentableObjectConnection,
'DimensionValues': JsonConverters.toJson(DimensionValues,'List<DimensionValueModel>',context!),
'Calendars': JsonConverters.toJson(Calendars,'List<String>',context!),
'DocumentSiteId': DocumentSiteId,
'ObjectSubscriptionId': ObjectSubscriptionId,
'ObjectHash': ObjectHash
};
getTypeName() => "SubscriptionCommonProjectModel";
TypeContext? context = _ctx;
}
/**
* Inserts or Updates a project details and its contact connections and addresses.
*/
// @Api(Description="Inserts or Updates a project details and its contact connections and addresses.")
class SaveProject extends ValidationErrorList implements ISubscription, IConvertible
{
/**
* Guid representing the external systems datasource information.
*/
// @ApiMember(DataType="Guid", Description="Guid representing the external systems datasource information.", IsRequired=true, Name="SuiteDataSourceInstanceId")
String? SuiteDataSourceInstanceId;
/**
* The unique key that represents the project on the external system.
*/
// @ApiMember(DataType="string", Description="The unique key that represents the project on the external system.", IsRequired=true, Name="AlternateKey")
String? AlternateKey;
/**
* Guid of the project object within Eros. If ObjectId is known, the external system may pass this instead of the alternate key.
*/
// @ApiMember(DataType="Guid", Description="Guid of the project object within Eros. If ObjectId is known, the external system may pass this instead of the alternate key.", Name="ObjectId", ParameterType="query")
String? ObjectId;
/**
* If set to true, the object will be updated/refreshed. If false, the hash representation of the Project model and its data will be compared with the current Project to determine if there are any changes to save.
*/
// @ApiMember(DataType="bool", Description="If set to true, the object will be updated/refreshed. If false, the hash representation of the Project model and its data will be compared with the current Project to determine if there are any changes to save.", Name="IgnoreHash")
bool? IgnoreHash;
bool? IgnoreValidation;
/**
* Object containing all details of the project to be inserted or updated.
*/
// @ApiMember(DataType="SubscriptionCommonProjectModel", Description="Object containing all details of the project to be inserted or updated.", IsRequired=true, Name="Project", ParameterType="query")
SubscriptionCommonProjectModel? Project;
String? LicenseeId;
String? SessionId;
SaveProject({this.SuiteDataSourceInstanceId,this.AlternateKey,this.ObjectId,this.IgnoreHash,this.IgnoreValidation,this.Project,this.LicenseeId,this.SessionId});
SaveProject.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
SuiteDataSourceInstanceId = json['SuiteDataSourceInstanceId'];
AlternateKey = json['AlternateKey'];
ObjectId = json['ObjectId'];
IgnoreHash = json['IgnoreHash'];
IgnoreValidation = json['IgnoreValidation'];
Project = JsonConverters.fromJson(json['Project'],'SubscriptionCommonProjectModel',context!);
LicenseeId = json['LicenseeId'];
SessionId = json['SessionId'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'SuiteDataSourceInstanceId': SuiteDataSourceInstanceId,
'AlternateKey': AlternateKey,
'ObjectId': ObjectId,
'IgnoreHash': IgnoreHash,
'IgnoreValidation': IgnoreValidation,
'Project': JsonConverters.toJson(Project,'SubscriptionCommonProjectModel',context!),
'LicenseeId': LicenseeId,
'SessionId': SessionId
});
getTypeName() => "SaveProject";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'production_eros_platform_apisubscription.azurewebsites.net', types: <String, TypeInfo> {
'RuleValidationResult': TypeInfo(TypeOf.Class, create:() => RuleValidationResult()),
'ValidationErrorList': TypeInfo(TypeOf.Class, create:() => ValidationErrorList()),
'List<RuleValidationResult>': TypeInfo(TypeOf.Class, create:() => <RuleValidationResult>[]),
'SubscriptionLinkContact': TypeInfo(TypeOf.Class, create:() => SubscriptionLinkContact()),
'LocationCoordinatesModel': TypeInfo(TypeOf.Class, create:() => LocationCoordinatesModel()),
'AddressModel': TypeInfo(TypeOf.Class, create:() => AddressModel()),
'SubscriptionObjectModel': TypeInfo(TypeOf.Class, create:() => SubscriptionObjectModel()),
'DimensionValueModel': TypeInfo(TypeOf.Class, create:() => DimensionValueModel()),
'SubscriptionCommonProjectModel': TypeInfo(TypeOf.Class, create:() => SubscriptionCommonProjectModel()),
'List<SubscriptionLinkContact>': TypeInfo(TypeOf.Class, create:() => <SubscriptionLinkContact>[]),
'List<DimensionValueModel>': TypeInfo(TypeOf.Class, create:() => <DimensionValueModel>[]),
'SaveProject': TypeInfo(TypeOf.Class, create:() => SaveProject()),
});
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /xml/reply/SaveProject HTTP/1.1
Host: production-eros-platform-apisubscription.azurewebsites.net
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<SaveProject xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Eros.Subtle.Canvara.WebAPIModel.ServiceModelSubscription">
<_x003C_ValidationErrors_x003E_k__BackingField xmlns="http://schemas.datacontract.org/2004/07/Eros.Saguna.Common.Library.ValidationEngine">
<RuleValidationResult>
<_x003C_ErrorCode_x003E_k__BackingField>String</_x003C_ErrorCode_x003E_k__BackingField>
<_x003C_Key_x003E_k__BackingField>String</_x003C_Key_x003E_k__BackingField>
<_x003C_Message_x003E_k__BackingField>String</_x003C_Message_x003E_k__BackingField>
<_x003C_RuleCode_x003E_k__BackingField>String</_x003C_RuleCode_x003E_k__BackingField>
<_x003C_Tag_x003E_k__BackingField>String</_x003C_Tag_x003E_k__BackingField>
</RuleValidationResult>
</_x003C_ValidationErrors_x003E_k__BackingField>
<_x003C_AlternateKey_x003E_k__BackingField>String</_x003C_AlternateKey_x003E_k__BackingField>
<_x003C_IgnoreHash_x003E_k__BackingField>false</_x003C_IgnoreHash_x003E_k__BackingField>
<_x003C_LicenseeId_x003E_k__BackingField>00000000-0000-0000-0000-000000000000</_x003C_LicenseeId_x003E_k__BackingField>
<_x003C_ObjectId_x003E_k__BackingField>00000000-0000-0000-0000-000000000000</_x003C_ObjectId_x003E_k__BackingField>
<_x003C_Project_x003E_k__BackingField xmlns:d2p1="http://schemas.datacontract.org/2004/07/Eros.Saguna.Common.WebAPI.ServiceModel">
<d2p1:_x003C_Calendars_x003E_k__BackingField xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:guid>00000000-0000-0000-0000-000000000000</d3p1:guid>
</d2p1:_x003C_Calendars_x003E_k__BackingField>
<d2p1:_x003C_CustomerContactGroup_x003E_k__BackingField>
<d2p1:_x003C_AlternateKey_x003E_k__BackingField>String</d2p1:_x003C_AlternateKey_x003E_k__BackingField>
<d2p1:_x003C_ObjectId_x003E_k__BackingField>00000000-0000-0000-0000-000000000000</d2p1:_x003C_ObjectId_x003E_k__BackingField>
<d2p1:_x003C_RmsTableCtxId_x003E_k__BackingField>00000000-0000-0000-0000-000000000000</d2p1:_x003C_RmsTableCtxId_x003E_k__BackingField>
<d2p1:_x003C_SuiteDataSourceInstanceId_x003E_k__BackingField>00000000-0000-0000-0000-000000000000</d2p1:_x003C_SuiteDataSourceInstanceId_x003E_k__BackingField>
</d2p1:_x003C_CustomerContactGroup_x003E_k__BackingField>
<d2p1:_x003C_Description_x003E_k__BackingField>String</d2p1:_x003C_Description_x003E_k__BackingField>
<d2p1:_x003C_DimensionValues_x003E_k__BackingField xmlns:d3p1="http://schemas.datacontract.org/2004/07/Eros.Saguna.Common.WebAPIModel.Models">
<d3p1:DimensionValueModel>
<d3p1:_x003C_Description_x003E_k__BackingField>String</d3p1:_x003C_Description_x003E_k__BackingField>
<d3p1:_x003C_DimensionId_x003E_k__BackingField>00000000-0000-0000-0000-000000000000</d3p1:_x003C_DimensionId_x003E_k__BackingField>
<d3p1:_x003C_DimensionValueId_x003E_k__BackingField>00000000-0000-0000-0000-000000000000</d3p1:_x003C_DimensionValueId_x003E_k__BackingField>
<d3p1:_x003C_Name_x003E_k__BackingField>String</d3p1:_x003C_Name_x003E_k__BackingField>
<d3p1:_x003C_ObjectConnectionId_x003E_k__BackingField>00000000-0000-0000-0000-000000000000</d3p1:_x003C_ObjectConnectionId_x003E_k__BackingField>
<d3p1:_x003C_OwnerContactId_x003E_k__BackingField>00000000-0000-0000-0000-000000000000</d3p1:_x003C_OwnerContactId_x003E_k__BackingField>
<d3p1:_x003C_RecordStatus_x003E_k__BackingField>String</d3p1:_x003C_RecordStatus_x003E_k__BackingField>
<d3p1:_x003C_ShortName_x003E_k__BackingField>String</d3p1:_x003C_ShortName_x003E_k__BackingField>
<d3p1:_x003C_TrafficLightColour_x003E_k__BackingField>String</d3p1:_x003C_TrafficLightColour_x003E_k__BackingField>
<d3p1:_x003C_TrafficLightId_x003E_k__BackingField>00000000-0000-0000-0000-000000000000</d3p1:_x003C_TrafficLightId_x003E_k__BackingField>
</d3p1:DimensionValueModel>
</d2p1:_x003C_DimensionValues_x003E_k__BackingField>
<d2p1:_x003C_DocumentSiteId_x003E_k__BackingField>00000000-0000-0000-0000-000000000000</d2p1:_x003C_DocumentSiteId_x003E_k__BackingField>
<d2p1:_x003C_DocumentableObjectConnection_x003E_k__BackingField>0</d2p1:_x003C_DocumentableObjectConnection_x003E_k__BackingField>
<d2p1:_x003C_DynamicContent_x003E_k__BackingField>String</d2p1:_x003C_DynamicContent_x003E_k__BackingField>
<d2p1:_x003C_GroupName_x003E_k__BackingField>String</d2p1:_x003C_GroupName_x003E_k__BackingField>
<d2p1:_x003C_Name_x003E_k__BackingField>String</d2p1:_x003C_Name_x003E_k__BackingField>
<d2p1:_x003C_ObjectHash_x003E_k__BackingField>String</d2p1:_x003C_ObjectHash_x003E_k__BackingField>
<d2p1:_x003C_ObjectSubscriptionId_x003E_k__BackingField>00000000-0000-0000-0000-000000000000</d2p1:_x003C_ObjectSubscriptionId_x003E_k__BackingField>
<d2p1:_x003C_PrimaryProjectImageId_x003E_k__BackingField>00000000-0000-0000-0000-000000000000</d2p1:_x003C_PrimaryProjectImageId_x003E_k__BackingField>
<d2p1:_x003C_PrimaryProjectPhotoHeight_x003E_k__BackingField>0</d2p1:_x003C_PrimaryProjectPhotoHeight_x003E_k__BackingField>
<d2p1:_x003C_PrimaryProjectPhotoUrl_x003E_k__BackingField>String</d2p1:_x003C_PrimaryProjectPhotoUrl_x003E_k__BackingField>
<d2p1:_x003C_PrimaryProjectPhotoWidth_x003E_k__BackingField>0</d2p1:_x003C_PrimaryProjectPhotoWidth_x003E_k__BackingField>
<d2p1:_x003C_PrimaryProjectThumbnailUrl_x003E_k__BackingField>String</d2p1:_x003C_PrimaryProjectThumbnailUrl_x003E_k__BackingField>
<d2p1:_x003C_ProjectAddress_x003E_k__BackingField>
<d2p1:_addressFull>String</d2p1:_addressFull>
<d2p1:_x003C_AddressFormatId_x003E_k__BackingField>00000000-0000-0000-0000-000000000000</d2p1:_x003C_AddressFormatId_x003E_k__BackingField>
<d2p1:_x003C_AddressLineOne_x003E_k__BackingField>String</d2p1:_x003C_AddressLineOne_x003E_k__BackingField>
<d2p1:_x003C_AddressLineTwo_x003E_k__BackingField>String</d2p1:_x003C_AddressLineTwo_x003E_k__BackingField>
<d2p1:_x003C_AutoMapCoordinates_x003E_k__BackingField>false</d2p1:_x003C_AutoMapCoordinates_x003E_k__BackingField>
<d2p1:_x003C_BuildingNumber_x003E_k__BackingField>String</d2p1:_x003C_BuildingNumber_x003E_k__BackingField>
<d2p1:_x003C_CountryId_x003E_k__BackingField>00000000-0000-0000-0000-000000000000</d2p1:_x003C_CountryId_x003E_k__BackingField>
<d2p1:_x003C_CountryName_x003E_k__BackingField>String</d2p1:_x003C_CountryName_x003E_k__BackingField>
<d2p1:_x003C_DistanceAway_x003E_k__BackingField>0</d2p1:_x003C_DistanceAway_x003E_k__BackingField>
<d2p1:_x003C_ISOCountryCode_x003E_k__BackingField>String</d2p1:_x003C_ISOCountryCode_x003E_k__BackingField>
<d2p1:_x003C_IsPhysical_x003E_k__BackingField>false</d2p1:_x003C_IsPhysical_x003E_k__BackingField>
<d2p1:_x003C_Latitude_x003E_k__BackingField>0</d2p1:_x003C_Latitude_x003E_k__BackingField>
<d2p1:_x003C_LocationCoordinates_x003E_k__BackingField>
<d2p1:_x003C_Accuracy_x003E_k__BackingField>0</d2p1:_x003C_Accuracy_x003E_k__BackingField>
<d2p1:_x003C_AltitudeAccuracy_x003E_k__BackingField>0</d2p1:_x003C_AltitudeAccuracy_x003E_k__BackingField>
<d2p1:_x003C_Altitude_x003E_k__BackingField>0</d2p1:_x003C_Altitude_x003E_k__BackingField>
<d2p1:_x003C_Heading_x003E_k__BackingField>0</d2p1:_x003C_Heading_x003E_k__BackingField>
<d2p1:_x003C_Latitude_x003E_k__BackingField>0</d2p1:_x003C_Latitude_x003E_k__BackingField>
<d2p1:_x003C_Longitude_x003E_k__BackingField>0</d2p1:_x003C_Longitude_x003E_k__BackingField>
<d2p1:_x003C_Speed_x003E_k__BackingField>0</d2p1:_x003C_Speed_x003E_k__BackingField>
<d2p1:_x003C_VerticalSpeed_x003E_k__BackingField>0</d2p1:_x003C_VerticalSpeed_x003E_k__BackingField>
</d2p1:_x003C_LocationCoordinates_x003E_k__BackingField>
<d2p1:_x003C_Longitude_x003E_k__BackingField>0</d2p1:_x003C_Longitude_x003E_k__BackingField>
<d2p1:_x003C_LotNumber_x003E_k__BackingField>String</d2p1:_x003C_LotNumber_x003E_k__BackingField>
<d2p1:_x003C_Notes_x003E_k__BackingField>String</d2p1:_x003C_Notes_x003E_k__BackingField>
<d2p1:_x003C_PostCode_x003E_k__BackingField>String</d2p1:_x003C_PostCode_x003E_k__BackingField>
<d2p1:_x003C_StateShortName_x003E_k__BackingField>String</d2p1:_x003C_StateShortName_x003E_k__BackingField>
<d2p1:_x003C_StreetName_x003E_k__BackingField>String</d2p1:_x003C_StreetName_x003E_k__BackingField>
<d2p1:_x003C_StreetNumber_x003E_k__BackingField>String</d2p1:_x003C_StreetNumber_x003E_k__BackingField>
<d2p1:_x003C_SubUnit_x003E_k__BackingField>String</d2p1:_x003C_SubUnit_x003E_k__BackingField>
<d2p1:_x003C_SuburbId_x003E_k__BackingField>00000000-0000-0000-0000-000000000000</d2p1:_x003C_SuburbId_x003E_k__BackingField>
<d2p1:_x003C_SuburbName_x003E_k__BackingField>String</d2p1:_x003C_SuburbName_x003E_k__BackingField>
</d2p1:_x003C_ProjectAddress_x003E_k__BackingField>
<d2p1:_x003C_ProjectContacts_x003E_k__BackingField>
<d2p1:SubscriptionLinkContact>
<d2p1:_x003C_ContactAlternateKey_x003E_k__BackingField>String</d2p1:_x003C_ContactAlternateKey_x003E_k__BackingField>
<d2p1:_x003C_ContactId_x003E_k__BackingField>00000000-0000-0000-0000-000000000000</d2p1:_x003C_ContactId_x003E_k__BackingField>
<d2p1:_x003C_RoleAlternateKey_x003E_k__BackingField>String</d2p1:_x003C_RoleAlternateKey_x003E_k__BackingField>
<d2p1:_x003C_RoleId_x003E_k__BackingField>00000000-0000-0000-0000-000000000000</d2p1:_x003C_RoleId_x003E_k__BackingField>
</d2p1:SubscriptionLinkContact>
</d2p1:_x003C_ProjectContacts_x003E_k__BackingField>
<d2p1:_x003C_Reference_x003E_k__BackingField>String</d2p1:_x003C_Reference_x003E_k__BackingField>
<d2p1:_x003C_StageName_x003E_k__BackingField>String</d2p1:_x003C_StageName_x003E_k__BackingField>
</_x003C_Project_x003E_k__BackingField>
<_x003C_SessionId_x003E_k__BackingField>00000000-0000-0000-0000-000000000000</_x003C_SessionId_x003E_k__BackingField>
<_x003C_SuiteDataSourceInstanceId_x003E_k__BackingField>00000000-0000-0000-0000-000000000000</_x003C_SuiteDataSourceInstanceId_x003E_k__BackingField>
</SaveProject>
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <ResponseStatus xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.servicestack.net/types"> <ErrorCode>String</ErrorCode> <Message>String</Message> <StackTrace>String</StackTrace> <Errors> <ResponseError> <ErrorCode>String</ErrorCode> <FieldName>String</FieldName> <Message>String</Message> <Meta xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d4p1:KeyValueOfstringstring> <d4p1:Key>String</d4p1:Key> <d4p1:Value>String</d4p1:Value> </d4p1:KeyValueOfstringstring> </Meta> </ResponseError> </Errors> <Meta xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d2p1:KeyValueOfstringstring> <d2p1:Key>String</d2p1:Key> <d2p1:Value>String</d2p1:Value> </d2p1:KeyValueOfstringstring> </Meta> </ResponseStatus>