Platform Subscription API

<back to all web services

GetContacts

Returns a list of contacts with specified roles. There are options to include custom and also to include each contacts connected contacts

Requires Authentication
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

    [<AllowNullLiteral>]
    type ContactRole() = 
        ///<summary>
        ///Guid of the Role List Item object within Eros.
        ///</summary>
        [<ApiMember(DataType="Guid", Description="Guid of the Role List Item object within Eros.", IsRequired=true, Name="RoleId", ParameterType="query")>]
        member val RoleId:Guid = new Guid() with get,set

        ///<summary>
        ///The unique key that represents the role type on the external system.
        ///</summary>
        [<ApiMember(DataType="string", Description="The unique key that represents the role type on the external system.", Name="AlternateKey", ParameterType="query")>]
        member val AlternateKey:String = null with get,set

    [<AllowNullLiteral>]
    type LocationCoordinatesModel() = 
        ///<summary>
        ///The latitude of an address - geographic coordinates specifying the north-south position of a point on the Earth's surface.
        ///</summary>
        [<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")>]
        member val Latitude:Double = new Double() with get,set

        ///<summary>
        ///The longitude of an address - geographic coordinates specifying the east-west position of a point on the Earth's surface.
        ///</summary>
        [<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")>]
        member val Longitude:Double = new Double() with get,set

        ///<summary>
        ///The altitude of an address - the altitude above sea level.
        ///</summary>
        [<ApiMember(DataType="Double?", Description="The altitude of an address - the altitude above sea level.", Name="Altitude", ParameterType="query")>]
        member val Altitude:Nullable<Double> = new Nullable<Double>() with get,set

        ///<summary>
        ///Accuracy of the latitude and longitude.
        ///</summary>
        [<ApiMember(DataType="Double?", Description="Accuracy of the latitude and longitude.", Name="Accuracy", ParameterType="query")>]
        member val Accuracy:Nullable<Double> = new Nullable<Double>() with get,set

        ///<summary>
        ///Accurancy of the Altitude.
        ///</summary>
        [<ApiMember(DataType="Double?", Description="Accurancy of the Altitude.", Name="AltitudeAccuracy", ParameterType="query")>]
        member val AltitudeAccuracy:Nullable<Double> = new Nullable<Double>() with get,set

        ///<summary>
        ///Direction you are heading.
        ///</summary>
        [<ApiMember(DataType="Double?", Description="Direction you are heading.", Name="Heading", ParameterType="query")>]
        member val Heading:Nullable<Double> = new Nullable<Double>() with get,set

        ///<summary>
        ///Speed you are going.
        ///</summary>
        [<ApiMember(DataType="Double?", Description="Speed you are going.", Name="Speed", ParameterType="query")>]
        member val Speed:Nullable<Double> = new Nullable<Double>() with get,set

        ///<summary>
        ///Speed your altitude is ascending/descending at.
        ///</summary>
        [<ApiMember(DataType="Double?", Description="Speed your altitude is ascending/descending at.", Name="VerticalSpeed", ParameterType="query")>]
        member val VerticalSpeed:Nullable<Double> = new Nullable<Double>() with get,set

    [<AllowNullLiteral>]
    type AddressModel() = 
        ///<summary>
        ///The distance between this project and another specified set of gps coordinates.
        ///</summary>
        [<ApiMember(DataType="double", Description="The distance between this project and another specified set of gps coordinates.", Name="DistanceAway", ParameterType="query")>]
        member val DistanceAway:Double = new Double() with get,set

        ///<summary>
        ///The latitude of an address - geographic coordinates specifying the north-south position of a point on the Earth's surface.
        ///</summary>
        [<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")>]
        member val Latitude:Double = new Double() with get,set

        ///<summary>
        ///The longitude of an address - geographic coordinates specifying the east-west position of a point on the Earth's surface.
        ///</summary>
        [<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")>]
        member val Longitude:Double = new Double() with get,set

        ///<summary>
        ///Address Format Id Guid - this will be determined by the service.
        ///</summary>
        [<ApiMember(DataType="Guid", Description="Address Format Id Guid - this will be determined by the service.", Name="AddressFormatId", ParameterType="query")>]
        member val AddressFormatId:Guid = new Guid() with get,set

        ///<summary>
        ///Suburb Id Guid - this will attempt to be determined by the SuburbName, StateShortName and Postcode entered.
        ///</summary>
        [<ApiMember(DataType="Guid", Description="Suburb Id Guid - this will attempt to be determined by the SuburbName, StateShortName and Postcode entered.", Name="SuburbId", ParameterType="query")>]
        member val SuburbId:Guid = new Guid() with get,set

        ///<summary>
        ///The suburb name.
        ///</summary>
        [<ApiMember(DataType="string", Description="The suburb name.", Name="SuburbName", ParameterType="query")>]
        member val SuburbName:String = null with get,set

        ///<summary>
        ///The shortened State Name e.g Vic for Victoria.
        ///</summary>
        [<ApiMember(DataType="string", Description="The shortened State Name e.g Vic for Victoria.", Name="StateShortName", ParameterType="query")>]
        member val StateShortName:String = null with get,set

        ///<summary>
        ///The suburb postcode.
        ///</summary>
        [<ApiMember(DataType="string", Description="The suburb postcode.", Name="PostCode", ParameterType="query")>]
        member val PostCode:String = null with get,set

        ///<summary>
        ///Country Id Guid - this will be determined by the CountrName or ISOCountryCode entered.
        ///</summary>
        [<ApiMember(DataType="Guid", Description="Country Id Guid - this will be determined by the CountrName or ISOCountryCode entered.", Name="CountryId", ParameterType="query")>]
        member val CountryId:Guid = new Guid() with get,set

        ///<summary>
        ///the name of the country the address is within.
        ///</summary>
        [<ApiMember(DataType="string", Description="the name of the country the address is within.", Name="CountryName", ParameterType="query")>]
        member val CountryName:String = null with get,set

        ///<summary>
        ///A 2 digit ISO Country Code representing the country.
        ///</summary>
        [<ApiMember(DataType="string", Description="A 2 digit ISO Country Code representing the country.", Name="ISOCountryCode", ParameterType="query")>]
        member val ISOCountryCode:String = null with get,set

        ///<summary>
        ///The address Lot number.
        ///</summary>
        [<ApiMember(DataType="string", Description="The address Lot number.", Name="LotNumber", ParameterType="query")>]
        member val LotNumber:String = null with get,set

        ///<summary>
        ///The address Sub Unit number.
        ///</summary>
        [<ApiMember(DataType="string", Description="The address Sub Unit number.", Name="SubUnit", ParameterType="query")>]
        member val SubUnit:String = null with get,set

        ///<summary>
        ///The address building number.
        ///</summary>
        [<ApiMember(DataType="string", Description="The address building number.", Name="BuildingNumber", ParameterType="query")>]
        member val BuildingNumber:String = null with get,set

        ///<summary>
        ///The address street number.
        ///</summary>
        [<ApiMember(DataType="string", Description="The address street number.", Name="StreetNumber", ParameterType="query")>]
        member val StreetNumber:String = null with get,set

        ///<summary>
        ///The address street name including street type.
        ///</summary>
        [<ApiMember(DataType="string", Description="The address street name including street type.", Name="StreetName", ParameterType="query")>]
        member val StreetName:String = null with get,set

        ///<summary>
        ///A formatted address Line 1.
        ///</summary>
        [<ApiMember(DataType="string", Description="A formatted address Line 1.", Name="AddressLineOne", ParameterType="query")>]
        member val AddressLineOne:String = null with get,set

        ///<summary>
        ///A formatted address Line 2.
        ///</summary>
        [<ApiMember(DataType="string", Description="A formatted address Line 2.", Name="AddressLineTwo", ParameterType="query")>]
        member val AddressLineTwo:String = null with get,set

        ///<summary>
        ///The full address string.
        ///</summary>
        [<ApiMember(DataType="string", Description="The full address string.", Name="AddressFull", ParameterType="query")>]
        member val AddressFull:String = null with get,set

        ///<summary>
        ///True if the address is a physical location.
        ///</summary>
        [<ApiMember(DataType="bool?", Description="True if the address is a physical location.", Name="IsPhysical", ParameterType="query")>]
        member val IsPhysical:Nullable<Boolean> = new Nullable<Boolean>() with get,set

        ///<summary>
        ///Notes about the address.
        ///</summary>
        [<ApiMember(DataType="string", Description="Notes about the address.", Name="Notes", ParameterType="query")>]
        member val Notes:String = null with get,set

        ///<summary>
        ///If true, the address is eligible for having its coordinates calculated/updated.
        ///</summary>
        [<ApiMember(DataType="bool?", Description="If true, the address is eligible for having its coordinates calculated/updated.", Name="AutoMapCoordinates", ParameterType="query")>]
        member val AutoMapCoordinates:Nullable<Boolean> = new Nullable<Boolean>() with get,set

        ///<summary>
        ///Location Coordinates for the address.
        ///</summary>
        [<ApiMember(DataType="LocationCoordinates", Description="Location Coordinates for the address.", Name="LocationCoordinates", ParameterType="query")>]
        member val LocationCoordinates:LocationCoordinatesModel = null with get,set

    [<AllowNullLiteral>]
    type ContactAddressModel() = 
        member val Address:AddressModel = null with get,set
        member val IsPostal:Boolean = new Boolean() with get,set
        member val IsPrimaryLocation:Boolean = new Boolean() with get,set
        member val IsRegisteredLocation:Boolean = new Boolean() with get,set
        member val SuburbName:String = null with get,set
        member val StateName:String = null with get,set
        member val CountryName:String = null with get,set

    [<AllowNullLiteral>]
    type PhoneModel() = 
        member val CountryCode:String = null with get,set
        member val AreaCode:String = null with get,set
        member val LocalNumber:String = null with get,set

    [<AllowNullLiteral>]
    type ContactDetailModel() = 
        member val ContactMethodId:Guid = new Guid() with get,set
        member val ContactMethodName:String = null with get,set
        member val ContactAddress:ContactAddressModel = null with get,set
        member val ContactPhone:PhoneModel = null with get,set
        member val CountryId:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val ContactDetails:String = null with get,set
        member val Notes:String = null with get,set
        member val ContactDetailsCode:String = null with get,set
        member val OrderContactMethod:Int32 = new Int32() with get,set
        member val IsPrimaryContactMethod:Boolean = new Boolean() with get,set
        member val IsAddress:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type SubscriptionContactModel() = 
        ///<summary>
        ///Guid of the contact object within Eros.
        ///</summary>
        [<ApiMember(DataType="Guid", Description="Guid of the contact object within Eros.", Name="ContactId", ParameterType="query")>]
        member val ContactId:Guid = new Guid() with get,set

        ///<summary>
        ///Guid of the Contact Type List Item object within Eros.
        ///</summary>
        [<ApiMember(DataType="Guid", Description="Guid of the Contact Type List Item object within Eros.", IsRequired=true, Name="ContactType", ParameterType="query")>]
        member val ContactType:Guid = new Guid() with get,set

        ///<summary>
        ///Guid of the Marital Status List Item object within Eros.
        ///</summary>
        [<ApiMember(DataType="Guid?", Description="Guid of the Marital Status List Item object within Eros.", Name="MaritalStatus", ParameterType="query")>]
        member val MaritalStatus:Nullable<Guid> = new Nullable<Guid>() with get,set

        ///<summary>
        ///Guid of the Gender List Item object within Eros.
        ///</summary>
        [<ApiMember(DataType="Guid?", Description="Guid of the Gender List Item object within Eros.", Name="Gender", ParameterType="query")>]
        member val Gender:Nullable<Guid> = new Nullable<Guid>() with get,set

        ///<summary>
        ///The first given name for the contact.  Applies to a person contact type.
        ///</summary>
        [<ApiMember(DataType="string", Description="The first given name for the contact.  Applies to a person contact type.", Name="FirstName", ParameterType="query")>]
        member val FirstName:String = null with get,set

        ///<summary>
        ///The middle name(s) for the contact.  Applies to a person contact type.
        ///</summary>
        [<ApiMember(DataType="string", Description="The middle name(s) for the contact.  Applies to a person contact type.", Name="MiddleName", ParameterType="query")>]
        member val MiddleName:String = null with get,set

        ///<summary>
        ///The surname for the contact.  Applies to a person contact type.
        ///</summary>
        [<ApiMember(DataType="string", Description="The surname for the contact.  Applies to a person contact type.", Name="Surname", ParameterType="query")>]
        member val Surname:String = null with get,set

        ///<summary>
        ///The full name for the contact.
        ///</summary>
        [<ApiMember(DataType="string", Description="The full name for the contact.", Name="FullName", ParameterType="query")>]
        member val FullName:String = null with get,set

        ///<summary>
        ///A short name for the contact.
        ///</summary>
        [<ApiMember(DataType="string", Description="A short name for the contact.", Name="ShortName", ParameterType="query")>]
        member val ShortName:String = null with get,set

        ///<summary>
        ///The birth date for the contact.  Applies to a person contact type.
        ///</summary>
        [<ApiMember(DataType="DateTime?", Description="The birth date for the contact.  Applies to a person contact type.", Name="BirthDate", ParameterType="query")>]
        member val BirthDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        ///<summary>
        ///The title for the contact.  Applies to a person contact type.
        ///</summary>
        [<ApiMember(DataType="string", Description="The title for the contact.  Applies to a person contact type.", Name="Title", ParameterType="query")>]
        member val Title:String = null with get,set

        ///<summary>
        ///A salutation for the contact.
        ///</summary>
        [<ApiMember(DataType="string", Description="A salutation for the contact.", Name="Salutation", ParameterType="query")>]
        member val Salutation:String = null with get,set

        ///<summary>
        ///The A.B.N for the contact.
        ///</summary>
        [<ApiMember(DataType="string", Description="The A.B.N for the contact.", Name="Abn", ParameterType="query")>]
        member val Abn:String = null with get,set

        ///<summary>
        ///The A.C.N for the contact.
        ///</summary>
        [<ApiMember(DataType="string", Description="The A.C.N for the contact.", Name="Acn", ParameterType="query")>]
        member val Acn:String = null with get,set

        ///<summary>
        ///The A.R.B.N for the contact.
        ///</summary>
        [<ApiMember(DataType="string", Description="The A.R.B.N for the contact.", Name="Arbn", ParameterType="query")>]
        member val Arbn:String = null with get,set

        ///<summary>
        ///A trading name for the contact.
        ///</summary>
        [<ApiMember(DataType="string", Description="A trading name for the contact.", Name="TradingName", ParameterType="query")>]
        member val TradingName:String = null with get,set

        ///<summary>
        ///A legal name for the contact.
        ///</summary>
        [<ApiMember(DataType="string", Description="A legal name for the contact.", Name="LegalName", ParameterType="query")>]
        member val LegalName:String = null with get,set

        ///<summary>
        ///Any notes/description for the contact.
        ///</summary>
        [<ApiMember(DataType="string", Description="Any notes/description for the contact.", Name="Notes", ParameterType="query")>]
        member val Notes:String = null with get,set

        ///<summary>
        ///Contact Employment Industry.
        ///</summary>
        [<ApiMember(DataType="string", Description="Contact Employment Industry.", Name="EmploymentIndustry", ParameterType="query")>]
        member val EmploymentIndustry:String = null with get,set

        ///<summary>
        ///Contact Employment Role.
        ///</summary>
        [<ApiMember(DataType="string", Description="Contact Employment Role.", Name="EmploymentRole", ParameterType="query")>]
        member val EmploymentRole:String = null with get,set

        ///<summary>
        ///Contact Employment Geographic Area.
        ///</summary>
        [<ApiMember(DataType="string", Description="Contact Employment Geographic Area.", Name="EmploymentGeographicArea", ParameterType="query")>]
        member val EmploymentGeographicArea:String = null with get,set

        ///<summary>
        ///The Contacts Drivers Licence Number
        ///</summary>
        [<ApiMember(DataType="string", Description="The Contacts Drivers Licence Number", Name="DriversLicence", ParameterType="query")>]
        member val DriversLicence:String = null with get,set

        ///<summary>
        ///Indicates if the Contact is registered for GST
        ///</summary>
        [<ApiMember(DataType="bool", Description="Indicates if the Contact is registered for GST", Name="GstRegistered", ParameterType="query")>]
        member val GstRegistered:Boolean = new Boolean() with get,set

        ///<summary>
        ///The status of the contact in EROS
        ///</summary>
        [<ApiMember(DataType="string", Description="The status of the contact in EROS", Name="RecordStatus", ParameterType="query")>]
        member val RecordStatus:String = null with get,set

        ///<summary>
        ///A list of roles this contact has.
        ///</summary>
        [<ApiMember(DataType="List<ContactRole>", Description="A list of roles this contact has.", IsRequired=true, Name="ContactRoles", ParameterType="query")>]
        member val ContactRoles:ResizeArray<ContactRole> = null with get,set

        ///<summary>
        ///A list of the contact details for the contact.
        ///</summary>
        [<ApiMember(DataType="List<ContactDetailModel>", Description="A list of the contact details for the contact.", IsRequired=true, Name="ContactDetails", ParameterType="query")>]
        member val ContactDetails:ResizeArray<ContactDetailModel> = null with get,set

        ///<summary>
        ///Custom Content XML for the contact.
        ///</summary>
        [<ApiMember(DataType="string", Description="Custom Content XML for the contact.", Name="CustomContentXML", ParameterType="query")>]
        member val CustomContentXML:String = null with get,set

        member val BlobImageURLPrimary:String = null with get,set
        member val BlobImageURLPrimaryThumbnail:String = null with get,set
        ///<summary>
        ///The primary mobile for the contact.
        ///</summary>
        [<ApiMember(DataType="string", Description="The primary mobile for the contact.", Name="PrimaryMobile", ParameterType="query")>]
        member val PrimaryMobile:String = null with get,set

        ///<summary>
        ///The primary email for the contact.
        ///</summary>
        [<ApiMember(DataType="string", Description="The primary email for the contact.", Name="PrimaryEmail", ParameterType="query")>]
        member val PrimaryEmail:String = null with get,set

    [<AllowNullLiteral>]
    type ContactsStaff() = 
        member val ContactId:Guid = new Guid() with get,set
        member val ContactStaffId:Guid = new Guid() with get,set

    [<AllowNullLiteral>]
    type GetContactsModel() = 
        ///<summary>
        ///List of Contacts with details.
        ///</summary>
        [<ApiMember(DataType="string", Description="List of Contacts with details.", IsRequired=true, Name="Contacts", ParameterType="query")>]
        member val Contacts:IList<SubscriptionContactModel> = null with get,set

        ///<summary>
        ///List of contact-staff details.
        ///</summary>
        [<ApiMember(DataType="string", Description="List of contact-staff details.", IsRequired=true, Name="ContactStaff", ParameterType="query")>]
        member val ContactStaff:IList<ContactsStaff> = null with get,set

    ///<summary>
    ///Returns a list of contacts with specified roles.  There are options to include custom and also to include each contacts connected contacts
    ///</summary>
    [<Api(Description="Returns a list of contacts with specified roles.  There are options to include custom and also to include each contacts connected contacts")>]
    [<AllowNullLiteral>]
    type GetContacts() = 
        ///<summary>
        ///Guid representing the external system datasource requesting the contact information. This is required to return any existing object subscription details for each contact.
        ///</summary>
        [<ApiMember(DataType="Guid", Description="Guid representing the external system datasource requesting the contact information. This is required to return any existing object subscription details for each contact.", IsRequired=true, Name="SuiteDataSourceInstanceId", ParameterType="query")>]
        member val SuiteDataSourceInstanceId:Guid = new Guid() with get,set

        ///<summary>
        ///A list of 1 or more roles that a contact must have in order to be returned. (Roles are treated as OR not AND, ie a contact may have one or the other to be returned, but not necessarily both)
        ///</summary>
        [<ApiMember(DataType="List<Guid>", Description="A list of 1 or more roles that a contact must have in order to be returned. (Roles are treated as OR not AND, ie a contact may have one or the other to be returned, but not necessarily both)", IsRequired=true, Name="ContactRoles", ParameterType="query")>]
        member val ContactRoles:ResizeArray<Guid> = null with get,set

        ///<summary>
        ///A list of contact types that we want returned. If no contact types are specified all 4 major contact types are eligible to be returned. (organisation/person - real/virtual)
        ///</summary>
        [<ApiMember(DataType="List<Guid>", Description="A list of contact types that we want returned. If no contact types are specified all 4 major contact types are eligible to be returned. (organisation/person - real/virtual)", Name="ContactTypes", ParameterType="query")>]
        member val ContactTypes:ResizeArray<Guid> = null with get,set

        ///<summary>
        ///Set to true if you want to include the any linked staff for each contact.
        ///</summary>
        [<ApiMember(DataType="bool", Description="Set to true if you want to include the any linked staff for each contact.", IsRequired=true, Name="IncludeStaff", ParameterType="query")>]
        member val IncludeStaff:Boolean = new Boolean() with get,set

        ///<summary>
        ///To include custom content then you need to specify the view Id of the content to include.
        ///</summary>
        [<ApiMember(DataType="Guid", Description="To include custom content then you need to specify the view Id of the content to include.", Name="CustomContentViewId", ParameterType="query")>]
        member val CustomContentViewId:Guid = new Guid() with get,set

        ///<summary>
        ///Set the date to return only contacts that have been modified since a particular date.
        ///</summary>
        [<ApiMember(DataType="DateTime", Description="Set the date to return only contacts that have been modified since a particular date.", Name="ModifiedSince", ParameterType="query")>]
        member val ModifiedSince:DateTime = new DateTime() with get,set

F# GetContacts DTOs

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

HTTP + OTHER

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /jsonl/reply/GetContacts HTTP/1.1 
Host: production-eros-platform-apisubscription.azurewebsites.net 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"ContactRoles":["00000000-0000-0000-0000-000000000000"],"ContactTypes":["00000000-0000-0000-0000-000000000000"],"IncludeStaff":false,"ModifiedSince":"0001-01-01T00:00:00.0000000"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{}