Platform API

<back to all web services

GetContactRoleDetails

Get details of the specified contact role, including details of the contacts and organisations sharing it

Requires Authentication
The following routes are available for this service:
All Verbs/api/contactrole/{ContactRoleId}
namespace Eros.Subtle.Canvara.WebAPIModel.ServiceModel

open System
open System.IO
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    type SortOrder =
        | Ascending = 0
        | Descending = 1

    [<AllowNullLiteral>]
    type PagedModel() = 
        ///<summary>
        ///Page Number to retrieve
        ///</summary>
        [<ApiMember(DataType="int", Description="Page Number to retrieve", Name="PageNumber")>]
        member val PageNumber:Int32 = new Int32() with get,set

        ///<summary>
        ///Number of records to retrieve
        ///</summary>
        [<ApiMember(DataType="int", Description="Number of records to retrieve", Name="PageSize")>]
        member val PageSize:Int32 = new Int32() with get,set

        ///<summary>
        ///Index of field to sort results by
        ///</summary>
        [<ApiMember(DataType="int", Description="Index of field to sort results by", Name="SortIndex")>]
        member val SortIndex:Int32 = new Int32() with get,set

        ///<summary>
        ///Sort Order - Ascending or Descending
        ///</summary>
        [<ApiMember(DataType="int", Description="Sort Order - Ascending or Descending", Name="SortOrder")>]
        member val SortOrder:SortOrder = new SortOrder() with get,set

    [<AllowNullLiteral>]
    type UserProfileSummaryModel() = 
        ///<summary>
        ///User Profile Id
        ///</summary>
        [<ApiMember(DataType="Guid", Description="User Profile Id", Name="UserProfileId")>]
        member val UserProfileId:Guid = new Guid() with get,set

        ///<summary>
        ///User linked to the profile
        ///</summary>
        [<ApiMember(DataType="Guid", Description="User linked to the profile", Name="UserId")>]
        member val UserId:Guid = new Guid() with get,set

        ///<summary>
        ///Contact linked to the profile
        ///</summary>
        [<ApiMember(DataType="Guid", Description="Contact linked to the profile", Name="ContactId")>]
        member val ContactId:Guid = new Guid() with get,set

        ///<summary>
        ///User linked to the profile
        ///</summary>
        [<ApiMember(DataType="string", Description="User linked to the profile", Name="UserName")>]
        member val UserName:String = null with get,set

        ///<summary>
        ///User Profile Name
        ///</summary>
        [<ApiMember(DataType="string", Description="User Profile Name", Name="ProfileName")>]
        member val ProfileName:String = null with get,set

        ///<summary>
        ///Full name of the contact linked to the profile
        ///</summary>
        [<ApiMember(DataType="string", Description="Full name of the contact linked to the profile", Name="ContactFullName")>]
        member val ContactFullName:String = null with get,set

        ///<summary>
        ///Email Address of the contact linked to the profile
        ///</summary>
        [<ApiMember(DataType="string", Description="Email Address of the contact linked to the profile", Name="EmailAddress")>]
        member val EmailAddress:String = null with get,set

        ///<summary>
        ///Email signature of the contact linked to the profile
        ///</summary>
        [<ApiMember(DataType="string", Description="Email signature of the contact linked to the profile", Name="EmailSignature")>]
        member val EmailSignature:String = null with get,set

        ///<summary>
        ///Mobile number of the contact linked to the profile
        ///</summary>
        [<ApiMember(DataType="string", Description="Mobile number of the contact linked to the profile", Name="MobileNumber")>]
        member val MobileNumber:String = null with get,set

        ///<summary>
        ///Phone number of the contact linked to the profile
        ///</summary>
        [<ApiMember(DataType="string", Description="Phone number of the contact linked to the profile", Name="PhoneNumber")>]
        member val PhoneNumber:String = null with get,set

        ///<summary>
        ///Type of contact (person, organisation etc.) linked to the profile
        ///</summary>
        [<ApiMember(DataType="string", Description="Type of contact (person, organisation etc.) linked to the profile", Name="ContactTypeId")>]
        member val ContactTypeId:Guid = new Guid() with get,set

        ///<summary>
        ///Type of contact (person, organisation etc.) linked to the profile
        ///</summary>
        [<ApiMember(DataType="string", Description="Type of contact (person, organisation etc.) linked to the profile", Name="ContactTypeName")>]
        member val ContactTypeName:String = null with get,set

        ///<summary>
        ///First name of the contact linked to the profile
        ///</summary>
        [<ApiMember(DataType="string", Description="First name of the contact linked to the profile", Name="FirstName")>]
        member val FirstName:String = null with get,set

        ///<summary>
        ///Surname of the contact linked to the profile
        ///</summary>
        [<ApiMember(DataType="string", Description="Surname of the contact linked to the profile", Name="Surname")>]
        member val Surname:String = null with get,set

        ///<summary>
        ///Title of contact linked to the profile
        ///</summary>
        [<ApiMember(DataType="string", Description="Title of contact linked to the profile", Name="Title")>]
        member val Title:String = null with get,set

        ///<summary>
        ///Legal name of contact linked to the profile
        ///</summary>
        [<ApiMember(DataType="string", Description="Legal name of contact linked to the profile", Name="LegalName")>]
        member val LegalName:String = null with get,set

        ///<summary>
        ///Trading name of contact linked to the profile
        ///</summary>
        [<ApiMember(DataType="string", Description="Trading name of contact linked to the profile", Name="TradingName")>]
        member val TradingName:String = null with get,set

        ///<summary>
        ///Australian Business Number
        ///</summary>
        [<ApiMember(DataType="string", Description="Australian Business Number", Name="Abn", ParameterType="query")>]
        member val Abn:String = null with get,set

        ///<summary>
        ///Australian Company Number
        ///</summary>
        [<ApiMember(DataType="string", Description="Australian Company Number", Name="Acn", ParameterType="query")>]
        member val Acn:String = null with get,set

        ///<summary>
        ///Australian Registered Body Number
        ///</summary>
        [<ApiMember(DataType="string", Description="Australian Registered Body Number", Name="Arbn", ParameterType="query")>]
        member val Arbn: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>
        ///True if english is a secondary language for the contact.
        ///</summary>
        [<ApiMember(DataType="bool", Description="True if english is a secondary language for the contact.", Name="ESL", ParameterType="query")>]
        member val ESL:Boolean = new Boolean() with get,set

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

        ///<summary>
        ///True if an interpreter is required.
        ///</summary>
        [<ApiMember(DataType="bool", Description="True if an interpreter is required.", Name="InterpreterRequired", ParameterType="query")>]
        member val InterpreterRequired:Boolean = new Boolean() with get,set

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

        ///<summary>
        ///Profile photo of contact linked to the profile
        ///</summary>
        [<ApiMember(DataType="string", Description="Profile photo of contact linked to the profile", Name="ProfilePhotoUrl")>]
        member val ProfilePhotoUrl:String = null with get,set

        ///<summary>
        ///Thumbnail photo of contact linked to the profile
        ///</summary>
        [<ApiMember(DataType="string", Description="Thumbnail photo of contact linked to the profile", Name="ProfilePhotoThumbnailUrl")>]
        member val ProfilePhotoThumbnailUrl:String = null with get,set

        ///<summary>
        ///Profile photo id of contact linked to the profile
        ///</summary>
        [<ApiMember(DataType="Guid", Description="Profile photo id of contact linked to the profile", Name="ProfileImageId")>]
        member val ProfileImageId:Guid = new Guid() with get,set

        ///<summary>
        ///Profile description
        ///</summary>
        [<ApiMember(DataType="string", Description="Profile description", Name="Description")>]
        member val Description:String = null with get,set

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

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

        ///<summary>
        ///Areas of Work
        ///</summary>
        [<ApiMember(DataType="string", Description="Areas of Work", Name="EmploymentGeographicArea")>]
        member val EmploymentGeographicArea:String = null with get,set

        ///<summary>
        ///The contacts timezone.
        ///</summary>
        [<ApiMember(DataType="Guid", Description="The contacts timezone.", Name="Timezone", ParameterType="query")>]
        member val Timezone:Guid = new Guid() with get,set

        ///<summary>
        ///Timezone Name
        ///</summary>
        [<ApiMember(DataType="string", Description="Timezone Name", Name="TimezoneName", ParameterType="query")>]
        member val TimezoneName:String = null with get,set

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

        ///<summary>
        ///Is this an active contact? Or an inactive contact (deleted account)?
        ///</summary>
        [<ApiMember(DataType="bool", Description="Is this an active contact? Or an inactive contact (deleted account)?", Name="IsActiveContact")>]
        member val IsActiveContact:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type ObjectShareModel() = 
        member val ObjectShareId:Guid = new Guid() with get,set
        member val ObjectId:Guid = new Guid() with get,set
        member val ObjectName:String = null with get,set
        member val Name:String = null with get,set
        member val Description:String = null with get,set
        member val Reference:String = null with get,set
        member val ContactId:Guid = new Guid() with get,set
        member val ContactName:String = null with get,set
        member val ContactType:String = null with get,set
        member val ContactImageUrlPrimary:String = null with get,set
        member val ContactImageUrlPrimaryThmbnail:String = null with get,set
        member val ShareStatusId:Guid = new Guid() with get,set
        member val ShareStatusName:String = null with get,set

    [<AllowNullLiteral>]
    type ListItemFilterModel() = 
        member val ListItemFilterId:Guid = new Guid() with get,set
        member val FilterName:String = null with get,set
        member val ListId:Guid = new Guid() with get,set
        member val ListItemId:Guid = new Guid() with get,set
        member val ListItemIsInFilter:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type ViewRoleModel() = 
        inherit PagedModel()
        ///<summary>
        ///Role Id
        ///</summary>
        [<ApiMember(DataType="Guid", Description="Role Id", IsRequired=true, Name="RoleId")>]
        member val RoleId:Guid = new Guid() with get,set

        ///<summary>
        ///Role Name
        ///</summary>
        [<ApiMember(DataType="string", Description="Role Name", Name="RoleName")>]
        member val RoleName:String = null with get,set

        ///<summary>
        ///Role Connection Definition Id
        ///</summary>
        [<ApiMember(DataType="Guid", Description="Role Connection Definition Id", Name="RoleConnectionDefinitionId")>]
        member val RoleConnectionDefinitionId:Guid = new Guid() with get,set

        ///<summary>
        ///Contact Types the Role applies to
        ///</summary>
        [<ApiMember(DataType="List", Description="Contact Types the Role applies to", Name="ContactTypes")>]
        member val ContactTypes:ResizeArray<Guid> = null with get,set

        ///<summary>
        ///Does the role require contacts to accept it?
        ///</summary>
        [<ApiMember(DataType="bool", Description="Does the role require contacts to accept it?", Name="RequireContactsToAccept")>]
        member val RequireContactsToAccept:Boolean = new Boolean() with get,set

        member val IsPlatformRole:Boolean = new Boolean() with get,set
        member val CanAddContacts:Boolean = new Boolean() with get,set
        member val CanShareRole:Boolean = new Boolean() with get,set
        member val CanEditRole:Boolean = new Boolean() with get,set
        member val CanEditContactTypes:Boolean = new Boolean() with get,set
        member val Contacts:ResizeArray<UserProfileSummaryModel> = null with get,set
        member val ShareDetails:IList<ObjectShareModel> = null with get,set
        member val ListItemFilters:ResizeArray<ListItemFilterModel> = null with get,set
        member val ContactIdOwner:Guid = new Guid() with get,set
        member val TotalItemCount:Int32 = new Int32() with get,set

    [<ApiResponse(Description="Details of the specified contact role, including details of the contacts and organisations sharing it")>]
    [<AllowNullLiteral>]
    type GetContactRoleDetailsResponse() = 
        member val ContactRole:ViewRoleModel = null with get,set
        member val ResponseStatus:ResponseStatus = null with get,set

    ///<summary>
    ///Get details of the specified contact role, including details of the contacts and organisations sharing it
    ///</summary>
    [<Api(Description="Get details of the specified contact role, including details of the contacts and organisations sharing it")>]
    [<AllowNullLiteral>]
    type GetContactRoleDetails() = 
        inherit PagedModel()
        ///<summary>
        ///The Contact Role Guid. Records retrieved will belong to this contact.
        ///</summary>
        [<ApiMember(DataType="Guid", Description="The Contact Role Guid. Records retrieved will belong to this contact.", IsRequired=true, Name="ContactRoleId", ParameterType="query")>]
        member val ContactRoleId:Guid = new Guid() with get,set

        ///<summary>
        ///Text filter
        ///</summary>
        [<ApiMember(DataType="string", Description="Text filter", Name="SearchText", ParameterType="query")>]
        member val SearchText:String = null with get,set

F# GetContactRoleDetails 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 /api/contactrole/{ContactRoleId} HTTP/1.1 
Host: pfapi.pstpf.com.au 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"ContactRoleId":"00000000-0000-0000-0000-000000000000","SearchText":"String","PageNumber":0,"PageSize":0,"SortIndex":0,"SortOrder":"Ascending"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"ContactRole":{"RoleId":"00000000-0000-0000-0000-000000000000","RoleName":"String","RoleConnectionDefinitionId":"00000000-0000-0000-0000-000000000000","ContactTypes":["00000000-0000-0000-0000-000000000000"],"RequireContactsToAccept":false,"IsPlatformRole":false,"CanAddContacts":false,"CanShareRole":false,"CanEditRole":false,"CanEditContactTypes":false,"Contacts":[{"UserProfileId":"00000000-0000-0000-0000-000000000000","UserId":"00000000-0000-0000-0000-000000000000","ContactId":"00000000-0000-0000-0000-000000000000","UserName":"String","ProfileName":"String","ContactFullName":"String","EmailAddress":"String","EmailSignature":"String","MobileNumber":"String","PhoneNumber":"String","ContactTypeId":"00000000-0000-0000-0000-000000000000","ContactTypeName":"String","FirstName":"String","Surname":"String","Title":"String","LegalName":"String","TradingName":"String","Abn":"String","Acn":"String","Arbn":"String","GstRegistered":false,"ESL":false,"Language":"String","InterpreterRequired":false,"LicenseeNotes":"String","ProfilePhotoUrl":"String","ProfilePhotoThumbnailUrl":"String","ProfileImageId":"00000000-0000-0000-0000-000000000000","Description":"String","EmploymentIndustry":"String","EmploymentRole":"String","EmploymentGeographicArea":"String","Timezone":"00000000-0000-0000-0000-000000000000","TimezoneName":"String","PrimaryAddress":"String","IsActiveContact":false}],"ShareDetails":null,"ListItemFilters":[{"ListItemFilterId":"00000000-0000-0000-0000-000000000000","FilterName":"String","ListId":"00000000-0000-0000-0000-000000000000","ListItemId":"00000000-0000-0000-0000-000000000000","ListItemIsInFilter":false}],"ContactIdOwner":"00000000-0000-0000-0000-000000000000","TotalItemCount":0,"PageNumber":0,"PageSize":0,"SortIndex":0,"SortOrder":"Ascending"},"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}