(* Options: Date: 2025-09-14 06:44:52 Version: 8.52 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://production-eros-platform-apisubscription.azurewebsites.net/api //GlobalNamespace: //MakeDataContractsExtensible: False //AddReturnMarker: True //AddDescriptionAsComments: True //AddDataContractAttributes: False //AddIndexesToDataMembers: False //AddGeneratedCodeAttributes: False //AddResponseStatus: False //AddImplicitVersion: //ExportValueTypes: False IncludeTypes: SaveProject.* //ExcludeTypes: //InitializeCollections: False //AddNamespaces: *) namespace Eros.Saguna.Common.WebAPI.ServiceModel open System open System.IO open System.Collections open System.Collections.Generic open System.Runtime.Serialization open ServiceStack open ServiceStack.DataAnnotations [] type RuleValidationResult() = member val RuleCode:String = null with get,set member val Message:String = null with get,set member val Key:String = null with get,set member val Tag:String = null with get,set member val ErrorCode:String = null with get,set [] type ValidationErrorList() = member val ValidationErrors:ResizeArray = null with get,set [] type ISubscription = abstract SuiteDataSourceInstanceId:Guid with get,set abstract ObjectId:Guid with get,set abstract AlternateKey:String with get,set abstract IgnoreValidation:Boolean with get,set [] type SubscriptionObjectModel() = /// ///Guid representing the external systems datasource information. /// [] member val SuiteDataSourceInstanceId:Guid = new Guid() with get,set /// ///The unique key that represents the object on the external system. /// [] member val AlternateKey:String = null with get,set /// ///Guid of the object within Eros. If ObjectId is known, the external system may pass this instead of the alternate key. /// [] member val ObjectId:Guid = new Guid() with get,set /// ///Guid of the RmsTableCtx within Eros. This is used if the alternate key is provided to identify the object to update. /// [] member val RmsTableCtxId:Guid = new Guid() with get,set /// ///Validation ensures that this object has a value in alternateKey or ObjectId, ignoring validation skips this requirement. /// [] member val IgnoreValidation:Boolean = new Boolean() with get,set [] type SubscriptionLinkContact() = /// ///Guid of the contact object within Eros. /// [] member val ContactId:Guid = new Guid() with get,set /// ///The unique key that represents the contact on the external system. /// [] member val ContactAlternateKey:String = null with get,set /// ///Guid of the Role List Item object within Eros. /// [] member val RoleId:Guid = new Guid() with get,set /// ///The unique key that represents the role type on the external system. Note: Use of this is not currently implemented /// [] member val RoleAlternateKey:String = null with get,set [] type LocationCoordinatesModel() = /// ///The latitude of an address - geographic coordinates specifying the north-south position of a point on the Earth's surface. /// [] member val Latitude:Double = new Double() with get,set /// ///The longitude of an address - geographic coordinates specifying the east-west position of a point on the Earth's surface. /// [] member val Longitude:Double = new Double() with get,set /// ///The altitude of an address - the altitude above sea level. /// [] member val Altitude:Nullable = new Nullable() with get,set /// ///Accuracy of the latitude and longitude. /// [] member val Accuracy:Nullable = new Nullable() with get,set /// ///Accurancy of the Altitude. /// [] member val AltitudeAccuracy:Nullable = new Nullable() with get,set /// ///Direction you are heading. /// [] member val Heading:Nullable = new Nullable() with get,set /// ///Speed you are going. /// [] member val Speed:Nullable = new Nullable() with get,set /// ///Speed your altitude is ascending/descending at. /// [] member val VerticalSpeed:Nullable = new Nullable() with get,set [] type AddressModel() = /// ///The distance between this project and another specified set of gps coordinates. /// [] member val DistanceAway:Double = new Double() with get,set /// ///The latitude of an address - geographic coordinates specifying the north-south position of a point on the Earth's surface. /// [] member val Latitude:Double = new Double() with get,set /// ///The longitude of an address - geographic coordinates specifying the east-west position of a point on the Earth's surface. /// [] member val Longitude:Double = new Double() with get,set /// ///Address Format Id Guid - this will be determined by the service. /// [] member val AddressFormatId:Guid = new Guid() with get,set /// ///Suburb Id Guid - this will attempt to be determined by the SuburbName, StateShortName and Postcode entered. /// [] member val SuburbId:Guid = new Guid() with get,set /// ///The suburb name. /// [] member val SuburbName:String = null with get,set /// ///The shortened State Name e.g Vic for Victoria. /// [] member val StateShortName:String = null with get,set /// ///The suburb postcode. /// [] member val PostCode:String = null with get,set /// ///Country Id Guid - this will be determined by the CountrName or ISOCountryCode entered. /// [] member val CountryId:Guid = new Guid() with get,set /// ///the name of the country the address is within. /// [] member val CountryName:String = null with get,set /// ///A 2 digit ISO Country Code representing the country. /// [] member val ISOCountryCode:String = null with get,set /// ///The address Lot number. /// [] member val LotNumber:String = null with get,set /// ///The address Sub Unit number. /// [] member val SubUnit:String = null with get,set /// ///The address building number. /// [] member val BuildingNumber:String = null with get,set /// ///The address street number. /// [] member val StreetNumber:String = null with get,set /// ///The address street name including street type. /// [] member val StreetName:String = null with get,set /// ///A formatted address Line 1. /// [] member val AddressLineOne:String = null with get,set /// ///A formatted address Line 2. /// [] member val AddressLineTwo:String = null with get,set /// ///The full address string. /// [] member val AddressFull:String = null with get,set /// ///True if the address is a physical location. /// [] member val IsPhysical:Nullable = new Nullable() with get,set /// ///Notes about the address. /// [] member val Notes:String = null with get,set /// ///If true, the address is eligible for having its coordinates calculated/updated. /// [] member val AutoMapCoordinates:Nullable = new Nullable() with get,set /// ///Location Coordinates for the address. /// [] member val LocationCoordinates:LocationCoordinatesModel = null with get,set [] type DimensionValueModel() = member val DimensionValueId:Guid = new Guid() with get,set member val DimensionId:Guid = new Guid() with get,set member val Name:String = null with get,set member val Description:String = null with get,set member val ShortName:String = null with get,set member val TrafficLightId:Guid = new Guid() with get,set member val TrafficLightColour:String = null with get,set member val ObjectConnectionId:Guid = new Guid() with get,set member val OwnerContactId:Guid = new Guid() with get,set member val RecordStatus:String = null with get,set [] type SubscriptionCommonProjectModel() = /// ///A reference number used for identifying the project in the external system. /// [] member val Reference:String = null with get,set /// ///A name for the project. /// [] member val Name:String = null with get,set /// ///A description for the project. /// [] member val Description:String = null with get,set /// ///A list of ProjectContact records that link contacts (and their role in the project) to the project. /// [", Description="A list of ProjectContact records that link contacts (and their role in the project) to the project.", Name="ProjectContacts", ParameterType="query")>] member val ProjectContacts:ResizeArray = null with get,set /// ///An address for the project. /// [] member val ProjectAddress:AddressModel = null with get,set /// ///A link to the Customer Contact Group. /// [] member val CustomerContactGroup:SubscriptionObjectModel = null with get,set /// ///Project Group Name. /// [] member val GroupName:String = null with get,set /// ///Stage Name. /// [] member val StageName:String = null with get,set /// ///Guid of the Media Object representing the projects primary image. /// [] member val PrimaryProjectImageId:Guid = new Guid() with get,set /// ///URL to the projects primary full image. /// [] member val PrimaryProjectPhotoUrl:String = null with get,set /// ///URL to the projects primary thumbnail image. /// [] member val PrimaryProjectThumbnailUrl:String = null with get,set /// ///Image height of the projects logo. /// [] member val PrimaryProjectPhotoHeight:Int32 = new Int32() with get,set /// ///Image height of the projects logo. /// [] member val PrimaryProjectPhotoWidth:Int32 = new Int32() with get,set /// ///Dynamically linked content. /// [] member val DynamicContent:String = null with get,set /// ///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. /// [] member val DocumentableObjectConnection:Char = new Char() with get,set /// ///Dimension values linked to the project. /// [", Description="Dimension values linked to the project.", Name="DimensionValues", ParameterType="query")>] member val DimensionValues:ResizeArray = null with get,set /// ///Dimension values linked to the project. /// [", Description="Dimension values linked to the project.", Name="Calendars", ParameterType="query")>] member val Calendars:ResizeArray = null with get,set /// ///The Document Site ID. /// [] member val DocumentSiteId:Nullable = new Nullable() with get,set member val ObjectSubscriptionId:Guid = new Guid() with get,set member val ObjectHash:String = null with get,set /// ///Inserts or Updates a project details and its contact connections and addresses. /// [] [] type SaveProject() = inherit ValidationErrorList() interface IReturn /// ///Guid representing the external systems datasource information. /// [] member val SuiteDataSourceInstanceId:Guid = new Guid() with get,set /// ///The unique key that represents the project on the external system. /// [] member val AlternateKey:String = null with get,set /// ///Guid of the project object within Eros. If ObjectId is known, the external system may pass this instead of the alternate key. /// [] member val ObjectId:Guid = new Guid() with get,set /// ///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. /// [] member val IgnoreHash:Boolean = new Boolean() with get,set member val IgnoreValidation:Boolean = new Boolean() with get,set /// ///Object containing all details of the project to be inserted or updated. /// [] member val Project:SubscriptionCommonProjectModel = null with get,set member val LicenseeId:Guid = new Guid() with get,set member val SessionId:Guid = new Guid() with get,set