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}
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*


/**
* Get details of the specified contact role, including details of the contacts and organisations sharing it
*/
@Api(Description="Get details of the specified contact role, including details of the contacts and organisations sharing it")
open class GetContactRoleDetails : PagedModel()
{
    /**
    * The Contact Role Guid. Records retrieved will belong to this contact.
    */
    @ApiMember(DataType="Guid", Description="The Contact Role Guid. Records retrieved will belong to this contact.", IsRequired=true, Name="ContactRoleId", ParameterType="query")
    open var ContactRoleId:UUID? = null

    /**
    * Text filter
    */
    @ApiMember(DataType="string", Description="Text filter", Name="SearchText", ParameterType="query")
    open var SearchText:String? = null
}

open class PagedModel
{
    /**
    * Page Number to retrieve
    */
    @ApiMember(DataType="int", Description="Page Number to retrieve", Name="PageNumber")
    open var PageNumber:Int? = null

    /**
    * Number of records to retrieve
    */
    @ApiMember(DataType="int", Description="Number of records to retrieve", Name="PageSize")
    open var PageSize:Int? = null

    /**
    * Index of field to sort results by
    */
    @ApiMember(DataType="int", Description="Index of field to sort results by", Name="SortIndex")
    open var SortIndex:Int? = null

    /**
    * Sort Order - Ascending or Descending
    */
    @ApiMember(DataType="int", Description="Sort Order - Ascending or Descending", Name="SortOrder")
    open var SortOrder:SortOrder? = null
}

enum class SortOrder
{
    Ascending,
    Descending,
}

@ApiResponse(Description="Details of the specified contact role, including details of the contacts and organisations sharing it")
open class GetContactRoleDetailsResponse
{
    open var ContactRole:ViewRoleModel? = null
    open var ResponseStatus:ResponseStatus? = null
}

open class ViewRoleModel : PagedModel()
{
    /**
    * Role Id
    */
    @ApiMember(DataType="Guid", Description="Role Id", IsRequired=true, Name="RoleId")
    open var RoleId:UUID? = null

    /**
    * Role Name
    */
    @ApiMember(DataType="string", Description="Role Name", Name="RoleName")
    open var RoleName:String? = null

    /**
    * Role Connection Definition Id
    */
    @ApiMember(DataType="Guid", Description="Role Connection Definition Id", Name="RoleConnectionDefinitionId")
    open var RoleConnectionDefinitionId:UUID? = null

    /**
    * Contact Types the Role applies to
    */
    @ApiMember(DataType="List", Description="Contact Types the Role applies to", Name="ContactTypes")
    open var ContactTypes:ArrayList<UUID>? = null

    /**
    * Does the role require contacts to accept it?
    */
    @ApiMember(DataType="bool", Description="Does the role require contacts to accept it?", Name="RequireContactsToAccept")
    open var RequireContactsToAccept:Boolean? = null

    open var IsPlatformRole:Boolean? = null
    open var CanAddContacts:Boolean? = null
    open var CanShareRole:Boolean? = null
    open var CanEditRole:Boolean? = null
    open var CanEditContactTypes:Boolean? = null
    open var Contacts:ArrayList<UserProfileSummaryModel>? = null
    open var ShareDetails:IList<ObjectShareModel>? = null
    open var ListItemFilters:ArrayList<ListItemFilterModel>? = null
    open var ContactIdOwner:UUID? = null
    open var TotalItemCount:Int? = null
}

open class UserProfileSummaryModel
{
    /**
    * User Profile Id
    */
    @ApiMember(DataType="Guid", Description="User Profile Id", Name="UserProfileId")
    open var UserProfileId:UUID? = null

    /**
    * User linked to the profile
    */
    @ApiMember(DataType="Guid", Description="User linked to the profile", Name="UserId")
    open var UserId:UUID? = null

    /**
    * Contact linked to the profile
    */
    @ApiMember(DataType="Guid", Description="Contact linked to the profile", Name="ContactId")
    open var ContactId:UUID? = null

    /**
    * User linked to the profile
    */
    @ApiMember(DataType="string", Description="User linked to the profile", Name="UserName")
    open var UserName:String? = null

    /**
    * User Profile Name
    */
    @ApiMember(DataType="string", Description="User Profile Name", Name="ProfileName")
    open var ProfileName:String? = null

    /**
    * Full name of the contact linked to the profile
    */
    @ApiMember(DataType="string", Description="Full name of the contact linked to the profile", Name="ContactFullName")
    open var ContactFullName:String? = null

    /**
    * Email Address of the contact linked to the profile
    */
    @ApiMember(DataType="string", Description="Email Address of the contact linked to the profile", Name="EmailAddress")
    open var EmailAddress:String? = null

    /**
    * Email signature of the contact linked to the profile
    */
    @ApiMember(DataType="string", Description="Email signature of the contact linked to the profile", Name="EmailSignature")
    open var EmailSignature:String? = null

    /**
    * Mobile number of the contact linked to the profile
    */
    @ApiMember(DataType="string", Description="Mobile number of the contact linked to the profile", Name="MobileNumber")
    open var MobileNumber:String? = null

    /**
    * Phone number of the contact linked to the profile
    */
    @ApiMember(DataType="string", Description="Phone number of the contact linked to the profile", Name="PhoneNumber")
    open var PhoneNumber:String? = null

    /**
    * Type of contact (person, organisation etc.) linked to the profile
    */
    @ApiMember(DataType="string", Description="Type of contact (person, organisation etc.) linked to the profile", Name="ContactTypeId")
    open var ContactTypeId:UUID? = null

    /**
    * Type of contact (person, organisation etc.) linked to the profile
    */
    @ApiMember(DataType="string", Description="Type of contact (person, organisation etc.) linked to the profile", Name="ContactTypeName")
    open var ContactTypeName:String? = null

    /**
    * First name of the contact linked to the profile
    */
    @ApiMember(DataType="string", Description="First name of the contact linked to the profile", Name="FirstName")
    open var FirstName:String? = null

    /**
    * Surname of the contact linked to the profile
    */
    @ApiMember(DataType="string", Description="Surname of the contact linked to the profile", Name="Surname")
    open var Surname:String? = null

    /**
    * Title of contact linked to the profile
    */
    @ApiMember(DataType="string", Description="Title of contact linked to the profile", Name="Title")
    open var Title:String? = null

    /**
    * Legal name of contact linked to the profile
    */
    @ApiMember(DataType="string", Description="Legal name of contact linked to the profile", Name="LegalName")
    open var LegalName:String? = null

    /**
    * Trading name of contact linked to the profile
    */
    @ApiMember(DataType="string", Description="Trading name of contact linked to the profile", Name="TradingName")
    open var TradingName:String? = null

    /**
    * Australian Business Number
    */
    @ApiMember(DataType="string", Description="Australian Business Number", Name="Abn", ParameterType="query")
    open var Abn:String? = null

    /**
    * Australian Company Number
    */
    @ApiMember(DataType="string", Description="Australian Company Number", Name="Acn", ParameterType="query")
    open var Acn:String? = null

    /**
    * Australian Registered Body Number
    */
    @ApiMember(DataType="string", Description="Australian Registered Body Number", Name="Arbn", ParameterType="query")
    open var Arbn:String? = null

    /**
    * Indicates if the Contact is registered for GST.
    */
    @ApiMember(DataType="bool", Description="Indicates if the Contact is registered for GST.", Name="GstRegistered", ParameterType="query")
    open var GstRegistered:Boolean? = null

    /**
    * True if english is a secondary language for the contact.
    */
    @ApiMember(DataType="bool", Description="True if english is a secondary language for the contact.", Name="ESL", ParameterType="query")
    open var ESL:Boolean? = null

    /**
    * Language that is the primary language for the contact.
    */
    @ApiMember(DataType="string", Description="Language that is the primary language for the contact.", Name="Language", ParameterType="query")
    open var Language:String? = null

    /**
    * True if an interpreter is required.
    */
    @ApiMember(DataType="bool", Description="True if an interpreter is required.", Name="InterpreterRequired", ParameterType="query")
    open var InterpreterRequired:Boolean? = null

    /**
    * Licensee specific notes about the contact.
    */
    @ApiMember(DataType="string", Description="Licensee specific notes about the contact.", Name="LicenseeNotes", ParameterType="query")
    open var LicenseeNotes:String? = null

    /**
    * Profile photo of contact linked to the profile
    */
    @ApiMember(DataType="string", Description="Profile photo of contact linked to the profile", Name="ProfilePhotoUrl")
    open var ProfilePhotoUrl:String? = null

    /**
    * Thumbnail photo of contact linked to the profile
    */
    @ApiMember(DataType="string", Description="Thumbnail photo of contact linked to the profile", Name="ProfilePhotoThumbnailUrl")
    open var ProfilePhotoThumbnailUrl:String? = null

    /**
    * Profile photo id of contact linked to the profile
    */
    @ApiMember(DataType="Guid", Description="Profile photo id of contact linked to the profile", Name="ProfileImageId")
    open var ProfileImageId:UUID? = null

    /**
    * Profile description
    */
    @ApiMember(DataType="string", Description="Profile description", Name="Description")
    open var Description:String? = null

    /**
    * Employment Industry
    */
    @ApiMember(DataType="string", Description="Employment Industry", Name="EmploymentIndustry")
    open var EmploymentIndustry:String? = null

    /**
    * Employment Role
    */
    @ApiMember(DataType="string", Description="Employment Role", Name="EmploymentRole")
    open var EmploymentRole:String? = null

    /**
    * Areas of Work
    */
    @ApiMember(DataType="string", Description="Areas of Work", Name="EmploymentGeographicArea")
    open var EmploymentGeographicArea:String? = null

    /**
    * The contacts timezone.
    */
    @ApiMember(DataType="Guid", Description="The contacts timezone.", Name="Timezone", ParameterType="query")
    open var Timezone:UUID? = null

    /**
    * Timezone Name
    */
    @ApiMember(DataType="string", Description="Timezone Name", Name="TimezoneName", ParameterType="query")
    open var TimezoneName:String? = null

    /**
    * The primary address of the contact
    */
    @ApiMember(DataType="string", Description="The primary address of the contact", Name="PrimaryAddress", ParameterType="query")
    open var PrimaryAddress:String? = null

    /**
    * Is this an active contact? Or an inactive contact (deleted account)?
    */
    @ApiMember(DataType="bool", Description="Is this an active contact? Or an inactive contact (deleted account)?", Name="IsActiveContact")
    open var IsActiveContact:Boolean? = null
}

open class ObjectShareModel
{
    open var ObjectShareId:UUID? = null
    open var ObjectId:UUID? = null
    open var ObjectName:String? = null
    open var Name:String? = null
    open var Description:String? = null
    open var Reference:String? = null
    open var ContactId:UUID? = null
    open var ContactName:String? = null
    open var ContactType:String? = null
    open var ContactImageUrlPrimary:String? = null
    open var ContactImageUrlPrimaryThmbnail:String? = null
    open var ShareStatusId:UUID? = null
    open var ShareStatusName:String? = null
}

open class ListItemFilterModel
{
    open var ListItemFilterId:UUID? = null
    open var FilterName:String? = null
    open var ListId:UUID? = null
    open var ListItemId:UUID? = null
    open var ListItemIsInFilter:Boolean? = null
}

Kotlin GetContactRoleDetails DTOs

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

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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: application/json
Content-Type: application/json
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: application/json
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"}}}