Platform Subscription API

<back to all web services

SaveProject

Inserts or Updates a project details and its contact connections and addresses.

Requires Authentication
SaveProject Parameters:
NameParameterData TypeRequiredDescription
SuiteDataSourceInstanceIdbodyGuidYesGuid representing the external systems datasource information.
AlternateKeybodystringYesThe unique key that represents the project on the external system.
ObjectIdbodyGuidNoGuid of the project object within PSTPF. If ObjectId is known, the external system may pass this instead of the alternate key.
IgnoreHashqueryboolNoIf 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.
ProjectbodySubscriptionCommonProjectModelYesObject containing all details of the project to be inserted or updated.
LicenseeIdqueryGuidNo
SessionIdqueryGuidNo
ValidationErrorList Parameters:
NameParameterData TypeRequiredDescription
ValidationErrorsbodyList<RuleValidationResult>NoList of any validation/errors occuring during a method call
RuleValidationResult Parameters:
NameParameterData TypeRequiredDescription
MessagebodyGuidNoValidation/Error message details
KeybodyGuidNoSummary/label of validation/error
ErrorCodebodyGuidNoKey/code representing validation/error
SubscriptionCommonProjectModel Parameters:
NameParameterData TypeRequiredDescription
ReferencebodystringNoA reference number used for identifying the project in the external system.
NamebodystringYesA name for the project.
DescriptionbodystringYesA description for the project.
ProjectContactsbodyList<SubscriptionLinkContact>NoA list of ProjectContact records that link contacts (and their role in the project) to the project.
ProjectAddressbodyAddressModelNoAn address for the project.
CustomerContactGroupbodySubscriptionObjectModelNoA link to the Customer Contact Group.
GroupNamebodystringNoProject Group Name.
StageNamebodystringNoStage Name.
PrimaryProjectImageIdqueryGuidNoGuid of the Media Object representing the projects primary image.
PrimaryProjectPhotoUrlbodystringNoURL to the projects primary full image.
PrimaryProjectThumbnailUrlbodystringNoURL to the projects primary thumbnail image.
PrimaryProjectPhotoHeightbodyintNoImage height of the projects logo.
PrimaryProjectPhotoWidthbodyintNoImage height of the projects logo.
DynamicContentbodystringNoDynamically linked content.
DocumentableObjectConnectionbodycharNoIf 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.
DimensionValuesbodyList<DimensionValueModel>NoDimension values linked to the project.
CalendarsbodyList<Guid>NoDimension values linked to the project.
DocumentSiteIdbodyGuidNoThe Document Site ID.
ObjectSubscriptionIdformGuidNo
ObjectHashformstringNo
SubscriptionLinkContact Parameters:
NameParameterData TypeRequiredDescription
ContactIdbodyGuidNoGuid of the contact object within PSTPF.
ContactAlternateKeybodystringNoThe unique key that represents the contact on the external system.
RoleIdbodyGuidNoGuid of the Role List Item object within PSTPF.
RoleAlternateKeybodystringNoThe unique key that represents the role type on the external system. Note: Use of this is not currently implemented
AddressModel Parameters:
NameParameterData TypeRequiredDescription
DistanceAwaybodydoubleNoThe distance between this project and another specified set of gps coordinates.
LatitudebodyDouble?NoThe latitude of an address - geographic coordinates specifying the north-south position of a point on the Earth's surface.
LongitudebodyDouble?NoThe longitude of an address - geographic coordinates specifying the east-west position of a point on the Earth's surface.
AddressFormatIdbodyGuidNoAddress Format Id Guid - this will be determined by the service.
SuburbIdbodyGuidNoSuburb Id Guid - this will attempt to be determined by the SuburbName, StateShortName and Postcode entered.
SuburbNamebodystringNoThe suburb name.
StateShortNamebodystringNoThe shortened State Name e.g Vic for Victoria.
PostCodebodystringNoThe suburb postcode.
CountryIdbodyGuidNoCountry Id Guid - this will be determined by the CountrName or ISOCountryCode entered.
CountryNamebodystringNothe name of the country the address is within.
ISOCountryCodequerystringNoISO Country Code.
LotNumberbodystringNoThe address Lot number.
SubUnitbodystringNoThe address Sub Unit number.
BuildingNumberbodystringNoThe address building number.
StreetNumberbodystringNoThe address street number.
StreetNamebodystringNoThe address street name including street type.
AddressLineOnebodystringNoA formatted address Line 1.
AddressLineTwobodystringNoA formatted address Line 2.
AddressFullbodystringNoThe full address string.
IsPhysicalbodybool?NoTrue if the address is a physical location.
NotesformstringNoNotes about the address.
AutoMapCoordinatesbodybool?NoIf true, the address is eligible for having its coordinates calculated/updated.
LocationCoordinatesbodyLocationCoordinatesNoLocation Coordinates for the address.
LocationCoordinatesModel Parameters:
NameParameterData TypeRequiredDescription
LatitudequerydoubleNoThe latitude of an address - geographic coordinates specifying the north-south position of a point on the Earth's surface.
LongitudequerydoubleNoThe longitude of an address - geographic coordinates specifying the east-west position of a point on the Earth's surface.
Altitudequerydouble?NoThe altitude of an address - the altitude above sea level."
Accuracyquerydouble?NoAccuracy of the latitude and longitude.
AltitudeAccuracyquerydouble?NoAccurancy of the Altitude.
Headingquerydouble?NoDirection you are heading.
Speedquerydouble?NoSpeed you are going.
VerticalSpeedquerydouble?NoSpeed your altitude is ascending/descending at.
SubscriptionObjectModel Parameters:
NameParameterData TypeRequiredDescription
SuiteDataSourceInstanceIdbodyGuidYesGuid representing the external systems datasource information.
AlternateKeybodystringNoThe unique key that represents the object on the external system.
ObjectIdbodyGuidNoGuid of the object within PSTPF. If ObjectId is known, the external system may pass this instead of the alternate key.
RmsTableCtxIdbodyGuidNoGuid of the RmsTableCtx within PSTPF. This is used if the alternate key is provided to identify the object to update.
DimensionValueModel Parameters:
NameParameterData TypeRequiredDescription
DimensionValueIdbodyGuidNoId of the dimension value.
DimensionIdbodyGuidNoDimension Id this value is for.
NamebodystringNoName of the dimension value.
DescriptionbodystringNoDescription of the dimension value.
ShortNamebodystringNoShort Name for the dimension value.
TrafficLightIdbodyGuidNoId of the colour associated.
TrafficLightColourbodystringNoColour associated with the dimension value.
ObjectConnectionIdbodyGuidNoId that links this dimension value to an object.
OwnerContactIdbodyGuidNoOwner Id of the dimension value.
RecordStatusbodystringNoRecord status of the dimension value.

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

HTTP + 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>