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 'package:servicestack/servicestack.dart';

enum SortOrder
{
    Ascending,
    Descending,
}

class PagedModel implements IConvertible
{
    /**
    * Page Number to retrieve
    */
    // @ApiMember(DataType="int", Description="Page Number to retrieve", Name="PageNumber")
    int? PageNumber;

    /**
    * Number of records to retrieve
    */
    // @ApiMember(DataType="int", Description="Number of records to retrieve", Name="PageSize")
    int? PageSize;

    /**
    * Index of field to sort results by
    */
    // @ApiMember(DataType="int", Description="Index of field to sort results by", Name="SortIndex")
    int? SortIndex;

    /**
    * Sort Order - Ascending or Descending
    */
    // @ApiMember(DataType="int", Description="Sort Order - Ascending or Descending", Name="SortOrder")
    SortOrder? SortOrder;

    PagedModel({this.PageNumber,this.PageSize,this.SortIndex,this.SortOrder});
    PagedModel.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        PageNumber = json['PageNumber'];
        PageSize = json['PageSize'];
        SortIndex = json['SortIndex'];
        SortOrder = JsonConverters.fromJson(json['SortOrder'],'SortOrder',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'PageNumber': PageNumber,
        'PageSize': PageSize,
        'SortIndex': SortIndex,
        'SortOrder': JsonConverters.toJson(SortOrder,'SortOrder',context!)
    };

    getTypeName() => "PagedModel";
    TypeContext? context = _ctx;
}

class UserProfileSummaryModel implements IConvertible
{
    /**
    * User Profile Id
    */
    // @ApiMember(DataType="Guid", Description="User Profile Id", Name="UserProfileId")
    String? UserProfileId;

    /**
    * User linked to the profile
    */
    // @ApiMember(DataType="Guid", Description="User linked to the profile", Name="UserId")
    String? UserId;

    /**
    * Contact linked to the profile
    */
    // @ApiMember(DataType="Guid", Description="Contact linked to the profile", Name="ContactId")
    String? ContactId;

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

    /**
    * User Profile Name
    */
    // @ApiMember(DataType="string", Description="User Profile Name", Name="ProfileName")
    String? ProfileName;

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

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

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

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

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

    /**
    * 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")
    String? ContactTypeId;

    /**
    * 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")
    String? ContactTypeName;

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

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

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

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

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

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

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

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

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

    /**
    * 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")
    bool? ESL;

    /**
    * 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")
    String? Language;

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

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

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

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

    /**
    * Profile photo id of contact linked to the profile
    */
    // @ApiMember(DataType="Guid", Description="Profile photo id of contact linked to the profile", Name="ProfileImageId")
    String? ProfileImageId;

    /**
    * Profile description
    */
    // @ApiMember(DataType="string", Description="Profile description", Name="Description")
    String? Description;

    /**
    * Employment Industry
    */
    // @ApiMember(DataType="string", Description="Employment Industry", Name="EmploymentIndustry")
    String? EmploymentIndustry;

    /**
    * Employment Role
    */
    // @ApiMember(DataType="string", Description="Employment Role", Name="EmploymentRole")
    String? EmploymentRole;

    /**
    * Areas of Work
    */
    // @ApiMember(DataType="string", Description="Areas of Work", Name="EmploymentGeographicArea")
    String? EmploymentGeographicArea;

    /**
    * The contacts timezone.
    */
    // @ApiMember(DataType="Guid", Description="The contacts timezone.", Name="Timezone", ParameterType="query")
    String? Timezone;

    /**
    * Timezone Name
    */
    // @ApiMember(DataType="string", Description="Timezone Name", Name="TimezoneName", ParameterType="query")
    String? TimezoneName;

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

    /**
    * 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")
    bool? IsActiveContact;

    UserProfileSummaryModel({this.UserProfileId,this.UserId,this.ContactId,this.UserName,this.ProfileName,this.ContactFullName,this.EmailAddress,this.EmailSignature,this.MobileNumber,this.PhoneNumber,this.ContactTypeId,this.ContactTypeName,this.FirstName,this.Surname,this.Title,this.LegalName,this.TradingName,this.Abn,this.Acn,this.Arbn,this.GstRegistered,this.ESL,this.Language,this.InterpreterRequired,this.LicenseeNotes,this.ProfilePhotoUrl,this.ProfilePhotoThumbnailUrl,this.ProfileImageId,this.Description,this.EmploymentIndustry,this.EmploymentRole,this.EmploymentGeographicArea,this.Timezone,this.TimezoneName,this.PrimaryAddress,this.IsActiveContact});
    UserProfileSummaryModel.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        UserProfileId = json['UserProfileId'];
        UserId = json['UserId'];
        ContactId = json['ContactId'];
        UserName = json['UserName'];
        ProfileName = json['ProfileName'];
        ContactFullName = json['ContactFullName'];
        EmailAddress = json['EmailAddress'];
        EmailSignature = json['EmailSignature'];
        MobileNumber = json['MobileNumber'];
        PhoneNumber = json['PhoneNumber'];
        ContactTypeId = json['ContactTypeId'];
        ContactTypeName = json['ContactTypeName'];
        FirstName = json['FirstName'];
        Surname = json['Surname'];
        Title = json['Title'];
        LegalName = json['LegalName'];
        TradingName = json['TradingName'];
        Abn = json['Abn'];
        Acn = json['Acn'];
        Arbn = json['Arbn'];
        GstRegistered = json['GstRegistered'];
        ESL = json['ESL'];
        Language = json['Language'];
        InterpreterRequired = json['InterpreterRequired'];
        LicenseeNotes = json['LicenseeNotes'];
        ProfilePhotoUrl = json['ProfilePhotoUrl'];
        ProfilePhotoThumbnailUrl = json['ProfilePhotoThumbnailUrl'];
        ProfileImageId = json['ProfileImageId'];
        Description = json['Description'];
        EmploymentIndustry = json['EmploymentIndustry'];
        EmploymentRole = json['EmploymentRole'];
        EmploymentGeographicArea = json['EmploymentGeographicArea'];
        Timezone = json['Timezone'];
        TimezoneName = json['TimezoneName'];
        PrimaryAddress = json['PrimaryAddress'];
        IsActiveContact = json['IsActiveContact'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'UserProfileId': UserProfileId,
        'UserId': UserId,
        'ContactId': ContactId,
        'UserName': UserName,
        'ProfileName': ProfileName,
        'ContactFullName': ContactFullName,
        'EmailAddress': EmailAddress,
        'EmailSignature': EmailSignature,
        'MobileNumber': MobileNumber,
        'PhoneNumber': PhoneNumber,
        'ContactTypeId': ContactTypeId,
        'ContactTypeName': ContactTypeName,
        'FirstName': FirstName,
        'Surname': Surname,
        'Title': Title,
        'LegalName': LegalName,
        'TradingName': TradingName,
        'Abn': Abn,
        'Acn': Acn,
        'Arbn': Arbn,
        'GstRegistered': GstRegistered,
        'ESL': ESL,
        'Language': Language,
        'InterpreterRequired': InterpreterRequired,
        'LicenseeNotes': LicenseeNotes,
        'ProfilePhotoUrl': ProfilePhotoUrl,
        'ProfilePhotoThumbnailUrl': ProfilePhotoThumbnailUrl,
        'ProfileImageId': ProfileImageId,
        'Description': Description,
        'EmploymentIndustry': EmploymentIndustry,
        'EmploymentRole': EmploymentRole,
        'EmploymentGeographicArea': EmploymentGeographicArea,
        'Timezone': Timezone,
        'TimezoneName': TimezoneName,
        'PrimaryAddress': PrimaryAddress,
        'IsActiveContact': IsActiveContact
    };

    getTypeName() => "UserProfileSummaryModel";
    TypeContext? context = _ctx;
}

class ObjectShareModel implements IConvertible
{
    String? ObjectShareId;
    String? ObjectId;
    String? ObjectName;
    String? Name;
    String? Description;
    String? Reference;
    String? ContactId;
    String? ContactName;
    String? ContactType;
    String? ContactImageUrlPrimary;
    String? ContactImageUrlPrimaryThmbnail;
    String? ShareStatusId;
    String? ShareStatusName;

    ObjectShareModel({this.ObjectShareId,this.ObjectId,this.ObjectName,this.Name,this.Description,this.Reference,this.ContactId,this.ContactName,this.ContactType,this.ContactImageUrlPrimary,this.ContactImageUrlPrimaryThmbnail,this.ShareStatusId,this.ShareStatusName});
    ObjectShareModel.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ObjectShareId = json['ObjectShareId'];
        ObjectId = json['ObjectId'];
        ObjectName = json['ObjectName'];
        Name = json['Name'];
        Description = json['Description'];
        Reference = json['Reference'];
        ContactId = json['ContactId'];
        ContactName = json['ContactName'];
        ContactType = json['ContactType'];
        ContactImageUrlPrimary = json['ContactImageUrlPrimary'];
        ContactImageUrlPrimaryThmbnail = json['ContactImageUrlPrimaryThmbnail'];
        ShareStatusId = json['ShareStatusId'];
        ShareStatusName = json['ShareStatusName'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ObjectShareId': ObjectShareId,
        'ObjectId': ObjectId,
        'ObjectName': ObjectName,
        'Name': Name,
        'Description': Description,
        'Reference': Reference,
        'ContactId': ContactId,
        'ContactName': ContactName,
        'ContactType': ContactType,
        'ContactImageUrlPrimary': ContactImageUrlPrimary,
        'ContactImageUrlPrimaryThmbnail': ContactImageUrlPrimaryThmbnail,
        'ShareStatusId': ShareStatusId,
        'ShareStatusName': ShareStatusName
    };

    getTypeName() => "ObjectShareModel";
    TypeContext? context = _ctx;
}

class ListItemFilterModel implements IConvertible
{
    String? ListItemFilterId;
    String? FilterName;
    String? ListId;
    String? ListItemId;
    bool? ListItemIsInFilter;

    ListItemFilterModel({this.ListItemFilterId,this.FilterName,this.ListId,this.ListItemId,this.ListItemIsInFilter});
    ListItemFilterModel.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ListItemFilterId = json['ListItemFilterId'];
        FilterName = json['FilterName'];
        ListId = json['ListId'];
        ListItemId = json['ListItemId'];
        ListItemIsInFilter = json['ListItemIsInFilter'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ListItemFilterId': ListItemFilterId,
        'FilterName': FilterName,
        'ListId': ListId,
        'ListItemId': ListItemId,
        'ListItemIsInFilter': ListItemIsInFilter
    };

    getTypeName() => "ListItemFilterModel";
    TypeContext? context = _ctx;
}

class ViewRoleModel extends PagedModel implements IConvertible
{
    /**
    * Role Id
    */
    // @ApiMember(DataType="Guid", Description="Role Id", IsRequired=true, Name="RoleId")
    String? RoleId;

    /**
    * Role Name
    */
    // @ApiMember(DataType="string", Description="Role Name", Name="RoleName")
    String? RoleName;

    /**
    * Role Connection Definition Id
    */
    // @ApiMember(DataType="Guid", Description="Role Connection Definition Id", Name="RoleConnectionDefinitionId")
    String? RoleConnectionDefinitionId;

    /**
    * Contact Types the Role applies to
    */
    // @ApiMember(DataType="List", Description="Contact Types the Role applies to", Name="ContactTypes")
    List<String>? ContactTypes;

    /**
    * Does the role require contacts to accept it?
    */
    // @ApiMember(DataType="bool", Description="Does the role require contacts to accept it?", Name="RequireContactsToAccept")
    bool? RequireContactsToAccept;

    bool? IsPlatformRole;
    bool? CanAddContacts;
    bool? CanShareRole;
    bool? CanEditRole;
    bool? CanEditContactTypes;
    List<UserProfileSummaryModel>? Contacts;
    List<ObjectShareModel>? ShareDetails;
    List<ListItemFilterModel>? ListItemFilters;
    String? ContactIdOwner;
    int? TotalItemCount;

    ViewRoleModel({this.RoleId,this.RoleName,this.RoleConnectionDefinitionId,this.ContactTypes,this.RequireContactsToAccept,this.IsPlatformRole,this.CanAddContacts,this.CanShareRole,this.CanEditRole,this.CanEditContactTypes,this.Contacts,this.ShareDetails,this.ListItemFilters,this.ContactIdOwner,this.TotalItemCount});
    ViewRoleModel.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        RoleId = json['RoleId'];
        RoleName = json['RoleName'];
        RoleConnectionDefinitionId = json['RoleConnectionDefinitionId'];
        ContactTypes = JsonConverters.fromJson(json['ContactTypes'],'List<String>',context!);
        RequireContactsToAccept = json['RequireContactsToAccept'];
        IsPlatformRole = json['IsPlatformRole'];
        CanAddContacts = json['CanAddContacts'];
        CanShareRole = json['CanShareRole'];
        CanEditRole = json['CanEditRole'];
        CanEditContactTypes = json['CanEditContactTypes'];
        Contacts = JsonConverters.fromJson(json['Contacts'],'List<UserProfileSummaryModel>',context!);
        ShareDetails = JsonConverters.fromJson(json['ShareDetails'],'List<ObjectShareModel>',context!);
        ListItemFilters = JsonConverters.fromJson(json['ListItemFilters'],'List<ListItemFilterModel>',context!);
        ContactIdOwner = json['ContactIdOwner'];
        TotalItemCount = json['TotalItemCount'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'RoleId': RoleId,
        'RoleName': RoleName,
        'RoleConnectionDefinitionId': RoleConnectionDefinitionId,
        'ContactTypes': JsonConverters.toJson(ContactTypes,'List<String>',context!),
        'RequireContactsToAccept': RequireContactsToAccept,
        'IsPlatformRole': IsPlatformRole,
        'CanAddContacts': CanAddContacts,
        'CanShareRole': CanShareRole,
        'CanEditRole': CanEditRole,
        'CanEditContactTypes': CanEditContactTypes,
        'Contacts': JsonConverters.toJson(Contacts,'List<UserProfileSummaryModel>',context!),
        'ShareDetails': JsonConverters.toJson(ShareDetails,'List<ObjectShareModel>',context!),
        'ListItemFilters': JsonConverters.toJson(ListItemFilters,'List<ListItemFilterModel>',context!),
        'ContactIdOwner': ContactIdOwner,
        'TotalItemCount': TotalItemCount
    });

    getTypeName() => "ViewRoleModel";
    TypeContext? context = _ctx;
}

// @ApiResponse(Description="Details of the specified contact role, including details of the contacts and organisations sharing it")
class GetContactRoleDetailsResponse implements IConvertible
{
    ViewRoleModel? ContactRole;
    ResponseStatus? ResponseStatus;

    GetContactRoleDetailsResponse({this.ContactRole,this.ResponseStatus});
    GetContactRoleDetailsResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ContactRole = JsonConverters.fromJson(json['ContactRole'],'ViewRoleModel',context!);
        ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ContactRole': JsonConverters.toJson(ContactRole,'ViewRoleModel',context!),
        'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!)
    };

    getTypeName() => "GetContactRoleDetailsResponse";
    TypeContext? context = _ctx;
}

/**
* 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")
class GetContactRoleDetails extends PagedModel implements IConvertible
{
    /**
    * 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")
    String? ContactRoleId;

    /**
    * Text filter
    */
    // @ApiMember(DataType="string", Description="Text filter", Name="SearchText", ParameterType="query")
    String? SearchText;

    GetContactRoleDetails({this.ContactRoleId,this.SearchText});
    GetContactRoleDetails.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        ContactRoleId = json['ContactRoleId'];
        SearchText = json['SearchText'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'ContactRoleId': ContactRoleId,
        'SearchText': SearchText
    });

    getTypeName() => "GetContactRoleDetails";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'pfapi.pstpf.com.au', types: <String, TypeInfo> {
    'SortOrder': TypeInfo(TypeOf.Enum, enumValues:SortOrder.values),
    'PagedModel': TypeInfo(TypeOf.Class, create:() => PagedModel()),
    'UserProfileSummaryModel': TypeInfo(TypeOf.Class, create:() => UserProfileSummaryModel()),
    'ObjectShareModel': TypeInfo(TypeOf.Class, create:() => ObjectShareModel()),
    'ListItemFilterModel': TypeInfo(TypeOf.Class, create:() => ListItemFilterModel()),
    'ViewRoleModel': TypeInfo(TypeOf.Class, create:() => ViewRoleModel()),
    'List<UserProfileSummaryModel>': TypeInfo(TypeOf.Class, create:() => <UserProfileSummaryModel>[]),
    'List<ObjectShareModel>': TypeInfo(TypeOf.Class, create:() => <ObjectShareModel>[]),
    'List<ListItemFilterModel>': TypeInfo(TypeOf.Class, create:() => <ListItemFilterModel>[]),
    'GetContactRoleDetailsResponse': TypeInfo(TypeOf.Class, create:() => GetContactRoleDetailsResponse()),
    'GetContactRoleDetails': TypeInfo(TypeOf.Class, create:() => GetContactRoleDetails()),
});

Dart 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"}}}